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 #-------------------------------------------------------------------------------
399 #-------------------------------------------------------------------------------
403 EditionString=Commercial
407 # parse the arguments, setting things to "yes" or "no"
408 while [ "$#" -gt 0 ]; do
412 #Autoconf style options
414 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
418 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
422 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
423 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
426 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
429 -h|help|--help|-help)
430 if [ "$VAL" = "yes" ]; then
432 COMMERCIAL_USER="no" #doesn't matter we will display the help
435 COMMERCIAL_USER="no" #doesn't matter we will display the help
439 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
443 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
450 if [ "$UNKNOWN_ARG" = "yes" ]; then
462 COMMERCIAL_USER="yes"
476 if [ "$COMMERCIAL_USER" = "ask" ]; then
478 echo "Which edition of Qt do you want to use ?"
480 echo "Type 'c' if you want to use the Commercial Edition."
481 echo "Type 'o' if you want to use the Open Source Edition."
485 if [ "$commercial" = "c" ]; then
486 COMMERCIAL_USER="yes"
488 elif [ "$commercial" = "o" ]; then
495 if [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
496 # Commercial preview release
497 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
500 QT_EDITION="QT_EDITION_DESKTOP"
501 LicenseType="Technology Preview"
502 elif [ $COMMERCIAL_USER = "yes" ]; then
503 # one of commercial editions
504 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
506 # read in the license file
507 if [ -f "$LICENSE_FILE" ]; then
508 . "$LICENSE_FILE" >/dev/null 2>&1
509 if [ -z "$LicenseKeyExt" ]; then
511 echo "You are using an old license file."
513 echo "Please install the license file supplied by Nokia,"
514 echo "or install the Qt Open Source Edition if you intend to"
515 echo "develop free software."
518 if [ -z "$Licensee" ]; then
520 echo "Invalid license key. Please check the license key."
524 if [ -z "$LicenseKeyExt" ]; then
526 echo $ECHO_N "Please enter your license key: $ECHO_C"
528 Licensee="Unknown user"
533 echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
534 && LicenseValid="yes" \
536 if [ "$LicenseValid" != "yes" ]; then
538 echo "Invalid license key. Please check the license key."
541 ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
542 PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d -`
543 LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
544 LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
546 # determine which edition we are licensed to use
547 case "$LicenseTypeCode" in
549 LicenseType="Commercial"
553 QT_EDITION="QT_EDITION_UNIVERSAL"
556 Edition="FullFramework"
557 EditionString="Full Framework"
558 QT_EDITION="QT_EDITION_DESKTOP"
561 Edition="GUIFramework"
562 EditionString="GUI Framework"
563 QT_EDITION="QT_EDITION_DESKTOPLIGHT"
568 LicenseType="Evaluation"
569 QMakeVar add DEFINES QT_EVAL
573 QT_EDITION="QT_EDITION_EVALUATION"
578 if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
580 echo "Invalid license key. Please check the license key."
584 # verify that we are licensed to use Qt on this platform
586 case "$PlatformCode" in
589 PlatformCode=`echo "$PlatformCode" | sed 'h;y/8NPQRTZ/UCWX9M7/;x;G;s/\(.\)....\(.\)./\1\2/'`
593 PlatformCode=`echo "$PlatformCode" | sed 's/.$//'`
596 ### EMBEDDED_QPA logic missing ###
597 case "$PlatformCode,$PLATFORM_MAC" in
598 X9,* | XC,* | XU,* | XW,* | XM,*)
600 LICENSE_EXTENSION="-ALLOS"
602 8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*)
603 # Qt for Embedded Linux
604 LICENSE_EXTENSION="-EMBEDDED"
606 6M,* | N7,* | N9,* | NX,*)
608 LICENSE_EXTENSION="-EMBEDDED"
610 FM,* | LM,yes | ZM,no)
612 LICENSE_EXTENSION="-DESKTOP"
616 [ "$PLATFORM_MAC" = "yes" ] && Platform='Mac OS X'
618 echo "You are not licensed for the $Platform platform."
620 echo "Please contact qt-info@nokia.com to upgrade your license to"
621 echo "include the $Platform platform, or install the Qt Open Source Edition"
622 echo "if you intend to develop free software."
627 if test -r "$relpath/.LICENSE"; then
628 # Generic, non-final license
630 line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
635 *TECHNOLOGY?PREVIEW*)
642 echo >&2 "Invalid license files; cannot continue"
647 EditionString="$Edition"
648 QT_EDITION="QT_EDITION_DESKTOP"
651 case "$LicenseFeatureCode" in
654 case "$LicenseType" in
656 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
659 cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
665 case "$LicenseType" in
667 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
670 cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
676 echo "Invalid license key. Please check the license key."
680 case "$LicenseFeatureCode" in
688 if [ '!' -f "$outpath/LICENSE" ]; then
689 echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
690 echo "this software has disappeared."
692 echo "Sorry, you are not licensed to use this software."
693 echo "Try re-installing."
697 elif [ $COMMERCIAL_USER = "no" ]; then
698 # Open Source edition - may only be used under the terms of the GPL or LGPL.
699 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
700 Licensee="Open Source"
702 EditionString="Open Source"
703 QT_EDITION="QT_EDITION_OPENSOURCE"
706 #-------------------------------------------------------------------------------
707 # initalize variables
708 #-------------------------------------------------------------------------------
710 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
711 for varname in $SYSTEM_VARIABLES; do
712 qmakevarname="${varname}"
713 # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
714 if [ "${varname}" = "LDFLAGS" ]; then
715 qmakevarname="LFLAGS"
716 elif [ "${varname}" = "LD" ]; then
720 'if [ -n "\$'${varname}'" ]; then
721 QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
725 # Use CC/CXX to run config.tests
726 mkdir -p "$outpath/config.tests"
727 rm -f "$outpath/config.tests/.qmake.cache"
728 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
730 QMakeVar add styles "cde mac motif plastique cleanlooks windows"
732 # QTDIR may be set and point to an old or system-wide Qt installation
735 # the minimum version of libdbus-1 that we require:
736 MIN_DBUS_1_VERSION=0.93
738 # initalize internal variables
739 CFG_CONFIGURE_EXIT_ON_ERROR=yes
741 CFG_GUI=auto # (yes|no|auto)
747 CFG_FORCEDEBUGINFO=no
768 CFG_OPENVG_LC_INCLUDES=no
769 CFG_OPENVG_SHIVA=auto
770 CFG_OPENVG_ON_OPENGL=auto
776 QT_DEFAULT_BUILD_PARTS="libs tools examples"
780 CFG_AUDIO_BACKEND=auto
783 CFG_JAVASCRIPTCORE_JIT=auto
786 # Target architecture
789 # Host architecture, same as CFG_ARCH when not cross-compiling
791 CFG_HOST_CPUFEATURES=
792 # Set when the -arch or -host-arch arguments are used
793 OPT_OBSOLETE_HOST_ARG=no
807 CFG_OBSOLETE_WAYLAND=no
819 CFG_SEPARATE_DEBUG_INFO=no
820 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
821 CFG_REDUCE_EXPORTS=auto
829 CFG_REDUCE_RELOCATIONS=auto
830 CFG_ACCESSIBILITY=auto
835 CFG_CLOCK_GETTIME=auto
836 CFG_CLOCK_MONOTONIC=auto
844 MAC_CONFIG_TEST_COMMANDLINE= # used to make the configure tests run with the correct arch's and SDK settings
846 CFG_PREFIX_INSTALL=yes
855 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
856 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
861 OPT_CONFIRM_LICENSE=no
874 QPA_PLATFORM_GUARD=yes
877 # initalize variables used for installation
886 QT_INSTALL_TRANSLATIONS=
891 CFG_GCC_SYSROOT="yes"
896 #flags for SQL drivers
904 QT_LFLAGS_ODBC="-lodbc"
907 # flags for libdbus-1
911 # flags for Glib (X11 only)
915 # flags for GStreamer (X11 only)
919 # default qpa platform
920 QT_QPA_DEFAULT_PLATFORM=
922 #-------------------------------------------------------------------------------
923 # check SQL drivers available in this package
924 #-------------------------------------------------------------------------------
926 # opensource version removes some drivers, so force them to be off
932 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
933 for a in "$relpath/src/plugins/sqldrivers/"*; do
935 base_a=`basename "$a"`
936 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
937 eval "CFG_SQL_${base_a}=auto"
942 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
943 if [ -d "$relpath/src/plugins/imageformats" ]; then
944 for a in "$relpath/src/plugins/imageformats/"*; do
946 base_a=`basename "$a"`
947 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
952 #-------------------------------------------------------------------------------
953 # parse command line arguments
954 #-------------------------------------------------------------------------------
956 # parse the arguments, setting things to "yes" or "no"
957 while [ "$#" -gt 0 ]; do
961 #Autoconf style options
963 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
967 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
971 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
972 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
975 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
979 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
983 -no-*-*|-plugin-*-*|-qt-*-*)
984 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
985 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
989 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
992 #Qt style options that pass an argument
993 -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)
994 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
998 #Qt style complex options in one command
999 -enable-*|-disable-*)
1000 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1001 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1003 #Qt Builtin/System style options
1004 -no-*|-system-*|-qt-*)
1005 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1006 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1008 #Options that cannot be generalized
1015 # this option may or may not be followed by an argument
1016 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1025 # this option may or may not be followed by an argument
1026 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1034 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1035 # this option may or may not be followed by an argument
1036 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1055 if [ "$1" = "-D" ]; then
1059 VAL=`echo $1 | sed 's,-D,,'`
1064 # this option may or may not be followed by an argument
1065 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1074 if [ "$1" = "-I" ]; then
1078 VAL=`echo $1 | sed 's,-I,,'`
1083 if [ "$1" = "-L" ]; then
1087 VAL=`echo $1 | sed 's,-L,,'`
1092 if [ "$1" = "-R" ]; then
1096 VAL=`echo $1 | sed 's,-R,,'`
1101 if [ "$1" = "-l" ]; then
1105 VAL=`echo $1 | sed 's,-l,,'`
1110 if [ "$1" = "-F" ]; then
1114 VAL=`echo $1 | sed 's,-F,,'`
1119 if [ "$1" = "-fw" ]; then
1123 VAL=`echo $1 | sed 's,-fw,,'`
1130 #General options, including Qt style yes options
1132 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1139 if [ "$UNKNOWN_ARG" = "yes" ]; then
1140 echo "$1: unknown argument"
1151 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1152 CFG_ACCESSIBILITY="$VAL"
1161 CFG_USE_GNUMAKE="$VAL"
1164 CFG_MYSQL_CONFIG="$VAL"
1167 QT_INSTALL_PREFIX="$VAL"
1170 QT_HOST_PREFIX="$VAL"
1179 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1180 CFG_PKGCONFIG="$VAL"
1186 CFG_PKGCONFIG="force"
1189 QT_INSTALL_DOCS="$VAL"
1192 QT_INSTALL_HEADERS="$VAL"
1195 QT_INSTALL_PLUGINS="$VAL"
1198 QT_INSTALL_IMPORTS="$VAL"
1201 QT_INSTALL_DATA="$VAL"
1204 QT_INSTALL_LIBS="$VAL"
1213 QT_INSTALL_TRANSLATIONS="$VAL"
1215 sysconfdir|settingsdir)
1216 QT_INSTALL_SETTINGS="$VAL"
1219 QT_INSTALL_EXAMPLES="$VAL"
1222 QT_INSTALL_TESTS="$VAL"
1231 CFG_GCC_SYSROOT="$VAL"
1234 QT_INSTALL_BINS="$VAL"
1237 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1244 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1245 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1246 [ "$VAL" = "es2" ]; then
1253 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1260 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1263 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1266 if [ "$BUILD_ON_MAC" = "yes" ]; then
1273 OPT_OBSOLETE_HOST_ARG=yes
1276 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1277 CFG_MAC_HARFBUZZ="$VAL"
1284 if [ "$BUILD_ON_MAC" = "yes" ]; then
1285 CFG_FRAMEWORK="$VAL"
1291 if [ "$VAL" = "yes" ]; then
1293 QMakeVar add QMAKE_CFLAGS -pg
1294 QMakeVar add QMAKE_CXXFLAGS -pg
1295 QMakeVar add QMAKE_LFLAGS -pg
1296 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1302 if [ "$VAL" = "yes" ]; then
1303 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1308 # keep compatibility with old platform names
1314 PLATFORM=hpux-acc-o64
1317 PLATFORM=hpux-acc-64
1320 PLATFORM=hpux-acc-64
1332 PLATFORM=reliant-cds-64
1335 PLATFORM=solaris-cc-64
1338 PLATFORM=unixware-cc
1341 PLATFORM=unixware-g++
1344 PLATFORM=unixware-cc
1347 PLATFORM=unixware-g++
1353 i386) NATIVE_64_ARCH="x86_64" ;;
1354 powerpc) NATIVE_64_ARCH="ppc64" ;;
1355 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1357 if [ ! -z "$NATIVE_64_ARCH" ]; then
1358 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1365 case `basename "$XPLATFORM"` in win32-g++*)
1369 CFG_REDUCE_EXPORTS=no
1374 XPLATFORM=`resolveDeviceMkspec $VAL`
1375 [ "$XPLATFORM" = "undefined" ] && exit 101
1378 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1379 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1380 DeviceVar set $DEV_VAR $DEV_VAL
1383 QT_QPA_DEFAULT_PLATFORM="$VAL"
1386 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1387 CFG_DEBUG_RELEASE="$VAL"
1393 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1394 CFG_RELEASE_QMAKE="$VAL"
1400 if [ "$VAL" = "yes" ]; then
1402 elif [ "$VAL" = "no" ]; then
1409 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1410 CFG_PREFIX_INSTALL="$VAL"
1419 CFG_FORCEDEBUGINFO="$VAL"
1421 developer-build|commercial|opensource)
1422 # These switches have been dealt with already
1425 if [ "$VAL" = "yes" ]; then
1427 elif [ "$VAL" = "no" ]; then
1434 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1435 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1441 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1442 if [ "$VAL" = "no" ]; then
1443 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1444 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1445 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1451 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1458 if [ "$VAL" = "no" ]; then
1465 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1473 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1480 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; 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" ] || [ "$VAL" = "runtime" ]; then
1515 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1522 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1523 CFG_PRECOMPILE="$VAL"
1528 separate-debug-info)
1529 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1530 CFG_SEPARATE_DEBUG_INFO="$VAL"
1531 elif [ "$VAL" = "nocopy" ] ; then
1532 CFG_SEPARATE_DEBUG_INFO="yes"
1533 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1539 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1540 CFG_REDUCE_EXPORTS="$VAL"
1546 if [ "$VAL" = "no" ]; then
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
1598 if [ "$VAL" = "no" ]; then
1605 if [ "$VAL" = "no" ]; then
1612 if [ "$VAL" = "no" ]; then
1613 CFG_MIPS_DSPR2="$VAL"
1619 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1620 CFG_REDUCE_RELOCATIONS="$VAL"
1626 [ "$VAL" = "qt" ] && VAL=yes
1627 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1632 # No longer supported:
1633 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1636 if [ "$VAL" = "system" ]; then
1643 [ "$VAL" = "yes" ] && VAL=qt
1644 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1651 [ "$VAL" = "yes" ] && VAL=qt
1652 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1659 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; 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" ]; then
1687 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1694 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1695 CFG_FONTCONFIG="$VAL"
1701 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1708 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1715 CFG_OBSOLETE_WAYLAND=yes
1718 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
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
1782 CFG_GSTREAMER="$VAL"
1788 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1789 CFG_QGTKSTYLE="$VAL"
1795 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1798 if [ "$VAL" = "no" ]; then
1806 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1808 elif [ "$VAL" = "no" ]; then
1815 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1816 QPA_PLATFORM_GUARD="$VAL"
1822 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1824 elif [ "$VAL" = "runtime" ]; then
1831 if [ "$VAL" = "yes" ]; then
1838 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1845 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1846 CFG_LARGEFILE="$VAL"
1852 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1859 if [ "$VAL" = "yes" ]; then
1860 CFG_OPENSSL="linked"
1866 if [ "$VAL" = "yes" ]; then
1869 if [ "$VAL" = "no" ]; then
1877 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1878 CFG_JAVASCRIPTCORE_JIT="$VAL"
1884 if [ "$VAL" = "yes" ]; then
1885 OPT_CONFIRM_LICENSE="$VAL"
1891 if [ "$VAL" = "yes" ]; then
1897 sql-*|imageformat-*)
1898 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1899 # if autoconf style options were used, $VAL can be "yes" or "no"
1900 [ "$VAL" = "yes" ] && VAL=qt
1901 # now $VAL should be "no", "qt", or "plugin"... double-check
1902 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1905 # now $VAL is "no", "qt", or "plugin"
1907 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1908 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1910 # Grab the available values
1913 avail="$CFG_SQL_AVAILABLE"
1916 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1917 if [ "$OPT" != "plugin" ]; then
1918 # png is always built in
1924 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1928 # Check that that user's value is available.
1931 if [ "$VAL" = "$d" ]; then
1936 [ "$found" = yes ] || ERROR=yes
1938 if [ "$VAR" = "sql" ]; then
1939 # set the CFG_SQL_driver
1940 eval "CFG_SQL_$VAL=\$OPT"
1942 elif [ "$VAR" = "imageformat" ]; then
1943 [ "$OPT" = "qt" ] && OPT=yes
1944 VAL="`echo $VAL |tr a-z A-Z`"
1945 eval "CFG_$VAL=$OPT"
1949 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1950 if [ "$OPT" = "plugin" ]; then
1953 QMakeVar add "${VAR}s" "${VAL}"
1954 elif [ "$OPT" = "no" ]; then
1955 PLUG_VAR="${VAR}-plugin"
1957 QMakeVar del "${IN_VAR}s" "$VAL"
1958 QMakeVar del "${PLUG_VAR}s" "$VAL"
1960 if [ "$ERROR" = "yes" ]; then
1961 echo "$CURRENT_OPT: unknown argument"
1966 if [ "$VAL" = "yes" ]; then
1967 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1968 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1972 elif [ "$VAL" = "no" ]; then
1973 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1974 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1983 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1990 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1997 DEFINES="$DEFINES \"$VAL\""
1998 D_FLAGS="$D_FLAGS -D\"$VAL\""
2001 I_FLAGS="$I_FLAGS -I\"${VAL}\""
2004 L_FLAGS="$L_FLAGS -L\"${VAL}\""
2007 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2010 L_FLAGS="$L_FLAGS -l\"${VAL}\""
2013 if [ "$BUILD_ON_MAC" = "yes" ]; then
2014 L_FLAGS="$L_FLAGS -F\"${VAL}\""
2015 I_FLAGS="$I_FLAGS -F\"${VAL}\""
2021 if [ "$BUILD_ON_MAC" = "yes" ]; then
2022 L_FLAGS="$L_FLAGS -framework \"${VAL}\""
2028 W_FLAGS="$W_FLAGS \"${VAL}\""
2043 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2044 CFG_AUDIO_BACKEND="$VAL"
2050 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2057 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2058 CFG_FORCE_ASSERTS="$VAL"
2064 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2071 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2081 if [ "$UNKNOWN_OPT" = "yes" ]; then
2082 echo "${CURRENT_OPT}: invalid command-line switch"
2088 # update QT_CONFIG to show our current predefined configuration
2089 case "$CFG_QCONFIG" in
2090 minimal|small|medium|large|full)
2091 # these are a sequence of increasing functionality
2092 for c in minimal small medium large full; do
2093 QT_CONFIG="$QT_CONFIG $c-config"
2094 [ "$CFG_QCONFIG" = $c ] && break
2098 # not known to be sufficient for anything
2099 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2100 echo >&2 "Error: configuration file not found:"
2101 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2103 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2108 #-------------------------------------------------------------------------------
2109 # build tree initialization
2110 #-------------------------------------------------------------------------------
2112 # where to find which..
2113 unixtests="$relpath/config.tests/unix"
2114 mactests="$relpath/config.tests/mac"
2115 WHICH="$unixtests/which.test"
2117 PERL=`$WHICH perl 2>/dev/null`
2119 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2121 for e in gawk nawk awk; do
2122 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2129 PERL="/usr/bin/perl"
2130 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2134 ### skip this if the user just needs help...
2135 if [ "$OPT_HELP" != "yes" ]; then
2137 # is this a shadow build?
2138 if [ "$OPT_SHADOW" = "maybe" ]; then
2140 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2141 if [ -h "$outpath" ]; then
2142 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2148 if [ "$OPT_SHADOW" = "yes" ]; then
2149 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2150 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2151 echo >&2 "Cannot proceed."
2154 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2157 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2159 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2160 echo "Qt can be built in release mode with separate debug information, so"
2161 echo "-debug-and-release is not necessary anymore"
2165 if [ "$CFG_SILENT" = "yes" ]; then
2166 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2169 # if the source tree is different from the build tree,
2170 # symlink or copy part of the sources
2171 if [ "$OPT_SHADOW" = "yes" ]; then
2172 echo "Preparing build tree..."
2174 if [ -z "$PERL" ]; then
2176 echo "You need perl in your PATH to make a shadow build."
2177 echo "Cannot proceed."
2181 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2183 # make a syncqt script that can be used in the shadow
2184 rm -f "$outpath/bin/syncqt"
2185 if [ -x "$relpath/bin/syncqt" ]; then
2186 mkdir -p "$outpath/bin"
2187 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2188 echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2189 chmod 755 "$outpath/bin/syncqt"
2192 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2193 rm -f "$outpath/bin/$i"
2194 if [ -x "$relpath/bin/$i" ]; then
2195 mkdir -p "$outpath/bin"
2196 echo "#!/bin/sh" >"$outpath/bin/$i"
2197 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2198 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2199 chmod 755 "$outpath/bin/$i"
2203 # save a pre-existing mkspecs/modules dir
2204 test -d "$outpath/mkspecs/modules" && \
2205 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2206 # ditto for mkspecs/modules-inst
2207 test -d "$outpath/mkspecs/modules-inst" && \
2208 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2210 # symlink the mkspecs directory
2211 mkdir -p "$outpath/mkspecs"
2212 rm -rf "$outpath"/mkspecs/*
2213 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2214 rm -f "$outpath/mkspecs/default"
2218 rm -rf "$outpath/mkspecs/$1"
2219 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2220 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2223 # Special case for mkspecs/features directory.
2224 # To be able to place .prf files into a shadow build directory,
2225 # we're creating links for files only. The directory structure is reproduced.
2226 ShadowMkspecs features
2228 # The modules dir is special, too.
2229 if test -d "$outpath/mkspecs-modules"; then
2230 rm -rf "$outpath/mkspecs/modules"
2231 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2233 ShadowMkspecs modules
2236 # The modules-inst dir is not quite as special, but still.
2237 if test -d "$outpath/mkspecs-modules-inst"; then
2238 rm -rf "$outpath/mkspecs/modules-inst"
2239 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2242 # symlink the doc directory
2243 rm -rf "$outpath/doc"
2244 ln -s "$relpath/doc" "$outpath/doc"
2247 # symlink fonts to be able to run application from build directory
2248 if [ ! -d "${outpath}/lib/fonts" ]; then
2249 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2250 mkdir -p "${outpath}/lib"
2251 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2255 if [ "$OPT_FAST" = "auto" ]; then
2256 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2263 # find a make command
2264 if [ -z "$MAKE" ]; then
2266 for mk in gmake make; do
2267 if "$WHICH" $mk >/dev/null 2>&1; then
2272 if [ -z "$MAKE" ]; then
2273 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2274 echo >&2 "Cannot proceed."
2277 # export MAKE, we need it later in the config.tests
2283 #-------------------------------------------------------------------------------
2284 # auto-detect all that hasn't been specified in the arguments
2285 #-------------------------------------------------------------------------------
2287 if [ -z "$PLATFORM" ]; then
2289 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2291 OSX_VERSION=`uname -r | cut -d. -f1`
2292 # Select compiler. Use g++ unless we find a usable Clang version
2294 if [ "$OSX_VERSION" -ge 12 ]; then
2295 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2297 elif [ "$OSX_VERSION" -eq 11 ]; then
2298 # We're on Lion. Check if we have a supported Clang version
2299 case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2302 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2309 #PLATFORM=aix-g++-64
2311 #PLATFORM=aix-xlc-64
2313 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2323 # PLATFORM=dynix-g++
2329 PLATFORM=freebsd-g++
2331 - Also available for FreeBSD: freebsd-icc
2335 PLATFORM=openbsd-g++
2346 #PLATFORM=irix-cc-64
2348 - Also available for IRIX: irix-g++ irix-cc-64
2352 case "$UNAME_MACHINE" in
2354 #PLATFORM=hpuxi-acc-32
2355 PLATFORM=hpuxi-acc-64
2357 - Also available for HP-UXi: hpuxi-acc-32
2363 #PLATFORM=hpux-acc-64
2365 #PLATFORM=hpux-acc-o64
2367 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2376 - Also available for Tru64: tru64-g++
2380 case "$UNAME_MACHINE" in
2382 PLATFORM=linux-g++-64
2389 - Also available for Linux: linux-kcc linux-icc linux-cxx
2393 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2394 PLATFORM="solaris-g++"
2396 #PLATFORM=solaris-g++
2398 #PLATFORM=solaris-cc64
2401 - Also available for Solaris: solaris-g++ solaris-cc-64
2404 ReliantUNIX-*:*|SINIX-*:*)
2405 PLATFORM=reliant-cds
2406 #PLATFORM=reliant-cds-64
2408 - Also available for Reliant UNIX: reliant-cds-64
2418 #PLATFORM=unixware-g++
2419 PLATFORM=unixware-cc
2421 - Also available for OpenUNIX: unixware-g++
2425 #PLATFORM=unixware-g++
2426 PLATFORM=unixware-cc
2428 - Also available for UnixWare: unixware-g++
2435 - Also available for SCO OpenServer: sco-g++
2439 PLATFORM=unixware-g++
2442 PLATFORM=unsupported/qnx-g++
2445 if [ "$OPT_HELP" != "yes" ]; then
2447 echo " The build script does not currently recognize all" >&2
2448 echo " platforms supported by Qt." >&2
2449 echo " Rerun this script with a -platform option listed to" >&2
2450 echo " set the system/compiler combination you use." >&2
2457 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2459 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2460 case "$XPLATFORM" in linux-g++-maemo) XPLATFORM_MAEMO=yes;; esac
2461 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2463 if [ -d "$PLATFORM" ]; then
2464 QMAKESPEC="$PLATFORM"
2466 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2468 if [ -d "$XPLATFORM" ]; then
2469 XQMAKESPEC="$XPLATFORM"
2471 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2473 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2474 QT_CROSS_COMPILE=yes
2475 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2476 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2479 if [ "$BUILD_ON_MAC" = "yes" ]; then
2480 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2482 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2483 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2484 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2485 echo " built with 'macx-g++'" >&2
2491 # check specified platforms are supported
2492 if [ '!' -d "$QMAKESPEC" ]; then
2494 echo " The specified system/compiler is not supported:"
2498 echo " Please see the README file for a complete list."
2502 if [ '!' -d "$XQMAKESPEC" ]; then
2504 echo " The specified system/compiler is not supported:"
2508 echo " Please see the README file for a complete list."
2512 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2514 echo " The specified system/compiler port is not complete:"
2516 echo " $XQMAKESPEC/qplatformdefs.h"
2518 echo " Please contact qt-info@nokia.com."
2523 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2524 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2525 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2526 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2527 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2531 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2532 case `basename "$XPLATFORM"` in
2535 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2537 echo "Please contact qt-info@nokia.com to upgrade your license to"
2538 echo "include this platform, or install the Qt Open Source Edition"
2539 echo "if you intend to develop free software."
2545 #-------------------------------------------------------------------------------
2546 # tests that don't need qmake (must be run before displaying help)
2547 #-------------------------------------------------------------------------------
2549 # detect build style
2550 if [ "$CFG_DEBUG" = "auto" ]; then
2551 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2552 CFG_DEBUG_RELEASE=yes
2554 elif [ "$CFG_DEV" = "yes" ]; then
2555 CFG_DEBUG_RELEASE=no
2558 CFG_DEBUG_RELEASE=no
2562 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2563 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2566 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2567 QT_CONFIG="$QT_CONFIG force_debug_info"
2570 # pass on $CFG_SDK to the configure tests.
2571 if [ '!' -z "$CFG_SDK" ]; then
2572 MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -sdk $CFG_SDK"
2575 # find the default framework value
2576 if [ "$BUILD_ON_MAC" = "yes" ]; then
2577 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2578 CFG_FRAMEWORK="$CFG_SHARED"
2579 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2581 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2589 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2591 TEST_COMPILER=$QMAKE_CONF_COMPILER
2592 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2593 if [ -z "$TEST_COMPILER" ]; then
2594 echo "ERROR: Cannot set the compiler for the configuration tests"
2598 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2601 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2602 if [ -n "$GCC_MACHINE_DUMP" ]; then
2603 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2606 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2607 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2611 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2613 # auto-detect precompiled header support
2614 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2615 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2622 # auto-detect support for separate debug info in objcopy
2623 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2624 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2625 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2626 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2627 CFG_SEPARATE_DEBUG_INFO=no
2631 # binutils on HP-UX is buggy; default to no.
2632 CFG_SEPARATE_DEBUG_INFO=no
2635 CFG_SEPARATE_DEBUG_INFO=yes
2641 # auto-detect -fvisibility support
2642 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2643 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2644 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2645 echo "-reduce-exports was requested but this compiler does not support it"
2646 echo "Re-run configure with -v for more information"
2649 CFG_REDUCE_EXPORTS=no
2651 CFG_REDUCE_EXPORTS=yes
2655 # detect the availability of the -Bsymbolic-functions linker optimization
2656 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2657 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2658 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2659 echo "-reduce-relocations was requested but this compiler does not support it"
2660 echo "Re-run configure with -v for more information"
2663 CFG_REDUCE_RELOCATIONS=no
2665 CFG_REDUCE_RELOCATIONS=yes
2669 # auto-detect GNU make support
2670 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2674 # find the default framework value
2675 if [ "$BUILD_ON_MAC" = "yes" ]; then
2676 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2677 CFG_FRAMEWORK="$CFG_SHARED"
2678 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2680 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2688 # auto-detect default include and library search paths
2689 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2690 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2691 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2692 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2693 /^End of search/ { yup=0 }
2694 yup { print substr($0, 2) }
2695 /^\#include </ { yup=1 }
2697 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2699 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2702 #setup the build parts
2703 if [ -z "$CFG_BUILD_PARTS" ]; then
2704 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2706 # build tests by default, if a developer build
2707 if [ "$CFG_DEV" = "yes" ]; then
2708 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2711 # don't build tools by default when cross-compiling
2712 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2713 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2716 for nobuild in $CFG_NOBUILD_PARTS; do
2717 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2719 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2721 # echo "WARNING: libs is a required part of the build."
2723 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2726 #-------------------------------------------------------------------------------
2727 # post process QT_INSTALL_* variables
2728 #-------------------------------------------------------------------------------
2730 if [ -z "$QT_INSTALL_PREFIX" ]; then
2731 if [ "$CFG_DEV" = "yes" ]; then
2732 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2734 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2737 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2739 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2740 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2741 if [ "$BUILD_ON_MAC" = "yes" ]; then
2742 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2745 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2748 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2750 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2751 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2752 if [ "$BUILD_ON_MAC" = "yes" ]; then
2753 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2758 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2761 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2763 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2764 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2765 if [ "$BUILD_ON_MAC" = "yes" ]; then
2766 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2767 QT_INSTALL_LIBS="/Library/Frameworks"
2771 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2773 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2775 if [ -z "$QT_INSTALL_BINS" ]; then #default
2776 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2777 if [ "$BUILD_ON_MAC" = "yes" ]; then
2778 QT_INSTALL_BINS="/Developer/Applications/Qt"
2781 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2783 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2785 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2786 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2787 if [ "$BUILD_ON_MAC" = "yes" ]; then
2788 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2791 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2793 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2795 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2796 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2797 if [ "$BUILD_ON_MAC" = "yes" ]; then
2798 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2801 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2803 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2805 if [ -z "$QT_INSTALL_DATA" ]; then #default
2806 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2808 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2810 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2811 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2813 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2815 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2816 if [ "$BUILD_ON_MAC" = "yes" ]; then
2817 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2819 QT_INSTALL_SETTINGS=/etc/xdg
2822 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2824 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2825 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2826 if [ "$BUILD_ON_MAC" = "yes" ]; then
2827 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2830 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2832 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2835 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2836 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2837 if [ "$BUILD_ON_MAC" = "yes" ]; then
2838 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2841 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2843 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2845 #------- host paths --------
2847 if [ -z "$QT_HOST_PREFIX" ]; then
2848 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2851 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2855 if [ -z "$QT_HOST_BINS" ]; then #default
2857 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2858 if [ "$BUILD_ON_MAC" = "yes" ]; then
2859 QT_HOST_BINS="/Developer/Applications/Qt"
2862 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2864 QT_HOST_BINS="$QT_INSTALL_BINS"
2867 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2869 if [ -z "$QT_HOST_DATA" ]; then #default
2871 QT_HOST_DATA="$QT_HOST_PREFIX"
2873 QT_HOST_DATA="$QT_INSTALL_DATA"
2876 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2879 #-------------------------------------------------------------------------------
2880 # help - interactive parts of the script _after_ this section please
2881 #-------------------------------------------------------------------------------
2883 # next, emit a usage message if something failed.
2884 if [ "$OPT_HELP" = "yes" ]; then
2885 [ "x$ERROR" = "xyes" ] && echo
2886 if [ "$CFG_NIS" = "no" ]; then
2893 if [ "$CFG_CUPS" = "no" ]; then
2900 if [ "$CFG_ICONV" = "no" ]; then
2907 if [ "$CFG_LARGEFILE" = "no" ]; then
2914 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2922 if [ "$CFG_XCB" = "no" ]; then
2930 if [ "$CFG_EGLFS" = "no" ]; then
2938 if [ "$CFG_DIRECTFB" = "no" ]; then
2946 if [ "$CFG_LINUXFB" = "no" ]; then
2954 if [ "$CFG_KMS" = "no" ]; then
2962 if [ "$CFG_XINPUT2" = "no" ]; then
2970 if [ "$CFG_DBUS" = "no" ]; then
2978 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2986 if [ "$CFG_GLIB" = "no" ]; then
2995 Usage: $relconf [options]
2997 Installation options:
2999 These are optional, but you may specify install directories.
3001 -prefix <dir> ...... This will install everything relative to <dir>
3002 (default $QT_INSTALL_PREFIX)
3004 -hostprefix [dir] .. Tools and libraries needed when developing
3005 applications are installed in [dir]. If [dir] is
3006 not given, the current build directory will be used.
3009 * -prefix-install .... Force a sandboxed "local" installation of
3010 Qt. This will install into
3011 $QT_INSTALL_PREFIX, if this option is
3012 disabled then some platforms will attempt a
3013 "system" install by placing default values to
3014 be placed in a system location other than
3017 You may use these to separate different parts of the install:
3019 -bindir <dir> ......... Executables will be installed to <dir>
3020 (default PREFIX/bin)
3021 -libdir <dir> ......... Libraries will be installed to <dir>
3022 (default PREFIX/lib)
3023 -docdir <dir> ......... Documentation will be installed to <dir>
3024 (default PREFIX/doc)
3025 -headerdir <dir> ...... Headers will be installed to <dir>
3026 (default PREFIX/include)
3027 -plugindir <dir> ...... Plugins will be installed to <dir>
3028 (default PREFIX/plugins)
3029 -importdir <dir> ...... Imports for QML will be installed to <dir>
3030 (default PREFIX/imports)
3031 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3033 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3034 (default PREFIX/translations)
3035 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3036 (default PREFIX/etc/settings)
3037 -examplesdir <dir> .... Examples will be installed to <dir>
3038 (default PREFIX/examples)
3039 -testsdir <dir> ....... Tests will be installed to <dir>
3040 (default PREFIX/tests)
3042 -hostbindir <dir> .. Host executables will be installed to <dir>
3043 (default HOSTPREFIX/bin)
3044 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3045 (default HOSTPREFIX)
3049 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3050 that needs to be evaluated. If the evaluation succeeds, the feature is
3051 included. Here is a short explanation of each option:
3053 * -release ........... Compile and link Qt with debugging turned off.
3054 -debug ............. Compile and link Qt with debugging turned on.
3055 -debug-and-release . Compile and link two versions of Qt, with and without
3056 debugging turned on (Mac only).
3058 -force-debug-info .. Create symbol files for release builds.
3060 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3062 -opensource ........ Compile and link the Open-Source Edition of Qt.
3063 -commercial ........ Compile and link the Commercial Edition of Qt.
3065 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3066 + -c++11 ............. Compile Qt with C++11 support enabled.
3068 * -shared ............ Create and use shared Qt libraries.
3069 -static ............ Create and use static Qt libraries.
3071 * -process ........... Generate only a top-level Makefile.
3072 -fully-process ..... Generate Makefiles for the entire Qt tree.
3073 -dont-process ...... Do not generate any Makefiles.
3075 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3077 -fast .............. Configure Qt quickly by generating Makefiles only for
3078 library and subdirectory targets. All other Makefiles
3079 are created as wrappers, which will in turn run qmake.
3081 -no-largefile ...... Disables large file support.
3082 + -largefile ......... Enables Qt to access files larger than 4 GB.
3084 -no-accessibility .. Do not compile Accessibility support.
3085 + -accessibility ..... Compile Accessibility support.
3087 -no-sql-<driver> ... Disable SQL <driver> entirely.
3088 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3090 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3093 Possible values for <driver>:
3094 [ $CFG_SQL_AVAILABLE ]
3096 -system-sqlite ..... Use sqlite from the operating system.
3098 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3099 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3101 -no-qml-debug ...... Do not build the in-process QML debugging support.
3102 + -qml-debug ......... Build the QML debugging support.
3104 -platform target ... The operating system and compiler you are building
3107 See the README file for a list of supported
3108 operating systems and compilers.
3110 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3111 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3112 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3113 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3114 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3115 -no-avx ............ Do not compile with use of AVX instructions.
3116 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3117 -no-neon ........... Do not compile with use of NEON instructions.
3118 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3119 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3121 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3122 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3124 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3126 -D <string> ........ Add an explicit define to the preprocessor.
3127 -I <string> ........ Add an explicit include path.
3128 -L <string> ........ Add an explicit library path.
3130 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3131 configure determines whether to use pkg-config or not with
3132 some heuristics such as checking the environment variables.
3133 -no-pkg-config ..... Disable use of pkg-config.
3134 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3135 detection heuristic).
3137 -help, -h .......... Display this information.
3139 Third Party Libraries:
3141 -qt-zlib ........... Use the zlib bundled with Qt.
3142 + -system-zlib ....... Use zlib from the operating system.
3143 See http://www.gzip.org/zlib
3145 -no-gif ............ Do not compile GIF reading support.
3147 -no-libpng ......... Do not compile PNG support.
3148 -qt-libpng ......... Use the libpng bundled with Qt.
3149 + -system-libpng ..... Use libpng from the operating system.
3150 See http://www.libpng.org/pub/png
3152 -no-libjpeg ........ Do not compile JPEG support.
3153 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3154 + -system-libjpeg .... Use libjpeg from the operating system.
3155 See http://www.ijg.org
3157 -no-openssl ........ Do not compile support for OpenSSL.
3158 + -openssl ........... Enable run-time OpenSSL support.
3159 -openssl-linked .... Enabled linked OpenSSL support.
3161 -qt-pcre ........... Use the PCRE library bundled with Qt.
3162 + -system-pcre ....... Use the PCRE library from the operating system.
3166 -make <part> ....... Add part to the list of parts to be built at make time.
3167 ($QT_DEFAULT_BUILD_PARTS)
3168 -nomake <part> ..... Exclude part from the list of parts to be built.
3170 -R <string> ........ Add an explicit runtime library path to the Qt
3172 -l <string> ........ Add an explicit library.
3174 -no-rpath .......... Do not use the library install path as a runtime
3176 + -rpath ............. Link Qt libraries and executables using the library
3177 install path as a runtime library path. Equivalent
3178 to -R install_libpath
3180 -continue .......... Continue as far as possible if an error occurs.
3182 -verbose, -v ....... Print verbose information about each step of the
3185 -silent ............ Reduce the build output so that warnings and errors
3186 can be seen more easily.
3188 * -no-optimized-qmake ... Do not build qmake optimized.
3189 -optimized-qmake ...... Build qmake optimized.
3191 -no-gui ............ Don't build the Qt GUI library
3193 $NSN -no-nis ............ Do not compile NIS support.
3194 $NSY -nis ............... Compile NIS support.
3196 $CUN -no-cups ........... Do not compile CUPS support.
3197 $CUY -cups .............. Compile CUPS support.
3198 Requires cups/cups.h and libcups.so.2.
3200 $CIN -no-iconv .......... Do not compile support for iconv(3).
3201 $CIY -iconv ............. Compile support for iconv(3).
3203 $PHN -no-pch ............ Do not use precompiled header support.
3204 $PHY -pch ............... Use precompiled header support.
3206 $DBN -no-dbus ........... Do not compile the QtDBus module.
3207 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3208 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3210 -reduce-relocations ..... Reduce relocations in the libraries through extra
3211 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3212 experimental; needs GNU ld >= 2.18).
3214 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3216 -device <name> ............... Cross-compile for device <name> (experimental)
3217 -device-option <key=value> ... Add device specific options for the device mkspec
3220 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3221 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3223 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3224 $XCBY -xcb ............... Compile Xcb support.
3226 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3227 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3229 $DFBN -no-directfb ....... Do not compile DirectFB support.
3230 $DFBY -directfb .......... Compile DirectFB support.
3232 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3233 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3235 $KMSN -no-kms ............ Do not compile KMS support.
3236 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3238 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3240 -xplatform target ... The target platform when cross-compiling.
3242 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3243 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3245 -no-feature-<feature> Do not compile in <feature>.
3246 -feature-<feature> .. Compile in <feature>. The available features
3247 are described in src/corelib/global/qfeatures.txt
3249 -no-freetype ........ Do not compile in Freetype2 support.
3250 -qt-freetype ........ Use the libfreetype bundled with Qt.
3251 * -system-freetype .... Use libfreetype from the operating system.
3252 See http://www.freetype.org/
3254 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3255 default ($CFG_QCONFIG).
3257 -no-opengl .......... Do not support OpenGL.
3258 -opengl <api> ....... Enable OpenGL support
3259 With no parameter, this will attempt to auto-detect
3260 OpenGL ES 2, or regular desktop OpenGL.
3261 Use es2 for <api> to override auto-detection.
3263 $GBN -no-glib ........... Do not compile Glib support.
3264 $GBY -glib .............. Compile Glib support.
3267 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3270 $X2N -no-xinput2......... Do not compile XInput2 support.
3271 $X2Y -xinput2............ Compile XInput2 support.
3277 if [ "$BUILD_ON_MAC" = "yes" ]; then
3282 -Fstring ........... Add an explicit framework path.
3283 -fw string ......... Add an explicit framework.
3285 * -framework ......... Build Qt as a series of frameworks and
3286 link tools against those frameworks.
3287 -no-framework ...... Do not build Qt as a series of frameworks.
3289 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3290 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3292 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3293 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3294 QT_ENABLE_HARFBUZZ environment variable.
3299 [ "x$ERROR" = "xyes" ] && exit 1
3304 # -----------------------------------------------------------------------------
3305 # LICENSING, INTERACTIVE PART
3306 # -----------------------------------------------------------------------------
3309 echo "This is the Qt ${EditionString} Edition."
3312 if [ "$Edition" = "OpenSource" ]; then
3314 echo "You are licensed to use this software under the terms of"
3315 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3316 if [ -f "$relpath/LICENSE.GPL3" ]; then
3317 echo "You are also licensed to use this software under the terms of"
3318 echo "the GNU General Public License (GPL) versions 3."
3324 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3325 echo "You have already accepted the terms of the $LicenseType license."
3328 if [ -f "$relpath/LICENSE.GPL3" ]; then
3329 echo "Type '3' to view the GNU General Public License version 3."
3331 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3332 echo "Type 'yes' to accept this license offer."
3333 echo "Type 'no' to decline this license offer."
3335 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3339 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3341 elif [ "$acceptance" = "no" ]; then
3342 echo "You are not licensed to use this software."
3345 elif [ "$acceptance" = "3" ]; then
3346 more "$relpath/LICENSE.GPL3"
3347 elif [ "$acceptance" = "L" ]; then
3348 more "$relpath/LICENSE.LGPL"
3351 elif [ "$Edition" = "Preview" ]; then
3352 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3355 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3356 echo "You have already accepted the terms of the $LicenseType license."
3359 echo "You are licensed to use this software under the terms of"
3360 echo "the $TheLicense"
3362 echo "Type '?' to read the Preview License."
3363 echo "Type 'yes' to accept this license offer."
3364 echo "Type 'no' to decline this license offer."
3366 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3370 if [ "$acceptance" = "yes" ]; then
3372 elif [ "$acceptance" = "no" ] ;then
3373 echo "You are not licensed to use this software."
3376 elif [ "$acceptance" = "?" ]; then
3377 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3380 elif [ "$Edition" != "OpenSource" ]; then
3381 if [ -n "$ExpiryDate" ]; then
3382 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3383 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3384 Today=`date +%Y%m%d`
3385 if [ "$Today" -gt "$ExpiryDate" ]; then
3386 case "$LicenseType" in
3387 Commercial|Academic|Educational)
3389 echo "WARNING WARNING WARNING WARNING"
3391 echo " Your support and upgrade period has expired."
3393 echo " You may continue to use your last licensed release"
3394 echo " of Qt under the terms of your existing license"
3395 echo " agreement. But you are not entitled to technical"
3396 echo " support, nor are you entitled to use any more recent"
3397 echo " Qt releases."
3399 echo " Please contact qt-info@nokia.com to renew your"
3400 echo " support and upgrades for this license."
3402 echo "WARNING WARNING WARNING WARNING"
3408 echo "NOTICE NOTICE NOTICE NOTICE"
3410 echo " Your Evaluation license has expired."
3412 echo " You are no longer licensed to use this software. Please"
3413 echo " contact qt-info@nokia.com to purchase license, or install"
3414 echo " the Qt Open Source Edition if you intend to develop free"
3417 echo "NOTICE NOTICE NOTICE NOTICE"
3424 TheLicense=`head -n 1 "$outpath/LICENSE"`
3426 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3427 echo "You have already accepted the terms of the $TheLicense."
3430 echo "You are licensed to use this software under the terms of"
3431 echo "the $TheLicense."
3433 echo "Type '?' to view the $TheLicense."
3434 echo "Type 'yes' to accept this license offer."
3435 echo "Type 'no' to decline this license offer."
3437 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3441 if [ "$acceptance" = "yes" ]; then
3443 elif [ "$acceptance" = "no" ]; then
3444 echo "You are not licensed to use this software."
3447 else [ "$acceptance" = "?" ]
3448 more "$outpath/LICENSE"
3453 # this should be moved somewhere else
3456 AIX_VERSION=`uname -v`
3457 if [ "$AIX_VERSION" -lt "5" ]; then
3458 QMakeVar add QMAKE_LIBS_X11 -lbind
3465 #-------------------------------------------------------------------------------
3466 # generate qconfig.cpp
3467 #-------------------------------------------------------------------------------
3468 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3470 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3472 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3473 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3475 /* Installation date */
3476 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3478 /* Installation Info */
3479 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3480 "qt_prfxpath=$QT_INSTALL_PREFIX",
3481 "qt_docspath=$QT_INSTALL_DOCS",
3482 "qt_hdrspath=$QT_INSTALL_HEADERS",
3483 "qt_libspath=$QT_INSTALL_LIBS",
3484 "qt_binspath=$QT_INSTALL_BINS",
3485 "qt_plugpath=$QT_INSTALL_PLUGINS",
3486 "qt_impspath=$QT_INSTALL_IMPORTS",
3487 "qt_datapath=$QT_INSTALL_DATA",
3488 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3489 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3490 "qt_tstspath=$QT_INSTALL_TESTS",
3491 #ifdef QT_BUILD_QMAKE
3492 "qt_ssrtpath=$CFG_SYSROOT",
3493 "qt_hpfxpath=$QT_HOST_PREFIX",
3494 "qt_hbinpath=$QT_HOST_BINS",
3495 "qt_hdatpath=$QT_HOST_DATA",
3498 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3501 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3503 /* strlen( "qt_lcnsxxxx" ) == 12 */
3504 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3505 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3507 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3510 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3511 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3512 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3514 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3515 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3516 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3519 # -----------------------------------------------------------------------------
3520 if [ "$LicenseType" = "Evaluation" ]; then
3521 EVALKEY=qt_qevalkey=$LicenseKeyExt
3522 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3523 EVALKEY=qt_qevalkey=
3526 if [ -n "$EVALKEY" ]; then
3527 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3528 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3529 /* Evaluation license key */
3530 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3532 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3536 # -----------------------------------------------------------------------------
3538 # -----------------------------------------------------------------------------
3541 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3543 [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
3544 if [ "$OPT_SHADOW" = "yes" ]; then
3545 "$outpath/bin/syncqt" $SYNCQT_OPTS "$relpath" || exit 1
3546 elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then
3547 QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
3551 # $1: input variable name (awk regexp)
3552 # $2: optional output variable name
3553 # $3: optional value transformation (sed command)
3554 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3555 # is where the resulting variable is written to
3556 setBootstrapVariable()
3558 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3562 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3563 echo "Creating qmake. Please wait..."
3566 QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
3567 QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
3568 if [ -f "$QCONFIG_H" ]; then
3569 OLD_QCONFIG_H=$QCONFIG_H
3570 mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
3573 # create temporary qconfig.h for compiling qmake, if it doesn't exist
3574 # when building qmake, we use #defines for the install paths,
3575 # however they are real functions in the library
3576 if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
3577 mkdir -p "$outpath/src/corelib/global"
3578 [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
3579 echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
3582 mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
3584 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3585 rm -rf mkspecs/default mkspecs/default-host
3586 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3587 ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3588 mkdir -p "$outpath/qmake" || exit
3590 for mkfile in GNUmakefile Makefile; do
3593 in_mkfile="${mkfile}.in"
3594 if [ "$mkfile" = "Makefile" ]; then
3595 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3596 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3598 in_mkfile="${mkfile}.unix"
3600 in_mkfile="$relpath/qmake/$in_mkfile"
3601 mkfile="$outpath/qmake/$mkfile"
3602 if [ -f "$mkfile" ]; then
3603 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3606 [ -f "$in_mkfile" ] || continue
3608 echo "########################################################################" > "$mkfile"
3609 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3610 echo "########################################################################" >> "$mkfile"
3613 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3614 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3615 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3617 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3618 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3621 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3622 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3623 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3624 setBootstrapVariable QMAKE_CFLAGS
3625 setBootstrapVariable QMAKE_CXXFLAGS
3626 setBootstrapVariable QMAKE_LFLAGS
3628 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3629 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3630 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3632 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3633 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3634 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3635 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3636 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3637 elif [ "$CFG_DEBUG" = "yes" ]; then
3638 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3639 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3640 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3641 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3644 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3645 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3646 for rpath in $RPATH_FLAGS; do
3647 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3650 if [ "$BUILD_ON_MAC" = "yes" ]; then
3651 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3652 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3653 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3654 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3655 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3656 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3657 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3658 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3659 if [ '!' -z "$CFG_SDK" ]; then
3660 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3661 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3662 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3663 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3664 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3667 if [ '!' -z "$D_FLAGS" ]; then
3668 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3670 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3671 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3672 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3673 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3675 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3676 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3677 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3678 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3679 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3680 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3681 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3682 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3683 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3684 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3686 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3687 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3688 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3689 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3694 QMAKE_BUILD_ERROR=no
3695 (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
3696 [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
3697 [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
3698 [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
3701 #-------------------------------------------------------------------------------
3702 # create a qt.conf for the Qt build tree itself
3703 #-------------------------------------------------------------------------------
3705 QTCONFFILE="$outpath/bin/qt.conf"
3706 cat > "$QTCONFFILE" <<EOF
3711 #-------------------------------------------------------------------------------
3713 #-------------------------------------------------------------------------------
3714 if [ -z "$PKG_CONFIG" ]; then
3715 # See if PKG_CONFIG is set in the mkspec:
3716 PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
3718 if [ -z "$PKG_CONFIG" ]; then
3719 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3722 if [ "$CFG_PKGCONFIG" = "no" ]; then
3724 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3726 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3727 echo >&2 "a correctly setup pkg-config environment!"
3729 elif [ -n "$PKG_CONFIG" ]; then
3730 # found a pkg-config
3731 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3732 # when xcompiling, check environment to see if it's actually usable
3733 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3734 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3735 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3736 if [ -n "$GCC_MACHINE_DUMP" ]; then
3737 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3739 export PKG_CONFIG_LIBDIR
3740 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3741 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3742 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3743 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3744 echo >&2 "Set this variable to the directory that contains target .pc files"
3745 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3746 echo >&2 "use -force-pkg-config to override this test."
3750 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3753 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3754 if [ -n "$CFG_SYSROOT" ]; then
3755 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3756 export PKG_CONFIG_SYSROOT_DIR
3757 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3758 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3759 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3760 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3761 echo >&2 "or use -force-pkg-config to override this test."
3765 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3769 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3770 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3774 if [ -z "$PKG_CONFIG" ]; then
3775 QT_CONFIG="$QT_CONFIG no-pkg-config"
3778 #-------------------------------------------------------------------------------
3779 # write out device config before we run the test.
3780 #-------------------------------------------------------------------------------
3781 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3782 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3783 rm -f "$DEVICE_VARS_FILE"
3785 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3786 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3789 #-------------------------------------------------------------------------------
3790 # tests that need qmake
3791 #-------------------------------------------------------------------------------
3793 # parameters: path, name, extra args
3796 path=config.tests/$1
3799 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_CONFIG_TEST_COMMANDLINE "$@"
3802 #-------------------------------------------------------------------------------
3803 # determine the target and host architectures
3804 #-------------------------------------------------------------------------------
3806 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3807 OUTFILE=$outpath/arch.result
3808 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_CONFIG_TEST_COMMANDLINE
3809 if [ $? -eq 0 ]; then
3810 eval `cat "$OUTFILE"`
3813 echo "Could not determine the target architecture!"
3814 echo "Turn on verbose messaging (-v) to see the final report."
3816 rm -f "$OUTFILE" 2>/dev/null
3817 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3819 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3820 # Do the same test again, using the host compiler
3821 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_CONFIG_TEST_COMMANDLINE
3822 if [ $? -eq 0 ]; then
3823 eval `cat "$OUTFILE"`
3826 echo "Could not determine the host architecture!"
3827 echo "Turn on verbose messaging (-v) to see the final report."
3829 rm -f "$OUTFILE" 2>/dev/null
3830 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3832 # not cross compiling, host == target
3833 CFG_HOST_ARCH="$CFG_ARCH"
3834 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3838 if [ "$OPT_VERBOSE" = "yes" ]; then
3839 echo "System architecture: '$CFG_ARCH'"
3840 echo "Host architecture: '$CFG_HOST_ARCH'"
3843 #-------------------------------------------------------------------------------
3844 # functionality tests
3845 #-------------------------------------------------------------------------------
3847 # Detect C++11 support
3848 if [ "$CFG_CXX11" != "no" ]; then
3849 if compileTest unix/c++11 "C++11"; then
3851 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3852 echo "C++11 support cannot be enabled due to functionality tests!"
3853 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3854 echo " If you believe this message is in error you may use the continue"
3855 echo " switch (-continue) to $0 to continue."
3862 # detect availability of float math.h functions
3863 if compileTest unix/floatmath "floatmath"; then
3864 CFG_USE_FLOATMATH=yes
3866 CFG_USE_FLOATMATH=no
3869 # detect sse2 support
3870 if [ "${CFG_SSE2}" = "auto" ]; then
3871 if compileTest common/sse2 "sse2"; then
3878 # detect sse3 support
3879 if [ "${CFG_SSE3}" = "auto" ]; then
3880 if compileTest common/sse3 "sse3"; then
3887 # detect ssse3 support
3888 if [ "${CFG_SSSE3}" = "auto" ]; then
3889 if compileTest common/ssse3 "ssse3"; then
3896 # detect sse4.1 support
3897 if [ "${CFG_SSE4_1}" = "auto" ]; then
3898 if compileTest common/sse4_1 "sse4_1"; then
3905 # detect sse4.2 support
3906 if [ "${CFG_SSE4_2}" = "auto" ]; then
3907 if compileTest common/sse4_2 "sse4_2"; then
3914 # detect avx support
3915 if [ "${CFG_AVX}" = "auto" ]; then
3916 if compileTest common/avx "avx"; then
3917 case "$XQMAKESPEC" in
3919 # Some clang versions produce internal compiler errors compiling Qt AVX code
3920 case `$TEST_COMPILER --version` in
3921 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3923 if [ "$OPT_VERBOSE" = "yes" ]; then
3924 echo 'AVX support disabled for blacklisted clang compiler'
3941 # detect avx2 support
3942 if [ "${CFG_AVX}" = "no" ]; then
3945 if [ "${CFG_AVX2}" = "auto" ]; then
3946 if compileTest common/avx2 "avx2"; then
3953 # check iWMMXt support
3954 if [ "$CFG_IWMMXT" = "yes" ]; then
3955 compileTest unix/iwmmxt "iwmmxt"
3956 if [ $? != "0" ]; then
3957 echo "The iWMMXt functionality test failed!"
3958 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3963 # detect neon support
3964 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3965 if compileTest unix/neon "neon"; then
3970 elif [ "$CFG_ARCH" != "arm" ]; then
3974 # detect mips_dsp support
3975 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
3976 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mips_dsp "mips_dsp" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
3981 elif [ "$CFG_ARCH" != "mips" ]; then
3985 # detect mips_dspr2 support
3986 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
3987 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mips_dspr2 "mips_dspr2" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
3992 elif [ "$CFG_ARCH" != "mips" ]; then
3996 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3999 if [ "$CFG_ZLIB" = "no" ]; then
4000 # Note: Qt no longer support builds without zlib
4001 # So we force a "no" to be "auto" here.
4002 # If you REALLY really need no zlib support, you can still disable
4003 # it by doing the following:
4004 # add "no-zlib" to mkspecs/qconfig.pri
4005 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4007 # There's no guarantee that Qt will build under those conditions
4012 if [ "$CFG_ZLIB" = "auto" ]; then
4013 if compileTest unix/zlib "zlib"; then
4020 if [ "$CFG_LARGEFILE" = "auto" ]; then
4021 #Large files should be enabled for all Linux systems
4025 if [ "$CFG_GUI" = "no" ]; then
4026 QPA_PLATFORM_GUARD=no
4029 # detect how jpeg should be built
4030 if [ "$CFG_JPEG" = "auto" ]; then
4031 if [ "$CFG_SHARED" = "yes" ]; then
4038 if [ "$CFG_LIBJPEG" = "auto" ]; then
4039 if compileTest unix/libjpeg "libjpeg"; then
4046 # detect how gif should be built
4047 if [ "$CFG_GIF" = "auto" ]; then
4048 if [ "$CFG_SHARED" = "yes" ]; then
4056 if [ "$CFG_LIBPNG" = "auto" ]; then
4057 if compileTest unix/libpng "libpng"; then
4064 if [ "$CFG_EGLFS" = "yes" ]; then
4065 if [ "$CFG_EGL" = "no" ]; then
4066 echo "The EGLFS plugin requires EGL support and cannot be built"
4069 if [ "$CFG_OPENGL" != "es2" ]; then
4070 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4077 if [ "$CFG_KMS" = "yes" ]; then
4078 if [ "$CFG_EGL" = "no" ]; then
4079 echo "The KMS plugin requires EGL support and cannot be built"
4082 if [ "$CFG_OPENGL" != "es2" ]; then
4083 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4088 # auto-detect SQL-modules support
4089 for _SQLDR in $CFG_SQL_AVAILABLE; do
4092 if [ "$CFG_SQL_mysql" != "no" ]; then
4093 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4094 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4095 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4096 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4097 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4098 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4099 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4101 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4102 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4103 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4104 echo " You need MySql 4 or higher."
4105 echo " If you believe this message is in error you may use the continue"
4106 echo " switch (-continue) to $0 to continue."
4111 QT_LFLAGS_MYSQL_R=""
4115 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4116 QMakeVar add CONFIG use_libmysqlclient_r
4117 if [ "$CFG_SQL_mysql" = "auto" ]; then
4118 CFG_SQL_mysql=plugin
4120 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4121 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4122 if [ "$CFG_SQL_mysql" = "auto" ]; then
4123 CFG_SQL_mysql=plugin
4126 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4127 echo "MySQL support cannot be enabled due to functionality tests!"
4128 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4129 echo " If you believe this message is in error you may use the continue"
4130 echo " switch (-continue) to $0 to continue."
4135 QT_LFLAGS_MYSQL_R=""
4143 if [ "$CFG_SQL_psql" != "no" ]; then
4144 # Be careful not to use native pg_config when cross building.
4145 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4146 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4147 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4149 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4150 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4151 # But, respect PSQL_LIBS if set
4152 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4153 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4154 if [ "$CFG_SQL_psql" = "auto" ]; then
4158 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4159 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4160 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4161 echo " If you believe this message is in error you may use the continue"
4162 echo " switch (-continue) to $0 to continue."
4173 if [ "$CFG_SQL_odbc" != "no" ]; then
4174 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4175 if [ "$CFG_SQL_odbc" = "auto" ]; then
4179 if compileTest unix/iodbc "iODBC"; then
4180 QT_LFLAGS_ODBC="-liodbc"
4181 if [ "$CFG_SQL_odbc" = "auto" ]; then
4185 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4186 echo "ODBC support cannot be enabled due to functionality tests!"
4187 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4188 echo " If you believe this message is in error you may use the continue"
4189 echo " switch (-continue) to $0 to continue."
4199 if [ "$CFG_SQL_oci" != "no" ]; then
4200 if compileTest unix/oci "OCI"; then
4201 if [ "$CFG_SQL_oci" = "auto" ]; then
4205 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4206 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4207 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4208 echo " If you believe this message is in error you may use the continue"
4209 echo " switch (-continue) to $0 to continue."
4218 if [ "$CFG_SQL_tds" != "no" ]; then
4219 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4220 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4221 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4222 if [ "$CFG_SQL_tds" = "auto" ]; then
4226 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4227 echo "TDS support cannot be enabled due to functionality tests!"
4228 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4229 echo " If you believe this message is in error you may use the continue"
4230 echo " switch (-continue) to $0 to continue."
4239 if [ "$CFG_SQL_db2" != "no" ]; then
4240 if compileTest unix/db2 "DB2"; then
4241 if [ "$CFG_SQL_db2" = "auto" ]; then
4245 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4246 echo "ODBC support cannot be enabled due to functionality tests!"
4247 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4248 echo " If you believe this message is in error you may use the continue"
4249 echo " switch (-continue) to $0 to continue."
4258 if [ "$CFG_SQL_ibase" != "no" ]; then
4259 if compileTest unix/ibase "InterBase"; then
4260 if [ "$CFG_SQL_ibase" = "auto" ]; then
4261 CFG_SQL_ibase=plugin
4264 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4265 echo "InterBase support cannot be enabled due to functionality tests!"
4266 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4267 echo " If you believe this message is in error you may use the continue"
4268 echo " switch (-continue) to $0 to continue."
4277 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4278 if compileTest unix/sqlite2 "SQLite2"; then
4279 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4280 CFG_SQL_sqlite2=plugin
4283 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4284 echo "SQLite2 support cannot be enabled due to functionality tests!"
4285 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4286 echo " If you believe this message is in error you may use the continue"
4287 echo " switch (-continue) to $0 to continue."
4296 if [ "$CFG_SQL_sqlite" != "no" ]; then
4297 SQLITE_AUTODETECT_FAILED="no"
4298 if [ "$CFG_SQLITE" = "system" ]; then
4299 if [ -n "$PKG_CONFIG" ]; then
4300 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4301 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4304 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4306 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4307 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4308 CFG_SQL_sqlite=plugin
4310 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4312 SQLITE_AUTODETECT_FAILED="yes"
4315 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4316 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4317 CFG_SQL_sqlite=plugin
4320 SQLITE_AUTODETECT_FAILED="yes"
4324 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4325 echo "SQLite support cannot be enabled due to functionality tests!"
4326 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4327 echo " If you believe this message is in error you may use the continue"
4328 echo " switch (-continue) to $0 to continue."
4334 if [ "$OPT_VERBOSE" = "yes" ]; then
4335 echo "unknown SQL driver: $_SQLDR"
4341 # auto-detect NIS support
4342 if [ "$CFG_NIS" != "no" ]; then
4343 if compileTest unix/nis "NIS"; then
4346 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4347 echo "NIS support cannot be enabled due to functionality tests!"
4348 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4349 echo " If you believe this message is in error you may use the continue"
4350 echo " switch (-continue) to $0 to continue."
4358 # auto-detect CUPS support
4359 if [ "$CFG_CUPS" != "no" ]; then
4360 if compileTest unix/cups "Cups"; then
4363 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4364 echo "Cups support cannot be enabled due to functionality tests!"
4365 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4366 echo " If you believe this message is in error you may use the continue"
4367 echo " switch (-continue) to $0 to continue."
4375 # auto-detect iconv(3) support
4376 if [ "$CFG_ICONV" != "no" ]; then
4377 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4379 elif compileTest unix/iconv "POSIX iconv"; then
4381 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4383 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4386 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4387 echo "Iconv support cannot be enabled due to functionality tests!"
4388 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4389 echo " If you believe this message is in error you may use the continue"
4390 echo " switch (-continue) to $0 to continue."
4398 # auto-detect libdbus-1 support
4399 if [ "$CFG_DBUS" != "no" ]; then
4400 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4401 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4402 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4404 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4405 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4406 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4407 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4409 if [ "$CFG_DBUS" = "auto" ]; then
4411 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4412 # CFG_DBUS is "yes" or "linked" here
4414 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4415 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4416 echo " If you believe this message is in error you may use the continue"
4417 echo " switch (-continue) to $0 to continue."
4423 # auto-detect Glib support
4424 if [ "$CFG_GLIB" != "no" ]; then
4425 if [ -n "$PKG_CONFIG" ]; then
4426 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4427 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4429 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4431 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4432 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4434 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4435 echo "Glib support cannot be enabled due to functionality tests!"
4436 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4437 echo " If you believe this message is in error you may use the continue"
4438 echo " switch (-continue) to $0 to continue."
4446 # auto-detect GTK style support
4447 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4448 if [ -n "$PKG_CONFIG" ]; then
4449 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4450 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4452 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4454 QT_CONFIG="$QT_CONFIG gtkstyle"
4455 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4456 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4458 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4459 echo "Gtk theme support cannot be enabled due to functionality tests!"
4460 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4461 echo " If you believe this message is in error you may use the continue"
4462 echo " switch (-continue) to $0 to continue."
4468 elif [ "$CFG_GLIB" = "no" ]; then
4473 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4474 if [ -n "$PKG_CONFIG" ]; then
4475 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4476 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4478 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4480 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4481 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4483 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4484 echo "Gstreamer support cannot be enabled due to functionality tests!"
4485 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4486 echo " If you believe this message is in error you may use the continue"
4487 echo " switch (-continue) to $0 to continue."
4493 elif [ "$CFG_GLIB" = "no" ]; then
4497 # auto-detect libicu support
4498 if [ "$CFG_ICU" != "no" ]; then
4499 if compileTest unix/icu "ICU"; then
4500 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4502 if [ "$CFG_ICU" = "auto" ]; then
4504 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4507 echo "The ICU library support cannot be enabled."
4508 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4509 echo " If you believe this message is in error you may use the continue"
4510 echo " switch (-continue) to $0 to continue."
4516 # Auto-detect PulseAudio support
4517 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4518 if [ -n "$PKG_CONFIG" ]; then
4519 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4520 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4522 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4524 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4525 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4527 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4528 echo "PulseAudio support cannot be enabled due to functionality tests!"
4529 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4530 echo " If you believe this message is in error you may use the continue"
4531 echo " switch (-continue) to $0 to continue."
4540 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4541 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4542 if [ "$CFG_GUI" = "no" ]; then
4543 if [ "$CFG_OPENGL" = "auto" ]; then
4546 if [ "$CFG_OPENGL" != "no" ]; then
4547 echo "OpenGL enabled, but GUI disabled."
4548 echo " You might need to either enable the GUI or disable OpenGL"
4552 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4553 if compileTest x11/opengl "OpenGL"; then
4555 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4558 if [ "$CFG_OPENGL" = "yes" ]; then
4559 echo "All the OpenGL functionality tests failed!"
4560 echo " You might need to modify the include and library search paths by editing"
4561 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4562 echo " ${XQMAKESPEC}."
4569 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4570 if [ "$CFG_OPENGL" = "desktop" ]; then
4571 compileTest x11/glxfbconfig "OpenGL"
4572 if [ $? != "0" ]; then
4573 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4580 elif [ "$CFG_OPENGL" = "es2" ]; then
4582 compileTest unix/opengles2 "OpenGL ES 2.x"
4583 if [ $? != "0" ]; then
4584 echo "The OpenGL ES 2.0 functionality test failed!"
4585 echo " You might need to modify the include and library search paths by editing"
4586 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4587 echo " ${XQMAKESPEC}."
4590 elif [ "$CFG_OPENGL" = "desktop" ]; then
4591 # Desktop OpenGL support
4592 compileTest x11/opengl "OpenGL"
4593 if [ $? != "0" ]; then
4594 echo "The OpenGL functionality test failed!"
4595 echo " You might need to modify the include and library search paths by editing"
4596 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4597 echo " ${XQMAKESPEC}."
4602 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4603 compileTest x11/glxfbconfig "OpenGL"
4604 if [ $? != "0" ]; then
4605 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4612 fi # X11/MINGW OpenGL
4614 if [ "$BUILD_ON_MAC" = "yes" ]; then
4615 if [ "$CFG_COREWLAN" = "auto" ]; then
4616 if compileTest mac/corewlan "CoreWlan"; then
4624 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4625 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4626 if compileTest unix/opengldesktop "OpenGL"; then
4628 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4631 if [ "$CFG_OPENGL" = "yes" ]; then
4632 echo "All the OpenGL functionality tests failed!"
4633 echo " You might need to modify the include and library search paths by editing"
4634 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4635 echo " ${XQMAKESPEC}."
4640 elif [ "$CFG_OPENGL" = "es2" ]; then
4642 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4643 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4644 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4645 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4646 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4647 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4648 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4649 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4652 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4653 if [ $? != "0" ]; then
4654 echo "The OpenGL ES 2.0 functionality test failed!"
4655 echo " You might need to modify the include and library search paths by editing"
4656 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4657 echo " ${XQMAKESPEC}."
4660 elif [ "$CFG_OPENGL" = "desktop" ]; then
4661 # Desktop OpenGL support
4662 compileTest unix/opengldesktop "OpenGL"
4663 if [ $? != "0" ]; then
4664 echo "The OpenGL functionality test failed!"
4665 echo " You might need to modify the include and library search paths by editing"
4666 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4667 echo " ${XQMAKESPEC}."
4672 # auto-detect FontConfig support
4673 if [ "$CFG_FONTCONFIG" != "no" ]; then
4674 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4675 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4676 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4678 QT_CFLAGS_FONTCONFIG=
4679 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4681 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4682 QT_CONFIG="$QT_CONFIG fontconfig"
4683 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4684 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4686 CFG_LIBFREETYPE=system
4693 # Save these for a check later
4694 ORIG_CFG_XCB="$CFG_XCB"
4695 ORIG_CFG_EGLFS="$CFG_EGLFS"
4696 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4697 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4698 ORIG_CFG_KMS="$CFG_KMS"
4700 if [ "$CFG_LIBUDEV" != "no" ]; then
4701 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4702 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4703 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4704 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4705 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4707 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4709 QT_CONFIG="$QT_CONFIG libudev"
4710 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4711 echo "The libudev functionality test failed!"
4717 if [ "$CFG_LIBUDEV" = "no" ]; then
4718 QMakeVar add DEFINES QT_NO_LIBUDEV
4721 if [ "$CFG_EVDEV" != "no" ]; then
4722 if compileTest unix/evdev "evdev"; then
4724 QT_CONFIG="$QT_CONFIG evdev"
4725 elif [ "$CFG_EVDEV" = "yes" ]; then
4726 echo "The evdev functionality test failed!"
4732 if [ "$CFG_EVDEV" = "no" ]; then
4733 QMakeVar add DEFINES QT_NO_EVDEV
4736 # Check we actually have X11 :-)
4737 if compileTest x11/xlib "XLib"; then
4738 QT_CONFIG="$QT_CONFIG xlib"
4741 # auto-detect Xrender support
4742 if [ "$CFG_XRENDER" != "no" ]; then
4743 if compileTest x11/xrender "Xrender"; then
4745 QT_CONFIG="$QT_CONFIG xrender"
4747 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4748 echo "Xrender support cannot be enabled due to functionality tests!"
4749 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4750 echo " If you believe this message is in error you may use the continue"
4751 echo " switch (-continue) to $0 to continue."
4759 if [ "$CFG_XCB" != "no" ]; then
4760 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4761 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4762 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4764 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4766 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4767 QT_CONFIG="$QT_CONFIG xcb-render"
4770 if compileTest qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4772 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4775 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4776 QT_CONFIG="$QT_CONFIG xcb-xlib"
4779 # auto-detect XInput2 support. Needed by xcb too.
4780 if [ "$CFG_XINPUT2" != "no" ]; then
4781 if compileTest x11/xinput2 "XInput2"; then
4785 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4786 echo "XInput2 support cannot be enabled due to functionality tests!"
4787 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4788 echo " If you believe this message is in error you may use the continue"
4789 echo " switch (-continue) to $0 to continue."
4797 if [ "$CFG_XCB" = "yes" ]; then
4798 echo "The XCB test failed!"
4799 echo " You might need to install dependency packages."
4800 echo " See src/plugins/platforms/xcb/README."
4806 if [ "$CFG_XCB" = "no" ]; then
4807 QMakeVar add DEFINES QT_NO_XCB
4810 if [ "$CFG_DIRECTFB" != "no" ]; then
4811 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4812 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4813 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4814 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4816 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4817 echo " DirectFB support cannot be enabled due to functionality tests!"
4818 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4819 echo " If you believe this message is in error you may use the continue"
4820 echo " switch (-continue) to $0 to continue."
4830 if [ "$CFG_LINUXFB" != "no" ]; then
4831 if compileTest qpa/linuxfb "LinuxFB"; then
4833 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4834 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4835 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4836 echo " If you believe this message is in error you may use the continue"
4837 echo " switch (-continue) to $0 to continue."
4844 if [ "$CFG_KMS" != "no" ]; then
4845 if compileTest qpa/kms "KMS"; then
4847 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4848 echo " KMS 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 # Detect libxkbcommon
4859 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4860 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4861 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4862 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4863 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4865 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4869 if [ "$CFG_EGL" != "no" ] && [ "$CFG_OPENGL" != "desktop" ]; then
4870 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4871 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4872 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4873 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4874 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4875 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4876 fi # detect EGL support
4877 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4879 elif [ "$CFG_EGL" = "yes" ]; then
4880 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4881 echo " You might need to modify the include and library search paths by editing"
4882 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4887 elif [ "$CFG_OPENGL" = "desktop" ]; then
4888 if [ "$CFG_EGL" = "yes" ]; then
4889 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4890 echo "Either disable EGL support or enable OpenGL ES support."
4896 if [ "$CFG_EGLFS" != "no" ]; then
4897 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4898 CFG_EGLFS="$CFG_EGL"
4904 if [ "$CFG_KMS" = "yes" ]; then
4905 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4912 # Detect accessibility support
4913 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4914 if [ "$CFG_XCB" = "no" ]; then
4915 CFG_ACCESSIBILITY=yes
4917 # linux/xcb accessibility needs dbus and atspi-2
4918 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "atspi-2" 2>/dev/null; then
4919 CFG_ACCESSIBILITY=yes
4921 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4922 CFG_ACCESSIBILITY=no
4924 echo "Accessibility support needs pkg-config and libatspi2."
4931 # Determine the default QPA platform
4932 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4934 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4935 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4936 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4937 QT_QPA_DEFAULT_PLATFORM="windows"
4938 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4939 QT_QPA_DEFAULT_PLATFORM="cocoa"
4940 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4941 QT_QPA_DEFAULT_PLATFORM="qnx"
4943 QT_QPA_DEFAULT_PLATFORM="xcb"
4948 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4949 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4950 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4951 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4953 if [ "$CFG_DIRECTFB" = "yes" ]; then
4954 QT_CONFIG="$QT_CONFIG directfb"
4955 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4956 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4958 if [ "$CFG_LINUXFB" = "yes" ]; then
4959 QT_CONFIG="$QT_CONFIG linuxfb"
4961 if [ "$CFG_KMS" = "yes" ]; then
4962 QT_CONFIG="$QT_CONFIG kms"
4965 if [ "$BUILD_ON_MAC" = "yes" ]; then
4966 if compileTest mac/coreservices "CoreServices"; then
4967 QT_CONFIG="$QT_CONFIG coreservices"
4969 QMakeVar add DEFINES QT_NO_CORESERVICES
4973 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4974 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
4975 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4976 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
4977 echo "No QPA platform plugin enabled!"
4978 echo " If you really want to build without a QPA platform plugin you must pass"
4979 echo " -no-qpa-platform-guard to configure. Doing this will"
4980 echo " produce a Qt that can not run GUI applications."
4981 echo " The dependencies needed for xcb to build are listed in"
4982 echo " src/plugins/platforms/xcb/README"
4989 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4990 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4991 if compileTest unix/freetype "FreeType"; then
4992 CFG_LIBFREETYPE=system
4998 if ! compileTest unix/stl "STL" &&
4999 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5000 echo "STL functionality check failed! Cannot build Qt with this STL library."
5001 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5006 # detect POSIX clock_gettime()
5007 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5008 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
5009 CFG_CLOCK_GETTIME=yes
5011 CFG_CLOCK_GETTIME=no
5015 # detect POSIX monotonic clocks
5016 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5017 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5018 CFG_CLOCK_MONOTONIC=yes
5020 CFG_CLOCK_MONOTONIC=no
5022 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5023 CFG_CLOCK_MONOTONIC=no
5027 if [ "$CFG_MREMAP" = "auto" ]; then
5028 if compileTest unix/mremap "mremap"; then
5035 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5036 if [ "$CFG_GETADDRINFO" != "no" ]; then
5037 if compileTest unix/getaddrinfo "getaddrinfo"; then
5040 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5041 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5042 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5043 echo " If you believe this message is in error you may use the continue"
5044 echo " switch (-continue) to $0 to continue."
5052 # find if the platform provides inotify
5053 if [ "$CFG_INOTIFY" != "no" ]; then
5054 if compileTest unix/inotify "inotify"; then
5057 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5058 echo "inotify support cannot be enabled due to functionality tests!"
5059 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5060 echo " If you believe this message is in error you may use the continue"
5061 echo " switch (-continue) to $0 to continue."
5069 # find if the platform provides if_nametoindex (ipv6 interface name support)
5070 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5071 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5074 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5075 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5076 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5077 echo " If you believe this message is in error you may use the continue"
5078 echo " switch (-continue) to $0 to continue."
5086 # find if the platform provides getifaddrs (network interface enumeration)
5087 if [ "$CFG_GETIFADDRS" != "no" ]; then
5088 if compileTest unix/getifaddrs "getifaddrs"; then
5091 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5092 echo "getifaddrs support cannot be enabled due to functionality tests!"
5093 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5094 echo " If you believe this message is in error you may use the continue"
5095 echo " switch (-continue) to $0 to continue."
5104 if [ "$CFG_OPENSSL" != "no" ]; then
5105 if compileTest unix/openssl "OpenSSL"; then
5106 if [ "$CFG_OPENSSL" = "auto" ]; then
5110 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5111 echo "OpenSSL support cannot be enabled due to functionality tests!"
5112 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5113 echo " If you believe this message is in error you may use the continue"
5114 echo " switch (-continue) to $0 to continue."
5123 if [ "$CFG_PCRE" != "qt" ]; then
5124 if compileTest unix/pcre "PCRE"; then
5127 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5128 echo "PCRE support cannot be enabled due to functionality tests!"
5129 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5130 echo " If you believe this message is in error you may use the continue"
5131 echo " switch (-continue) to $0 to continue."
5139 # detect OpenVG support
5140 if [ "$CFG_OPENVG" != "no" ]; then
5141 if compileTest unix/openvg "OpenVG"; then
5142 if [ "$CFG_OPENVG" = "auto" ]; then
5145 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5146 if [ "$CFG_OPENVG" = "auto" ]; then
5149 CFG_OPENVG_ON_OPENGL=yes
5150 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5151 if [ "$CFG_OPENVG" = "auto" ]; then
5154 CFG_OPENVG_LC_INCLUDES=yes
5155 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5156 if [ "$CFG_OPENVG" = "auto" ]; then
5159 CFG_OPENVG_LC_INCLUDES=yes
5160 CFG_OPENVG_ON_OPENGL=yes
5162 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5163 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5164 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5165 echo " If you believe this message is in error you may use the continue"
5166 echo " switch (-continue) to $0 to continue."
5172 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5173 CFG_OPENVG_SHIVA=yes
5177 if [ "$CFG_ALSA" = "auto" ]; then
5178 if compileTest unix/alsa "alsa"; then
5185 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5186 if [ "$CFG_ARCH" = "arm" ]; then
5187 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5188 if [ $? != "0" ]; then
5189 CFG_JAVASCRIPTCORE_JIT=no
5192 case "$XPLATFORM" in
5194 CFG_JAVASCRIPTCORE_JIT=no
5200 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5201 QMakeVar set JAVASCRIPTCORE_JIT yes
5202 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5203 QMakeVar set JAVASCRIPTCORE_JIT no
5206 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5207 CFG_AUDIO_BACKEND=yes
5210 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5211 echo "Warning: largefile support cannot be disabled for win32."
5215 #-------------------------------------------------------------------------------
5216 # ask for all that hasn't been auto-detected or specified in the arguments
5217 #-------------------------------------------------------------------------------
5219 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5221 # disable accessibility
5222 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5223 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5225 QT_CONFIG="$QT_CONFIG accessibility"
5229 if [ "$CFG_EGL" = "yes" ]; then
5230 QT_CONFIG="$QT_CONFIG egl"
5232 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5236 if [ "$CFG_EGLFS" = "yes" ]; then
5237 QT_CONFIG="$QT_CONFIG eglfs"
5239 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5243 if [ "$CFG_OPENVG" = "no" ]; then
5244 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5246 QT_CONFIG="$QT_CONFIG openvg"
5247 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5248 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5250 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5251 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5253 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5254 QT_CONFIG="$QT_CONFIG shivavg"
5255 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5260 if [ "$CFG_OPENGL" = "no" ]; then
5261 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5263 QT_CONFIG="$QT_CONFIG opengl"
5266 if [ "$CFG_OPENGL" = "es2" ]; then
5267 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5270 if [ "$CFG_OPENGL" = "es2" ]; then
5271 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5272 QT_CONFIG="$QT_CONFIG opengles2"
5275 # build up the variables for output
5276 if [ "$CFG_DEBUG" = "yes" ]; then
5277 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5278 elif [ "$CFG_DEBUG" = "no" ]; then
5279 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5281 if [ "$CFG_SHARED" = "yes" ]; then
5282 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5283 QT_CONFIG="$QT_CONFIG shared"
5284 elif [ "$CFG_SHARED" = "no" ]; then
5285 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5286 QT_CONFIG="$QT_CONFIG static"
5289 #FIXME: qpa is implicit this should all be removed
5290 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5291 QT_CONFIG="$QT_CONFIG qpa"
5292 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5293 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5295 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5296 # Do not set this here for Windows. Let qmake do it so
5297 # debug and release precompiled headers are kept separate.
5298 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5300 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5301 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5302 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5303 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5304 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5305 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5307 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5308 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5310 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5311 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5312 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5313 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5314 QMakeVar add QMAKE_CFLAGS -g
5315 QMakeVar add QMAKE_CXXFLAGS -g
5316 QT_CONFIG="$QT_CONFIG separate_debug_info"
5318 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5319 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5321 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5322 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5323 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5324 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5325 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5326 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5327 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5328 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5329 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5330 if [ "$CFG_ARCH" = "mips" ]; then
5331 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5332 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5334 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5335 QT_CONFIG="$QT_CONFIG clock-gettime"
5337 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5338 QT_CONFIG="$QT_CONFIG clock-monotonic"
5340 if [ "$CFG_MREMAP" = "yes" ]; then
5341 QT_CONFIG="$QT_CONFIG mremap"
5343 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5344 QT_CONFIG="$QT_CONFIG getaddrinfo"
5346 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5347 QT_CONFIG="$QT_CONFIG ipv6ifname"
5349 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5350 QT_CONFIG="$QT_CONFIG getifaddrs"
5352 if [ "$CFG_INOTIFY" = "yes" ]; then
5353 QT_CONFIG="$QT_CONFIG inotify"
5355 if [ "$CFG_LIBJPEG" = "no" ]; then
5357 elif [ "$CFG_LIBJPEG" = "system" ]; then
5358 QT_CONFIG="$QT_CONFIG system-jpeg"
5360 if [ "$CFG_JPEG" = "no" ]; then
5361 QT_CONFIG="$QT_CONFIG no-jpeg"
5362 elif [ "$CFG_JPEG" = "yes" ]; then
5363 QT_CONFIG="$QT_CONFIG jpeg"
5365 if [ "$CFG_LIBPNG" = "no" ]; then
5368 if [ "$CFG_LIBPNG" = "system" ]; then
5369 QT_CONFIG="$QT_CONFIG system-png"
5371 if [ "$CFG_PNG" = "no" ]; then
5372 QT_CONFIG="$QT_CONFIG no-png"
5373 elif [ "$CFG_PNG" = "yes" ]; then
5374 QT_CONFIG="$QT_CONFIG png"
5376 if [ "$CFG_GIF" = "no" ]; then
5377 QT_CONFIG="$QT_CONFIG no-gif"
5378 elif [ "$CFG_GIF" = "yes" ]; then
5379 QT_CONFIG="$QT_CONFIG gif"
5381 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5382 QT_CONFIG="$QT_CONFIG no-freetype"
5383 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5384 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5385 QT_CONFIG="$QT_CONFIG system-freetype"
5387 QT_CONFIG="$QT_CONFIG freetype"
5389 if [ "$CFG_GUI" = "auto" ]; then
5392 if [ "$CFG_GUI" = "no" ]; then
5393 QT_CONFIG="$QT_CONFIG no-gui"
5396 if [ "$CFG_WIDGETS" = "no" ]; then
5397 QT_CONFIG="$QT_CONFIG no-widgets"
5398 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5401 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5402 #On Mac we implicitly link against libz, so we
5403 #never use the 3rdparty stuff.
5404 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5406 if [ "$CFG_ZLIB" = "yes" ]; then
5407 QT_CONFIG="$QT_CONFIG zlib"
5408 elif [ "$CFG_ZLIB" = "system" ]; then
5409 QT_CONFIG="$QT_CONFIG system-zlib"
5412 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5413 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5414 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5415 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5416 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5417 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5418 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5419 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5420 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5421 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5422 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5423 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5424 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5425 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5427 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5428 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5430 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5431 if [ "$CFG_RPATH" = "yes" ]; then
5432 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5434 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5435 if [ -n "$RPATH_FLAGS" ]; then
5437 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5441 elif [ "$CFG_RPATH" = "yes" ]; then
5442 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5446 if [ -n "$RPATH_FLAGS" ]; then
5447 # add the user defined rpaths
5448 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5451 if [ "$CFG_RPATH" = "yes" ]; then
5452 QT_CONFIG="$QT_CONFIG rpath"
5455 if [ '!' -z "$I_FLAGS" ]; then
5456 # add the user define include paths
5457 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5458 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5461 if [ '!' -z "$W_FLAGS" ]; then
5462 # add the user defined warning flags
5463 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5464 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5465 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5468 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5469 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5470 # Follow default behavior of configure.exe by overriding with "rtti".
5471 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5474 if [ "$CFG_ALSA" = "yes" ]; then
5475 QT_CONFIG="$QT_CONFIG alsa"
5478 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5479 QT_CONFIG="$QT_CONFIG pulseaudio"
5482 if [ "$CFG_COREWLAN" = "yes" ]; then
5483 QT_CONFIG="$QT_CONFIG corewlan"
5486 if [ "$CFG_ICU" = "yes" ]; then
5487 QT_CONFIG="$QT_CONFIG icu"
5490 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5491 QT_CONFIG="$QT_CONFIG force_asserts"
5494 if [ "$CFG_PCRE" = "qt" ]; then
5495 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5499 # Some Qt modules are too advanced in C++ for some old compilers
5500 # Detect here the platforms where they are known to work.
5502 # See Qt documentation for more information on which features are
5503 # supported and on which compilers.
5505 canBuildQtConcurrent="yes"
5506 canUseV8Snapshot="yes"
5508 case "$XPLATFORM" in
5510 # PA-RISC's assembly is too limited
5511 # gcc 3.4 on that platform can't build QtXmlPatterns
5512 # the assembly it generates cannot be compiled
5514 # Check gcc's version
5515 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5519 canBuildQtXmlPatterns="no"
5523 canBuildQtXmlPatterns="no"
5527 unsupported/vxworks-*-g++*)
5530 unsupported/vxworks-*-dcc*)
5532 canBuildQtXmlPatterns="no"
5535 # Check gcc's version
5536 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5544 canBuildQtXmlPatterns="no"
5549 # Check the compiler version
5550 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5553 canBuildQtXmlPatterns="no"
5554 canBuildQtConcurrent="no"
5558 canBuildQtConcurrent="no"
5564 canBuildQtXmlPatterns="no"
5565 canBuildQtConcurrent="no"
5571 # Get the xlC version
5572 cat > xlcver.c <<EOF
5576 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5581 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5582 xlcver=`./xlcver 2>/dev/null`
5585 if [ "$OPT_VERBOSE" = "yes" ]; then
5586 if [ -n "$xlcver" ]; then
5587 echo Found IBM xlC version: $xlcver.
5589 echo Could not determine IBM xlC version, assuming oldest supported.
5596 canBuildQtXmlPatterns="no"
5597 canBuildQtConcurrent="no"
5601 canBuildQtConcurrent="no"
5607 canBuildQtConcurrent="no"
5611 if [ "$CFG_GUI" = "no" ]; then
5612 # WebKit requires QtGui
5616 if [ "$CFG_SHARED" = "no" ]; then
5618 echo "WARNING: Using static linking will disable the WebKit module."
5623 CFG_CONCURRENT="yes"
5624 if [ "$canBuildQtConcurrent" = "no" ]; then
5625 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5628 QT_CONFIG="$QT_CONFIG concurrent"
5632 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5633 QT_CONFIG="$QT_CONFIG audio-backend"
5637 if [ "$CFG_WEBKIT" = "debug" ]; then
5638 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5642 QT_CONFIG="$QT_CONFIG v8"
5643 # Detect snapshot support
5644 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5645 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5648 *) canUseV8Snapshot="no"
5652 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5653 # QEMU crashes when building inside Scratchbox with an ARM target
5654 canUseV8Snapshot="no"
5657 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5658 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5660 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5661 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5664 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5665 QT_CONFIG="$QT_CONFIG v8snapshot"
5669 if [ "$CFG_QML_DEBUG" = "no" ]; then
5670 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5673 case "$QMAKE_CONF_COMPILER" in
5676 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5678 case "$COMPILER_VERSION" in
5680 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5681 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5682 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5685 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5686 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5687 QT_GCC_PATCH_VERSION=0
5697 #-------------------------------------------------------------------------------
5698 # part of configuration information goes into qconfig.h
5699 #-------------------------------------------------------------------------------
5701 case "$CFG_QCONFIG" in
5703 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5706 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5707 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5708 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5709 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5710 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5711 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5713 echo "#endif" >>"$tmpconfig"
5717 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5721 # define QT_EDITION $QT_EDITION
5725 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5726 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5728 if [ "$CFG_SHARED" = "no" ]; then
5729 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5730 /* Qt was configured for a static build */
5731 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5738 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5739 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5742 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5743 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5746 if [ "$BUILD_ON_MAC" = "yes" ]; then
5747 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5748 #if defined(__LP64__)
5749 # define QT_POINTER_SIZE 8
5751 # define QT_POINTER_SIZE 4
5755 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5756 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5759 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5760 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5761 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5764 # Add compiler sub-architecture support
5765 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5766 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5767 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5769 MIPS_DSP MIPS_DSPR2; do
5770 eval "VAL=\$CFG_$SUBARCH"
5773 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5774 >>"$outpath/src/corelib/global/qconfig.h.new"
5779 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5781 if [ "$CFG_DEV" = "yes" ]; then
5782 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5785 # Add QPA to config.h
5786 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5788 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5789 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5792 # Add turned on SQL drivers
5793 for DRIVER in $CFG_SQL_AVAILABLE; do
5794 eval "VAL=\$CFG_SQL_$DRIVER"
5797 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5798 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5799 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5802 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5807 QMakeVar set sql-drivers "$SQL_DRIVERS"
5808 QMakeVar set sql-plugins "$SQL_PLUGINS"
5810 # Add other configuration options to the qconfig.h file
5811 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5812 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5813 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5814 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5815 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5817 # X11/Unix/Mac only configs
5818 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5819 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5820 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5821 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5822 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5823 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5824 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5825 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5826 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5827 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5828 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5829 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5830 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5831 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5833 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5834 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5835 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5836 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5837 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5838 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5839 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5840 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5841 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5842 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5843 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5844 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5845 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5847 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5848 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5849 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5850 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5851 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5852 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5853 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5854 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5856 # sort QCONFIG_FLAGS for neatness if we can
5857 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5858 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5860 if [ -n "$QCONFIG_FLAGS" ]; then
5861 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5862 #ifndef QT_BOOTSTRAPPED
5865 for cfg in $QCONFIG_FLAGS; do
5866 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5867 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5868 # figure out define logic, so we can output the correct
5869 # ifdefs to override the global defines in a project
5871 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5872 # QT_NO_option can be forcefully turned on by QT_option
5873 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5874 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5875 # QT_option can be forcefully turned off by QT_NO_option
5876 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5879 if [ -z $cfgdNeg ]; then
5880 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5887 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5888 #if defined($cfgd) && defined($cfgdNeg)
5890 #elif !defined($cfgd) && !defined($cfgdNeg)
5897 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5898 #endif // QT_BOOTSTRAPPED
5903 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5904 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5905 #define QT_VISIBILITY_AVAILABLE
5910 if [ -n "$QT_LIBINFIX" ]; then
5911 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5912 #define QT_LIBINFIX "$QT_LIBINFIX"
5917 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5919 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5920 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5921 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5923 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5924 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5925 chmod -w "$outpath/src/corelib/global/qconfig.h"
5926 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5927 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5931 #-------------------------------------------------------------------------------
5932 # save configuration into qconfig.pri
5933 #-------------------------------------------------------------------------------
5934 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5935 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5936 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5937 if [ "$CFG_DEBUG" = "yes" ]; then
5938 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5939 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5940 QT_CONFIG="$QT_CONFIG release"
5942 QT_CONFIG="$QT_CONFIG debug"
5943 elif [ "$CFG_DEBUG" = "no" ]; then
5944 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5945 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5946 QT_CONFIG="$QT_CONFIG debug"
5948 QT_CONFIG="$QT_CONFIG release"
5950 if [ "$CFG_FRAMEWORK" = "no" ]; then
5951 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5953 QT_CONFIG="$QT_CONFIG qt_framework"
5954 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5956 if [ "$CFG_DEV" = "yes" ]; then
5957 QT_CONFIG="$QT_CONFIG private_tests"
5960 cat >>"$QTCONFIG.tmp" <<EOF
5962 CONFIG += $QTCONFIG_CONFIG
5964 QT_HOST_ARCH = $CFG_HOST_ARCH
5965 QT_CPU_FEATURES = $CFG_CPUFEATURES
5966 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5967 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5968 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5969 QT_EDITION = $Edition
5970 QT_CONFIG += $QT_CONFIG
5973 QT_VERSION = $QT_VERSION
5974 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5975 QT_MINOR_VERSION = $QT_MINOR_VERSION
5976 QT_PATCH_VERSION = $QT_PATCH_VERSION
5979 QT_LIBINFIX = $QT_LIBINFIX
5980 QT_NAMESPACE = $QT_NAMESPACE
5984 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5985 echo "# pkgconfig" >> "$QTCONFIG.tmp"
5986 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5987 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5988 echo >> "$QTCONFIG.tmp"
5991 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
5992 echo "# sysroot" >>"$QTCONFIG.tmp"
5993 echo "!host_build {" >>"$QTCONFIG.tmp"
5994 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5995 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5996 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5997 echo "}" >> "$QTCONFIG.tmp"
5998 echo >> "$QTCONFIG.tmp"
6000 if [ -n "$RPATH_FLAGS" ]; then
6001 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
6003 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6004 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6005 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6006 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6009 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6010 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6011 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6014 # replace qconfig.pri if it differs from the newly created temp file
6015 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6016 rm -f "$QTCONFIG.tmp"
6018 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6021 #-------------------------------------------------------------------------------
6022 # save configuration into qmodule.pri
6023 #-------------------------------------------------------------------------------
6024 QTMODULE="$outpath/mkspecs/qmodule.pri"
6026 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
6027 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6029 if [ -n "$QT_CFLAGS_PSQL" ]; then
6030 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6032 if [ -n "$QT_LFLAGS_PSQL" ]; then
6033 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6035 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6036 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6038 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6039 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6041 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6042 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6044 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6045 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6047 if [ -n "$QT_LFLAGS_ODBC" ]; then
6048 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6050 if [ -n "$QT_LFLAGS_TDS" ]; then
6051 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6054 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6055 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6058 #dump in the OPENSSL_LIBS info
6059 if [ '!' -z "$OPENSSL_LIBS" ]; then
6060 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6061 elif [ "$CFG_OPENSSL" = "linked" ]; then
6062 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6065 #dump in the SDK info
6066 if [ '!' -z "$CFG_SDK" ]; then
6067 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6071 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6072 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6074 # replace qmodule.pri if it differs from the newly created temp file
6075 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6076 rm -f "$QTMODULE.tmp"
6078 mv -f "$QTMODULE.tmp" "$QTMODULE"
6081 #-------------------------------------------------------------------------------
6082 # save configuration into .qmake.cache
6083 #-------------------------------------------------------------------------------
6085 CACHEFILE="$outpath/.qmake.cache"
6086 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6087 cat >>"$CACHEFILE.tmp" <<EOF
6089 QT_SOURCE_TREE = \$\$quote($relpath)
6090 QT_BUILD_TREE = \$\$quote($outpath)
6092 include(\$\$PWD/mkspecs/qmodule.pri)
6093 CONFIG += dylib depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
6097 # replace .qmake.cache if it differs from the newly created temp file
6098 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6099 rm -f "$CACHEFILE.tmp"
6101 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6104 #-------------------------------------------------------------------------------
6105 # give feedback on configuration
6106 #-------------------------------------------------------------------------------
6107 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6110 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6111 echo "Build type: $PLATFORM"
6113 echo "Building on: $PLATFORM"
6114 echo "Building for: $XPLATFORM"
6117 # the missing space before $CFG_FEATURES is intentional
6118 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6119 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6121 if [ -n "$PLATFORM_NOTES" ]; then
6122 echo "Platform notes:"
6123 echo "$PLATFORM_NOTES"
6128 if [ "$OPT_VERBOSE" = "yes" ]; then
6129 echo $ECHO_N "qmake vars .......... $ECHO_C"
6130 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6131 echo "qmake switches ......... $QMAKE_SWITCHES"
6134 echo "Build .................. $CFG_BUILD_PARTS"
6135 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6136 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6137 echo "Debug .................. yes (combined)"
6138 if [ "$CFG_DEBUG" = "yes" ]; then
6139 echo "Default Link ........... debug"
6141 echo "Default Link ........... release"
6144 echo "Debug .................. $CFG_DEBUG"
6146 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6147 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6149 echo "C++11 support .......... $CFG_CXX11"
6150 if [ -n "$PKG_CONFIG" ]; then
6151 echo "pkg-config ............. yes"
6153 echo "pkg-config ............. no"
6155 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6156 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6157 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6158 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6159 echo "QtGui module ........... $CFG_GUI"
6160 echo "QtWidgets module ....... $CFG_WIDGETS"
6161 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6162 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6164 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6166 echo "QML debugging .......... $CFG_QML_DEBUG"
6167 echo "PCH support ............ $CFG_PRECOMPILE"
6168 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6169 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6170 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6171 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6172 elif [ "$CFG_ARCH" = "arm" ]; then
6173 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6174 echo "NEON support ........... ${CFG_NEON}"
6176 if [ "$CFG_ARCH" = "mips" ]; then
6177 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6179 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6180 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6181 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6182 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6183 echo "NIS support ............ $CFG_NIS"
6184 echo "CUPS support ........... $CFG_CUPS"
6185 echo "Iconv support .......... $CFG_ICONV"
6186 echo "Glib support ........... $CFG_GLIB"
6187 echo "GStreamer support ...... $CFG_GSTREAMER"
6188 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6189 echo "Large File support ..... $CFG_LARGEFILE"
6190 echo "GIF support ............ $CFG_GIF"
6191 if [ "$CFG_JPEG" = "no" ]; then
6192 echo "JPEG support ........... $CFG_JPEG"
6194 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6196 if [ "$CFG_PNG" = "no" ]; then
6197 echo "PNG support ............ $CFG_PNG"
6199 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6201 echo "zlib support ........... $CFG_ZLIB"
6202 echo "Session management ..... $CFG_SM"
6203 echo "libudev support ........ $CFG_LIBUDEV"
6205 if [ "$CFG_OPENGL" = "desktop" ]; then
6206 echo "OpenGL support ......... yes (Desktop OpenGL)"
6207 elif [ "$CFG_OPENGL" = "es2" ]; then
6208 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6210 echo "OpenGL support ......... no"
6213 if [ "$CFG_OPENVG" ]; then
6214 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6215 echo "OpenVG support ......... ShivaVG"
6217 echo "OpenVG support ......... $CFG_OPENVG"
6221 echo "XShape support ......... $CFG_XSHAPE"
6222 echo "XVideo support ......... $CFG_XVIDEO"
6223 echo "XSync support .......... $CFG_XSYNC"
6224 echo "Xinerama support ....... $CFG_XINERAMA"
6225 echo "Xcursor support ........ $CFG_XCURSOR"
6226 echo "Xfixes support ......... $CFG_XFIXES"
6227 echo "Xrandr support ......... $CFG_XRANDR"
6228 echo "Xi support ............. $CFG_XINPUT"
6229 echo "Xi2 support ............ $CFG_XINPUT2"
6230 echo "MIT-SHM support ........ $CFG_MITSHM"
6231 echo "FontConfig support ..... $CFG_FONTCONFIG"
6232 echo "XKB Support ............ $CFG_XKB"
6233 echo "immodule support ....... $CFG_IM"
6234 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6236 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6237 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6238 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6239 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6240 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6241 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6242 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6243 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6244 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6247 if [ "$CFG_OPENSSL" = "yes" ]; then
6248 OPENSSL_LINKAGE="(run-time)"
6249 elif [ "$CFG_OPENSSL" = "linked" ]; then
6250 OPENSSL_LINKAGE="(linked)"
6252 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6253 echo "Alsa support ........... $CFG_ALSA"
6254 if [ "$BUILD_ON_MAC" = "yes" ]; then
6255 echo "CoreWlan support ....... $CFG_COREWLAN"
6257 echo "libICU support ......... $CFG_ICU"
6258 echo "PCRE support ........... $CFG_PCRE"
6259 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6260 echo "Xcb support ............ limited (old version)"
6262 echo "Xcb support ............ $CFG_XCB"
6264 echo "Xrender support ........ $CFG_XRENDER"
6265 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6266 echo "XInput2 support ........ $CFG_XINPUT2"
6268 echo "EGLFS support .......... $CFG_EGLFS"
6269 echo "DirectFB support ....... $CFG_DIRECTFB"
6270 echo "LinuxFB support ........ $CFG_LINUXFB"
6271 echo "KMS support ............ $CFG_KMS"
6274 # complain about not being able to use dynamic plugins if we are using a static build
6275 if [ "$CFG_SHARED" = "no" ]; then
6277 echo "WARNING: Using static linking will disable the use of dynamically"
6278 echo "loaded plugins. Make sure to import all needed static plugins,"
6279 echo "or compile needed modules into the library."
6282 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6284 echo "NOTE: When linking against OpenSSL, you can override the default"
6285 echo "library names through OPENSSL_LIBS."
6287 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6291 exec 1>&3 3>&- # restore stdout
6292 cat $outpath/config.summary # display config feedback to user
6294 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6296 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6297 echo "if you want a pure debug build."
6302 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6307 #-------------------------------------------------------------------------------
6308 # build makefiles based on the configuration
6309 #-------------------------------------------------------------------------------
6311 if [ "$CFG_PROCESS" != "no" ]; then
6313 if [ "$CFG_PROCESS" = "full" ]; then
6314 echo "Creating makefiles. Please wait..."
6315 "$outpath/bin/qmake" -r "$relpath"
6318 "$outpath/bin/qmake" "$relpath"
6321 if [ "$OPT_FAST" = "yes" ]; then
6323 for part in $CFG_BUILD_PARTS; do
6325 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6328 if [ "x$PART_ROOTS" != "x" ]; then
6330 echo "Creating stub makefiles. Please wait..."
6331 QMAKE="$outpath/bin/qmake"
6332 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6333 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6335 test -f "$outpath/$d/Makefile" && continue
6336 echo " for $relpath/$p"
6338 mkdir -p "$outpath/$d" || exit
6339 cat > "$outpath/$d/Makefile" <<EOF || exit
6340 # $outpath/$d/Makefile: generated by configure
6342 # WARNING: This makefile will be replaced with a real makefile.
6343 # All changes made to this file will be lost.
6348 all clean install qmake first Makefile: FORCE
6349 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6359 #-------------------------------------------------------------------------------
6360 # check for platforms that we don't yet know about
6361 #-------------------------------------------------------------------------------
6362 if [ "$CFG_ARCH" = "unknown" ]; then
6365 NOTICE: configure was unable to determine the architecture
6366 for the $XQMAKESPEC target.
6368 Qt will not use a specialized implementation for any atomic
6369 operations. Instead a generic implemention based on either GCC
6370 intrinsics or C++11 std::atomic<T> will be used (when
6371 available). The generic implementations are generally as fast
6372 as and always as safe as a specialized implementation.
6374 If no generic implementation is available, Qt will use a
6375 fallback UNIX implementation which uses a single
6376 pthread_mutex_t to protect all atomic operations. This
6377 implementation is the slow (but safe) fallback implementation
6378 for architectures Qt does not yet support.
6382 #-------------------------------------------------------------------------------
6383 # check if the user passed the -no-zlib option, which is no longer supported
6384 #-------------------------------------------------------------------------------
6385 if [ -n "$ZLIB_FORCED" ]; then
6386 which_zlib="supplied"
6387 if [ "$CFG_ZLIB" = "system" ]; then
6393 NOTICE: The -no-zlib option was supplied but is no longer
6396 Qt now requires zlib support in all builds, so the -no-zlib
6397 option was ignored. Qt will be built using the $which_zlib
6402 #-------------------------------------------------------------------------------
6403 # check if the user passed the obsoleted -wayland or -no-wayland flag
6404 #-------------------------------------------------------------------------------
6405 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6408 NOTICE: The -wayland and -no-wayland flags are now obsolete
6410 All configuring of QtWayland plugin and QtCompositor happens in the module
6414 #-------------------------------------------------------------------------------
6415 # check if the user passed the obsoleted -arch or -host-arch options
6416 #-------------------------------------------------------------------------------
6417 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6420 NOTICE: The -arch and -host-arch options are obsolete.
6422 Qt now detects the target and host architectures based on compiler
6423 output. Qt will be built using $CFG_ARCH for the target architecture
6424 and $CFG_HOST_ARCH for the host architecture (note that these two
6425 will be the same unless you are cross-compiling).
6429 #-------------------------------------------------------------------------------
6430 # finally save the executed command to another script
6431 #-------------------------------------------------------------------------------
6432 if [ `basename $0` != "config.status" ]; then
6433 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6435 # add the system variables
6436 for varname in $SYSTEM_VARIABLES; do
6438 'if [ -n "\$'${varname}'" ]; then
6439 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6444 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6446 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6447 echo "#!/bin/sh" > "$outpath/config.status"
6448 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6449 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6450 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6451 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6452 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6453 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6454 echo "else" >> "$outpath/config.status"
6455 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6456 echo "fi" >> "$outpath/config.status"
6457 chmod +x "$outpath/config.status"
6460 if [ -n "$RPATH_MESSAGE" ]; then
6462 echo "$RPATH_MESSAGE"
6465 MAKE=`basename "$MAKE"`
6467 echo Qt is now configured for building. Just run \'$MAKE\'.
6468 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6469 echo Once everything is built, Qt is installed.
6470 echo You should not run \'$MAKE install\'.
6472 echo Once everything is built, you must run \'$MAKE install\'.
6473 echo Qt will be installed into $QT_INSTALL_PREFIX
6476 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.