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}" = "yes" ]; then
4003 # detect mips_dspr2 support
4004 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "yes" ]; then
4010 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
4013 if [ "$CFG_ZLIB" = "no" ]; then
4014 # Note: Qt no longer support builds without zlib
4015 # So we force a "no" to be "auto" here.
4016 # If you REALLY really need no zlib support, you can still disable
4017 # it by doing the following:
4018 # add "no-zlib" to mkspecs/qconfig.pri
4019 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4021 # There's no guarantee that Qt will build under those conditions
4026 if [ "$CFG_ZLIB" = "auto" ]; then
4027 if compileTest unix/zlib "zlib"; then
4034 if [ "$CFG_LARGEFILE" = "auto" ]; then
4035 #Large files should be enabled for all Linux systems
4039 if [ "$CFG_GUI" = "no" ]; then
4040 QPA_PLATFORM_GUARD=no
4043 # detect how jpeg should be built
4044 if [ "$CFG_JPEG" = "auto" ]; then
4045 if [ "$CFG_SHARED" = "yes" ]; then
4052 if [ "$CFG_LIBJPEG" = "auto" ]; then
4053 if compileTest unix/libjpeg "libjpeg"; then
4060 # detect how gif should be built
4061 if [ "$CFG_GIF" = "auto" ]; then
4062 if [ "$CFG_SHARED" = "yes" ]; then
4070 if [ "$CFG_LIBPNG" = "auto" ]; then
4071 if compileTest unix/libpng "libpng"; then
4078 if [ "$CFG_EGLFS" = "yes" ]; then
4079 if [ "$CFG_EGL" = "no" ]; then
4080 echo "The EGLFS plugin requires EGL support and cannot be built"
4083 if [ "$CFG_OPENGL" != "es2" ]; then
4084 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4091 if [ "$CFG_KMS" = "yes" ]; then
4092 if [ "$CFG_EGL" = "no" ]; then
4093 echo "The KMS plugin requires EGL support and cannot be built"
4096 if [ "$CFG_OPENGL" != "es2" ]; then
4097 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4102 # auto-detect SQL-modules support
4103 for _SQLDR in $CFG_SQL_AVAILABLE; do
4106 if [ "$CFG_SQL_mysql" != "no" ]; then
4107 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4108 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4109 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4110 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4111 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4112 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4113 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4115 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4116 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4117 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4118 echo " You need MySql 4 or higher."
4119 echo " If you believe this message is in error you may use the continue"
4120 echo " switch (-continue) to $0 to continue."
4125 QT_LFLAGS_MYSQL_R=""
4129 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4130 QMakeVar add CONFIG use_libmysqlclient_r
4131 if [ "$CFG_SQL_mysql" = "auto" ]; then
4132 CFG_SQL_mysql=plugin
4134 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4135 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4136 if [ "$CFG_SQL_mysql" = "auto" ]; then
4137 CFG_SQL_mysql=plugin
4140 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4141 echo "MySQL support cannot be enabled due to functionality tests!"
4142 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4143 echo " If you believe this message is in error you may use the continue"
4144 echo " switch (-continue) to $0 to continue."
4149 QT_LFLAGS_MYSQL_R=""
4157 if [ "$CFG_SQL_psql" != "no" ]; then
4158 # Be careful not to use native pg_config when cross building.
4159 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4160 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4161 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4163 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4164 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4165 # But, respect PSQL_LIBS if set
4166 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4167 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4168 if [ "$CFG_SQL_psql" = "auto" ]; then
4172 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4173 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4174 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4175 echo " If you believe this message is in error you may use the continue"
4176 echo " switch (-continue) to $0 to continue."
4187 if [ "$CFG_SQL_odbc" != "no" ]; then
4188 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4189 if [ "$CFG_SQL_odbc" = "auto" ]; then
4193 if compileTest unix/iodbc "iODBC"; then
4194 QT_LFLAGS_ODBC="-liodbc"
4195 if [ "$CFG_SQL_odbc" = "auto" ]; then
4199 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4200 echo "ODBC support cannot be enabled due to functionality tests!"
4201 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4202 echo " If you believe this message is in error you may use the continue"
4203 echo " switch (-continue) to $0 to continue."
4213 if [ "$CFG_SQL_oci" != "no" ]; then
4214 if compileTest unix/oci "OCI"; then
4215 if [ "$CFG_SQL_oci" = "auto" ]; then
4219 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4220 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4221 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4222 echo " If you believe this message is in error you may use the continue"
4223 echo " switch (-continue) to $0 to continue."
4232 if [ "$CFG_SQL_tds" != "no" ]; then
4233 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4234 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4235 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4236 if [ "$CFG_SQL_tds" = "auto" ]; then
4240 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4241 echo "TDS support cannot be enabled due to functionality tests!"
4242 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4243 echo " If you believe this message is in error you may use the continue"
4244 echo " switch (-continue) to $0 to continue."
4253 if [ "$CFG_SQL_db2" != "no" ]; then
4254 if compileTest unix/db2 "DB2"; then
4255 if [ "$CFG_SQL_db2" = "auto" ]; then
4259 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4260 echo "ODBC support cannot be enabled due to functionality tests!"
4261 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4262 echo " If you believe this message is in error you may use the continue"
4263 echo " switch (-continue) to $0 to continue."
4272 if [ "$CFG_SQL_ibase" != "no" ]; then
4273 if compileTest unix/ibase "InterBase"; then
4274 if [ "$CFG_SQL_ibase" = "auto" ]; then
4275 CFG_SQL_ibase=plugin
4278 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4279 echo "InterBase support cannot be enabled due to functionality tests!"
4280 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4281 echo " If you believe this message is in error you may use the continue"
4282 echo " switch (-continue) to $0 to continue."
4291 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4292 if compileTest unix/sqlite2 "SQLite2"; then
4293 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4294 CFG_SQL_sqlite2=plugin
4297 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4298 echo "SQLite2 support cannot be enabled due to functionality tests!"
4299 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4300 echo " If you believe this message is in error you may use the continue"
4301 echo " switch (-continue) to $0 to continue."
4310 if [ "$CFG_SQL_sqlite" != "no" ]; then
4311 SQLITE_AUTODETECT_FAILED="no"
4312 if [ "$CFG_SQLITE" = "system" ]; then
4313 if [ -n "$PKG_CONFIG" ]; then
4314 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4315 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4318 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4320 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4321 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4322 CFG_SQL_sqlite=plugin
4324 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4326 SQLITE_AUTODETECT_FAILED="yes"
4329 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4330 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4331 CFG_SQL_sqlite=plugin
4334 SQLITE_AUTODETECT_FAILED="yes"
4338 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4339 echo "SQLite support cannot be enabled due to functionality tests!"
4340 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4341 echo " If you believe this message is in error you may use the continue"
4342 echo " switch (-continue) to $0 to continue."
4348 if [ "$OPT_VERBOSE" = "yes" ]; then
4349 echo "unknown SQL driver: $_SQLDR"
4355 # auto-detect NIS support
4356 if [ "$CFG_NIS" != "no" ]; then
4357 if compileTest unix/nis "NIS"; then
4360 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4361 echo "NIS support cannot be enabled due to functionality tests!"
4362 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4363 echo " If you believe this message is in error you may use the continue"
4364 echo " switch (-continue) to $0 to continue."
4372 # auto-detect CUPS support
4373 if [ "$CFG_CUPS" != "no" ]; then
4374 if compileTest unix/cups "Cups"; then
4377 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4378 echo "Cups support cannot be enabled due to functionality tests!"
4379 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4380 echo " If you believe this message is in error you may use the continue"
4381 echo " switch (-continue) to $0 to continue."
4389 # auto-detect iconv(3) support
4390 if [ "$CFG_ICONV" != "no" ]; then
4391 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4393 elif compileTest unix/iconv "POSIX iconv"; then
4395 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4397 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4400 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4401 echo "Iconv support cannot be enabled due to functionality tests!"
4402 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4403 echo " If you believe this message is in error you may use the continue"
4404 echo " switch (-continue) to $0 to continue."
4412 # auto-detect libdbus-1 support
4413 if [ "$CFG_DBUS" != "no" ]; then
4414 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4415 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4416 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4418 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4419 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4420 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4421 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4423 if [ "$CFG_DBUS" = "auto" ]; then
4425 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4426 # CFG_DBUS is "yes" or "linked" here
4428 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4429 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4430 echo " If you believe this message is in error you may use the continue"
4431 echo " switch (-continue) to $0 to continue."
4437 # auto-detect Glib support
4438 if [ "$CFG_GLIB" != "no" ]; then
4439 if [ -n "$PKG_CONFIG" ]; then
4440 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4441 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4443 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4445 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4446 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4448 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4449 echo "Glib support cannot be enabled due to functionality tests!"
4450 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4451 echo " If you believe this message is in error you may use the continue"
4452 echo " switch (-continue) to $0 to continue."
4460 # auto-detect GTK style support
4461 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4462 if [ -n "$PKG_CONFIG" ]; then
4463 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4464 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4466 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4468 QT_CONFIG="$QT_CONFIG gtkstyle"
4469 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4470 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4472 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4473 echo "Gtk theme support cannot be enabled due to functionality tests!"
4474 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4475 echo " If you believe this message is in error you may use the continue"
4476 echo " switch (-continue) to $0 to continue."
4482 elif [ "$CFG_GLIB" = "no" ]; then
4487 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4488 if [ -n "$PKG_CONFIG" ]; then
4489 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4490 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4492 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4494 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4495 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4497 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4498 echo "Gstreamer support cannot be enabled due to functionality tests!"
4499 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4500 echo " If you believe this message is in error you may use the continue"
4501 echo " switch (-continue) to $0 to continue."
4507 elif [ "$CFG_GLIB" = "no" ]; then
4511 # auto-detect libicu support
4512 if [ "$CFG_ICU" != "no" ]; then
4513 if compileTest unix/icu "ICU"; then
4514 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4516 if [ "$CFG_ICU" = "auto" ]; then
4518 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4521 echo "The ICU library support cannot be enabled."
4522 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4523 echo " If you believe this message is in error you may use the continue"
4524 echo " switch (-continue) to $0 to continue."
4530 # Auto-detect PulseAudio support
4531 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4532 if [ -n "$PKG_CONFIG" ]; then
4533 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4534 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4536 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4538 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4539 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4541 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4542 echo "PulseAudio support cannot be enabled due to functionality tests!"
4543 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4544 echo " If you believe this message is in error you may use the continue"
4545 echo " switch (-continue) to $0 to continue."
4554 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4555 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4556 if [ "$CFG_GUI" = "no" ]; then
4557 if [ "$CFG_OPENGL" = "auto" ]; then
4560 if [ "$CFG_OPENGL" != "no" ]; then
4561 echo "OpenGL enabled, but GUI disabled."
4562 echo " You might need to either enable the GUI or disable OpenGL"
4566 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4567 if compileTest x11/opengl "OpenGL"; then
4569 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4572 if [ "$CFG_OPENGL" = "yes" ]; then
4573 echo "All the OpenGL functionality tests failed!"
4574 echo " You might need to modify the include and library search paths by editing"
4575 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4576 echo " ${XQMAKESPEC}."
4583 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4584 if [ "$CFG_OPENGL" = "desktop" ]; then
4585 compileTest x11/glxfbconfig "OpenGL"
4586 if [ $? != "0" ]; then
4587 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4594 elif [ "$CFG_OPENGL" = "es2" ]; then
4596 compileTest unix/opengles2 "OpenGL ES 2.x"
4597 if [ $? != "0" ]; then
4598 echo "The OpenGL ES 2.0 functionality test failed!"
4599 echo " You might need to modify the include and library search paths by editing"
4600 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4601 echo " ${XQMAKESPEC}."
4604 elif [ "$CFG_OPENGL" = "desktop" ]; then
4605 # Desktop OpenGL support
4606 compileTest x11/opengl "OpenGL"
4607 if [ $? != "0" ]; then
4608 echo "The OpenGL functionality test failed!"
4609 echo " You might need to modify the include and library search paths by editing"
4610 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4611 echo " ${XQMAKESPEC}."
4616 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4617 compileTest x11/glxfbconfig "OpenGL"
4618 if [ $? != "0" ]; then
4619 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4626 fi # X11/MINGW OpenGL
4628 if [ "$BUILD_ON_MAC" = "yes" ]; then
4629 if [ "$CFG_COREWLAN" = "auto" ]; then
4630 if compileTest mac/corewlan "CoreWlan"; then
4638 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4639 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4640 if compileTest unix/opengldesktop "OpenGL"; then
4642 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4645 if [ "$CFG_OPENGL" = "yes" ]; then
4646 echo "All the OpenGL functionality tests failed!"
4647 echo " You might need to modify the include and library search paths by editing"
4648 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4649 echo " ${XQMAKESPEC}."
4654 elif [ "$CFG_OPENGL" = "es2" ]; then
4656 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4657 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4658 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4659 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4660 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4661 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4662 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4663 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4666 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4667 if [ $? != "0" ]; then
4668 echo "The OpenGL ES 2.0 functionality test failed!"
4669 echo " You might need to modify the include and library search paths by editing"
4670 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4671 echo " ${XQMAKESPEC}."
4674 elif [ "$CFG_OPENGL" = "desktop" ]; then
4675 # Desktop OpenGL support
4676 compileTest unix/opengldesktop "OpenGL"
4677 if [ $? != "0" ]; then
4678 echo "The OpenGL functionality test failed!"
4679 echo " You might need to modify the include and library search paths by editing"
4680 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4681 echo " ${XQMAKESPEC}."
4686 # auto-detect FontConfig support
4687 if [ "$CFG_FONTCONFIG" != "no" ]; then
4688 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4689 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4690 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4692 QT_CFLAGS_FONTCONFIG=
4693 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4695 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4696 QT_CONFIG="$QT_CONFIG fontconfig"
4697 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4698 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4700 CFG_LIBFREETYPE=system
4707 # Save these for a check later
4708 ORIG_CFG_XCB="$CFG_XCB"
4709 ORIG_CFG_EGLFS="$CFG_EGLFS"
4710 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4711 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4712 ORIG_CFG_KMS="$CFG_KMS"
4714 if [ "$CFG_LIBUDEV" != "no" ]; then
4715 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4716 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4717 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4718 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4719 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4721 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4723 QT_CONFIG="$QT_CONFIG libudev"
4724 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4725 echo "The libudev functionality test failed!"
4731 if [ "$CFG_LIBUDEV" = "no" ]; then
4732 QMakeVar add DEFINES QT_NO_LIBUDEV
4735 if [ "$CFG_EVDEV" != "no" ]; then
4736 if compileTest unix/evdev "evdev"; then
4738 QT_CONFIG="$QT_CONFIG evdev"
4739 elif [ "$CFG_EVDEV" = "yes" ]; then
4740 echo "The evdev functionality test failed!"
4746 if [ "$CFG_EVDEV" = "no" ]; then
4747 QMakeVar add DEFINES QT_NO_EVDEV
4750 # Check we actually have X11 :-)
4751 if compileTest x11/xlib "XLib"; then
4752 QT_CONFIG="$QT_CONFIG xlib"
4755 # auto-detect Xrender support
4756 if [ "$CFG_XRENDER" != "no" ]; then
4757 if compileTest x11/xrender "Xrender"; then
4759 QT_CONFIG="$QT_CONFIG xrender"
4761 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4762 echo "Xrender support cannot be enabled due to functionality tests!"
4763 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4764 echo " If you believe this message is in error you may use the continue"
4765 echo " switch (-continue) to $0 to continue."
4773 if [ "$CFG_XCB" != "no" ]; then
4774 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4775 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4776 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4778 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4780 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4781 QT_CONFIG="$QT_CONFIG xcb-render"
4784 if compileTest qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4786 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4789 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4790 QT_CONFIG="$QT_CONFIG xcb-xlib"
4793 # auto-detect XInput2 support. Needed by xcb too.
4794 if [ "$CFG_XINPUT2" != "no" ]; then
4795 if compileTest x11/xinput2 "XInput2"; then
4799 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4800 echo "XInput2 support cannot be enabled due to functionality tests!"
4801 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4802 echo " If you believe this message is in error you may use the continue"
4803 echo " switch (-continue) to $0 to continue."
4811 if [ "$CFG_XCB" = "yes" ]; then
4812 echo "The XCB test failed!"
4813 echo " You might need to install dependency packages."
4814 echo " See src/plugins/platforms/xcb/README."
4820 if [ "$CFG_XCB" = "no" ]; then
4821 QMakeVar add DEFINES QT_NO_XCB
4824 if [ "$CFG_DIRECTFB" != "no" ]; then
4825 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4826 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4827 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4828 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4830 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4831 echo " DirectFB support cannot be enabled due to functionality tests!"
4832 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4833 echo " If you believe this message is in error you may use the continue"
4834 echo " switch (-continue) to $0 to continue."
4844 if [ "$CFG_LINUXFB" != "no" ]; then
4845 if compileTest qpa/linuxfb "LinuxFB"; then
4847 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4848 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4849 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4850 echo " If you believe this message is in error you may use the continue"
4851 echo " switch (-continue) to $0 to continue."
4858 if [ "$CFG_KMS" != "no" ]; then
4859 if compileTest qpa/kms "KMS"; then
4861 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4862 echo " KMS support cannot be enabled due to functionality tests!"
4863 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4864 echo " If you believe this message is in error you may use the continue"
4865 echo " switch (-continue) to $0 to continue."
4872 # Detect libxkbcommon
4873 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4874 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4875 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4876 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4877 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4879 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4883 if [ "$CFG_EGL" != "no" ] && [ "$CFG_OPENGL" != "desktop" ]; then
4884 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4885 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4886 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4887 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4888 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4889 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4890 fi # detect EGL support
4891 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4893 elif [ "$CFG_EGL" = "yes" ]; then
4894 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4895 echo " You might need to modify the include and library search paths by editing"
4896 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4901 elif [ "$CFG_OPENGL" = "desktop" ]; then
4902 if [ "$CFG_EGL" = "yes" ]; then
4903 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4904 echo "Either disable EGL support or enable OpenGL ES support."
4910 if [ "$CFG_EGLFS" != "no" ]; then
4911 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4912 CFG_EGLFS="$CFG_EGL"
4918 if [ "$CFG_KMS" = "yes" ]; then
4919 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4926 # Detect accessibility support
4927 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4928 if [ "$CFG_XCB" = "no" ]; then
4929 CFG_ACCESSIBILITY=yes
4931 # linux/xcb accessibility needs dbus and atspi-2
4932 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "atspi-2" 2>/dev/null; then
4933 CFG_ACCESSIBILITY=yes
4935 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4936 CFG_ACCESSIBILITY=no
4938 echo "Accessibility support needs pkg-config and libatspi2."
4945 # Determine the default QPA platform
4946 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4948 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4949 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4950 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4951 QT_QPA_DEFAULT_PLATFORM="windows"
4952 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4953 QT_QPA_DEFAULT_PLATFORM="cocoa"
4954 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4955 QT_QPA_DEFAULT_PLATFORM="qnx"
4957 QT_QPA_DEFAULT_PLATFORM="xcb"
4962 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4963 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4964 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4965 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4967 if [ "$CFG_DIRECTFB" = "yes" ]; then
4968 QT_CONFIG="$QT_CONFIG directfb"
4969 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4970 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4972 if [ "$CFG_LINUXFB" = "yes" ]; then
4973 QT_CONFIG="$QT_CONFIG linuxfb"
4975 if [ "$CFG_KMS" = "yes" ]; then
4976 QT_CONFIG="$QT_CONFIG kms"
4979 if [ "$BUILD_ON_MAC" = "yes" ]; then
4980 if compileTest mac/coreservices "CoreServices"; then
4981 QT_CONFIG="$QT_CONFIG coreservices"
4983 QMakeVar add DEFINES QT_NO_CORESERVICES
4987 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4988 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
4989 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4990 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
4991 echo "No QPA platform plugin enabled!"
4992 echo " If you really want to build without a QPA platform plugin you must pass"
4993 echo " -no-qpa-platform-guard to configure. Doing this will"
4994 echo " produce a Qt that can not run GUI applications."
4995 echo " The dependencies needed for xcb to build are listed in"
4996 echo " src/plugins/platforms/xcb/README"
5003 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
5004 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
5005 if compileTest unix/freetype "FreeType"; then
5006 CFG_LIBFREETYPE=system
5012 if ! compileTest unix/stl "STL" &&
5013 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5014 echo "STL functionality check failed! Cannot build Qt with this STL library."
5015 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5020 # detect POSIX clock_gettime()
5021 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5022 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
5023 CFG_CLOCK_GETTIME=yes
5025 CFG_CLOCK_GETTIME=no
5029 # detect POSIX monotonic clocks
5030 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5031 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5032 CFG_CLOCK_MONOTONIC=yes
5034 CFG_CLOCK_MONOTONIC=no
5036 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5037 CFG_CLOCK_MONOTONIC=no
5041 if [ "$CFG_MREMAP" = "auto" ]; then
5042 if compileTest unix/mremap "mremap"; then
5049 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5050 if [ "$CFG_GETADDRINFO" != "no" ]; then
5051 if compileTest unix/getaddrinfo "getaddrinfo"; then
5054 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5055 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5056 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5057 echo " If you believe this message is in error you may use the continue"
5058 echo " switch (-continue) to $0 to continue."
5066 # find if the platform provides inotify
5067 if [ "$CFG_INOTIFY" != "no" ]; then
5068 if compileTest unix/inotify "inotify"; then
5071 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5072 echo "inotify support cannot be enabled due to functionality tests!"
5073 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5074 echo " If you believe this message is in error you may use the continue"
5075 echo " switch (-continue) to $0 to continue."
5083 # find if the platform provides if_nametoindex (ipv6 interface name support)
5084 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5085 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5088 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5089 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5090 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5091 echo " If you believe this message is in error you may use the continue"
5092 echo " switch (-continue) to $0 to continue."
5100 # find if the platform provides getifaddrs (network interface enumeration)
5101 if [ "$CFG_GETIFADDRS" != "no" ]; then
5102 if compileTest unix/getifaddrs "getifaddrs"; then
5105 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5106 echo "getifaddrs support cannot be enabled due to functionality tests!"
5107 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5108 echo " If you believe this message is in error you may use the continue"
5109 echo " switch (-continue) to $0 to continue."
5118 if [ "$CFG_OPENSSL" != "no" ]; then
5119 if compileTest unix/openssl "OpenSSL"; then
5120 if [ "$CFG_OPENSSL" = "auto" ]; then
5124 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5125 echo "OpenSSL support cannot be enabled due to functionality tests!"
5126 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5127 echo " If you believe this message is in error you may use the continue"
5128 echo " switch (-continue) to $0 to continue."
5137 if [ "$CFG_PCRE" != "qt" ]; then
5138 if compileTest unix/pcre "PCRE"; then
5141 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5142 echo "PCRE support cannot be enabled due to functionality tests!"
5143 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5144 echo " If you believe this message is in error you may use the continue"
5145 echo " switch (-continue) to $0 to continue."
5153 # detect OpenVG support
5154 if [ "$CFG_OPENVG" != "no" ]; then
5155 if compileTest unix/openvg "OpenVG"; then
5156 if [ "$CFG_OPENVG" = "auto" ]; then
5159 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5160 if [ "$CFG_OPENVG" = "auto" ]; then
5163 CFG_OPENVG_ON_OPENGL=yes
5164 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5165 if [ "$CFG_OPENVG" = "auto" ]; then
5168 CFG_OPENVG_LC_INCLUDES=yes
5169 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5170 if [ "$CFG_OPENVG" = "auto" ]; then
5173 CFG_OPENVG_LC_INCLUDES=yes
5174 CFG_OPENVG_ON_OPENGL=yes
5176 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5177 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5178 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5179 echo " If you believe this message is in error you may use the continue"
5180 echo " switch (-continue) to $0 to continue."
5186 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5187 CFG_OPENVG_SHIVA=yes
5191 if [ "$CFG_ALSA" = "auto" ]; then
5192 if compileTest unix/alsa "alsa"; then
5199 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5200 if [ "$CFG_ARCH" = "arm" ]; then
5201 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5202 if [ $? != "0" ]; then
5203 CFG_JAVASCRIPTCORE_JIT=no
5206 case "$XPLATFORM" in
5208 CFG_JAVASCRIPTCORE_JIT=no
5214 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5215 QMakeVar set JAVASCRIPTCORE_JIT yes
5216 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5217 QMakeVar set JAVASCRIPTCORE_JIT no
5220 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5221 CFG_AUDIO_BACKEND=yes
5224 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5225 echo "Warning: largefile support cannot be disabled for win32."
5229 #-------------------------------------------------------------------------------
5230 # ask for all that hasn't been auto-detected or specified in the arguments
5231 #-------------------------------------------------------------------------------
5233 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5235 # disable accessibility
5236 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5237 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5239 QT_CONFIG="$QT_CONFIG accessibility"
5243 if [ "$CFG_EGL" = "yes" ]; then
5244 QT_CONFIG="$QT_CONFIG egl"
5246 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5250 if [ "$CFG_EGLFS" = "yes" ]; then
5251 QT_CONFIG="$QT_CONFIG eglfs"
5253 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5257 if [ "$CFG_OPENVG" = "no" ]; then
5258 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5260 QT_CONFIG="$QT_CONFIG openvg"
5261 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5262 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5264 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5265 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5267 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5268 QT_CONFIG="$QT_CONFIG shivavg"
5269 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5274 if [ "$CFG_OPENGL" = "no" ]; then
5275 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5277 QT_CONFIG="$QT_CONFIG opengl"
5280 if [ "$CFG_OPENGL" = "es2" ]; then
5281 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5284 if [ "$CFG_OPENGL" = "es2" ]; then
5285 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5286 QT_CONFIG="$QT_CONFIG opengles2"
5289 # build up the variables for output
5290 if [ "$CFG_DEBUG" = "yes" ]; then
5291 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5292 elif [ "$CFG_DEBUG" = "no" ]; then
5293 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5295 if [ "$CFG_SHARED" = "yes" ]; then
5296 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5297 QT_CONFIG="$QT_CONFIG shared"
5298 elif [ "$CFG_SHARED" = "no" ]; then
5299 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5300 QT_CONFIG="$QT_CONFIG static"
5303 #FIXME: qpa is implicit this should all be removed
5304 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5305 QT_CONFIG="$QT_CONFIG qpa"
5306 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5307 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5309 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5310 # Do not set this here for Windows. Let qmake do it so
5311 # debug and release precompiled headers are kept separate.
5312 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5314 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5315 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5316 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5317 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5318 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5319 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5321 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5322 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5324 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5325 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5326 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5327 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5328 QMakeVar add QMAKE_CFLAGS -g
5329 QMakeVar add QMAKE_CXXFLAGS -g
5330 QT_CONFIG="$QT_CONFIG separate_debug_info"
5332 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5333 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5335 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5336 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5337 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5338 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5339 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5340 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5341 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5342 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5343 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5344 if [ "$CFG_ARCH" = "mips" ]; then
5345 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5346 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5348 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5349 QT_CONFIG="$QT_CONFIG clock-gettime"
5351 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5352 QT_CONFIG="$QT_CONFIG clock-monotonic"
5354 if [ "$CFG_MREMAP" = "yes" ]; then
5355 QT_CONFIG="$QT_CONFIG mremap"
5357 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5358 QT_CONFIG="$QT_CONFIG getaddrinfo"
5360 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5361 QT_CONFIG="$QT_CONFIG ipv6ifname"
5363 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5364 QT_CONFIG="$QT_CONFIG getifaddrs"
5366 if [ "$CFG_INOTIFY" = "yes" ]; then
5367 QT_CONFIG="$QT_CONFIG inotify"
5369 if [ "$CFG_LIBJPEG" = "no" ]; then
5371 elif [ "$CFG_LIBJPEG" = "system" ]; then
5372 QT_CONFIG="$QT_CONFIG system-jpeg"
5374 if [ "$CFG_JPEG" = "no" ]; then
5375 QT_CONFIG="$QT_CONFIG no-jpeg"
5376 elif [ "$CFG_JPEG" = "yes" ]; then
5377 QT_CONFIG="$QT_CONFIG jpeg"
5379 if [ "$CFG_LIBPNG" = "no" ]; then
5382 if [ "$CFG_LIBPNG" = "system" ]; then
5383 QT_CONFIG="$QT_CONFIG system-png"
5385 if [ "$CFG_PNG" = "no" ]; then
5386 QT_CONFIG="$QT_CONFIG no-png"
5387 elif [ "$CFG_PNG" = "yes" ]; then
5388 QT_CONFIG="$QT_CONFIG png"
5390 if [ "$CFG_GIF" = "no" ]; then
5391 QT_CONFIG="$QT_CONFIG no-gif"
5392 elif [ "$CFG_GIF" = "yes" ]; then
5393 QT_CONFIG="$QT_CONFIG gif"
5395 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5396 QT_CONFIG="$QT_CONFIG no-freetype"
5397 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5398 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5399 QT_CONFIG="$QT_CONFIG system-freetype"
5401 QT_CONFIG="$QT_CONFIG freetype"
5403 if [ "$CFG_GUI" = "auto" ]; then
5406 if [ "$CFG_GUI" = "no" ]; then
5407 QT_CONFIG="$QT_CONFIG no-gui"
5410 if [ "$CFG_WIDGETS" = "no" ]; then
5411 QT_CONFIG="$QT_CONFIG no-widgets"
5412 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5415 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5416 #On Mac we implicitly link against libz, so we
5417 #never use the 3rdparty stuff.
5418 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5420 if [ "$CFG_ZLIB" = "yes" ]; then
5421 QT_CONFIG="$QT_CONFIG zlib"
5422 elif [ "$CFG_ZLIB" = "system" ]; then
5423 QT_CONFIG="$QT_CONFIG system-zlib"
5426 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5427 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5428 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5429 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5430 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5431 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5432 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5433 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5434 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5435 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5436 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5437 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5438 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5439 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5441 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5442 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5444 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5445 if [ "$CFG_RPATH" = "yes" ]; then
5446 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5448 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5449 if [ -n "$RPATH_FLAGS" ]; then
5451 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5455 elif [ "$CFG_RPATH" = "yes" ]; then
5456 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5460 if [ -n "$RPATH_FLAGS" ]; then
5461 # add the user defined rpaths
5462 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5465 if [ "$CFG_RPATH" = "yes" ]; then
5466 QT_CONFIG="$QT_CONFIG rpath"
5469 if [ '!' -z "$I_FLAGS" ]; then
5470 # add the user define include paths
5471 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5472 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5475 if [ '!' -z "$W_FLAGS" ]; then
5476 # add the user defined warning flags
5477 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5478 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5479 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5482 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5483 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5484 # Follow default behavior of configure.exe by overriding with "rtti".
5485 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5488 if [ "$CFG_ALSA" = "yes" ]; then
5489 QT_CONFIG="$QT_CONFIG alsa"
5492 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5493 QT_CONFIG="$QT_CONFIG pulseaudio"
5496 if [ "$CFG_COREWLAN" = "yes" ]; then
5497 QT_CONFIG="$QT_CONFIG corewlan"
5500 if [ "$CFG_ICU" = "yes" ]; then
5501 QT_CONFIG="$QT_CONFIG icu"
5504 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5505 QT_CONFIG="$QT_CONFIG force_asserts"
5508 if [ "$CFG_PCRE" = "qt" ]; then
5509 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5513 # Some Qt modules are too advanced in C++ for some old compilers
5514 # Detect here the platforms where they are known to work.
5516 # See Qt documentation for more information on which features are
5517 # supported and on which compilers.
5519 canBuildQtConcurrent="yes"
5520 canUseV8Snapshot="yes"
5522 case "$XPLATFORM" in
5524 # PA-RISC's assembly is too limited
5525 # gcc 3.4 on that platform can't build QtXmlPatterns
5526 # the assembly it generates cannot be compiled
5528 # Check gcc's version
5529 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5533 canBuildQtXmlPatterns="no"
5537 canBuildQtXmlPatterns="no"
5541 unsupported/vxworks-*-g++*)
5544 unsupported/vxworks-*-dcc*)
5546 canBuildQtXmlPatterns="no"
5549 # Check gcc's version
5550 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5558 canBuildQtXmlPatterns="no"
5563 # Check the compiler version
5564 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5567 canBuildQtXmlPatterns="no"
5568 canBuildQtConcurrent="no"
5572 canBuildQtConcurrent="no"
5578 canBuildQtXmlPatterns="no"
5579 canBuildQtConcurrent="no"
5585 # Get the xlC version
5586 cat > xlcver.c <<EOF
5590 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5595 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5596 xlcver=`./xlcver 2>/dev/null`
5599 if [ "$OPT_VERBOSE" = "yes" ]; then
5600 if [ -n "$xlcver" ]; then
5601 echo Found IBM xlC version: $xlcver.
5603 echo Could not determine IBM xlC version, assuming oldest supported.
5610 canBuildQtXmlPatterns="no"
5611 canBuildQtConcurrent="no"
5615 canBuildQtConcurrent="no"
5621 canBuildQtConcurrent="no"
5625 if [ "$CFG_GUI" = "no" ]; then
5626 # WebKit requires QtGui
5630 if [ "$CFG_SHARED" = "no" ]; then
5632 echo "WARNING: Using static linking will disable the WebKit module."
5637 CFG_CONCURRENT="yes"
5638 if [ "$canBuildQtConcurrent" = "no" ]; then
5639 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5642 QT_CONFIG="$QT_CONFIG concurrent"
5646 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5647 QT_CONFIG="$QT_CONFIG audio-backend"
5651 if [ "$CFG_WEBKIT" = "debug" ]; then
5652 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5656 QT_CONFIG="$QT_CONFIG v8"
5657 # Detect snapshot support
5658 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5659 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5662 *) canUseV8Snapshot="no"
5666 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5667 # QEMU crashes when building inside Scratchbox with an ARM target
5668 canUseV8Snapshot="no"
5671 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5672 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5674 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5675 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5678 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5679 QT_CONFIG="$QT_CONFIG v8snapshot"
5683 if [ "$CFG_QML_DEBUG" = "no" ]; then
5684 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5687 case "$QMAKE_CONF_COMPILER" in
5690 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5692 case "$COMPILER_VERSION" in
5694 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5695 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5696 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5699 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5700 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5701 QT_GCC_PATCH_VERSION=0
5711 #-------------------------------------------------------------------------------
5712 # part of configuration information goes into qconfig.h
5713 #-------------------------------------------------------------------------------
5715 case "$CFG_QCONFIG" in
5717 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5720 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5721 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5722 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5723 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5724 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5725 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5727 echo "#endif" >>"$tmpconfig"
5731 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5735 # define QT_EDITION $QT_EDITION
5739 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5740 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5742 if [ "$CFG_SHARED" = "no" ]; then
5743 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5744 /* Qt was configured for a static build */
5745 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5752 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5753 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5756 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5757 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5760 if [ "$BUILD_ON_MAC" = "yes" ]; then
5761 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5762 #if defined(__LP64__)
5763 # define QT_POINTER_SIZE 8
5765 # define QT_POINTER_SIZE 4
5769 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5770 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5773 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5774 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5775 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5778 # Add compiler sub-architecture support
5779 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5780 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5781 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5783 MIPS_DSP MIPS_DSPR2; do
5784 eval "VAL=\$CFG_$SUBARCH"
5787 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5788 >>"$outpath/src/corelib/global/qconfig.h.new"
5793 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5795 if [ "$CFG_DEV" = "yes" ]; then
5796 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5799 # Add QPA to config.h
5800 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5802 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5803 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5806 # Add turned on SQL drivers
5807 for DRIVER in $CFG_SQL_AVAILABLE; do
5808 eval "VAL=\$CFG_SQL_$DRIVER"
5811 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5812 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5813 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5816 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5821 QMakeVar set sql-drivers "$SQL_DRIVERS"
5822 QMakeVar set sql-plugins "$SQL_PLUGINS"
5824 # Add other configuration options to the qconfig.h file
5825 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5826 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5827 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5828 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5829 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5831 # X11/Unix/Mac only configs
5832 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5833 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5834 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5835 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5836 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5837 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5838 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5839 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5840 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5841 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5842 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5843 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5844 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5845 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5847 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5848 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5849 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5850 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5851 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5852 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5853 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5854 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5855 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5856 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5857 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5858 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5859 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5861 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5862 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5863 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5864 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5865 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5866 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5867 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5868 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5870 # sort QCONFIG_FLAGS for neatness if we can
5871 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5872 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5874 if [ -n "$QCONFIG_FLAGS" ]; then
5875 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5876 #ifndef QT_BOOTSTRAPPED
5879 for cfg in $QCONFIG_FLAGS; do
5880 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5881 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5882 # figure out define logic, so we can output the correct
5883 # ifdefs to override the global defines in a project
5885 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5886 # QT_NO_option can be forcefully turned on by QT_option
5887 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5888 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5889 # QT_option can be forcefully turned off by QT_NO_option
5890 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5893 if [ -z $cfgdNeg ]; then
5894 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5901 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5902 #if defined($cfgd) && defined($cfgdNeg)
5904 #elif !defined($cfgd) && !defined($cfgdNeg)
5911 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5912 #endif // QT_BOOTSTRAPPED
5917 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5918 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5919 #define QT_VISIBILITY_AVAILABLE
5924 if [ -n "$QT_LIBINFIX" ]; then
5925 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5926 #define QT_LIBINFIX "$QT_LIBINFIX"
5931 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5933 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5934 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5935 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5937 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5938 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5939 chmod -w "$outpath/src/corelib/global/qconfig.h"
5940 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5941 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5945 #-------------------------------------------------------------------------------
5946 # save configuration into qconfig.pri
5947 #-------------------------------------------------------------------------------
5948 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5949 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5950 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5951 if [ "$CFG_DEBUG" = "yes" ]; then
5952 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5953 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5954 QT_CONFIG="$QT_CONFIG release"
5956 QT_CONFIG="$QT_CONFIG debug"
5957 elif [ "$CFG_DEBUG" = "no" ]; then
5958 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5959 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5960 QT_CONFIG="$QT_CONFIG debug"
5962 QT_CONFIG="$QT_CONFIG release"
5964 if [ "$CFG_FRAMEWORK" = "no" ]; then
5965 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5967 QT_CONFIG="$QT_CONFIG qt_framework"
5968 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5970 if [ "$CFG_DEV" = "yes" ]; then
5971 QT_CONFIG="$QT_CONFIG private_tests"
5974 cat >>"$QTCONFIG.tmp" <<EOF
5976 CONFIG += $QTCONFIG_CONFIG
5978 QT_HOST_ARCH = $CFG_HOST_ARCH
5979 QT_CPU_FEATURES = $CFG_CPUFEATURES
5980 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5981 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5982 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5983 QT_EDITION = $Edition
5984 QT_CONFIG += $QT_CONFIG
5987 QT_VERSION = $QT_VERSION
5988 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5989 QT_MINOR_VERSION = $QT_MINOR_VERSION
5990 QT_PATCH_VERSION = $QT_PATCH_VERSION
5993 QT_LIBINFIX = $QT_LIBINFIX
5994 QT_NAMESPACE = $QT_NAMESPACE
5998 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5999 echo "# pkgconfig" >> "$QTCONFIG.tmp"
6000 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
6001 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
6002 echo >> "$QTCONFIG.tmp"
6005 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
6006 echo "# sysroot" >>"$QTCONFIG.tmp"
6007 echo "!host_build {" >>"$QTCONFIG.tmp"
6008 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6009 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6010 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6011 echo "}" >> "$QTCONFIG.tmp"
6012 echo >> "$QTCONFIG.tmp"
6014 if [ -n "$RPATH_FLAGS" ]; then
6015 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
6017 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6018 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6019 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6020 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6023 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6024 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6025 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6028 # replace qconfig.pri if it differs from the newly created temp file
6029 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6030 rm -f "$QTCONFIG.tmp"
6032 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6035 #-------------------------------------------------------------------------------
6036 # save configuration into qmodule.pri
6037 #-------------------------------------------------------------------------------
6038 QTMODULE="$outpath/mkspecs/qmodule.pri"
6040 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
6041 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6043 if [ -n "$QT_CFLAGS_PSQL" ]; then
6044 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6046 if [ -n "$QT_LFLAGS_PSQL" ]; then
6047 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6049 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6050 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6052 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6053 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6055 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6056 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6058 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6059 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6061 if [ -n "$QT_LFLAGS_ODBC" ]; then
6062 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6064 if [ -n "$QT_LFLAGS_TDS" ]; then
6065 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6068 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6069 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6072 #dump in the OPENSSL_LIBS info
6073 if [ '!' -z "$OPENSSL_LIBS" ]; then
6074 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6075 elif [ "$CFG_OPENSSL" = "linked" ]; then
6076 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6079 #dump in the SDK info
6080 if [ '!' -z "$CFG_SDK" ]; then
6081 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6085 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6086 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6088 # replace qmodule.pri if it differs from the newly created temp file
6089 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6090 rm -f "$QTMODULE.tmp"
6092 mv -f "$QTMODULE.tmp" "$QTMODULE"
6095 #-------------------------------------------------------------------------------
6096 # save configuration into .qmake.cache
6097 #-------------------------------------------------------------------------------
6099 CACHEFILE="$outpath/.qmake.cache"
6100 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6101 cat >>"$CACHEFILE.tmp" <<EOF
6103 QT_SOURCE_TREE = \$\$quote($relpath)
6104 QT_BUILD_TREE = \$\$quote($outpath)
6106 include(\$\$PWD/mkspecs/qmodule.pri)
6107 CONFIG += dylib depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
6111 # replace .qmake.cache if it differs from the newly created temp file
6112 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6113 rm -f "$CACHEFILE.tmp"
6115 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6118 #-------------------------------------------------------------------------------
6119 # give feedback on configuration
6120 #-------------------------------------------------------------------------------
6121 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6124 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6125 echo "Build type: $PLATFORM"
6127 echo "Building on: $PLATFORM"
6128 echo "Building for: $XPLATFORM"
6131 # the missing space before $CFG_FEATURES is intentional
6132 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6133 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6135 if [ -n "$PLATFORM_NOTES" ]; then
6136 echo "Platform notes:"
6137 echo "$PLATFORM_NOTES"
6142 if [ "$OPT_VERBOSE" = "yes" ]; then
6143 echo $ECHO_N "qmake vars .......... $ECHO_C"
6144 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6145 echo "qmake switches ......... $QMAKE_SWITCHES"
6148 echo "Build .................. $CFG_BUILD_PARTS"
6149 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6150 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6151 echo "Debug .................. yes (combined)"
6152 if [ "$CFG_DEBUG" = "yes" ]; then
6153 echo "Default Link ........... debug"
6155 echo "Default Link ........... release"
6158 echo "Debug .................. $CFG_DEBUG"
6160 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6161 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6163 echo "C++11 support .......... $CFG_CXX11"
6164 if [ -n "$PKG_CONFIG" ]; then
6165 echo "pkg-config ............. yes"
6167 echo "pkg-config ............. no"
6169 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6170 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6171 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6172 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6173 echo "QtGui module ........... $CFG_GUI"
6174 echo "QtWidgets module ....... $CFG_WIDGETS"
6175 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6176 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6178 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6180 echo "QML debugging .......... $CFG_QML_DEBUG"
6181 echo "PCH support ............ $CFG_PRECOMPILE"
6182 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6183 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6184 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6185 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6186 elif [ "$CFG_ARCH" = "arm" ]; then
6187 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6188 echo "NEON support ........... ${CFG_NEON}"
6190 if [ "$CFG_ARCH" = "mips" ]; then
6191 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6193 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6194 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6195 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6196 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6197 echo "NIS support ............ $CFG_NIS"
6198 echo "CUPS support ........... $CFG_CUPS"
6199 echo "Iconv support .......... $CFG_ICONV"
6200 echo "Glib support ........... $CFG_GLIB"
6201 echo "GStreamer support ...... $CFG_GSTREAMER"
6202 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6203 echo "Large File support ..... $CFG_LARGEFILE"
6204 echo "GIF support ............ $CFG_GIF"
6205 if [ "$CFG_JPEG" = "no" ]; then
6206 echo "JPEG support ........... $CFG_JPEG"
6208 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6210 if [ "$CFG_PNG" = "no" ]; then
6211 echo "PNG support ............ $CFG_PNG"
6213 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6215 echo "zlib support ........... $CFG_ZLIB"
6216 echo "Session management ..... $CFG_SM"
6217 echo "libudev support ........ $CFG_LIBUDEV"
6219 if [ "$CFG_OPENGL" = "desktop" ]; then
6220 echo "OpenGL support ......... yes (Desktop OpenGL)"
6221 elif [ "$CFG_OPENGL" = "es2" ]; then
6222 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6224 echo "OpenGL support ......... no"
6227 if [ "$CFG_OPENVG" ]; then
6228 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6229 echo "OpenVG support ......... ShivaVG"
6231 echo "OpenVG support ......... $CFG_OPENVG"
6235 echo "XShape support ......... $CFG_XSHAPE"
6236 echo "XVideo support ......... $CFG_XVIDEO"
6237 echo "XSync support .......... $CFG_XSYNC"
6238 echo "Xinerama support ....... $CFG_XINERAMA"
6239 echo "Xcursor support ........ $CFG_XCURSOR"
6240 echo "Xfixes support ......... $CFG_XFIXES"
6241 echo "Xrandr support ......... $CFG_XRANDR"
6242 echo "Xi support ............. $CFG_XINPUT"
6243 echo "Xi2 support ............ $CFG_XINPUT2"
6244 echo "MIT-SHM support ........ $CFG_MITSHM"
6245 echo "FontConfig support ..... $CFG_FONTCONFIG"
6246 echo "XKB Support ............ $CFG_XKB"
6247 echo "immodule support ....... $CFG_IM"
6248 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6250 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6251 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6252 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6253 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6254 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6255 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6256 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6257 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6258 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6261 if [ "$CFG_OPENSSL" = "yes" ]; then
6262 OPENSSL_LINKAGE="(run-time)"
6263 elif [ "$CFG_OPENSSL" = "linked" ]; then
6264 OPENSSL_LINKAGE="(linked)"
6266 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6267 echo "Alsa support ........... $CFG_ALSA"
6268 if [ "$BUILD_ON_MAC" = "yes" ]; then
6269 echo "CoreWlan support ....... $CFG_COREWLAN"
6271 echo "libICU support ......... $CFG_ICU"
6272 echo "PCRE support ........... $CFG_PCRE"
6273 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6274 echo "Xcb support ............ limited (old version)"
6276 echo "Xcb support ............ $CFG_XCB"
6278 echo "Xrender support ........ $CFG_XRENDER"
6279 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6280 echo "XInput2 support ........ $CFG_XINPUT2"
6282 echo "EGLFS support .......... $CFG_EGLFS"
6283 echo "DirectFB support ....... $CFG_DIRECTFB"
6284 echo "LinuxFB support ........ $CFG_LINUXFB"
6285 echo "KMS support ............ $CFG_KMS"
6288 # complain about not being able to use dynamic plugins if we are using a static build
6289 if [ "$CFG_SHARED" = "no" ]; then
6291 echo "WARNING: Using static linking will disable the use of dynamically"
6292 echo "loaded plugins. Make sure to import all needed static plugins,"
6293 echo "or compile needed modules into the library."
6296 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6298 echo "NOTE: When linking against OpenSSL, you can override the default"
6299 echo "library names through OPENSSL_LIBS."
6301 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6305 exec 1>&3 3>&- # restore stdout
6306 cat $outpath/config.summary # display config feedback to user
6308 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6310 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6311 echo "if you want a pure debug build."
6316 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6321 #-------------------------------------------------------------------------------
6322 # build makefiles based on the configuration
6323 #-------------------------------------------------------------------------------
6325 if [ "$CFG_PROCESS" != "no" ]; then
6327 if [ "$CFG_PROCESS" = "full" ]; then
6328 echo "Creating makefiles. Please wait..."
6329 "$outpath/bin/qmake" -r "$relpath"
6332 "$outpath/bin/qmake" "$relpath"
6335 if [ "$OPT_FAST" = "yes" ]; then
6337 for part in $CFG_BUILD_PARTS; do
6339 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6342 if [ "x$PART_ROOTS" != "x" ]; then
6344 echo "Creating stub makefiles. Please wait..."
6345 QMAKE="$outpath/bin/qmake"
6346 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6347 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6349 test -f "$outpath/$d/Makefile" && continue
6350 echo " for $relpath/$p"
6352 mkdir -p "$outpath/$d" || exit
6353 cat > "$outpath/$d/Makefile" <<EOF || exit
6354 # $outpath/$d/Makefile: generated by configure
6356 # WARNING: This makefile will be replaced with a real makefile.
6357 # All changes made to this file will be lost.
6362 all clean install qmake first Makefile: FORCE
6363 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6373 #-------------------------------------------------------------------------------
6374 # check for platforms that we don't yet know about
6375 #-------------------------------------------------------------------------------
6376 if [ "$CFG_ARCH" = "unknown" ]; then
6379 NOTICE: configure was unable to determine the architecture
6380 for the $XQMAKESPEC target.
6382 Qt will not use a specialized implementation for any atomic
6383 operations. Instead a generic implemention based on either GCC
6384 intrinsics or C++11 std::atomic<T> will be used (when
6385 available). The generic implementations are generally as fast
6386 as and always as safe as a specialized implementation.
6388 If no generic implementation is available, Qt will use a
6389 fallback UNIX implementation which uses a single
6390 pthread_mutex_t to protect all atomic operations. This
6391 implementation is the slow (but safe) fallback implementation
6392 for architectures Qt does not yet support.
6396 #-------------------------------------------------------------------------------
6397 # check if the user passed the -no-zlib option, which is no longer supported
6398 #-------------------------------------------------------------------------------
6399 if [ -n "$ZLIB_FORCED" ]; then
6400 which_zlib="supplied"
6401 if [ "$CFG_ZLIB" = "system" ]; then
6407 NOTICE: The -no-zlib option was supplied but is no longer
6410 Qt now requires zlib support in all builds, so the -no-zlib
6411 option was ignored. Qt will be built using the $which_zlib
6416 #-------------------------------------------------------------------------------
6417 # check if the user passed the obsoleted -wayland or -no-wayland flag
6418 #-------------------------------------------------------------------------------
6419 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6422 NOTICE: The -wayland and -no-wayland flags are now obsolete
6424 All configuring of QtWayland plugin and QtCompositor happens in the module
6428 #-------------------------------------------------------------------------------
6429 # check if the user passed the obsoleted -arch or -host-arch options
6430 #-------------------------------------------------------------------------------
6431 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6434 NOTICE: The -arch and -host-arch options are obsolete.
6436 Qt now detects the target and host architectures based on compiler
6437 output. Qt will be built using $CFG_ARCH for the target architecture
6438 and $CFG_HOST_ARCH for the host architecture (note that these two
6439 will be the same unless you are cross-compiling).
6443 #-------------------------------------------------------------------------------
6444 # finally save the executed command to another script
6445 #-------------------------------------------------------------------------------
6446 if [ `basename $0` != "config.status" ]; then
6447 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6449 # add the system variables
6450 for varname in $SYSTEM_VARIABLES; do
6452 'if [ -n "\$'${varname}'" ]; then
6453 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6458 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6460 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6461 echo "#!/bin/sh" > "$outpath/config.status"
6462 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6463 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6464 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6465 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6466 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6467 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6468 echo "else" >> "$outpath/config.status"
6469 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6470 echo "fi" >> "$outpath/config.status"
6471 chmod +x "$outpath/config.status"
6474 if [ -n "$RPATH_MESSAGE" ]; then
6476 echo "$RPATH_MESSAGE"
6479 MAKE=`basename "$MAKE"`
6481 echo Qt is now configured for building. Just run \'$MAKE\'.
6482 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6483 echo Once everything is built, Qt is installed.
6484 echo You should not run \'$MAKE install\'.
6486 echo Once everything is built, you must run \'$MAKE install\'.
6487 echo Qt will be installed into $QT_INSTALL_PREFIX
6490 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.