2 #############################################################################
4 ## Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
5 ## Contact: http://www.qt-project.org/legal
7 ## This file is the build configuration utility of the Qt Toolkit.
9 ## $QT_BEGIN_LICENSE:LGPL$
10 ## Commercial License Usage
11 ## Licensees holding valid commercial Qt licenses may use this file in
12 ## accordance with the commercial license agreement provided with the
13 ## Software or, alternatively, in accordance with the terms contained in
14 ## a written agreement between you and Digia. For licensing terms and
15 ## conditions see http://qt.digia.com/licensing. For further information
16 ## use the contact form at http://qt.digia.com/contact-us.
18 ## GNU Lesser General Public License Usage
19 ## Alternatively, this file may be used under the terms of the GNU Lesser
20 ## General Public License version 2.1 as published by the Free Software
21 ## Foundation and appearing in the file LICENSE.LGPL included in the
22 ## packaging of this file. Please review the following information to
23 ## ensure the GNU Lesser General Public License version 2.1 requirements
24 ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
26 ## In addition, as a special exception, Digia gives you certain additional
27 ## rights. These rights are described in the Digia Qt LGPL Exception
28 ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
30 ## GNU General Public License Usage
31 ## Alternatively, this file may be used under the terms of the GNU
32 ## General Public License version 3.0 as published by the Free Software
33 ## Foundation and appearing in the file LICENSE.GPL included in the
34 ## packaging of this file. Please review the following information to
35 ## ensure the GNU General Public License version 3.0 requirements will be
36 ## met: http://www.gnu.org/copyleft/gpl.html.
41 #############################################################################
43 #-------------------------------------------------------------------------------
44 # script initialization
45 #-------------------------------------------------------------------------------
47 # the name of this script
49 # the directory of this script is the "source tree"
51 relpath=`(cd "$relpath"; /bin/pwd)`
52 # the current directory is the "build tree" or "object tree"
55 #license file location
56 LICENSE_FILE="$QT_LICENSE_FILE"
57 [ -z "$LICENSE_FILE" ] && LICENSE_FILE="$HOME/.qt-license"
58 if [ -f "$LICENSE_FILE" ]; then
59 tr -d '\r' <"$LICENSE_FILE" >"${LICENSE_FILE}.tmp"
60 diff "${LICENSE_FILE}.tmp" "${LICENSE_FILE}" >/dev/null 2>&1 || LICENSE_FILE="${LICENSE_FILE}.tmp"
63 # later cache the command line in config.status
64 OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
66 # initialize global variables
73 QMAKE_VARS_FILE=.qmake.vars
74 DEVICE_VARS_FILE=.device.vars
77 :> "$DEVICE_VARS_FILE"
79 #-------------------------------------------------------------------------------
81 #-------------------------------------------------------------------------------
85 echo "$@" | sed 's/ /\ /g'
88 # Adds a new qmake variable to the cache
89 # Usage: QMakeVar mode varname contents
90 # where mode is one of: set, add, del
104 echo >&2 "BUG: wrong command to QMakeVar: $1"
108 echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
111 shellArgumentListToQMakeListHelper()
114 for arg in "$@"; do retval="$retval \"$arg\""; done
118 # Convert a string usable on a shell command line into word-by-word quoted
120 shellArgumentListToQMakeList()
122 # eval is needed for the shell to interpret the backslash escape sequences
123 eval shellArgumentListToQMakeListHelper "$@"
126 # Helper function for getQMakeConf. It parses include statements in
127 # qmake.conf and prints out the expanded file
130 while read line; do case "$line" in
132 inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"`
133 current_dir=`dirname "$1"`
134 conf_file="$current_dir/$inc_file"
135 if [ ! -f "$conf_file" ]; then
136 echo "WARNING: Unable to find file $conf_file" >&2
139 getQMakeConf1 "$conf_file"
141 *load\(device_config\)*)
142 conf_file="$DEVICE_VARS_FILE"
143 if [ ! -f "$conf_file" ]; then
144 echo "WARNING: Unable to find file $conf_file" >&2
147 getQMakeConf1 "$conf_file"
159 values["LITERAL_WHITESPACE"] = " "
160 values["LITERAL_DOLLAR"] = "$"
162 /^[_A-Z0-9.]+[ \t]*\+?=/ {
163 valStart = index($0, "=") + 1
166 if (substr($0, valStart - 2, 1) == "+") {
170 variable = substr($0, 0, valStart - 2 - append)
171 value = substr($0, valStart)
172 gsub("[ \t]+", "", variable)
173 gsub("^[ \t]+", "", value)
174 gsub("[ \t]+$", "", value)
177 while (match(value, /\$\$(\{[_A-Z0-9.]+\}|[_A-Z0-9.]+)/)) {
178 ovalue = ovalue substr(value, 1, RSTART - 1)
179 var = substr(value, RSTART + 2, RLENGTH - 2)
180 value = substr(value, RSTART + RLENGTH)
182 var = substr(var, 2, length(var) - 2)
184 ovalue = ovalue values[var]
186 ovalue = ovalue value
188 combinedValue = values[variable]
189 if (append == 1 && length(combinedValue) > 0) {
190 combinedValue = combinedValue " " ovalue
192 combinedValue = ovalue
194 values[variable] = combinedValue
197 for (var in values) {
198 print var "=" values[var]
206 echo "$2" | $AWK "/^($1)=/ { print substr(\$0, index(\$0, \"=\") + 1) }"
209 # relies on $QMAKESPEC being set correctly. parses include statements in
210 # qmake.conf and prints out the expanded file
213 if [ -z "$specvals" ]; then
214 specvals=`getQMakeConf1 "$QMAKESPEC/qmake.conf" | getQMakeConf2`
216 getQMakeConf3 "$1" "$specvals"
221 if [ -z "$xspecvals" ]; then
222 xspecvals=`getQMakeConf1 "$XQMAKESPEC/qmake.conf" | getQMakeConf2`
224 getQMakeConf3 "$1" "$xspecvals"
227 # 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 Digia,"
514 echo "or install the Qt Open Source Edition if you intend to"
515 echo "develop free software."
518 if [ -z "$Licensee" ]; then
520 echo "Invalid license key. Please check the license key."
524 if [ -z "$LicenseKeyExt" ]; then
526 echo $ECHO_N "Please enter your license key: $ECHO_C"
528 Licensee="Unknown user"
533 echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
534 && LicenseValid="yes" \
536 if [ "$LicenseValid" != "yes" ]; then
538 echo "Invalid license key. Please check the license key."
541 ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
542 PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d -`
543 LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
544 LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
546 # determine which edition we are licensed to use
547 case "$LicenseTypeCode" in
549 LicenseType="Commercial"
553 QT_EDITION="QT_EDITION_UNIVERSAL"
556 Edition="FullFramework"
557 EditionString="Full Framework"
558 QT_EDITION="QT_EDITION_DESKTOP"
561 Edition="GUIFramework"
562 EditionString="GUI Framework"
563 QT_EDITION="QT_EDITION_DESKTOPLIGHT"
568 LicenseType="Evaluation"
569 QMakeVar add DEFINES QT_EVAL
573 QT_EDITION="QT_EDITION_EVALUATION"
578 if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
580 echo "Invalid license key. Please check the license key."
584 # verify that we are licensed to use Qt on this platform
586 case "$PlatformCode" in
589 PlatformCode=`echo "$PlatformCode" | sed 'h;y/8NPQRTZ/UCWX9M7/;x;G;s/\(.\)....\(.\)./\1\2/'`
593 PlatformCode=`echo "$PlatformCode" | sed 's/.$//'`
596 ### EMBEDDED_QPA logic missing ###
597 case "$PlatformCode,$PLATFORM_MAC" in
598 X9,* | XC,* | XU,* | XW,* | XM,*)
600 LICENSE_EXTENSION="-ALLOS"
602 8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*)
603 # Qt for Embedded Linux
604 LICENSE_EXTENSION="-EMBEDDED"
606 6M,* | N7,* | N9,* | NX,*)
608 LICENSE_EXTENSION="-EMBEDDED"
610 FM,* | LM,yes | ZM,no)
612 LICENSE_EXTENSION="-DESKTOP"
616 [ "$PLATFORM_MAC" = "yes" ] && Platform='Mac OS X'
618 echo "You are not licensed for the $Platform platform."
620 echo "Please use the contact form at http://qt.digia.com/contact-us"
621 echo "to upgrade your license to include the $Platform platform, or install"
622 echo "the Qt Open Source Edition if you intend to develop free software."
627 if test -r "$relpath/.LICENSE"; then
628 # Generic, non-final license
630 line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
635 *TECHNOLOGY?PREVIEW*)
642 echo >&2 "Invalid license files; cannot continue"
647 EditionString="$Edition"
648 QT_EDITION="QT_EDITION_DESKTOP"
651 case "$LicenseFeatureCode" in
654 case "$LicenseType" in
656 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
659 cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
665 case "$LicenseType" in
667 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
670 cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
676 echo "Invalid license key. Please check the license key."
680 case "$LicenseFeatureCode" in
688 if [ '!' -f "$outpath/LICENSE" ]; then
689 echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
690 echo "this software has disappeared."
692 echo "Sorry, you are not licensed to use this software."
693 echo "Try re-installing."
697 elif [ $COMMERCIAL_USER = "no" ]; then
698 # Open Source edition - may only be used under the terms of the GPL or LGPL.
699 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
700 Licensee="Open Source"
702 EditionString="Open Source"
703 QT_EDITION="QT_EDITION_OPENSOURCE"
706 #-------------------------------------------------------------------------------
707 # initalize variables
708 #-------------------------------------------------------------------------------
710 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
711 for varname in $SYSTEM_VARIABLES; do
712 qmakevarname="${varname}"
713 # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
714 if [ "${varname}" = "LDFLAGS" ]; then
715 qmakevarname="LFLAGS"
716 elif [ "${varname}" = "LD" ]; then
720 'if [ -n "\$'${varname}'" ]; then
721 QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
725 # Use CC/CXX to run config.tests
726 mkdir -p "$outpath/config.tests"
727 rm -f "$outpath/config.tests/.qmake.cache"
728 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
730 QMakeVar add styles "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
742 CFG_GUI=auto # (yes|no|auto)
748 CFG_FORCEDEBUGINFO=no
769 CFG_OPENVG_LC_INCLUDES=no
770 CFG_OPENVG_SHIVA=auto
771 CFG_OPENVG_ON_OPENGL=auto
777 QT_DEFAULT_BUILD_PARTS="libs tools examples"
781 CFG_AUDIO_BACKEND=auto
784 CFG_JAVASCRIPTCORE_JIT=auto
787 # Target architecture
790 # Host architecture, same as CFG_ARCH when not cross-compiling
792 CFG_HOST_CPUFEATURES=
793 # Set when the -arch or -host-arch arguments are used
794 OPT_OBSOLETE_HOST_ARG=no
808 CFG_OBSOLETE_WAYLAND=no
820 CFG_SEPARATE_DEBUG_INFO=no
821 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
822 CFG_REDUCE_EXPORTS=auto
830 CFG_REDUCE_RELOCATIONS=auto
831 CFG_ACCESSIBILITY=auto
836 CFG_CLOCK_GETTIME=auto
837 CFG_CLOCK_MONOTONIC=auto
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" ] || [ "$VAL" = "no" ]; then
1309 if [ "$VAL" = "yes" ]; then
1310 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1315 # keep compatibility with old platform names
1321 PLATFORM=hpux-acc-o64
1324 PLATFORM=hpux-acc-64
1327 PLATFORM=hpux-acc-64
1339 PLATFORM=reliant-cds-64
1342 PLATFORM=solaris-cc-64
1345 PLATFORM=unixware-cc
1348 PLATFORM=unixware-g++
1351 PLATFORM=unixware-cc
1354 PLATFORM=unixware-g++
1360 i386) NATIVE_64_ARCH="x86_64" ;;
1361 powerpc) NATIVE_64_ARCH="ppc64" ;;
1362 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1364 if [ ! -z "$NATIVE_64_ARCH" ]; then
1365 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1372 case `basename "$XPLATFORM"` in win32-g++*)
1375 CFG_REDUCE_EXPORTS=no
1380 XPLATFORM=`resolveDeviceMkspec $VAL`
1381 [ "$XPLATFORM" = "undefined" ] && exit 101
1384 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1385 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1386 DeviceVar set $DEV_VAR $DEV_VAL
1389 QT_QPA_DEFAULT_PLATFORM="$VAL"
1392 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1393 CFG_DEBUG_RELEASE="$VAL"
1399 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1400 CFG_RELEASE_QMAKE="$VAL"
1406 if [ "$VAL" = "yes" ]; then
1408 elif [ "$VAL" = "no" ]; then
1415 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1416 CFG_PREFIX_INSTALL="$VAL"
1425 CFG_FORCEDEBUGINFO="$VAL"
1427 developer-build|commercial|opensource)
1428 # These switches have been dealt with already
1431 if [ "$VAL" = "yes" ]; then
1433 elif [ "$VAL" = "no" ]; then
1440 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1441 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1447 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1448 if [ "$VAL" = "no" ]; then
1449 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1450 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1451 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1457 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1464 if [ "$VAL" = "no" ]; then
1471 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1479 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1486 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1493 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1500 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1507 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1514 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1521 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1528 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1529 CFG_PRECOMPILE="$VAL"
1534 separate-debug-info)
1535 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1536 CFG_SEPARATE_DEBUG_INFO="$VAL"
1537 elif [ "$VAL" = "nocopy" ] ; then
1538 CFG_SEPARATE_DEBUG_INFO="yes"
1539 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1545 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1546 CFG_REDUCE_EXPORTS="$VAL"
1552 if [ "$VAL" = "no" ]; then
1559 if [ "$VAL" = "no" ]; then
1566 if [ "$VAL" = "no" ]; then
1573 if [ "$VAL" = "no" ]; then
1580 if [ "$VAL" = "no" ]; then
1587 if [ "$VAL" = "no" ]; then
1594 if [ "$VAL" = "no" ]; then
1604 if [ "$VAL" = "no" ]; then
1611 if [ "$VAL" = "no" ]; then
1618 if [ "$VAL" = "no" ]; then
1619 CFG_MIPS_DSPR2="$VAL"
1625 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1626 CFG_REDUCE_RELOCATIONS="$VAL"
1632 [ "$VAL" = "qt" ] && VAL=yes
1633 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1638 # No longer supported:
1639 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1642 if [ "$VAL" = "system" ]; then
1649 [ "$VAL" = "yes" ] && VAL=qt
1650 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1657 [ "$VAL" = "yes" ] && VAL=qt
1658 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1665 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1672 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1679 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1686 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1693 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1700 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1701 CFG_FONTCONFIG="$VAL"
1707 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1714 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1721 CFG_OBSOLETE_WAYLAND=yes
1724 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1731 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1738 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1745 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1752 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1759 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1766 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1773 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1780 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1787 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1788 CFG_GSTREAMER="$VAL"
1794 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1795 CFG_QGTKSTYLE="$VAL"
1801 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1804 if [ "$VAL" = "no" ]; then
1812 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1814 elif [ "$VAL" = "no" ]; then
1821 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1822 QPA_PLATFORM_GUARD="$VAL"
1828 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1830 elif [ "$VAL" = "runtime" ]; then
1837 if [ "$VAL" = "yes" ]; then
1844 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1851 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1852 CFG_LARGEFILE="$VAL"
1858 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1865 if [ "$VAL" = "yes" ]; then
1866 CFG_OPENSSL="linked"
1872 if [ "$VAL" = "yes" ]; then
1875 if [ "$VAL" = "no" ]; then
1883 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1884 CFG_JAVASCRIPTCORE_JIT="$VAL"
1890 if [ "$VAL" = "yes" ]; then
1891 OPT_CONFIRM_LICENSE="$VAL"
1897 if [ "$VAL" = "yes" ]; then
1903 sql-*|imageformat-*)
1904 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1905 # if autoconf style options were used, $VAL can be "yes" or "no"
1906 [ "$VAL" = "yes" ] && VAL=qt
1907 # now $VAL should be "no", "qt", or "plugin"... double-check
1908 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1911 # now $VAL is "no", "qt", or "plugin"
1913 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1914 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1916 # Grab the available values
1919 avail="$CFG_SQL_AVAILABLE"
1922 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1923 if [ "$OPT" != "plugin" ]; then
1924 # png is always built in
1930 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1934 # Check that that user's value is available.
1937 if [ "$VAL" = "$d" ]; then
1942 [ "$found" = yes ] || ERROR=yes
1944 if [ "$VAR" = "sql" ]; then
1945 # set the CFG_SQL_driver
1946 eval "CFG_SQL_$VAL=\$OPT"
1948 elif [ "$VAR" = "imageformat" ]; then
1949 [ "$OPT" = "qt" ] && OPT=yes
1950 VAL="`echo $VAL |tr a-z A-Z`"
1951 eval "CFG_$VAL=$OPT"
1955 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1956 if [ "$OPT" = "plugin" ]; then
1959 QMakeVar add "${VAR}s" "${VAL}"
1960 elif [ "$OPT" = "no" ]; then
1961 PLUG_VAR="${VAR}-plugin"
1963 QMakeVar del "${IN_VAR}s" "$VAL"
1964 QMakeVar del "${PLUG_VAR}s" "$VAL"
1966 if [ "$ERROR" = "yes" ]; then
1967 echo "$CURRENT_OPT: unknown argument"
1972 if [ "$VAL" = "yes" ]; then
1973 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1974 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1978 elif [ "$VAL" = "no" ]; then
1979 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1980 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1989 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1996 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2003 DEFINES="$DEFINES \"$VAL\""
2004 D_FLAGS="$D_FLAGS -D\"$VAL\""
2007 I_FLAGS="$I_FLAGS -I\"${VAL}\""
2010 L_FLAGS="$L_FLAGS -L\"${VAL}\""
2013 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2016 L_FLAGS="$L_FLAGS -l\"${VAL}\""
2019 if [ "$BUILD_ON_MAC" = "yes" ]; then
2020 L_FLAGS="$L_FLAGS -F\"${VAL}\""
2021 I_FLAGS="$I_FLAGS -F\"${VAL}\""
2027 if [ "$BUILD_ON_MAC" = "yes" ]; then
2028 L_FLAGS="$L_FLAGS -framework \"${VAL}\""
2034 W_FLAGS="$W_FLAGS \"${VAL}\""
2049 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2050 CFG_AUDIO_BACKEND="$VAL"
2056 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2063 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2064 CFG_FORCE_ASSERTS="$VAL"
2070 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2077 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2087 if [ "$UNKNOWN_OPT" = "yes" ]; then
2088 echo "${CURRENT_OPT}: invalid command-line switch"
2094 # update QT_CONFIG to show our current predefined configuration
2095 case "$CFG_QCONFIG" in
2096 minimal|small|medium|large|full)
2097 # these are a sequence of increasing functionality
2098 for c in minimal small medium large full; do
2099 QT_CONFIG="$QT_CONFIG $c-config"
2100 [ "$CFG_QCONFIG" = $c ] && break
2104 # not known to be sufficient for anything
2105 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2106 echo >&2 "Error: configuration file not found:"
2107 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2109 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2114 #-------------------------------------------------------------------------------
2115 # build tree initialization
2116 #-------------------------------------------------------------------------------
2118 # where to find which..
2119 unixtests="$relpath/config.tests/unix"
2120 mactests="$relpath/config.tests/mac"
2121 WHICH="$unixtests/which.test"
2123 PERL=`$WHICH perl 2>/dev/null`
2125 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2127 for e in gawk nawk awk; do
2128 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2135 PERL="/usr/bin/perl"
2136 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2140 ### skip this if the user just needs help...
2141 if [ "$OPT_HELP" != "yes" ]; then
2143 # is this a shadow build?
2144 if [ "$OPT_SHADOW" = "maybe" ]; then
2146 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2147 if [ -h "$outpath" ]; then
2148 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2154 if [ "$OPT_SHADOW" = "yes" ]; then
2155 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2156 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2157 echo >&2 "Cannot proceed."
2160 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2163 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2165 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2166 echo "Qt can be built in release mode with separate debug information, so"
2167 echo "-debug-and-release is not necessary anymore"
2171 if [ "$CFG_SILENT" = "yes" ]; then
2172 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2175 # if the source tree is different from the build tree,
2176 # symlink or copy part of the sources
2177 if [ "$OPT_SHADOW" = "yes" ]; then
2178 echo "Preparing build tree..."
2180 if [ -z "$PERL" ]; then
2182 echo "You need perl in your PATH to make a shadow build."
2183 echo "Cannot proceed."
2187 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2189 # make a syncqt script that can be used in the shadow
2190 rm -f "$outpath/bin/syncqt"
2191 if [ -x "$relpath/bin/syncqt" ]; then
2192 mkdir -p "$outpath/bin"
2193 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2194 echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2195 chmod 755 "$outpath/bin/syncqt"
2198 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2199 rm -f "$outpath/bin/$i"
2200 if [ -x "$relpath/bin/$i" ]; then
2201 mkdir -p "$outpath/bin"
2202 echo "#!/bin/sh" >"$outpath/bin/$i"
2203 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2204 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2205 chmod 755 "$outpath/bin/$i"
2209 # save a pre-existing mkspecs/modules dir
2210 test -d "$outpath/mkspecs/modules" && \
2211 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2212 # ditto for mkspecs/modules-inst
2213 test -d "$outpath/mkspecs/modules-inst" && \
2214 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2216 # symlink the mkspecs directory
2217 mkdir -p "$outpath/mkspecs"
2218 rm -rf "$outpath"/mkspecs/*
2219 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2220 rm -f "$outpath/mkspecs/default"
2224 rm -rf "$outpath/mkspecs/$1"
2225 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2226 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2229 # Special case for mkspecs/features directory.
2230 # To be able to place .prf files into a shadow build directory,
2231 # we're creating links for files only. The directory structure is reproduced.
2232 ShadowMkspecs features
2234 # The modules dir is special, too.
2235 if test -d "$outpath/mkspecs-modules"; then
2236 rm -rf "$outpath/mkspecs/modules"
2237 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2239 ShadowMkspecs modules
2242 # The modules-inst dir is not quite as special, but still.
2243 if test -d "$outpath/mkspecs-modules-inst"; then
2244 rm -rf "$outpath/mkspecs/modules-inst"
2245 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2248 # symlink the doc directory
2249 rm -rf "$outpath/doc"
2250 ln -s "$relpath/doc" "$outpath/doc"
2253 # symlink fonts to be able to run application from build directory
2254 if [ ! -d "${outpath}/lib/fonts" ]; then
2255 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2256 mkdir -p "${outpath}/lib"
2257 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2261 if [ "$OPT_FAST" = "auto" ]; then
2262 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2269 # find a make command
2270 if [ -z "$MAKE" ]; then
2272 for mk in gmake make; do
2273 if "$WHICH" $mk >/dev/null 2>&1; then
2278 if [ -z "$MAKE" ]; then
2279 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2280 echo >&2 "Cannot proceed."
2283 # export MAKE, we need it later in the config.tests
2289 #-------------------------------------------------------------------------------
2290 # auto-detect all that hasn't been specified in the arguments
2291 #-------------------------------------------------------------------------------
2293 if [ -z "$PLATFORM" ]; then
2295 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2297 OSX_VERSION=`uname -r | cut -d. -f1`
2298 # Select compiler. Use g++ unless we find a usable Clang version
2300 if [ "$OSX_VERSION" -ge 12 ]; then
2301 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2303 elif [ "$OSX_VERSION" -eq 11 ]; then
2304 # We're on Lion. Check if we have a supported Clang version
2305 case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2308 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2315 #PLATFORM=aix-g++-64
2317 #PLATFORM=aix-xlc-64
2319 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2329 # PLATFORM=dynix-g++
2335 PLATFORM=freebsd-g++
2337 - Also available for FreeBSD: freebsd-icc
2341 PLATFORM=openbsd-g++
2352 #PLATFORM=irix-cc-64
2354 - Also available for IRIX: irix-g++ irix-cc-64
2358 case "$UNAME_MACHINE" in
2360 #PLATFORM=hpuxi-acc-32
2361 PLATFORM=hpuxi-acc-64
2363 - Also available for HP-UXi: hpuxi-acc-32
2369 #PLATFORM=hpux-acc-64
2371 #PLATFORM=hpux-acc-o64
2373 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2382 - Also available for Tru64: tru64-g++
2386 case "$UNAME_MACHINE" in
2388 PLATFORM=linux-g++-64
2395 - Also available for Linux: linux-kcc linux-icc linux-cxx
2399 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2400 PLATFORM="solaris-g++"
2402 #PLATFORM=solaris-g++
2404 #PLATFORM=solaris-cc64
2407 - Also available for Solaris: solaris-g++ solaris-cc-64
2410 ReliantUNIX-*:*|SINIX-*:*)
2411 PLATFORM=reliant-cds
2412 #PLATFORM=reliant-cds-64
2414 - Also available for Reliant UNIX: reliant-cds-64
2424 #PLATFORM=unixware-g++
2425 PLATFORM=unixware-cc
2427 - Also available for OpenUNIX: unixware-g++
2431 #PLATFORM=unixware-g++
2432 PLATFORM=unixware-cc
2434 - Also available for UnixWare: unixware-g++
2441 - Also available for SCO OpenServer: sco-g++
2445 PLATFORM=unixware-g++
2448 PLATFORM=unsupported/qnx-g++
2451 if [ "$OPT_HELP" != "yes" ]; then
2453 echo " The build script does not currently recognize all" >&2
2454 echo " platforms supported by Qt." >&2
2455 echo " Rerun this script with a -platform option listed to" >&2
2456 echo " set the system/compiler combination you use." >&2
2463 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2465 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2466 case "$XPLATFORM" in *-maemo*) XPLATFORM_MAEMO=yes;; esac
2467 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2469 if [ -d "$PLATFORM" ]; then
2470 QMAKESPEC="$PLATFORM"
2472 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2474 if [ -d "$XPLATFORM" ]; then
2475 XQMAKESPEC="$XPLATFORM"
2477 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2479 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2480 QT_CROSS_COMPILE=yes
2481 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2482 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2485 if [ "$BUILD_ON_MAC" = "yes" ]; then
2486 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2488 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2489 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2490 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2491 echo " built with 'macx-g++'" >&2
2497 # check specified platforms are supported
2498 if [ '!' -d "$QMAKESPEC" ]; then
2500 echo " The specified system/compiler is not supported:"
2504 echo " Please see the README file for a complete list."
2508 if [ '!' -d "$XQMAKESPEC" ]; then
2510 echo " The specified system/compiler is not supported:"
2514 echo " Please see the README file for a complete list."
2518 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2520 echo " The specified system/compiler port is not complete:"
2522 echo " $XQMAKESPEC/qplatformdefs.h"
2524 echo " Please use the contact form at http://qt.digia.com/contact-us"
2529 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2530 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2531 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2532 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2533 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2537 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2538 case `basename "$XPLATFORM"` in
2541 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2543 echo "Please use the contact form at http://qt.digia.com/contact-us"
2544 echo "to upgrade your license to include this platform, or install"
2545 echo "the Qt Open Source Edition if you intend to develop free software."
2551 #-------------------------------------------------------------------------------
2552 # tests that don't need qmake (must be run before displaying help)
2553 #-------------------------------------------------------------------------------
2555 # detect build style
2556 if [ "$CFG_DEBUG" = "auto" ]; then
2557 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2558 CFG_DEBUG_RELEASE=yes
2560 elif [ "$CFG_DEV" = "yes" ]; then
2561 CFG_DEBUG_RELEASE=no
2564 CFG_DEBUG_RELEASE=no
2568 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2569 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2572 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2573 QT_CONFIG="$QT_CONFIG force_debug_info"
2576 # pass on $CFG_SDK to the arch/configure tests.
2577 if [ -n "$CFG_SDK" ]; then
2578 MAC_SDK_FLAG="-sdk $CFG_SDK"
2583 # find the default framework value
2584 if [ "$BUILD_ON_MAC" = "yes" ]; then
2585 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2586 CFG_FRAMEWORK="$CFG_SHARED"
2587 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2589 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2597 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2599 TEST_COMPILER=$QMAKE_CONF_COMPILER
2600 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2601 if [ -z "$TEST_COMPILER" ]; then
2602 echo "ERROR: Cannot set the compiler for the configuration tests"
2606 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2609 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2610 if [ -n "$GCC_MACHINE_DUMP" ]; then
2611 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2614 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2615 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2619 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2621 # auto-detect precompiled header support
2622 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2623 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2630 # auto-detect support for separate debug info in objcopy
2631 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2632 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2633 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2634 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2635 CFG_SEPARATE_DEBUG_INFO=no
2639 # binutils on HP-UX is buggy; default to no.
2640 CFG_SEPARATE_DEBUG_INFO=no
2643 CFG_SEPARATE_DEBUG_INFO=yes
2649 # auto-detect -fvisibility support
2650 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2651 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2652 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2653 echo "-reduce-exports was requested but this compiler does not support it"
2654 echo "Re-run configure with -v for more information"
2657 CFG_REDUCE_EXPORTS=no
2659 CFG_REDUCE_EXPORTS=yes
2663 # detect the availability of the -Bsymbolic-functions linker optimization
2664 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2665 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2666 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2667 echo "-reduce-relocations was requested but this compiler does not support it"
2668 echo "Re-run configure with -v for more information"
2671 CFG_REDUCE_RELOCATIONS=no
2673 CFG_REDUCE_RELOCATIONS=yes
2677 # auto-detect GNU make support
2678 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2682 # find the default framework value
2683 if [ "$BUILD_ON_MAC" = "yes" ]; then
2684 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2685 CFG_FRAMEWORK="$CFG_SHARED"
2686 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2688 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2696 # auto-detect default include and library search paths
2697 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2698 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2699 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2700 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2701 /^End of search/ { yup=0 }
2702 yup { print substr($0, 2) }
2703 /^\#include </ { yup=1 }
2705 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2707 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2710 #setup the build parts
2711 if [ -z "$CFG_BUILD_PARTS" ]; then
2712 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2714 # build tests by default, if a developer build
2715 if [ "$CFG_DEV" = "yes" ]; then
2716 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2719 # don't build tools by default when cross-compiling
2720 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2721 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2724 for nobuild in $CFG_NOBUILD_PARTS; do
2725 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2727 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2729 # echo "WARNING: libs is a required part of the build."
2731 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2734 #-------------------------------------------------------------------------------
2735 # post process QT_INSTALL_* variables
2736 #-------------------------------------------------------------------------------
2738 if [ -z "$QT_INSTALL_PREFIX" ]; then
2739 if [ "$CFG_DEV" = "yes" ]; then
2740 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2742 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2745 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2747 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2748 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2749 if [ "$BUILD_ON_MAC" = "yes" ]; then
2750 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2753 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2756 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2758 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2759 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2760 if [ "$BUILD_ON_MAC" = "yes" ]; then
2761 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2766 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2769 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2771 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2772 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2773 if [ "$BUILD_ON_MAC" = "yes" ]; then
2774 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2775 QT_INSTALL_LIBS="/Library/Frameworks"
2779 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2781 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2783 if [ -z "$QT_INSTALL_BINS" ]; then #default
2784 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2785 if [ "$BUILD_ON_MAC" = "yes" ]; then
2786 QT_INSTALL_BINS="/Developer/Applications/Qt"
2789 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2791 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2793 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2794 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2795 if [ "$BUILD_ON_MAC" = "yes" ]; then
2796 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2799 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2801 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2803 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2804 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2805 if [ "$BUILD_ON_MAC" = "yes" ]; then
2806 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2809 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2811 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2813 if [ -z "$QT_INSTALL_DATA" ]; then #default
2814 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2816 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2818 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2819 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2821 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2823 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2824 if [ "$BUILD_ON_MAC" = "yes" ]; then
2825 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2827 QT_INSTALL_SETTINGS=/etc/xdg
2830 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2832 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2833 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2834 if [ "$BUILD_ON_MAC" = "yes" ]; then
2835 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2838 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2840 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2843 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2844 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2845 if [ "$BUILD_ON_MAC" = "yes" ]; then
2846 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2849 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2851 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2853 #------- host paths --------
2855 if [ -z "$QT_HOST_PREFIX" ]; then
2856 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2859 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2863 if [ -z "$QT_HOST_BINS" ]; then #default
2865 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2866 if [ "$BUILD_ON_MAC" = "yes" ]; then
2867 QT_HOST_BINS="/Developer/Applications/Qt"
2870 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2872 QT_HOST_BINS="$QT_INSTALL_BINS"
2875 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2877 if [ -z "$QT_HOST_DATA" ]; then #default
2879 QT_HOST_DATA="$QT_HOST_PREFIX"
2881 QT_HOST_DATA="$QT_INSTALL_DATA"
2884 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2887 #-------------------------------------------------------------------------------
2888 # help - interactive parts of the script _after_ this section please
2889 #-------------------------------------------------------------------------------
2891 # next, emit a usage message if something failed.
2892 if [ "$OPT_HELP" = "yes" ]; then
2893 [ "x$ERROR" = "xyes" ] && echo
2894 if [ "$CFG_NIS" = "no" ]; then
2901 if [ "$CFG_CUPS" = "no" ]; then
2908 if [ "$CFG_ICONV" = "no" ]; then
2915 if [ "$CFG_LARGEFILE" = "no" ]; then
2922 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2930 if [ "$CFG_XCB" = "no" ]; then
2938 if [ "$CFG_EGLFS" = "no" ]; then
2946 if [ "$CFG_DIRECTFB" = "no" ]; then
2954 if [ "$CFG_LINUXFB" = "no" ]; then
2962 if [ "$CFG_KMS" = "no" ]; then
2970 if [ "$CFG_XINPUT2" = "no" ]; then
2978 if [ "$CFG_DBUS" = "no" ]; then
2986 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2994 if [ "$CFG_GLIB" = "no" ]; then
3003 Usage: $relconf [options]
3005 Installation options:
3007 These are optional, but you may specify install directories.
3009 -prefix <dir> ...... This will install everything relative to <dir>
3010 (default $QT_INSTALL_PREFIX)
3012 -hostprefix [dir] .. Tools and libraries needed when developing
3013 applications are installed in [dir]. If [dir] is
3014 not given, the current build directory will be used.
3017 * -prefix-install .... Force a sandboxed "local" installation of
3018 Qt. This will install into
3019 $QT_INSTALL_PREFIX, if this option is
3020 disabled then some platforms will attempt a
3021 "system" install by placing default values
3022 in a system location other than PREFIX.
3024 You may use these to separate different parts of the install:
3026 -bindir <dir> ......... Executables will be installed to <dir>
3027 (default PREFIX/bin)
3028 -libdir <dir> ......... Libraries will be installed to <dir>
3029 (default PREFIX/lib)
3030 -docdir <dir> ......... Documentation will be installed to <dir>
3031 (default PREFIX/doc)
3032 -headerdir <dir> ...... Headers will be installed to <dir>
3033 (default PREFIX/include)
3034 -plugindir <dir> ...... Plugins will be installed to <dir>
3035 (default PREFIX/plugins)
3036 -importdir <dir> ...... Imports for QML will be installed to <dir>
3037 (default PREFIX/imports)
3038 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3040 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3041 (default PREFIX/translations)
3042 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3043 (default PREFIX/etc/settings)
3044 -examplesdir <dir> .... Examples will be installed to <dir>
3045 (default PREFIX/examples)
3046 -testsdir <dir> ....... Tests will be installed to <dir>
3047 (default PREFIX/tests)
3049 -hostbindir <dir> .. Host executables will be installed to <dir>
3050 (default HOSTPREFIX/bin)
3051 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3052 (default HOSTPREFIX)
3056 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3057 that needs to be evaluated. If the evaluation succeeds, the feature is
3058 included. Here is a short explanation of each option:
3060 * -release ........... Compile and link Qt with debugging turned off.
3061 -debug ............. Compile and link Qt with debugging turned on.
3062 -debug-and-release . Compile and link two versions of Qt, with and without
3063 debugging turned on (Mac only).
3065 -force-debug-info .. Create symbol files for release builds.
3067 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3069 -opensource ........ Compile and link the Open-Source Edition of Qt.
3070 -commercial ........ Compile and link the Commercial Edition of Qt.
3072 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3073 + -c++11 ............. Compile Qt with C++11 support enabled.
3075 * -shared ............ Create and use shared Qt libraries.
3076 -static ............ Create and use static Qt libraries.
3078 * -process ........... Generate only a top-level Makefile.
3079 -fully-process ..... Generate Makefiles for the entire Qt tree.
3080 -dont-process ...... Do not generate any Makefiles.
3082 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3084 -fast .............. Configure Qt quickly by generating Makefiles only for
3085 library and subdirectory targets. All other Makefiles
3086 are created as wrappers, which will in turn run qmake.
3088 -no-largefile ...... Disables large file support.
3089 + -largefile ......... Enables Qt to access files larger than 4 GB.
3091 -no-accessibility .. Do not compile Accessibility support.
3092 + -accessibility ..... Compile Accessibility support.
3094 -no-sql-<driver> ... Disable SQL <driver> entirely.
3095 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3097 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3100 Possible values for <driver>:
3101 [ $CFG_SQL_AVAILABLE ]
3103 -system-sqlite ..... Use sqlite from the operating system.
3105 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3106 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3108 -no-qml-debug ...... Do not build the in-process QML debugging support.
3109 + -qml-debug ......... Build the QML debugging support.
3111 -platform target ... The operating system and compiler you are building
3114 See the README file for a list of supported
3115 operating systems and compilers.
3117 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3118 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3119 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3120 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3121 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3122 -no-avx ............ Do not compile with use of AVX instructions.
3123 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3124 -no-neon ........... Do not compile with use of NEON instructions.
3125 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3126 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3128 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3129 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3131 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3133 -D <string> ........ Add an explicit define to the preprocessor.
3134 -I <string> ........ Add an explicit include path.
3135 -L <string> ........ Add an explicit library path.
3137 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3138 configure determines whether to use pkg-config or not with
3139 some heuristics such as checking the environment variables.
3140 -no-pkg-config ..... Disable use of pkg-config.
3141 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3142 detection heuristic).
3144 -help, -h .......... Display this information.
3146 Third Party Libraries:
3148 -qt-zlib ........... Use the zlib bundled with Qt.
3149 + -system-zlib ....... Use zlib from the operating system.
3150 See http://www.gzip.org/zlib
3152 -no-gif ............ Do not compile GIF reading support.
3154 -no-libpng ......... Do not compile PNG support.
3155 -qt-libpng ......... Use the libpng bundled with Qt.
3156 + -system-libpng ..... Use libpng from the operating system.
3157 See http://www.libpng.org/pub/png
3159 -no-libjpeg ........ Do not compile JPEG support.
3160 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3161 + -system-libjpeg .... Use libjpeg from the operating system.
3162 See http://www.ijg.org
3164 -no-openssl ........ Do not compile support for OpenSSL.
3165 + -openssl ........... Enable run-time OpenSSL support.
3166 -openssl-linked .... Enabled linked OpenSSL support.
3168 -qt-pcre ........... Use the PCRE library bundled with Qt.
3169 + -system-pcre ....... Use the PCRE library from the operating system.
3173 -make <part> ....... Add part to the list of parts to be built at make time.
3174 ($QT_DEFAULT_BUILD_PARTS)
3175 -nomake <part> ..... Exclude part from the list of parts to be built.
3177 -no-gui ............ Don't build the QtGui library and dependencies.
3178 + -gui ............... Build the QtGui library and dependencies.
3180 -no-widgets ........ Don't build the QtWidgets library and dependencies.
3181 + -widgets ........... Build the QtWidgets library and dependencies.
3183 -R <string> ........ Add an explicit runtime library path to the Qt
3185 -l <string> ........ Add an explicit library.
3187 -no-rpath .......... Do not use the library install path as a runtime
3189 + -rpath ............. Link Qt libraries and executables using the library
3190 install path as a runtime library path. Equivalent
3191 to -R install_libpath
3193 -continue .......... Continue as far as possible if an error occurs.
3195 -verbose, -v ....... Print verbose information about each step of the
3198 -silent ............ Reduce the build output so that warnings and errors
3199 can be seen more easily.
3201 * -no-optimized-qmake ... Do not build qmake optimized.
3202 -optimized-qmake ...... Build qmake optimized.
3204 $NSN -no-nis ............ Do not compile NIS support.
3205 $NSY -nis ............... Compile NIS support.
3207 $CUN -no-cups ........... Do not compile CUPS support.
3208 $CUY -cups .............. Compile CUPS support.
3209 Requires cups/cups.h and libcups.so.2.
3211 $CIN -no-iconv .......... Do not compile support for iconv(3).
3212 $CIY -iconv ............. Compile support for iconv(3).
3214 -no-icu ............ Do not compile support for ICU libraries.
3215 + -icu ............... Compile support for ICU libraries.
3217 -no-strip .......... Do not strip binaries and libraries of unneeded symbols.
3218 * -strip ............. Strip binaries and libraries of unneeded symbols when installing.
3220 $PHN -no-pch ............ Do not use precompiled header support.
3221 $PHY -pch ............... Use precompiled header support.
3223 $DBN -no-dbus ........... Do not compile the QtDBus module.
3224 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3225 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3227 -reduce-relocations ..... Reduce relocations in the libraries through extra
3228 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3229 experimental; needs GNU ld >= 2.18).
3231 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3233 -device <name> ............... Cross-compile for device <name> (experimental)
3234 -device-option <key=value> ... Add device specific options for the device mkspec
3237 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3238 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3240 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3241 $XCBY -xcb ............... Compile Xcb support.
3243 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3244 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3246 $DFBN -no-directfb ....... Do not compile DirectFB support.
3247 $DFBY -directfb .......... Compile DirectFB support.
3249 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3250 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3252 $KMSN -no-kms ............ Do not compile KMS support.
3253 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3255 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3257 -xplatform target ... The target platform when cross-compiling.
3259 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3260 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3262 -no-feature-<feature> Do not compile in <feature>.
3263 -feature-<feature> .. Compile in <feature>. The available features
3264 are described in src/corelib/global/qfeatures.txt
3266 -no-freetype ........ Do not compile in Freetype2 support.
3267 -qt-freetype ........ Use the libfreetype bundled with Qt.
3268 * -system-freetype .... Use libfreetype from the operating system.
3269 See http://www.freetype.org/
3271 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3272 default ($CFG_QCONFIG).
3274 -no-opengl .......... Do not support OpenGL.
3275 -opengl <api> ....... Enable OpenGL support
3276 With no parameter, this will attempt to auto-detect
3277 OpenGL ES 2, or regular desktop OpenGL.
3278 Use es2 for <api> to override auto-detection.
3280 $GBN -no-glib ........... Do not compile Glib support.
3281 $GBY -glib .............. Compile Glib support.
3284 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3287 $X2N -no-xinput2......... Do not compile XInput2 support.
3288 $X2Y -xinput2............ Compile XInput2 support.
3294 if [ "$BUILD_ON_MAC" = "yes" ]; then
3299 -Fstring ........... Add an explicit framework path.
3300 -fw string ......... Add an explicit framework.
3302 * -framework ......... Build Qt as a series of frameworks and
3303 link tools against those frameworks.
3304 -no-framework ...... Do not build Qt as a series of frameworks.
3306 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3307 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3309 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3310 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3311 QT_ENABLE_HARFBUZZ environment variable.
3316 [ "x$ERROR" = "xyes" ] && exit 1
3321 # -----------------------------------------------------------------------------
3322 # LICENSING, INTERACTIVE PART
3323 # -----------------------------------------------------------------------------
3326 echo "This is the Qt ${EditionString} Edition."
3329 if [ "$Edition" = "OpenSource" ]; then
3331 echo "You are licensed to use this software under the terms of"
3332 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3333 if [ -f "$relpath/LICENSE.GPL3" ]; then
3334 echo "You are also licensed to use this software under the terms of"
3335 echo "the GNU General Public License (GPL) versions 3."
3341 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3342 echo "You have already accepted the terms of the $LicenseType license."
3345 if [ -f "$relpath/LICENSE.GPL3" ]; then
3346 echo "Type '3' to view the GNU General Public License version 3."
3348 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3349 echo "Type 'yes' to accept this license offer."
3350 echo "Type 'no' to decline this license offer."
3352 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3356 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3358 elif [ "$acceptance" = "no" ]; then
3359 echo "You are not licensed to use this software."
3362 elif [ "$acceptance" = "3" ]; then
3363 more "$relpath/LICENSE.GPL3"
3364 elif [ "$acceptance" = "L" ]; then
3365 more "$relpath/LICENSE.LGPL"
3368 elif [ "$Edition" = "Preview" ]; then
3369 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3372 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3373 echo "You have already accepted the terms of the $LicenseType license."
3376 echo "You are licensed to use this software under the terms of"
3377 echo "the $TheLicense"
3379 echo "Type '?' to read the Preview License."
3380 echo "Type 'yes' to accept this license offer."
3381 echo "Type 'no' to decline this license offer."
3383 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3387 if [ "$acceptance" = "yes" ]; then
3389 elif [ "$acceptance" = "no" ] ;then
3390 echo "You are not licensed to use this software."
3393 elif [ "$acceptance" = "?" ]; then
3394 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3397 elif [ "$Edition" != "OpenSource" ]; then
3398 if [ -n "$ExpiryDate" ]; then
3399 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3400 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3401 Today=`date +%Y%m%d`
3402 if [ "$Today" -gt "$ExpiryDate" ]; then
3403 case "$LicenseType" in
3404 Commercial|Academic|Educational)
3406 echo "WARNING WARNING WARNING WARNING"
3408 echo " Your support and upgrade period has expired."
3410 echo " You may continue to use your last licensed release"
3411 echo " of Qt under the terms of your existing license"
3412 echo " agreement. But you are not entitled to technical"
3413 echo " support, nor are you entitled to use any more recent"
3414 echo " Qt releases."
3416 echo " Please use the contact form at http://qt.digia.com/contact-us"
3417 echo " to renew your support and upgrades for this license."
3419 echo "WARNING WARNING WARNING WARNING"
3425 echo "NOTICE NOTICE NOTICE NOTICE"
3427 echo " Your Evaluation license has expired."
3429 echo " You are no longer licensed to use this software. Please"
3430 echo " use the contact form at http://qt.digia.com/contact-us to"
3431 echo " purchase license, or install the Qt Open Source Edition"
3432 echo " if you intend to develop free software."
3434 echo "NOTICE NOTICE NOTICE NOTICE"
3441 TheLicense=`head -n 1 "$outpath/LICENSE"`
3443 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3444 echo "You have already accepted the terms of the $TheLicense."
3447 echo "You are licensed to use this software under the terms of"
3448 echo "the $TheLicense."
3450 echo "Type '?' to view the $TheLicense."
3451 echo "Type 'yes' to accept this license offer."
3452 echo "Type 'no' to decline this license offer."
3454 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3458 if [ "$acceptance" = "yes" ]; then
3460 elif [ "$acceptance" = "no" ]; then
3461 echo "You are not licensed to use this software."
3464 else [ "$acceptance" = "?" ]
3465 more "$outpath/LICENSE"
3470 # this should be moved somewhere else
3473 AIX_VERSION=`uname -v`
3474 if [ "$AIX_VERSION" -lt "5" ]; then
3475 QMakeVar add QMAKE_LIBS_X11 -lbind
3482 #-------------------------------------------------------------------------------
3483 # generate qconfig.cpp
3484 #-------------------------------------------------------------------------------
3485 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3487 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3489 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3490 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3492 /* Installation date */
3493 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3495 /* Installation Info */
3496 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3497 "qt_prfxpath=$QT_INSTALL_PREFIX",
3498 "qt_docspath=$QT_INSTALL_DOCS",
3499 "qt_hdrspath=$QT_INSTALL_HEADERS",
3500 "qt_libspath=$QT_INSTALL_LIBS",
3501 "qt_binspath=$QT_INSTALL_BINS",
3502 "qt_plugpath=$QT_INSTALL_PLUGINS",
3503 "qt_impspath=$QT_INSTALL_IMPORTS",
3504 "qt_datapath=$QT_INSTALL_DATA",
3505 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3506 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3507 "qt_tstspath=$QT_INSTALL_TESTS",
3508 #ifdef QT_BUILD_QMAKE
3509 "qt_ssrtpath=$CFG_SYSROOT",
3510 "qt_hpfxpath=$QT_HOST_PREFIX",
3511 "qt_hbinpath=$QT_HOST_BINS",
3512 "qt_hdatpath=$QT_HOST_DATA",
3515 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3518 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3520 /* strlen( "qt_lcnsxxxx" ) == 12 */
3521 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3522 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3524 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3527 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3528 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3529 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3531 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3532 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3533 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3536 # -----------------------------------------------------------------------------
3537 if [ "$LicenseType" = "Evaluation" ]; then
3538 EVALKEY=qt_qevalkey=$LicenseKeyExt
3539 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3540 EVALKEY=qt_qevalkey=
3543 if [ -n "$EVALKEY" ]; then
3544 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3545 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3546 /* Evaluation license key */
3547 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3549 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3553 # -----------------------------------------------------------------------------
3555 # -----------------------------------------------------------------------------
3558 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3559 "$outpath/bin/syncqt" -minimal -module QtCore "$relpath" || exit 1
3562 # $1: input variable name (awk regexp)
3563 # $2: optional output variable name
3564 # $3: optional value transformation (sed command)
3565 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3566 # is where the resulting variable is written to
3567 setBootstrapVariable()
3569 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3573 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3574 echo "Creating qmake. Please wait..."
3576 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3577 rm -rf mkspecs/default mkspecs/default-host
3578 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3579 ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3580 mkdir -p "$outpath/qmake" || exit
3582 for mkfile in GNUmakefile Makefile; do
3585 in_mkfile="${mkfile}.in"
3586 if [ "$mkfile" = "Makefile" ]; then
3587 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3588 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3590 in_mkfile="${mkfile}.unix"
3592 in_mkfile="$relpath/qmake/$in_mkfile"
3593 mkfile="$outpath/qmake/$mkfile"
3594 if [ -f "$mkfile" ]; then
3595 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3598 [ -f "$in_mkfile" ] || continue
3600 echo "########################################################################" > "$mkfile"
3601 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3602 echo "########################################################################" >> "$mkfile"
3605 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3606 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3607 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3609 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3610 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3613 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3614 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3615 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3616 setBootstrapVariable QMAKE_CFLAGS
3617 setBootstrapVariable QMAKE_CXXFLAGS
3618 setBootstrapVariable QMAKE_LFLAGS
3620 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3621 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3622 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3624 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3625 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3626 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3627 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3628 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3629 elif [ "$CFG_DEBUG" = "yes" ]; then
3630 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3631 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3632 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3633 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3636 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3637 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3638 for rpath in $RPATH_FLAGS; do
3639 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3642 if [ "$BUILD_ON_MAC" = "yes" ]; then
3643 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3644 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3645 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3646 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3647 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3648 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3649 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3650 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3651 if [ '!' -z "$CFG_SDK" ]; then
3652 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3653 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3654 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3655 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3656 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3659 if [ '!' -z "$D_FLAGS" ]; then
3660 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3662 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3663 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3664 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3665 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3667 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3668 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3669 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3670 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3671 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3672 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3673 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3674 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3675 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3676 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3678 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3679 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3680 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3681 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3686 (cd "$outpath/qmake"; "$MAKE") || exit 2
3689 #-------------------------------------------------------------------------------
3690 # create a qt.conf for the Qt build tree itself
3691 #-------------------------------------------------------------------------------
3693 QTCONFFILE="$outpath/bin/qt.conf"
3694 cat > "$QTCONFFILE" <<EOF
3699 #-------------------------------------------------------------------------------
3700 # write out device config before we run the test.
3701 #-------------------------------------------------------------------------------
3702 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3703 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3704 rm -f "$DEVICE_VARS_FILE"
3706 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3707 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3710 #-------------------------------------------------------------------------------
3712 #-------------------------------------------------------------------------------
3713 if [ -z "$PKG_CONFIG" ]; then
3714 # See if PKG_CONFIG is set in the mkspec:
3715 PKG_CONFIG="`"$outpath/bin/qmake" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" /dev/null 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`"
3717 if [ -z "$PKG_CONFIG" ]; then
3718 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3721 if [ "$CFG_PKGCONFIG" = "no" ]; then
3723 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3725 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3726 echo >&2 "a correctly setup pkg-config environment!"
3728 elif [ -n "$PKG_CONFIG" ]; then
3729 # found a pkg-config
3730 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3731 # when xcompiling, check environment to see if it's actually usable
3732 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3733 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3734 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3735 if [ -n "$GCC_MACHINE_DUMP" ]; then
3736 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3738 export PKG_CONFIG_LIBDIR
3739 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3740 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3741 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3742 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3743 echo >&2 "Set this variable to the directory that contains target .pc files"
3744 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3745 echo >&2 "use -force-pkg-config to override this test."
3749 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3752 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3753 if [ -n "$CFG_SYSROOT" ]; then
3754 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3755 export PKG_CONFIG_SYSROOT_DIR
3756 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3757 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3758 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3759 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3760 echo >&2 "or use -force-pkg-config to override this test."
3764 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3768 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3769 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3773 if [ -z "$PKG_CONFIG" ]; then
3774 QT_CONFIG="$QT_CONFIG no-pkg-config"
3777 #-------------------------------------------------------------------------------
3778 # tests that need qmake
3779 #-------------------------------------------------------------------------------
3781 # parameters: path, name, extra args
3784 path=config.tests/$1
3787 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_SDK_FLAG "$@"
3790 #-------------------------------------------------------------------------------
3791 # determine the target and host architectures
3792 #-------------------------------------------------------------------------------
3794 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3795 OUTFILE=$outpath/arch.result
3796 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_SDK_FLAG
3797 if [ $? -eq 0 ]; then
3798 eval `cat "$OUTFILE"`
3801 echo "Could not determine the target architecture!"
3802 echo "Turn on verbose messaging (-v) to see the final report."
3804 rm -f "$OUTFILE" 2>/dev/null
3805 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3807 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3808 # Do the same test again, using the host compiler
3809 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_SDK_FLAG
3810 if [ $? -eq 0 ]; then
3811 eval `cat "$OUTFILE"`
3814 echo "Could not determine the host architecture!"
3815 echo "Turn on verbose messaging (-v) to see the final report."
3817 rm -f "$OUTFILE" 2>/dev/null
3818 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3820 # not cross compiling, host == target
3821 CFG_HOST_ARCH="$CFG_ARCH"
3822 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3826 if [ "$OPT_VERBOSE" = "yes" ]; then
3827 echo "System architecture: '$CFG_ARCH'"
3828 echo "Host architecture: '$CFG_HOST_ARCH'"
3831 #-------------------------------------------------------------------------------
3832 # functionality tests
3833 #-------------------------------------------------------------------------------
3835 # Detect C++11 support
3836 if [ "$CFG_CXX11" != "no" ]; then
3837 if compileTest common/c++11 "C++11"; then
3839 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3840 echo "C++11 support cannot be enabled due to functionality tests!"
3841 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3842 echo " If you believe this message is in error you may use the continue"
3843 echo " switch (-continue) to $0 to continue."
3850 # detect availability of float math.h functions
3851 if compileTest unix/floatmath "floatmath"; then
3852 CFG_USE_FLOATMATH=yes
3854 CFG_USE_FLOATMATH=no
3857 # detect sse2 support
3858 if [ "${CFG_SSE2}" = "auto" ]; then
3859 if compileTest common/sse2 "sse2"; then
3866 # detect sse3 support
3867 if [ "${CFG_SSE3}" = "auto" ]; then
3868 if compileTest common/sse3 "sse3"; then
3875 # detect ssse3 support
3876 if [ "${CFG_SSSE3}" = "auto" ]; then
3877 if compileTest common/ssse3 "ssse3"; then
3884 # detect sse4.1 support
3885 if [ "${CFG_SSE4_1}" = "auto" ]; then
3886 if compileTest common/sse4_1 "sse4_1"; then
3893 # detect sse4.2 support
3894 if [ "${CFG_SSE4_2}" = "auto" ]; then
3895 if compileTest common/sse4_2 "sse4_2"; then
3902 # detect avx support
3903 if [ "${CFG_AVX}" = "auto" ]; then
3904 if compileTest common/avx "avx"; then
3905 case "$XQMAKESPEC" in
3907 # Some clang versions produce internal compiler errors compiling Qt AVX code
3908 case `$TEST_COMPILER --version` in
3909 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3911 if [ "$OPT_VERBOSE" = "yes" ]; then
3912 echo 'AVX support disabled for blacklisted clang compiler'
3929 # detect avx2 support
3930 if [ "${CFG_AVX}" = "no" ]; then
3933 if [ "${CFG_AVX2}" = "auto" ]; then
3934 if compileTest common/avx2 "avx2"; then
3941 # check iWMMXt support
3942 if [ "$CFG_IWMMXT" = "yes" ]; then
3943 compileTest unix/iwmmxt "iwmmxt"
3944 if [ $? != "0" ]; then
3945 echo "The iWMMXt functionality test failed!"
3946 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3951 # detect neon support
3952 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3953 if compileTest unix/neon "neon"; then
3958 elif [ "$CFG_ARCH" != "arm" ]; then
3962 # detect mips_dsp support
3963 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
3964 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
3969 elif [ "$CFG_ARCH" != "mips" ]; then
3973 # detect mips_dspr2 support
3974 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
3975 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
3980 elif [ "$CFG_ARCH" != "mips" ]; then
3984 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3987 if [ "$CFG_ZLIB" = "no" ]; then
3988 # Note: Qt no longer support builds without zlib
3989 # So we force a "no" to be "auto" here.
3990 # If you REALLY really need no zlib support, you can still disable
3991 # it by doing the following:
3992 # add "no-zlib" to mkspecs/qconfig.pri
3993 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
3995 # There's no guarantee that Qt will build under those conditions
4000 if [ "$CFG_ZLIB" = "auto" ]; then
4001 if compileTest unix/zlib "zlib"; then
4008 if [ "$CFG_LARGEFILE" = "auto" ]; then
4009 #Large files should be enabled for all Linux systems
4013 if [ "$CFG_GUI" = "no" ]; then
4014 QPA_PLATFORM_GUARD=no
4017 # detect how jpeg should be built
4018 if [ "$CFG_JPEG" = "auto" ]; then
4019 if [ "$CFG_SHARED" = "yes" ]; then
4026 if [ "$CFG_LIBJPEG" = "auto" ]; then
4027 if compileTest unix/libjpeg "libjpeg"; then
4034 # detect how gif should be built
4035 if [ "$CFG_GIF" = "auto" ]; then
4036 if [ "$CFG_SHARED" = "yes" ]; then
4044 if [ "$CFG_LIBPNG" = "auto" ]; then
4045 if compileTest unix/libpng "libpng"; then
4052 if [ "$CFG_EGLFS" = "yes" ]; then
4053 if [ "$CFG_EGL" = "no" ]; then
4054 echo "The EGLFS plugin requires EGL support and cannot be built"
4057 if [ "$CFG_OPENGL" != "es2" ]; then
4058 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4065 if [ "$CFG_KMS" = "yes" ]; then
4066 if [ "$CFG_EGL" = "no" ]; then
4067 echo "The KMS plugin requires EGL support and cannot be built"
4070 if [ "$CFG_OPENGL" != "es2" ]; then
4071 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4076 # auto-detect SQL-modules support
4077 for _SQLDR in $CFG_SQL_AVAILABLE; do
4080 if [ "$CFG_SQL_mysql" != "no" ]; then
4081 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4082 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4083 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4084 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4085 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4086 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4087 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4089 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4090 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4091 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4092 echo " You need MySql 4 or higher."
4093 echo " If you believe this message is in error you may use the continue"
4094 echo " switch (-continue) to $0 to continue."
4099 QT_LFLAGS_MYSQL_R=""
4103 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4104 QMakeVar add CONFIG use_libmysqlclient_r
4105 if [ "$CFG_SQL_mysql" = "auto" ]; then
4106 CFG_SQL_mysql=plugin
4108 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4109 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4110 if [ "$CFG_SQL_mysql" = "auto" ]; then
4111 CFG_SQL_mysql=plugin
4114 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4115 echo "MySQL support cannot be enabled due to functionality tests!"
4116 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4117 echo " If you believe this message is in error you may use the continue"
4118 echo " switch (-continue) to $0 to continue."
4123 QT_LFLAGS_MYSQL_R=""
4131 if [ "$CFG_SQL_psql" != "no" ]; then
4132 # Be careful not to use native pg_config when cross building.
4133 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4134 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4135 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4137 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4138 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4139 # But, respect PSQL_LIBS if set
4140 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4141 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4142 if [ "$CFG_SQL_psql" = "auto" ]; then
4146 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4147 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4148 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4149 echo " If you believe this message is in error you may use the continue"
4150 echo " switch (-continue) to $0 to continue."
4161 if [ "$CFG_SQL_odbc" != "no" ]; then
4162 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4163 if [ "$CFG_SQL_odbc" = "auto" ]; then
4167 if compileTest unix/iodbc "iODBC"; then
4168 QT_LFLAGS_ODBC="-liodbc"
4169 if [ "$CFG_SQL_odbc" = "auto" ]; then
4173 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4174 echo "ODBC support cannot be enabled due to functionality tests!"
4175 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4176 echo " If you believe this message is in error you may use the continue"
4177 echo " switch (-continue) to $0 to continue."
4187 if [ "$CFG_SQL_oci" != "no" ]; then
4188 if compileTest unix/oci "OCI"; then
4189 if [ "$CFG_SQL_oci" = "auto" ]; then
4193 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4194 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4195 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4196 echo " If you believe this message is in error you may use the continue"
4197 echo " switch (-continue) to $0 to continue."
4206 if [ "$CFG_SQL_tds" != "no" ]; then
4207 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4208 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4209 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4210 if [ "$CFG_SQL_tds" = "auto" ]; then
4214 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4215 echo "TDS support cannot be enabled due to functionality tests!"
4216 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4217 echo " If you believe this message is in error you may use the continue"
4218 echo " switch (-continue) to $0 to continue."
4227 if [ "$CFG_SQL_db2" != "no" ]; then
4228 if compileTest unix/db2 "DB2"; then
4229 if [ "$CFG_SQL_db2" = "auto" ]; then
4233 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4234 echo "ODBC support cannot be enabled due to functionality tests!"
4235 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4236 echo " If you believe this message is in error you may use the continue"
4237 echo " switch (-continue) to $0 to continue."
4246 if [ "$CFG_SQL_ibase" != "no" ]; then
4247 if compileTest unix/ibase "InterBase"; then
4248 if [ "$CFG_SQL_ibase" = "auto" ]; then
4249 CFG_SQL_ibase=plugin
4252 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4253 echo "InterBase support cannot be enabled due to functionality tests!"
4254 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4255 echo " If you believe this message is in error you may use the continue"
4256 echo " switch (-continue) to $0 to continue."
4265 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4266 if compileTest unix/sqlite2 "SQLite2"; then
4267 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4268 CFG_SQL_sqlite2=plugin
4271 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4272 echo "SQLite2 support cannot be enabled due to functionality tests!"
4273 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4274 echo " If you believe this message is in error you may use the continue"
4275 echo " switch (-continue) to $0 to continue."
4284 if [ "$CFG_SQL_sqlite" != "no" ]; then
4285 SQLITE_AUTODETECT_FAILED="no"
4286 if [ "$CFG_SQLITE" = "system" ]; then
4287 if [ -n "$PKG_CONFIG" ]; then
4288 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4289 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4292 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4294 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4295 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4296 CFG_SQL_sqlite=plugin
4298 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4300 SQLITE_AUTODETECT_FAILED="yes"
4303 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4304 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4305 CFG_SQL_sqlite=plugin
4308 SQLITE_AUTODETECT_FAILED="yes"
4312 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4313 echo "SQLite support cannot be enabled due to functionality tests!"
4314 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4315 echo " If you believe this message is in error you may use the continue"
4316 echo " switch (-continue) to $0 to continue."
4322 if [ "$OPT_VERBOSE" = "yes" ]; then
4323 echo "unknown SQL driver: $_SQLDR"
4329 # auto-detect NIS support
4330 if [ "$CFG_NIS" != "no" ]; then
4331 if compileTest unix/nis "NIS"; then
4334 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4335 echo "NIS support cannot be enabled due to functionality tests!"
4336 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4337 echo " If you believe this message is in error you may use the continue"
4338 echo " switch (-continue) to $0 to continue."
4346 # auto-detect CUPS support
4347 if [ "$CFG_CUPS" != "no" ]; then
4348 if compileTest unix/cups "Cups"; then
4351 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4352 echo "Cups support cannot be enabled due to functionality tests!"
4353 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4354 echo " If you believe this message is in error you may use the continue"
4355 echo " switch (-continue) to $0 to continue."
4363 # auto-detect iconv(3) support
4364 if [ "$CFG_ICONV" != "no" ]; then
4365 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4367 elif compileTest unix/iconv "POSIX iconv"; then
4369 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4371 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4374 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4375 echo "Iconv support cannot be enabled due to functionality tests!"
4376 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4377 echo " If you believe this message is in error you may use the continue"
4378 echo " switch (-continue) to $0 to continue."
4386 # auto-detect libdbus-1 support
4387 if [ "$CFG_DBUS" != "no" ]; then
4388 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4389 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4390 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4392 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4393 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4394 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4395 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4397 if [ "$CFG_DBUS" = "auto" ]; then
4399 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4400 # CFG_DBUS is "yes" or "linked" here
4402 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4403 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4404 echo " If you believe this message is in error you may use the continue"
4405 echo " switch (-continue) to $0 to continue."
4411 # auto-detect Glib support
4412 if [ "$CFG_GLIB" != "no" ]; then
4413 if [ -n "$PKG_CONFIG" ]; then
4414 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4415 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4417 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4419 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4420 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4422 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4423 echo "Glib support cannot be enabled due to functionality tests!"
4424 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4425 echo " If you believe this message is in error you may use the continue"
4426 echo " switch (-continue) to $0 to continue."
4434 # auto-detect GTK style support
4435 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4436 if [ -n "$PKG_CONFIG" ]; then
4437 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4438 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4440 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4442 QT_CONFIG="$QT_CONFIG gtkstyle"
4443 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4444 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4446 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4447 echo "Gtk theme support cannot be enabled due to functionality tests!"
4448 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4449 echo " If you believe this message is in error you may use the continue"
4450 echo " switch (-continue) to $0 to continue."
4456 elif [ "$CFG_GLIB" = "no" ]; then
4461 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4462 if [ -n "$PKG_CONFIG" ]; then
4463 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4464 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4466 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4468 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4469 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4471 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4472 echo "Gstreamer support cannot be enabled due to functionality tests!"
4473 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4474 echo " If you believe this message is in error you may use the continue"
4475 echo " switch (-continue) to $0 to continue."
4481 elif [ "$CFG_GLIB" = "no" ]; then
4485 # auto-detect libicu support
4486 if [ "$CFG_ICU" != "no" ]; then
4487 if compileTest unix/icu "ICU"; then
4488 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4490 if [ "$CFG_ICU" = "auto" ]; then
4492 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4495 echo "The ICU library support cannot be enabled."
4496 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4497 echo " If you believe this message is in error you may use the continue"
4498 echo " switch (-continue) to $0 to continue."
4504 # Auto-detect PulseAudio support
4505 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4506 if [ -n "$PKG_CONFIG" ]; then
4507 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4508 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4510 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4512 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4513 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4515 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4516 echo "PulseAudio support cannot be enabled due to functionality tests!"
4517 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4518 echo " If you believe this message is in error you may use the continue"
4519 echo " switch (-continue) to $0 to continue."
4528 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4529 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4530 if [ "$CFG_GUI" = "no" ]; then
4531 if [ "$CFG_OPENGL" = "auto" ]; then
4534 if [ "$CFG_OPENGL" != "no" ]; then
4535 echo "OpenGL enabled, but GUI disabled."
4536 echo " You might need to either enable the GUI or disable OpenGL"
4540 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4541 if compileTest x11/opengl "OpenGL"; then
4543 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4546 if [ "$CFG_OPENGL" = "yes" ]; then
4547 echo "All the OpenGL functionality tests failed!"
4548 echo " You might need to modify the include and library search paths by editing"
4549 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4550 echo " ${XQMAKESPEC}."
4557 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4558 if [ "$CFG_OPENGL" = "desktop" ]; then
4559 compileTest x11/glxfbconfig "OpenGL"
4560 if [ $? != "0" ]; then
4561 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4568 elif [ "$CFG_OPENGL" = "es2" ]; then
4570 compileTest unix/opengles2 "OpenGL ES 2.x"
4571 if [ $? != "0" ]; then
4572 echo "The OpenGL ES 2.0 functionality test failed!"
4573 echo " You might need to modify the include and library search paths by editing"
4574 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4575 echo " ${XQMAKESPEC}."
4578 elif [ "$CFG_OPENGL" = "desktop" ]; then
4579 # Desktop OpenGL support
4580 compileTest x11/opengl "OpenGL"
4581 if [ $? != "0" ]; then
4582 echo "The OpenGL functionality test failed!"
4583 echo " You might need to modify the include and library search paths by editing"
4584 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4585 echo " ${XQMAKESPEC}."
4590 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4591 compileTest x11/glxfbconfig "OpenGL"
4592 if [ $? != "0" ]; then
4593 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4600 fi # X11/MINGW OpenGL
4602 if [ "$BUILD_ON_MAC" = "yes" ]; then
4603 if [ "$CFG_COREWLAN" = "auto" ]; then
4604 if compileTest mac/corewlan "CoreWlan"; then
4612 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4613 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4614 if compileTest unix/opengldesktop "OpenGL"; then
4616 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4619 if [ "$CFG_OPENGL" = "yes" ]; then
4620 echo "All the OpenGL functionality tests failed!"
4621 echo " You might need to modify the include and library search paths by editing"
4622 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4623 echo " ${XQMAKESPEC}."
4628 elif [ "$CFG_OPENGL" = "es2" ]; then
4630 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4631 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4632 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4633 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4634 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4635 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4636 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4637 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4640 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4641 if [ $? != "0" ]; then
4642 echo "The OpenGL ES 2.0 functionality test failed!"
4643 echo " You might need to modify the include and library search paths by editing"
4644 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4645 echo " ${XQMAKESPEC}."
4648 elif [ "$CFG_OPENGL" = "desktop" ]; then
4649 # Desktop OpenGL support
4650 compileTest unix/opengldesktop "OpenGL"
4651 if [ $? != "0" ]; then
4652 echo "The OpenGL functionality test failed!"
4653 echo " You might need to modify the include and library search paths by editing"
4654 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4655 echo " ${XQMAKESPEC}."
4660 # auto-detect FontConfig support
4661 if [ "$CFG_FONTCONFIG" != "no" ]; then
4662 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4663 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4664 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4666 QT_CFLAGS_FONTCONFIG=
4667 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4669 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4670 QT_CONFIG="$QT_CONFIG fontconfig"
4671 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4672 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4674 CFG_LIBFREETYPE=system
4681 # Save these for a check later
4682 ORIG_CFG_XCB="$CFG_XCB"
4683 ORIG_CFG_EGLFS="$CFG_EGLFS"
4684 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4685 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4686 ORIG_CFG_KMS="$CFG_KMS"
4688 if [ "$CFG_LIBUDEV" != "no" ]; then
4689 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4690 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4691 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4692 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4693 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4695 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4697 QT_CONFIG="$QT_CONFIG libudev"
4698 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4699 echo "The libudev functionality test failed!"
4705 if [ "$CFG_LIBUDEV" = "no" ]; then
4706 QMakeVar add DEFINES QT_NO_LIBUDEV
4709 if [ "$CFG_EVDEV" != "no" ]; then
4710 if compileTest unix/evdev "evdev"; then
4712 QT_CONFIG="$QT_CONFIG evdev"
4713 elif [ "$CFG_EVDEV" = "yes" ]; then
4714 echo "The evdev functionality test failed!"
4720 if [ "$CFG_EVDEV" = "no" ]; then
4721 QMakeVar add DEFINES QT_NO_EVDEV
4724 # Check we actually have X11 :-)
4725 if compileTest x11/xlib "XLib"; then
4726 QT_CONFIG="$QT_CONFIG xlib"
4729 # auto-detect Xrender support
4730 if [ "$CFG_XRENDER" != "no" ]; then
4731 if compileTest x11/xrender "Xrender"; then
4733 QT_CONFIG="$QT_CONFIG xrender"
4735 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4736 echo "Xrender support cannot be enabled due to functionality tests!"
4737 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4738 echo " If you believe this message is in error you may use the continue"
4739 echo " switch (-continue) to $0 to continue."
4747 if [ "$CFG_XCB" != "no" ]; then
4748 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4749 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4750 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4752 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4754 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4755 QT_CONFIG="$QT_CONFIG xcb-render"
4758 if compileTest qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4760 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4763 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4764 QT_CONFIG="$QT_CONFIG xcb-xlib"
4767 # auto-detect XInput2 support. Needed by xcb too.
4768 if [ "$CFG_XINPUT2" != "no" ]; then
4769 if compileTest x11/xinput2 "XInput2"; then
4773 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4774 echo "XInput2 support cannot be enabled due to functionality tests!"
4775 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4776 echo " If you believe this message is in error you may use the continue"
4777 echo " switch (-continue) to $0 to continue."
4785 if [ "$CFG_XCB" = "yes" ]; then
4786 echo "The XCB test failed!"
4787 echo " You might need to install dependency packages."
4788 echo " See src/plugins/platforms/xcb/README."
4794 if [ "$CFG_XCB" = "no" ]; then
4795 QMakeVar add DEFINES QT_NO_XCB
4798 if [ "$CFG_DIRECTFB" != "no" ]; then
4799 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4800 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4801 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4802 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4804 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4805 echo " DirectFB support cannot be enabled due to functionality tests!"
4806 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4807 echo " If you believe this message is in error you may use the continue"
4808 echo " switch (-continue) to $0 to continue."
4818 if [ "$CFG_LINUXFB" != "no" ]; then
4819 if compileTest qpa/linuxfb "LinuxFB"; then
4821 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4822 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4823 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4824 echo " If you believe this message is in error you may use the continue"
4825 echo " switch (-continue) to $0 to continue."
4832 if [ "$CFG_KMS" != "no" ]; then
4833 if compileTest qpa/kms "KMS"; then
4835 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4836 echo " KMS support cannot be enabled due to functionality tests!"
4837 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4838 echo " If you believe this message is in error you may use the continue"
4839 echo " switch (-continue) to $0 to continue."
4846 # Detect libxkbcommon
4847 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4848 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4849 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4850 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4851 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4853 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4857 if [ "$CFG_EGL" != "no" ]; then
4858 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4859 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4860 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4861 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4862 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4863 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4864 fi # detect EGL support
4865 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4867 elif [ "$CFG_EGL" = "yes" ]; then
4868 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4869 echo " You might need to modify the include and library search paths by editing"
4870 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4875 elif [ "$CFG_OPENGL" = "desktop" ]; then
4876 if [ "$CFG_EGL" = "yes" ]; then
4877 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4878 echo "Either disable EGL support or enable OpenGL ES support."
4884 if [ "$CFG_EGLFS" != "no" ]; then
4885 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4886 CFG_EGLFS="$CFG_EGL"
4892 if [ "$CFG_KMS" = "yes" ]; then
4893 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4900 # Detect accessibility support
4901 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4902 if [ "$CFG_XCB" = "no" ]; then
4903 CFG_ACCESSIBILITY=yes
4905 # linux/xcb accessibility needs dbus and atspi-2
4906 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "atspi-2" 2>/dev/null; then
4907 CFG_ACCESSIBILITY=yes
4909 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4910 CFG_ACCESSIBILITY=no
4912 echo "Accessibility support needs pkg-config and libatspi2."
4919 # Determine the default QPA platform
4920 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4922 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4923 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4924 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4925 QT_QPA_DEFAULT_PLATFORM="windows"
4926 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4927 QT_QPA_DEFAULT_PLATFORM="cocoa"
4928 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4929 QT_QPA_DEFAULT_PLATFORM="qnx"
4931 QT_QPA_DEFAULT_PLATFORM="xcb"
4936 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4937 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4938 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4939 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4941 if [ "$CFG_DIRECTFB" = "yes" ]; then
4942 QT_CONFIG="$QT_CONFIG directfb"
4943 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4944 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4946 if [ "$CFG_LINUXFB" = "yes" ]; then
4947 QT_CONFIG="$QT_CONFIG linuxfb"
4949 if [ "$CFG_KMS" = "yes" ]; then
4950 QT_CONFIG="$QT_CONFIG kms"
4953 if [ "$BUILD_ON_MAC" = "yes" ]; then
4954 if compileTest mac/coreservices "CoreServices"; then
4955 QT_CONFIG="$QT_CONFIG coreservices"
4957 QMakeVar add DEFINES QT_NO_CORESERVICES
4961 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4962 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
4963 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4964 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
4965 echo "No QPA platform plugin enabled!"
4966 echo " If you really want to build without a QPA platform plugin you must pass"
4967 echo " -no-qpa-platform-guard to configure. Doing this will"
4968 echo " produce a Qt that can not run GUI applications."
4969 echo " The dependencies needed for xcb to build are listed in"
4970 echo " src/plugins/platforms/xcb/README"
4977 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4978 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4979 if compileTest unix/freetype "FreeType"; then
4980 CFG_LIBFREETYPE=system
4986 if ! compileTest unix/stl "STL" &&
4987 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4988 echo "STL functionality check failed! Cannot build Qt with this STL library."
4989 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4994 # detect POSIX clock_gettime()
4995 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
4996 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
4997 CFG_CLOCK_GETTIME=yes
4999 CFG_CLOCK_GETTIME=no
5003 # detect POSIX monotonic clocks
5004 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5005 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5006 CFG_CLOCK_MONOTONIC=yes
5008 CFG_CLOCK_MONOTONIC=no
5010 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5011 CFG_CLOCK_MONOTONIC=no
5015 if [ "$CFG_MREMAP" = "auto" ]; then
5016 if compileTest unix/mremap "mremap"; then
5023 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5024 if [ "$CFG_GETADDRINFO" != "no" ]; then
5025 if compileTest unix/getaddrinfo "getaddrinfo"; then
5028 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5029 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5030 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5031 echo " If you believe this message is in error you may use the continue"
5032 echo " switch (-continue) to $0 to continue."
5040 # find if the platform provides inotify
5041 if [ "$CFG_INOTIFY" != "no" ]; then
5042 if compileTest unix/inotify "inotify"; then
5045 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5046 echo "inotify support cannot be enabled due to functionality tests!"
5047 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5048 echo " If you believe this message is in error you may use the continue"
5049 echo " switch (-continue) to $0 to continue."
5057 # find if the platform provides if_nametoindex (ipv6 interface name support)
5058 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5059 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5062 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5063 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5064 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5065 echo " If you believe this message is in error you may use the continue"
5066 echo " switch (-continue) to $0 to continue."
5074 # find if the platform provides getifaddrs (network interface enumeration)
5075 if [ "$CFG_GETIFADDRS" != "no" ]; then
5076 if compileTest unix/getifaddrs "getifaddrs"; then
5079 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5080 echo "getifaddrs support cannot be enabled due to functionality tests!"
5081 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5082 echo " If you believe this message is in error you may use the continue"
5083 echo " switch (-continue) to $0 to continue."
5092 if [ "$CFG_OPENSSL" != "no" ]; then
5093 if compileTest unix/openssl "OpenSSL"; then
5094 if [ "$CFG_OPENSSL" = "auto" ]; then
5098 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5099 echo "OpenSSL support cannot be enabled due to functionality tests!"
5100 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5101 echo " If you believe this message is in error you may use the continue"
5102 echo " switch (-continue) to $0 to continue."
5111 if [ "$CFG_PCRE" != "qt" ]; then
5112 if compileTest unix/pcre "PCRE"; then
5115 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5116 echo "PCRE support cannot be enabled due to functionality tests!"
5117 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5118 echo " If you believe this message is in error you may use the continue"
5119 echo " switch (-continue) to $0 to continue."
5127 # detect OpenVG support
5128 if [ "$CFG_OPENVG" != "no" ]; then
5129 if compileTest unix/openvg "OpenVG"; then
5130 if [ "$CFG_OPENVG" = "auto" ]; then
5133 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5134 if [ "$CFG_OPENVG" = "auto" ]; then
5137 CFG_OPENVG_ON_OPENGL=yes
5138 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5139 if [ "$CFG_OPENVG" = "auto" ]; then
5142 CFG_OPENVG_LC_INCLUDES=yes
5143 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5144 if [ "$CFG_OPENVG" = "auto" ]; then
5147 CFG_OPENVG_LC_INCLUDES=yes
5148 CFG_OPENVG_ON_OPENGL=yes
5150 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5151 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5152 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5153 echo " If you believe this message is in error you may use the continue"
5154 echo " switch (-continue) to $0 to continue."
5160 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5161 CFG_OPENVG_SHIVA=yes
5165 if [ "$CFG_ALSA" = "auto" ]; then
5166 if compileTest unix/alsa "alsa"; then
5173 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5174 if [ "$CFG_ARCH" = "arm" ]; then
5175 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5176 if [ $? != "0" ]; then
5177 CFG_JAVASCRIPTCORE_JIT=no
5180 case "$XPLATFORM" in
5182 CFG_JAVASCRIPTCORE_JIT=no
5188 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5189 QMakeVar set JAVASCRIPTCORE_JIT yes
5190 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5191 QMakeVar set JAVASCRIPTCORE_JIT no
5194 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5195 CFG_AUDIO_BACKEND=yes
5198 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5199 echo "Warning: largefile support cannot be disabled for win32."
5203 #-------------------------------------------------------------------------------
5204 # ask for all that hasn't been auto-detected or specified in the arguments
5205 #-------------------------------------------------------------------------------
5207 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5209 # disable accessibility
5210 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5211 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5213 QT_CONFIG="$QT_CONFIG accessibility"
5217 if [ "$CFG_EGL" = "yes" ]; then
5218 QT_CONFIG="$QT_CONFIG egl"
5220 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5224 if [ "$CFG_EGLFS" = "yes" ]; then
5225 QT_CONFIG="$QT_CONFIG eglfs"
5227 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5231 if [ "$CFG_OPENVG" = "no" ]; then
5232 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5234 QT_CONFIG="$QT_CONFIG openvg"
5235 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5236 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5238 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5239 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5241 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5242 QT_CONFIG="$QT_CONFIG shivavg"
5243 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5248 if [ "$CFG_OPENGL" = "no" ]; then
5249 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5251 QT_CONFIG="$QT_CONFIG opengl"
5254 if [ "$CFG_OPENGL" = "es2" ]; then
5255 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5258 if [ "$CFG_OPENGL" = "es2" ]; then
5259 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5260 QT_CONFIG="$QT_CONFIG opengles2"
5263 # build up the variables for output
5264 if [ "$CFG_DEBUG" = "yes" ]; then
5265 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5266 elif [ "$CFG_DEBUG" = "no" ]; then
5267 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5269 if [ "$CFG_SHARED" = "yes" ]; then
5270 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5271 QT_CONFIG="$QT_CONFIG shared"
5272 elif [ "$CFG_SHARED" = "no" ]; then
5273 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5274 QT_CONFIG="$QT_CONFIG static"
5277 #FIXME: qpa is implicit this should all be removed
5278 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5279 QT_CONFIG="$QT_CONFIG qpa"
5280 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5281 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5283 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5284 # Do not set this here for Windows. Let qmake do it so
5285 # debug and release precompiled headers are kept separate.
5286 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5288 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5289 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5290 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5291 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5292 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5293 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5295 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5296 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5298 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5299 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5300 [ "$CFG_STRIP" = "no" ] && QMAKE_CONFIG="$QMAKE_CONFIG nostrip"
5301 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5302 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5303 QMakeVar add QMAKE_CFLAGS -g
5304 QMakeVar add QMAKE_CXXFLAGS -g
5305 QT_CONFIG="$QT_CONFIG separate_debug_info"
5307 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5308 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5310 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5311 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5312 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5313 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5314 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5315 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5316 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5317 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5318 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5319 if [ "$CFG_ARCH" = "mips" ]; then
5320 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5321 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5323 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5324 QT_CONFIG="$QT_CONFIG clock-gettime"
5326 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5327 QT_CONFIG="$QT_CONFIG clock-monotonic"
5329 if [ "$CFG_MREMAP" = "yes" ]; then
5330 QT_CONFIG="$QT_CONFIG mremap"
5332 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5333 QT_CONFIG="$QT_CONFIG getaddrinfo"
5335 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5336 QT_CONFIG="$QT_CONFIG ipv6ifname"
5338 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5339 QT_CONFIG="$QT_CONFIG getifaddrs"
5341 if [ "$CFG_INOTIFY" = "yes" ]; then
5342 QT_CONFIG="$QT_CONFIG inotify"
5344 if [ "$CFG_LIBJPEG" = "no" ]; then
5346 elif [ "$CFG_LIBJPEG" = "system" ]; then
5347 QT_CONFIG="$QT_CONFIG system-jpeg"
5349 if [ "$CFG_JPEG" = "no" ]; then
5350 QT_CONFIG="$QT_CONFIG no-jpeg"
5351 elif [ "$CFG_JPEG" = "yes" ]; then
5352 QT_CONFIG="$QT_CONFIG jpeg"
5354 if [ "$CFG_LIBPNG" = "no" ]; then
5357 if [ "$CFG_LIBPNG" = "system" ]; then
5358 QT_CONFIG="$QT_CONFIG system-png"
5360 if [ "$CFG_PNG" = "no" ]; then
5361 QT_CONFIG="$QT_CONFIG no-png"
5362 elif [ "$CFG_PNG" = "yes" ]; then
5363 QT_CONFIG="$QT_CONFIG png"
5365 if [ "$CFG_GIF" = "no" ]; then
5366 QT_CONFIG="$QT_CONFIG no-gif"
5367 elif [ "$CFG_GIF" = "yes" ]; then
5368 QT_CONFIG="$QT_CONFIG gif"
5370 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5371 QT_CONFIG="$QT_CONFIG no-freetype"
5372 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5373 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5374 QT_CONFIG="$QT_CONFIG system-freetype"
5376 QT_CONFIG="$QT_CONFIG freetype"
5378 if [ "$CFG_GUI" = "auto" ]; then
5381 if [ "$CFG_GUI" = "no" ]; then
5382 QT_CONFIG="$QT_CONFIG no-gui"
5385 if [ "$CFG_WIDGETS" = "no" ]; then
5386 QT_CONFIG="$QT_CONFIG no-widgets"
5387 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5390 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5391 #On Mac we implicitly link against libz, so we
5392 #never use the 3rdparty stuff.
5393 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5395 if [ "$CFG_ZLIB" = "yes" ]; then
5396 QT_CONFIG="$QT_CONFIG zlib"
5397 elif [ "$CFG_ZLIB" = "system" ]; then
5398 QT_CONFIG="$QT_CONFIG system-zlib"
5401 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5402 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5403 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5404 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5405 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5406 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5407 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5408 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5409 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5410 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5411 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5412 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5413 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5414 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5416 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5417 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5419 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5420 if [ "$CFG_RPATH" = "yes" ]; then
5421 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5423 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5424 if [ -n "$RPATH_FLAGS" ]; then
5426 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5430 elif [ "$CFG_RPATH" = "yes" ]; then
5431 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5435 if [ -n "$RPATH_FLAGS" ]; then
5436 # add the user defined rpaths
5437 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5440 if [ "$CFG_RPATH" = "yes" ]; then
5441 QT_CONFIG="$QT_CONFIG rpath"
5444 if [ '!' -z "$I_FLAGS" ]; then
5445 # add the user define include paths
5446 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5447 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5450 if [ '!' -z "$W_FLAGS" ]; then
5451 # add the user defined warning flags
5452 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5453 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5454 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5457 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5458 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5459 # Follow default behavior of configure.exe by overriding with "rtti".
5460 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5463 if [ "$CFG_ALSA" = "yes" ]; then
5464 QT_CONFIG="$QT_CONFIG alsa"
5467 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5468 QT_CONFIG="$QT_CONFIG pulseaudio"
5471 if [ "$CFG_COREWLAN" = "yes" ]; then
5472 QT_CONFIG="$QT_CONFIG corewlan"
5475 if [ "$CFG_ICU" = "yes" ]; then
5476 QT_CONFIG="$QT_CONFIG icu"
5479 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5480 QT_CONFIG="$QT_CONFIG force_asserts"
5483 if [ "$CFG_PCRE" = "qt" ]; then
5484 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5488 # Some Qt modules are too advanced in C++ for some old compilers
5489 # Detect here the platforms where they are known to work.
5491 # See Qt documentation for more information on which features are
5492 # supported and on which compilers.
5494 canBuildQtConcurrent="yes"
5495 canUseV8Snapshot="yes"
5497 case "$XPLATFORM" in
5499 # PA-RISC's assembly is too limited
5500 # gcc 3.4 on that platform can't build QtXmlPatterns
5501 # the assembly it generates cannot be compiled
5503 # Check gcc's version
5504 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5508 canBuildQtXmlPatterns="no"
5512 canBuildQtXmlPatterns="no"
5516 unsupported/vxworks-*-g++*)
5519 unsupported/vxworks-*-dcc*)
5521 canBuildQtXmlPatterns="no"
5524 # Check gcc's version
5525 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5533 canBuildQtXmlPatterns="no"
5538 # Check the compiler version
5539 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5542 canBuildQtXmlPatterns="no"
5543 canBuildQtConcurrent="no"
5547 canBuildQtConcurrent="no"
5553 canBuildQtXmlPatterns="no"
5554 canBuildQtConcurrent="no"
5560 # Get the xlC version
5561 cat > xlcver.c <<EOF
5565 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5570 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5571 xlcver=`./xlcver 2>/dev/null`
5574 if [ "$OPT_VERBOSE" = "yes" ]; then
5575 if [ -n "$xlcver" ]; then
5576 echo Found IBM xlC version: $xlcver.
5578 echo Could not determine IBM xlC version, assuming oldest supported.
5585 canBuildQtXmlPatterns="no"
5586 canBuildQtConcurrent="no"
5590 canBuildQtConcurrent="no"
5596 canBuildQtConcurrent="no"
5600 if [ "$CFG_GUI" = "no" ]; then
5601 # WebKit requires QtGui
5605 if [ "$CFG_SHARED" = "no" ]; then
5607 echo "WARNING: Using static linking will disable the WebKit module."
5612 CFG_CONCURRENT="yes"
5613 if [ "$canBuildQtConcurrent" = "no" ]; then
5614 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5617 QT_CONFIG="$QT_CONFIG concurrent"
5621 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5622 QT_CONFIG="$QT_CONFIG audio-backend"
5626 if [ "$CFG_WEBKIT" = "debug" ]; then
5627 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5631 QT_CONFIG="$QT_CONFIG v8"
5632 # Detect snapshot support
5633 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5634 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5637 *) canUseV8Snapshot="no"
5641 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5642 # QEMU crashes when building inside Scratchbox with an ARM target
5643 canUseV8Snapshot="no"
5646 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5647 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5649 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5650 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5653 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5654 QT_CONFIG="$QT_CONFIG v8snapshot"
5658 if [ "$CFG_QML_DEBUG" = "no" ]; then
5659 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5662 case "$QMAKE_CONF_COMPILER" in
5665 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5667 case "$COMPILER_VERSION" in
5669 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5670 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5671 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5674 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5675 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5676 QT_GCC_PATCH_VERSION=0
5686 #-------------------------------------------------------------------------------
5687 # part of configuration information goes into qconfig.h
5688 #-------------------------------------------------------------------------------
5690 case "$CFG_QCONFIG" in
5692 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5695 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5696 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5697 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5698 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5699 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5700 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5702 echo "#endif" >>"$tmpconfig"
5706 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5710 # define QT_EDITION $QT_EDITION
5714 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5715 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5717 if [ "$CFG_SHARED" = "no" ]; then
5718 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5719 /* Qt was configured for a static build */
5720 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5727 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5728 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5731 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5732 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5735 if [ "$BUILD_ON_MAC" = "yes" ]; then
5736 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5737 #if defined(__LP64__)
5738 # define QT_POINTER_SIZE 8
5740 # define QT_POINTER_SIZE 4
5744 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5745 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5748 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5749 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5750 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5753 # Add compiler sub-architecture support
5754 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5755 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5756 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5758 MIPS_DSP MIPS_DSPR2; do
5759 eval "VAL=\$CFG_$SUBARCH"
5762 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5763 >>"$outpath/src/corelib/global/qconfig.h.new"
5768 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5770 if [ "$CFG_DEV" = "yes" ]; then
5771 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5774 # Add QPA to config.h
5775 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5777 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5778 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5781 # Add turned on SQL drivers
5782 for DRIVER in $CFG_SQL_AVAILABLE; do
5783 eval "VAL=\$CFG_SQL_$DRIVER"
5786 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5787 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5788 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5791 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5796 QMakeVar set sql-drivers "$SQL_DRIVERS"
5797 QMakeVar set sql-plugins "$SQL_PLUGINS"
5799 # Add other configuration options to the qconfig.h file
5800 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5801 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5802 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5803 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5804 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5806 # X11/Unix/Mac only configs
5807 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5808 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5809 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5810 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5811 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5812 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5813 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5814 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5815 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5816 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5817 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5818 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5819 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5820 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5822 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5823 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5824 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5825 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5826 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5827 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5828 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5829 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5830 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5831 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5832 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5833 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5834 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5836 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5837 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5838 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5839 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5840 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5841 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5842 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5843 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5845 # sort QCONFIG_FLAGS for neatness if we can
5846 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5847 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5849 if [ -n "$QCONFIG_FLAGS" ]; then
5850 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5851 #ifndef QT_BOOTSTRAPPED
5854 for cfg in $QCONFIG_FLAGS; do
5855 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5856 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5857 # figure out define logic, so we can output the correct
5858 # ifdefs to override the global defines in a project
5860 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5861 # QT_NO_option can be forcefully turned on by QT_option
5862 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5863 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5864 # QT_option can be forcefully turned off by QT_NO_option
5865 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5868 if [ -z $cfgdNeg ]; then
5869 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5876 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5877 #if defined($cfgd) && defined($cfgdNeg)
5879 #elif !defined($cfgd) && !defined($cfgdNeg)
5886 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5887 #endif // QT_BOOTSTRAPPED
5892 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5893 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5894 #define QT_VISIBILITY_AVAILABLE
5899 if [ -n "$QT_LIBINFIX" ]; then
5900 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5901 #define QT_LIBINFIX "$QT_LIBINFIX"
5906 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5908 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5909 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5910 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5912 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5913 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5914 chmod -w "$outpath/src/corelib/global/qconfig.h"
5915 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5916 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5920 #-------------------------------------------------------------------------------
5921 # save configuration into qconfig.pri
5922 #-------------------------------------------------------------------------------
5923 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5924 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5925 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5926 if [ "$CFG_DEBUG" = "yes" ]; then
5927 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5928 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5929 QT_CONFIG="$QT_CONFIG release"
5931 QT_CONFIG="$QT_CONFIG debug"
5932 elif [ "$CFG_DEBUG" = "no" ]; then
5933 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5934 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5935 QT_CONFIG="$QT_CONFIG debug"
5937 QT_CONFIG="$QT_CONFIG release"
5939 if [ "$CFG_FRAMEWORK" = "no" ]; then
5940 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5942 QT_CONFIG="$QT_CONFIG qt_framework"
5943 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5945 if [ "$CFG_DEV" = "yes" ]; then
5946 QT_CONFIG="$QT_CONFIG private_tests"
5949 cat >>"$QTCONFIG.tmp" <<EOF
5951 CONFIG += $QTCONFIG_CONFIG
5953 QT_HOST_ARCH = $CFG_HOST_ARCH
5954 QT_CPU_FEATURES = $CFG_CPUFEATURES
5955 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5956 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5957 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5958 QT_EDITION = $Edition
5959 QT_CONFIG += $QT_CONFIG
5962 QT_VERSION = $QT_VERSION
5963 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5964 QT_MINOR_VERSION = $QT_MINOR_VERSION
5965 QT_PATCH_VERSION = $QT_PATCH_VERSION
5968 QT_LIBINFIX = $QT_LIBINFIX
5969 QT_NAMESPACE = $QT_NAMESPACE
5973 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5974 echo "# pkgconfig" >> "$QTCONFIG.tmp"
5975 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5976 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5977 echo >> "$QTCONFIG.tmp"
5980 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
5981 echo "# sysroot" >>"$QTCONFIG.tmp"
5982 echo "!host_build {" >>"$QTCONFIG.tmp"
5983 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5984 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5985 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5986 echo "}" >> "$QTCONFIG.tmp"
5987 echo >> "$QTCONFIG.tmp"
5989 if [ -n "$RPATH_FLAGS" ]; then
5990 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
5992 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
5993 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
5994 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
5995 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
5998 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
5999 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6000 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6003 # replace qconfig.pri if it differs from the newly created temp file
6004 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6005 rm -f "$QTCONFIG.tmp"
6007 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6010 #-------------------------------------------------------------------------------
6011 # save configuration into qmodule.pri
6012 #-------------------------------------------------------------------------------
6013 QTMODULE="$outpath/mkspecs/qmodule.pri"
6015 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
6016 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6018 if [ -n "$QT_CFLAGS_PSQL" ]; then
6019 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6021 if [ -n "$QT_LFLAGS_PSQL" ]; then
6022 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6024 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6025 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6027 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6028 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6030 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6031 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6033 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6034 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6036 if [ -n "$QT_LFLAGS_ODBC" ]; then
6037 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6039 if [ -n "$QT_LFLAGS_TDS" ]; then
6040 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6043 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6044 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6047 #dump in the OPENSSL_LIBS info
6048 if [ '!' -z "$OPENSSL_LIBS" ]; then
6049 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6050 elif [ "$CFG_OPENSSL" = "linked" ]; then
6051 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6054 #dump in the SDK info
6055 if [ '!' -z "$CFG_SDK" ]; then
6056 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6060 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6061 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6063 # replace qmodule.pri if it differs from the newly created temp file
6064 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6065 rm -f "$QTMODULE.tmp"
6067 mv -f "$QTMODULE.tmp" "$QTMODULE"
6070 #-------------------------------------------------------------------------------
6071 # save configuration into .qmake.cache
6072 #-------------------------------------------------------------------------------
6074 CACHEFILE="$outpath/.qmake.cache"
6075 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6076 cat >>"$CACHEFILE.tmp" <<EOF
6078 QT_SOURCE_TREE = \$\$quote($relpath)
6079 QT_BUILD_TREE = \$\$quote($outpath)
6081 include(\$\$PWD/mkspecs/qmodule.pri)
6082 CONFIG += dylib fix_output_dirs no_private_qt_headers_warning QTDIR_build
6086 # replace .qmake.cache if it differs from the newly created temp file
6087 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6088 rm -f "$CACHEFILE.tmp"
6090 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6093 #-------------------------------------------------------------------------------
6094 # give feedback on configuration
6095 #-------------------------------------------------------------------------------
6096 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6099 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6100 echo "Build type: $PLATFORM"
6102 echo "Building on: $PLATFORM"
6103 echo "Building for: $XPLATFORM"
6106 # the missing space before $CFG_FEATURES is intentional
6107 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6108 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6110 if [ -n "$PLATFORM_NOTES" ]; then
6111 echo "Platform notes:"
6112 echo "$PLATFORM_NOTES"
6117 if [ "$OPT_VERBOSE" = "yes" ]; then
6118 echo $ECHO_N "qmake vars .......... $ECHO_C"
6119 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6120 echo "qmake switches ......... $QMAKE_SWITCHES"
6123 echo "Build .................. $CFG_BUILD_PARTS"
6124 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6125 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6126 echo "Debug .................. yes (combined)"
6127 if [ "$CFG_DEBUG" = "yes" ]; then
6128 echo "Default Link ........... debug"
6130 echo "Default Link ........... release"
6133 echo "Debug .................. $CFG_DEBUG"
6135 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6136 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6138 echo "C++11 support .......... $CFG_CXX11"
6139 if [ -n "$PKG_CONFIG" ]; then
6140 echo "pkg-config ............. yes"
6142 echo "pkg-config ............. no"
6144 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6145 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6146 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6147 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6148 echo "QtGui module ........... $CFG_GUI"
6149 echo "QtWidgets module ....... $CFG_WIDGETS"
6150 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6151 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6153 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6155 echo "QML debugging .......... $CFG_QML_DEBUG"
6156 echo "PCH support ............ $CFG_PRECOMPILE"
6157 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6158 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6159 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6160 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6161 elif [ "$CFG_ARCH" = "arm" ]; then
6162 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6163 echo "NEON support ........... ${CFG_NEON}"
6165 if [ "$CFG_ARCH" = "mips" ]; then
6166 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6168 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6169 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6170 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6171 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6172 echo "NIS support ............ $CFG_NIS"
6173 echo "CUPS support ........... $CFG_CUPS"
6174 echo "Iconv support .......... $CFG_ICONV"
6175 echo "Glib support ........... $CFG_GLIB"
6176 echo "GStreamer support ...... $CFG_GSTREAMER"
6177 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6178 echo "Large File support ..... $CFG_LARGEFILE"
6179 echo "GIF support ............ $CFG_GIF"
6180 if [ "$CFG_JPEG" = "no" ]; then
6181 echo "JPEG support ........... $CFG_JPEG"
6183 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6185 if [ "$CFG_PNG" = "no" ]; then
6186 echo "PNG support ............ $CFG_PNG"
6188 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6190 echo "zlib support ........... $CFG_ZLIB"
6191 echo "Session management ..... $CFG_SM"
6192 echo "libudev support ........ $CFG_LIBUDEV"
6194 if [ "$CFG_OPENGL" = "desktop" ]; then
6195 echo "OpenGL support ......... yes (Desktop OpenGL)"
6196 elif [ "$CFG_OPENGL" = "es2" ]; then
6197 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6199 echo "OpenGL support ......... no"
6202 if [ "$CFG_OPENVG" ]; then
6203 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6204 echo "OpenVG support ......... ShivaVG"
6206 echo "OpenVG support ......... $CFG_OPENVG"
6210 echo "XShape support ......... $CFG_XSHAPE"
6211 echo "XVideo support ......... $CFG_XVIDEO"
6212 echo "XSync support .......... $CFG_XSYNC"
6213 echo "Xinerama support ....... $CFG_XINERAMA"
6214 echo "Xcursor support ........ $CFG_XCURSOR"
6215 echo "Xfixes support ......... $CFG_XFIXES"
6216 echo "Xrandr support ......... $CFG_XRANDR"
6217 echo "Xi support ............. $CFG_XINPUT"
6218 echo "Xi2 support ............ $CFG_XINPUT2"
6219 echo "MIT-SHM support ........ $CFG_MITSHM"
6220 echo "FontConfig support ..... $CFG_FONTCONFIG"
6221 echo "XKB Support ............ $CFG_XKB"
6222 echo "immodule support ....... $CFG_IM"
6223 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6225 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6226 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6227 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6228 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6229 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6230 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6231 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6232 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6233 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6236 if [ "$CFG_OPENSSL" = "yes" ]; then
6237 OPENSSL_LINKAGE="(run-time)"
6238 elif [ "$CFG_OPENSSL" = "linked" ]; then
6239 OPENSSL_LINKAGE="(linked)"
6241 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6242 echo "Alsa support ........... $CFG_ALSA"
6243 if [ "$BUILD_ON_MAC" = "yes" ]; then
6244 echo "CoreWlan support ....... $CFG_COREWLAN"
6246 echo "libICU support ......... $CFG_ICU"
6247 echo "PCRE support ........... $CFG_PCRE"
6248 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6249 echo "Xcb support ............ limited (old version)"
6251 echo "Xcb support ............ $CFG_XCB"
6253 echo "Xrender support ........ $CFG_XRENDER"
6254 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6255 echo "XInput2 support ........ $CFG_XINPUT2"
6257 echo "EGLFS support .......... $CFG_EGLFS"
6258 echo "DirectFB support ....... $CFG_DIRECTFB"
6259 echo "LinuxFB support ........ $CFG_LINUXFB"
6260 echo "KMS support ............ $CFG_KMS"
6263 # complain about not being able to use dynamic plugins if we are using a static build
6264 if [ "$CFG_SHARED" = "no" ]; then
6266 echo "WARNING: Using static linking will disable the use of dynamically"
6267 echo "loaded plugins. Make sure to import all needed static plugins,"
6268 echo "or compile needed modules into the library."
6271 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6273 echo "NOTE: When linking against OpenSSL, you can override the default"
6274 echo "library names through OPENSSL_LIBS."
6276 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6280 exec 1>&3 3>&- # restore stdout
6281 cat $outpath/config.summary # display config feedback to user
6283 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6285 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6286 echo "if you want a pure debug build."
6291 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6296 #-------------------------------------------------------------------------------
6297 # build makefiles based on the configuration
6298 #-------------------------------------------------------------------------------
6300 if [ "$CFG_PROCESS" != "no" ]; then
6302 if [ "$CFG_PROCESS" = "full" ]; then
6303 echo "Creating makefiles. Please wait..."
6304 "$outpath/bin/qmake" -r "$relpath"
6307 "$outpath/bin/qmake" "$relpath"
6310 if [ "$OPT_FAST" = "yes" ]; then
6312 for part in $CFG_BUILD_PARTS; do
6314 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6317 if [ "x$PART_ROOTS" != "x" ]; then
6319 echo "Creating stub makefiles. Please wait..."
6320 QMAKE="$outpath/bin/qmake"
6321 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6322 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6324 test -f "$outpath/$d/Makefile" && continue
6325 echo " for $relpath/$p"
6327 mkdir -p "$outpath/$d" || exit
6328 cat > "$outpath/$d/Makefile" <<EOF || exit
6329 # $outpath/$d/Makefile: generated by configure
6331 # WARNING: This makefile will be replaced with a real makefile.
6332 # All changes made to this file will be lost.
6337 all clean install qmake first Makefile: FORCE
6338 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6348 #-------------------------------------------------------------------------------
6349 # check for platforms that we don't yet know about
6350 #-------------------------------------------------------------------------------
6351 if [ "$CFG_ARCH" = "unknown" ]; then
6354 NOTICE: configure was unable to determine the architecture
6355 for the $XQMAKESPEC target.
6357 Qt will not use a specialized implementation for any atomic
6358 operations. Instead a generic implemention based on either GCC
6359 intrinsics or C++11 std::atomic<T> will be used (when
6360 available). The generic implementations are generally as fast
6361 as and always as safe as a specialized implementation.
6363 If no generic implementation is available, Qt will use a
6364 fallback UNIX implementation which uses a single
6365 pthread_mutex_t to protect all atomic operations. This
6366 implementation is the slow (but safe) fallback implementation
6367 for architectures Qt does not yet support.
6371 #-------------------------------------------------------------------------------
6372 # check if the user passed the -no-zlib option, which is no longer supported
6373 #-------------------------------------------------------------------------------
6374 if [ -n "$ZLIB_FORCED" ]; then
6375 which_zlib="supplied"
6376 if [ "$CFG_ZLIB" = "system" ]; then
6382 NOTICE: The -no-zlib option was supplied but is no longer
6385 Qt now requires zlib support in all builds, so the -no-zlib
6386 option was ignored. Qt will be built using the $which_zlib
6391 #-------------------------------------------------------------------------------
6392 # check if the user passed the obsoleted -wayland or -no-wayland flag
6393 #-------------------------------------------------------------------------------
6394 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6397 NOTICE: The -wayland and -no-wayland flags are now obsolete
6399 All configuring of QtWayland plugin and QtCompositor happens in the module
6403 #-------------------------------------------------------------------------------
6404 # check if the user passed the obsoleted -arch or -host-arch options
6405 #-------------------------------------------------------------------------------
6406 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6409 NOTICE: The -arch and -host-arch options are obsolete.
6411 Qt now detects the target and host architectures based on compiler
6412 output. Qt will be built using $CFG_ARCH for the target architecture
6413 and $CFG_HOST_ARCH for the host architecture (note that these two
6414 will be the same unless you are cross-compiling).
6418 #-------------------------------------------------------------------------------
6419 # finally save the executed command to another script
6420 #-------------------------------------------------------------------------------
6421 if [ `basename $0` != "config.status" ]; then
6422 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6424 # add the system variables
6425 for varname in $SYSTEM_VARIABLES; do
6427 'if [ -n "\$'${varname}'" ]; then
6428 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6433 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6435 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6436 echo "#!/bin/sh" > "$outpath/config.status"
6437 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6438 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6439 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6440 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6441 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6442 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6443 echo "else" >> "$outpath/config.status"
6444 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6445 echo "fi" >> "$outpath/config.status"
6446 chmod +x "$outpath/config.status"
6449 if [ -n "$RPATH_MESSAGE" ]; then
6451 echo "$RPATH_MESSAGE"
6454 MAKE=`basename "$MAKE"`
6456 echo Qt is now configured for building. Just run \'$MAKE\'.
6457 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6458 echo Once everything is built, Qt is installed.
6459 echo You should not run \'$MAKE install\'.
6461 echo Once everything is built, you must run \'$MAKE install\'.
6462 echo Qt will be installed into $QT_INSTALL_PREFIX
6465 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.