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 -R <string> ........ Add an explicit runtime library path to the Qt
3179 -l <string> ........ Add an explicit library.
3181 -no-rpath .......... Do not use the library install path as a runtime
3183 + -rpath ............. Link Qt libraries and executables using the library
3184 install path as a runtime library path. Equivalent
3185 to -R install_libpath
3187 -continue .......... Continue as far as possible if an error occurs.
3189 -verbose, -v ....... Print verbose information about each step of the
3192 -silent ............ Reduce the build output so that warnings and errors
3193 can be seen more easily.
3195 * -no-optimized-qmake ... Do not build qmake optimized.
3196 -optimized-qmake ...... Build qmake optimized.
3198 -no-gui ............ Don't build the Qt GUI library
3200 $NSN -no-nis ............ Do not compile NIS support.
3201 $NSY -nis ............... Compile NIS support.
3203 $CUN -no-cups ........... Do not compile CUPS support.
3204 $CUY -cups .............. Compile CUPS support.
3205 Requires cups/cups.h and libcups.so.2.
3207 $CIN -no-iconv .......... Do not compile support for iconv(3).
3208 $CIY -iconv ............. Compile support for iconv(3).
3210 -no-icu ............ Do not compile support for ICU libraries.
3211 + -icu ............... Compile support for ICU libraries.
3213 -no-strip .......... Do not strip binaries and libraries of unneeded symbols.
3214 * -strip ............. Strip binaries and libraries of unneeded symbols when installing.
3216 $PHN -no-pch ............ Do not use precompiled header support.
3217 $PHY -pch ............... Use precompiled header support.
3219 $DBN -no-dbus ........... Do not compile the QtDBus module.
3220 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3221 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3223 -reduce-relocations ..... Reduce relocations in the libraries through extra
3224 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3225 experimental; needs GNU ld >= 2.18).
3227 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3229 -device <name> ............... Cross-compile for device <name> (experimental)
3230 -device-option <key=value> ... Add device specific options for the device mkspec
3233 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3234 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3236 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3237 $XCBY -xcb ............... Compile Xcb support.
3239 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3240 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3242 $DFBN -no-directfb ....... Do not compile DirectFB support.
3243 $DFBY -directfb .......... Compile DirectFB support.
3245 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3246 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3248 $KMSN -no-kms ............ Do not compile KMS support.
3249 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3251 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3253 -xplatform target ... The target platform when cross-compiling.
3255 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3256 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3258 -no-feature-<feature> Do not compile in <feature>.
3259 -feature-<feature> .. Compile in <feature>. The available features
3260 are described in src/corelib/global/qfeatures.txt
3262 -no-freetype ........ Do not compile in Freetype2 support.
3263 -qt-freetype ........ Use the libfreetype bundled with Qt.
3264 * -system-freetype .... Use libfreetype from the operating system.
3265 See http://www.freetype.org/
3267 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3268 default ($CFG_QCONFIG).
3270 -no-opengl .......... Do not support OpenGL.
3271 -opengl <api> ....... Enable OpenGL support
3272 With no parameter, this will attempt to auto-detect
3273 OpenGL ES 2, or regular desktop OpenGL.
3274 Use es2 for <api> to override auto-detection.
3276 $GBN -no-glib ........... Do not compile Glib support.
3277 $GBY -glib .............. Compile Glib support.
3280 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3283 $X2N -no-xinput2......... Do not compile XInput2 support.
3284 $X2Y -xinput2............ Compile XInput2 support.
3290 if [ "$BUILD_ON_MAC" = "yes" ]; then
3295 -Fstring ........... Add an explicit framework path.
3296 -fw string ......... Add an explicit framework.
3298 * -framework ......... Build Qt as a series of frameworks and
3299 link tools against those frameworks.
3300 -no-framework ...... Do not build Qt as a series of frameworks.
3302 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3303 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3305 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3306 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3307 QT_ENABLE_HARFBUZZ environment variable.
3312 [ "x$ERROR" = "xyes" ] && exit 1
3317 # -----------------------------------------------------------------------------
3318 # LICENSING, INTERACTIVE PART
3319 # -----------------------------------------------------------------------------
3322 echo "This is the Qt ${EditionString} Edition."
3325 if [ "$Edition" = "OpenSource" ]; then
3327 echo "You are licensed to use this software under the terms of"
3328 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3329 if [ -f "$relpath/LICENSE.GPL3" ]; then
3330 echo "You are also licensed to use this software under the terms of"
3331 echo "the GNU General Public License (GPL) versions 3."
3337 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3338 echo "You have already accepted the terms of the $LicenseType license."
3341 if [ -f "$relpath/LICENSE.GPL3" ]; then
3342 echo "Type '3' to view the GNU General Public License version 3."
3344 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3345 echo "Type 'yes' to accept this license offer."
3346 echo "Type 'no' to decline this license offer."
3348 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3352 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3354 elif [ "$acceptance" = "no" ]; then
3355 echo "You are not licensed to use this software."
3358 elif [ "$acceptance" = "3" ]; then
3359 more "$relpath/LICENSE.GPL3"
3360 elif [ "$acceptance" = "L" ]; then
3361 more "$relpath/LICENSE.LGPL"
3364 elif [ "$Edition" = "Preview" ]; then
3365 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3368 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3369 echo "You have already accepted the terms of the $LicenseType license."
3372 echo "You are licensed to use this software under the terms of"
3373 echo "the $TheLicense"
3375 echo "Type '?' to read the Preview License."
3376 echo "Type 'yes' to accept this license offer."
3377 echo "Type 'no' to decline this license offer."
3379 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3383 if [ "$acceptance" = "yes" ]; then
3385 elif [ "$acceptance" = "no" ] ;then
3386 echo "You are not licensed to use this software."
3389 elif [ "$acceptance" = "?" ]; then
3390 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3393 elif [ "$Edition" != "OpenSource" ]; then
3394 if [ -n "$ExpiryDate" ]; then
3395 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3396 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3397 Today=`date +%Y%m%d`
3398 if [ "$Today" -gt "$ExpiryDate" ]; then
3399 case "$LicenseType" in
3400 Commercial|Academic|Educational)
3402 echo "WARNING WARNING WARNING WARNING"
3404 echo " Your support and upgrade period has expired."
3406 echo " You may continue to use your last licensed release"
3407 echo " of Qt under the terms of your existing license"
3408 echo " agreement. But you are not entitled to technical"
3409 echo " support, nor are you entitled to use any more recent"
3410 echo " Qt releases."
3412 echo " Please use the contact form at http://qt.digia.com/contact-us"
3413 echo " to renew your support and upgrades for this license."
3415 echo "WARNING WARNING WARNING WARNING"
3421 echo "NOTICE NOTICE NOTICE NOTICE"
3423 echo " Your Evaluation license has expired."
3425 echo " You are no longer licensed to use this software. Please"
3426 echo " use the contact form at http://qt.digia.com/contact-us to"
3427 echo " purchase license, or install the Qt Open Source Edition"
3428 echo " if you intend to develop free software."
3430 echo "NOTICE NOTICE NOTICE NOTICE"
3437 TheLicense=`head -n 1 "$outpath/LICENSE"`
3439 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3440 echo "You have already accepted the terms of the $TheLicense."
3443 echo "You are licensed to use this software under the terms of"
3444 echo "the $TheLicense."
3446 echo "Type '?' to view the $TheLicense."
3447 echo "Type 'yes' to accept this license offer."
3448 echo "Type 'no' to decline this license offer."
3450 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3454 if [ "$acceptance" = "yes" ]; then
3456 elif [ "$acceptance" = "no" ]; then
3457 echo "You are not licensed to use this software."
3460 else [ "$acceptance" = "?" ]
3461 more "$outpath/LICENSE"
3466 # this should be moved somewhere else
3469 AIX_VERSION=`uname -v`
3470 if [ "$AIX_VERSION" -lt "5" ]; then
3471 QMakeVar add QMAKE_LIBS_X11 -lbind
3478 #-------------------------------------------------------------------------------
3479 # generate qconfig.cpp
3480 #-------------------------------------------------------------------------------
3481 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3483 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3485 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3486 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3488 /* Installation date */
3489 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3491 /* Installation Info */
3492 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3493 "qt_prfxpath=$QT_INSTALL_PREFIX",
3494 "qt_docspath=$QT_INSTALL_DOCS",
3495 "qt_hdrspath=$QT_INSTALL_HEADERS",
3496 "qt_libspath=$QT_INSTALL_LIBS",
3497 "qt_binspath=$QT_INSTALL_BINS",
3498 "qt_plugpath=$QT_INSTALL_PLUGINS",
3499 "qt_impspath=$QT_INSTALL_IMPORTS",
3500 "qt_datapath=$QT_INSTALL_DATA",
3501 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3502 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3503 "qt_tstspath=$QT_INSTALL_TESTS",
3504 #ifdef QT_BUILD_QMAKE
3505 "qt_ssrtpath=$CFG_SYSROOT",
3506 "qt_hpfxpath=$QT_HOST_PREFIX",
3507 "qt_hbinpath=$QT_HOST_BINS",
3508 "qt_hdatpath=$QT_HOST_DATA",
3511 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3514 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3516 /* strlen( "qt_lcnsxxxx" ) == 12 */
3517 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3518 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3520 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3523 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3524 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3525 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3527 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3528 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3529 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3532 # -----------------------------------------------------------------------------
3533 if [ "$LicenseType" = "Evaluation" ]; then
3534 EVALKEY=qt_qevalkey=$LicenseKeyExt
3535 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3536 EVALKEY=qt_qevalkey=
3539 if [ -n "$EVALKEY" ]; then
3540 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3541 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3542 /* Evaluation license key */
3543 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3545 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3549 # -----------------------------------------------------------------------------
3551 # -----------------------------------------------------------------------------
3554 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3555 "$outpath/bin/syncqt" -minimal -module QtCore "$relpath" || exit 1
3558 # $1: input variable name (awk regexp)
3559 # $2: optional output variable name
3560 # $3: optional value transformation (sed command)
3561 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3562 # is where the resulting variable is written to
3563 setBootstrapVariable()
3565 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3569 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3570 echo "Creating qmake. Please wait..."
3572 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3573 rm -rf mkspecs/default mkspecs/default-host
3574 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3575 ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3576 mkdir -p "$outpath/qmake" || exit
3578 for mkfile in GNUmakefile Makefile; do
3581 in_mkfile="${mkfile}.in"
3582 if [ "$mkfile" = "Makefile" ]; then
3583 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3584 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3586 in_mkfile="${mkfile}.unix"
3588 in_mkfile="$relpath/qmake/$in_mkfile"
3589 mkfile="$outpath/qmake/$mkfile"
3590 if [ -f "$mkfile" ]; then
3591 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3594 [ -f "$in_mkfile" ] || continue
3596 echo "########################################################################" > "$mkfile"
3597 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3598 echo "########################################################################" >> "$mkfile"
3601 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3602 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3603 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3605 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3606 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3609 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3610 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3611 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3612 setBootstrapVariable QMAKE_CFLAGS
3613 setBootstrapVariable QMAKE_CXXFLAGS
3614 setBootstrapVariable QMAKE_LFLAGS
3616 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3617 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3618 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3620 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3621 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3622 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3623 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3624 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3625 elif [ "$CFG_DEBUG" = "yes" ]; then
3626 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3627 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3628 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3629 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3632 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3633 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3634 for rpath in $RPATH_FLAGS; do
3635 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3638 if [ "$BUILD_ON_MAC" = "yes" ]; then
3639 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3640 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3641 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3642 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3643 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3644 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3645 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3646 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3647 if [ '!' -z "$CFG_SDK" ]; then
3648 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3649 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3650 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3651 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3652 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3655 if [ '!' -z "$D_FLAGS" ]; then
3656 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3658 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3659 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3660 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3661 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3663 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3664 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3665 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3666 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3667 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3668 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3669 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3670 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3671 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3672 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3674 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3675 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3676 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3677 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3682 (cd "$outpath/qmake"; "$MAKE") || exit 2
3685 #-------------------------------------------------------------------------------
3686 # create a qt.conf for the Qt build tree itself
3687 #-------------------------------------------------------------------------------
3689 QTCONFFILE="$outpath/bin/qt.conf"
3690 cat > "$QTCONFFILE" <<EOF
3695 #-------------------------------------------------------------------------------
3696 # write out device config before we run the test.
3697 #-------------------------------------------------------------------------------
3698 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3699 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3700 rm -f "$DEVICE_VARS_FILE"
3702 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3703 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3706 #-------------------------------------------------------------------------------
3708 #-------------------------------------------------------------------------------
3709 if [ -z "$PKG_CONFIG" ]; then
3710 # See if PKG_CONFIG is set in the mkspec:
3711 PKG_CONFIG="`"$outpath/bin/qmake" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" /dev/null 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`"
3713 if [ -z "$PKG_CONFIG" ]; then
3714 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3717 if [ "$CFG_PKGCONFIG" = "no" ]; then
3719 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3721 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3722 echo >&2 "a correctly setup pkg-config environment!"
3724 elif [ -n "$PKG_CONFIG" ]; then
3725 # found a pkg-config
3726 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3727 # when xcompiling, check environment to see if it's actually usable
3728 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3729 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3730 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3731 if [ -n "$GCC_MACHINE_DUMP" ]; then
3732 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3734 export PKG_CONFIG_LIBDIR
3735 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3736 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3737 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3738 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3739 echo >&2 "Set this variable to the directory that contains target .pc files"
3740 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3741 echo >&2 "use -force-pkg-config to override this test."
3745 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3748 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3749 if [ -n "$CFG_SYSROOT" ]; then
3750 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3751 export PKG_CONFIG_SYSROOT_DIR
3752 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3753 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3754 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3755 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3756 echo >&2 "or use -force-pkg-config to override this test."
3760 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3764 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3765 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3769 if [ -z "$PKG_CONFIG" ]; then
3770 QT_CONFIG="$QT_CONFIG no-pkg-config"
3773 #-------------------------------------------------------------------------------
3774 # tests that need qmake
3775 #-------------------------------------------------------------------------------
3777 # parameters: path, name, extra args
3780 path=config.tests/$1
3783 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_SDK_FLAG "$@"
3786 #-------------------------------------------------------------------------------
3787 # determine the target and host architectures
3788 #-------------------------------------------------------------------------------
3790 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3791 OUTFILE=$outpath/arch.result
3792 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_SDK_FLAG
3793 if [ $? -eq 0 ]; then
3794 eval `cat "$OUTFILE"`
3797 echo "Could not determine the target architecture!"
3798 echo "Turn on verbose messaging (-v) to see the final report."
3800 rm -f "$OUTFILE" 2>/dev/null
3801 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3803 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3804 # Do the same test again, using the host compiler
3805 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_SDK_FLAG
3806 if [ $? -eq 0 ]; then
3807 eval `cat "$OUTFILE"`
3810 echo "Could not determine the host architecture!"
3811 echo "Turn on verbose messaging (-v) to see the final report."
3813 rm -f "$OUTFILE" 2>/dev/null
3814 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3816 # not cross compiling, host == target
3817 CFG_HOST_ARCH="$CFG_ARCH"
3818 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3822 if [ "$OPT_VERBOSE" = "yes" ]; then
3823 echo "System architecture: '$CFG_ARCH'"
3824 echo "Host architecture: '$CFG_HOST_ARCH'"
3827 #-------------------------------------------------------------------------------
3828 # functionality tests
3829 #-------------------------------------------------------------------------------
3831 # Detect C++11 support
3832 if [ "$CFG_CXX11" != "no" ]; then
3833 if compileTest common/c++11 "C++11"; then
3835 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3836 echo "C++11 support cannot be enabled due to functionality tests!"
3837 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3838 echo " If you believe this message is in error you may use the continue"
3839 echo " switch (-continue) to $0 to continue."
3846 # detect availability of float math.h functions
3847 if compileTest unix/floatmath "floatmath"; then
3848 CFG_USE_FLOATMATH=yes
3850 CFG_USE_FLOATMATH=no
3853 # detect sse2 support
3854 if [ "${CFG_SSE2}" = "auto" ]; then
3855 if compileTest common/sse2 "sse2"; then
3862 # detect sse3 support
3863 if [ "${CFG_SSE3}" = "auto" ]; then
3864 if compileTest common/sse3 "sse3"; then
3871 # detect ssse3 support
3872 if [ "${CFG_SSSE3}" = "auto" ]; then
3873 if compileTest common/ssse3 "ssse3"; then
3880 # detect sse4.1 support
3881 if [ "${CFG_SSE4_1}" = "auto" ]; then
3882 if compileTest common/sse4_1 "sse4_1"; then
3889 # detect sse4.2 support
3890 if [ "${CFG_SSE4_2}" = "auto" ]; then
3891 if compileTest common/sse4_2 "sse4_2"; then
3898 # detect avx support
3899 if [ "${CFG_AVX}" = "auto" ]; then
3900 if compileTest common/avx "avx"; then
3901 case "$XQMAKESPEC" in
3903 # Some clang versions produce internal compiler errors compiling Qt AVX code
3904 case `$TEST_COMPILER --version` in
3905 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3907 if [ "$OPT_VERBOSE" = "yes" ]; then
3908 echo 'AVX support disabled for blacklisted clang compiler'
3925 # detect avx2 support
3926 if [ "${CFG_AVX}" = "no" ]; then
3929 if [ "${CFG_AVX2}" = "auto" ]; then
3930 if compileTest common/avx2 "avx2"; then
3937 # check iWMMXt support
3938 if [ "$CFG_IWMMXT" = "yes" ]; then
3939 compileTest unix/iwmmxt "iwmmxt"
3940 if [ $? != "0" ]; then
3941 echo "The iWMMXt functionality test failed!"
3942 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3947 # detect neon support
3948 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3949 if compileTest unix/neon "neon"; then
3954 elif [ "$CFG_ARCH" != "arm" ]; then
3958 # detect mips_dsp support
3959 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
3960 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
3965 elif [ "$CFG_ARCH" != "mips" ]; then
3969 # detect mips_dspr2 support
3970 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
3971 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
3976 elif [ "$CFG_ARCH" != "mips" ]; then
3980 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3983 if [ "$CFG_ZLIB" = "no" ]; then
3984 # Note: Qt no longer support builds without zlib
3985 # So we force a "no" to be "auto" here.
3986 # If you REALLY really need no zlib support, you can still disable
3987 # it by doing the following:
3988 # add "no-zlib" to mkspecs/qconfig.pri
3989 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
3991 # There's no guarantee that Qt will build under those conditions
3996 if [ "$CFG_ZLIB" = "auto" ]; then
3997 if compileTest unix/zlib "zlib"; then
4004 if [ "$CFG_LARGEFILE" = "auto" ]; then
4005 #Large files should be enabled for all Linux systems
4009 if [ "$CFG_GUI" = "no" ]; then
4010 QPA_PLATFORM_GUARD=no
4013 # detect how jpeg should be built
4014 if [ "$CFG_JPEG" = "auto" ]; then
4015 if [ "$CFG_SHARED" = "yes" ]; then
4022 if [ "$CFG_LIBJPEG" = "auto" ]; then
4023 if compileTest unix/libjpeg "libjpeg"; then
4030 # detect how gif should be built
4031 if [ "$CFG_GIF" = "auto" ]; then
4032 if [ "$CFG_SHARED" = "yes" ]; then
4040 if [ "$CFG_LIBPNG" = "auto" ]; then
4041 if compileTest unix/libpng "libpng"; then
4048 if [ "$CFG_EGLFS" = "yes" ]; then
4049 if [ "$CFG_EGL" = "no" ]; then
4050 echo "The EGLFS plugin requires EGL support and cannot be built"
4053 if [ "$CFG_OPENGL" != "es2" ]; then
4054 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4061 if [ "$CFG_KMS" = "yes" ]; then
4062 if [ "$CFG_EGL" = "no" ]; then
4063 echo "The KMS plugin requires EGL support and cannot be built"
4066 if [ "$CFG_OPENGL" != "es2" ]; then
4067 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4072 # auto-detect SQL-modules support
4073 for _SQLDR in $CFG_SQL_AVAILABLE; do
4076 if [ "$CFG_SQL_mysql" != "no" ]; then
4077 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4078 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4079 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4080 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4081 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4082 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4083 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4085 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4086 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4087 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4088 echo " You need MySql 4 or higher."
4089 echo " If you believe this message is in error you may use the continue"
4090 echo " switch (-continue) to $0 to continue."
4095 QT_LFLAGS_MYSQL_R=""
4099 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4100 QMakeVar add CONFIG use_libmysqlclient_r
4101 if [ "$CFG_SQL_mysql" = "auto" ]; then
4102 CFG_SQL_mysql=plugin
4104 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4105 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4106 if [ "$CFG_SQL_mysql" = "auto" ]; then
4107 CFG_SQL_mysql=plugin
4110 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4111 echo "MySQL support cannot be enabled due to functionality tests!"
4112 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4113 echo " If you believe this message is in error you may use the continue"
4114 echo " switch (-continue) to $0 to continue."
4119 QT_LFLAGS_MYSQL_R=""
4127 if [ "$CFG_SQL_psql" != "no" ]; then
4128 # Be careful not to use native pg_config when cross building.
4129 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4130 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4131 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4133 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4134 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4135 # But, respect PSQL_LIBS if set
4136 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4137 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4138 if [ "$CFG_SQL_psql" = "auto" ]; then
4142 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4143 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4144 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4145 echo " If you believe this message is in error you may use the continue"
4146 echo " switch (-continue) to $0 to continue."
4157 if [ "$CFG_SQL_odbc" != "no" ]; then
4158 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4159 if [ "$CFG_SQL_odbc" = "auto" ]; then
4163 if compileTest unix/iodbc "iODBC"; then
4164 QT_LFLAGS_ODBC="-liodbc"
4165 if [ "$CFG_SQL_odbc" = "auto" ]; then
4169 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4170 echo "ODBC support cannot be enabled due to functionality tests!"
4171 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4172 echo " If you believe this message is in error you may use the continue"
4173 echo " switch (-continue) to $0 to continue."
4183 if [ "$CFG_SQL_oci" != "no" ]; then
4184 if compileTest unix/oci "OCI"; then
4185 if [ "$CFG_SQL_oci" = "auto" ]; then
4189 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4190 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4191 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4192 echo " If you believe this message is in error you may use the continue"
4193 echo " switch (-continue) to $0 to continue."
4202 if [ "$CFG_SQL_tds" != "no" ]; then
4203 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4204 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4205 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4206 if [ "$CFG_SQL_tds" = "auto" ]; then
4210 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4211 echo "TDS support cannot be enabled due to functionality tests!"
4212 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4213 echo " If you believe this message is in error you may use the continue"
4214 echo " switch (-continue) to $0 to continue."
4223 if [ "$CFG_SQL_db2" != "no" ]; then
4224 if compileTest unix/db2 "DB2"; then
4225 if [ "$CFG_SQL_db2" = "auto" ]; then
4229 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4230 echo "ODBC support cannot be enabled due to functionality tests!"
4231 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4232 echo " If you believe this message is in error you may use the continue"
4233 echo " switch (-continue) to $0 to continue."
4242 if [ "$CFG_SQL_ibase" != "no" ]; then
4243 if compileTest unix/ibase "InterBase"; then
4244 if [ "$CFG_SQL_ibase" = "auto" ]; then
4245 CFG_SQL_ibase=plugin
4248 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4249 echo "InterBase support cannot be enabled due to functionality tests!"
4250 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4251 echo " If you believe this message is in error you may use the continue"
4252 echo " switch (-continue) to $0 to continue."
4261 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4262 if compileTest unix/sqlite2 "SQLite2"; then
4263 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4264 CFG_SQL_sqlite2=plugin
4267 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4268 echo "SQLite2 support cannot be enabled due to functionality tests!"
4269 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4270 echo " If you believe this message is in error you may use the continue"
4271 echo " switch (-continue) to $0 to continue."
4280 if [ "$CFG_SQL_sqlite" != "no" ]; then
4281 SQLITE_AUTODETECT_FAILED="no"
4282 if [ "$CFG_SQLITE" = "system" ]; then
4283 if [ -n "$PKG_CONFIG" ]; then
4284 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4285 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4288 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4290 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4291 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4292 CFG_SQL_sqlite=plugin
4294 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4296 SQLITE_AUTODETECT_FAILED="yes"
4299 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4300 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4301 CFG_SQL_sqlite=plugin
4304 SQLITE_AUTODETECT_FAILED="yes"
4308 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4309 echo "SQLite support cannot be enabled due to functionality tests!"
4310 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4311 echo " If you believe this message is in error you may use the continue"
4312 echo " switch (-continue) to $0 to continue."
4318 if [ "$OPT_VERBOSE" = "yes" ]; then
4319 echo "unknown SQL driver: $_SQLDR"
4325 # auto-detect NIS support
4326 if [ "$CFG_NIS" != "no" ]; then
4327 if compileTest unix/nis "NIS"; then
4330 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4331 echo "NIS support cannot be enabled due to functionality tests!"
4332 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4333 echo " If you believe this message is in error you may use the continue"
4334 echo " switch (-continue) to $0 to continue."
4342 # auto-detect CUPS support
4343 if [ "$CFG_CUPS" != "no" ]; then
4344 if compileTest unix/cups "Cups"; then
4347 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4348 echo "Cups support cannot be enabled due to functionality tests!"
4349 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4350 echo " If you believe this message is in error you may use the continue"
4351 echo " switch (-continue) to $0 to continue."
4359 # auto-detect iconv(3) support
4360 if [ "$CFG_ICONV" != "no" ]; then
4361 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4363 elif compileTest unix/iconv "POSIX iconv"; then
4365 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4367 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4370 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4371 echo "Iconv support cannot be enabled due to functionality tests!"
4372 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4373 echo " If you believe this message is in error you may use the continue"
4374 echo " switch (-continue) to $0 to continue."
4382 # auto-detect libdbus-1 support
4383 if [ "$CFG_DBUS" != "no" ]; then
4384 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4385 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4386 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4388 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4389 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4390 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4391 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4393 if [ "$CFG_DBUS" = "auto" ]; then
4395 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4396 # CFG_DBUS is "yes" or "linked" here
4398 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4399 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4400 echo " If you believe this message is in error you may use the continue"
4401 echo " switch (-continue) to $0 to continue."
4407 # auto-detect Glib support
4408 if [ "$CFG_GLIB" != "no" ]; then
4409 if [ -n "$PKG_CONFIG" ]; then
4410 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4411 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4413 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4415 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4416 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4418 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4419 echo "Glib support cannot be enabled due to functionality tests!"
4420 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4421 echo " If you believe this message is in error you may use the continue"
4422 echo " switch (-continue) to $0 to continue."
4430 # auto-detect GTK style support
4431 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4432 if [ -n "$PKG_CONFIG" ]; then
4433 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4434 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4436 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4438 QT_CONFIG="$QT_CONFIG gtkstyle"
4439 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4440 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4442 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4443 echo "Gtk theme support cannot be enabled due to functionality tests!"
4444 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4445 echo " If you believe this message is in error you may use the continue"
4446 echo " switch (-continue) to $0 to continue."
4452 elif [ "$CFG_GLIB" = "no" ]; then
4457 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4458 if [ -n "$PKG_CONFIG" ]; then
4459 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4460 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4462 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4464 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4465 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4467 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4468 echo "Gstreamer support cannot be enabled due to functionality tests!"
4469 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4470 echo " If you believe this message is in error you may use the continue"
4471 echo " switch (-continue) to $0 to continue."
4477 elif [ "$CFG_GLIB" = "no" ]; then
4481 # auto-detect libicu support
4482 if [ "$CFG_ICU" != "no" ]; then
4483 if compileTest unix/icu "ICU"; then
4484 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4486 if [ "$CFG_ICU" = "auto" ]; then
4488 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4491 echo "The ICU library support cannot be enabled."
4492 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4493 echo " If you believe this message is in error you may use the continue"
4494 echo " switch (-continue) to $0 to continue."
4500 # Auto-detect PulseAudio support
4501 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4502 if [ -n "$PKG_CONFIG" ]; then
4503 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4504 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4506 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4508 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4509 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4511 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4512 echo "PulseAudio support cannot be enabled due to functionality tests!"
4513 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4514 echo " If you believe this message is in error you may use the continue"
4515 echo " switch (-continue) to $0 to continue."
4524 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4525 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4526 if [ "$CFG_GUI" = "no" ]; then
4527 if [ "$CFG_OPENGL" = "auto" ]; then
4530 if [ "$CFG_OPENGL" != "no" ]; then
4531 echo "OpenGL enabled, but GUI disabled."
4532 echo " You might need to either enable the GUI or disable OpenGL"
4536 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4537 if compileTest x11/opengl "OpenGL"; then
4539 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4542 if [ "$CFG_OPENGL" = "yes" ]; then
4543 echo "All the OpenGL functionality tests failed!"
4544 echo " You might need to modify the include and library search paths by editing"
4545 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4546 echo " ${XQMAKESPEC}."
4553 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4554 if [ "$CFG_OPENGL" = "desktop" ]; then
4555 compileTest x11/glxfbconfig "OpenGL"
4556 if [ $? != "0" ]; then
4557 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4564 elif [ "$CFG_OPENGL" = "es2" ]; then
4566 compileTest unix/opengles2 "OpenGL ES 2.x"
4567 if [ $? != "0" ]; then
4568 echo "The OpenGL ES 2.0 functionality test failed!"
4569 echo " You might need to modify the include and library search paths by editing"
4570 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4571 echo " ${XQMAKESPEC}."
4574 elif [ "$CFG_OPENGL" = "desktop" ]; then
4575 # Desktop OpenGL support
4576 compileTest x11/opengl "OpenGL"
4577 if [ $? != "0" ]; then
4578 echo "The OpenGL functionality test failed!"
4579 echo " You might need to modify the include and library search paths by editing"
4580 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4581 echo " ${XQMAKESPEC}."
4586 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4587 compileTest x11/glxfbconfig "OpenGL"
4588 if [ $? != "0" ]; then
4589 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4596 fi # X11/MINGW OpenGL
4598 if [ "$BUILD_ON_MAC" = "yes" ]; then
4599 if [ "$CFG_COREWLAN" = "auto" ]; then
4600 if compileTest mac/corewlan "CoreWlan"; then
4608 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4609 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4610 if compileTest unix/opengldesktop "OpenGL"; then
4612 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4615 if [ "$CFG_OPENGL" = "yes" ]; then
4616 echo "All the OpenGL functionality tests failed!"
4617 echo " You might need to modify the include and library search paths by editing"
4618 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4619 echo " ${XQMAKESPEC}."
4624 elif [ "$CFG_OPENGL" = "es2" ]; then
4626 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4627 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4628 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4629 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4630 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4631 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4632 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4633 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4636 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4637 if [ $? != "0" ]; then
4638 echo "The OpenGL ES 2.0 functionality test failed!"
4639 echo " You might need to modify the include and library search paths by editing"
4640 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4641 echo " ${XQMAKESPEC}."
4644 elif [ "$CFG_OPENGL" = "desktop" ]; then
4645 # Desktop OpenGL support
4646 compileTest unix/opengldesktop "OpenGL"
4647 if [ $? != "0" ]; then
4648 echo "The OpenGL functionality test failed!"
4649 echo " You might need to modify the include and library search paths by editing"
4650 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4651 echo " ${XQMAKESPEC}."
4656 # auto-detect FontConfig support
4657 if [ "$CFG_FONTCONFIG" != "no" ]; then
4658 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4659 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4660 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4662 QT_CFLAGS_FONTCONFIG=
4663 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4665 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4666 QT_CONFIG="$QT_CONFIG fontconfig"
4667 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4668 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4670 CFG_LIBFREETYPE=system
4677 # Save these for a check later
4678 ORIG_CFG_XCB="$CFG_XCB"
4679 ORIG_CFG_EGLFS="$CFG_EGLFS"
4680 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4681 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4682 ORIG_CFG_KMS="$CFG_KMS"
4684 if [ "$CFG_LIBUDEV" != "no" ]; then
4685 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4686 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4687 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4688 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4689 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4691 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4693 QT_CONFIG="$QT_CONFIG libudev"
4694 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4695 echo "The libudev functionality test failed!"
4701 if [ "$CFG_LIBUDEV" = "no" ]; then
4702 QMakeVar add DEFINES QT_NO_LIBUDEV
4705 if [ "$CFG_EVDEV" != "no" ]; then
4706 if compileTest unix/evdev "evdev"; then
4708 QT_CONFIG="$QT_CONFIG evdev"
4709 elif [ "$CFG_EVDEV" = "yes" ]; then
4710 echo "The evdev functionality test failed!"
4716 if [ "$CFG_EVDEV" = "no" ]; then
4717 QMakeVar add DEFINES QT_NO_EVDEV
4720 # Check we actually have X11 :-)
4721 if compileTest x11/xlib "XLib"; then
4722 QT_CONFIG="$QT_CONFIG xlib"
4725 # auto-detect Xrender support
4726 if [ "$CFG_XRENDER" != "no" ]; then
4727 if compileTest x11/xrender "Xrender"; then
4729 QT_CONFIG="$QT_CONFIG xrender"
4731 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4732 echo "Xrender support cannot be enabled due to functionality tests!"
4733 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4734 echo " If you believe this message is in error you may use the continue"
4735 echo " switch (-continue) to $0 to continue."
4743 if [ "$CFG_XCB" != "no" ]; then
4744 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4745 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4746 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4748 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4750 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4751 QT_CONFIG="$QT_CONFIG xcb-render"
4754 if compileTest qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4756 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4759 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4760 QT_CONFIG="$QT_CONFIG xcb-xlib"
4763 # auto-detect XInput2 support. Needed by xcb too.
4764 if [ "$CFG_XINPUT2" != "no" ]; then
4765 if compileTest x11/xinput2 "XInput2"; then
4769 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4770 echo "XInput2 support cannot be enabled due to functionality tests!"
4771 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4772 echo " If you believe this message is in error you may use the continue"
4773 echo " switch (-continue) to $0 to continue."
4781 if [ "$CFG_XCB" = "yes" ]; then
4782 echo "The XCB test failed!"
4783 echo " You might need to install dependency packages."
4784 echo " See src/plugins/platforms/xcb/README."
4790 if [ "$CFG_XCB" = "no" ]; then
4791 QMakeVar add DEFINES QT_NO_XCB
4794 if [ "$CFG_DIRECTFB" != "no" ]; then
4795 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4796 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4797 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4798 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4800 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4801 echo " DirectFB support cannot be enabled due to functionality tests!"
4802 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4803 echo " If you believe this message is in error you may use the continue"
4804 echo " switch (-continue) to $0 to continue."
4814 if [ "$CFG_LINUXFB" != "no" ]; then
4815 if compileTest qpa/linuxfb "LinuxFB"; then
4817 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4818 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4819 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4820 echo " If you believe this message is in error you may use the continue"
4821 echo " switch (-continue) to $0 to continue."
4828 if [ "$CFG_KMS" != "no" ]; then
4829 if compileTest qpa/kms "KMS"; then
4831 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4832 echo " KMS support cannot be enabled due to functionality tests!"
4833 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4834 echo " If you believe this message is in error you may use the continue"
4835 echo " switch (-continue) to $0 to continue."
4842 # Detect libxkbcommon
4843 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4844 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4845 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4846 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4847 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4849 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4853 if [ "$CFG_EGL" != "no" ]; then
4854 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4855 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4856 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4857 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4858 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4859 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4860 fi # detect EGL support
4861 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4863 elif [ "$CFG_EGL" = "yes" ]; then
4864 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4865 echo " You might need to modify the include and library search paths by editing"
4866 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4871 elif [ "$CFG_OPENGL" = "desktop" ]; then
4872 if [ "$CFG_EGL" = "yes" ]; then
4873 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4874 echo "Either disable EGL support or enable OpenGL ES support."
4880 if [ "$CFG_EGLFS" != "no" ]; then
4881 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4882 CFG_EGLFS="$CFG_EGL"
4888 if [ "$CFG_KMS" = "yes" ]; then
4889 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4896 # Detect accessibility support
4897 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4898 if [ "$CFG_XCB" = "no" ]; then
4899 CFG_ACCESSIBILITY=yes
4901 # linux/xcb accessibility needs dbus and atspi-2
4902 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "atspi-2" 2>/dev/null; then
4903 CFG_ACCESSIBILITY=yes
4905 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4906 CFG_ACCESSIBILITY=no
4908 echo "Accessibility support needs pkg-config and libatspi2."
4915 # Determine the default QPA platform
4916 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4918 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4919 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4920 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4921 QT_QPA_DEFAULT_PLATFORM="windows"
4922 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4923 QT_QPA_DEFAULT_PLATFORM="cocoa"
4924 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4925 QT_QPA_DEFAULT_PLATFORM="qnx"
4927 QT_QPA_DEFAULT_PLATFORM="xcb"
4932 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4933 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4934 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4935 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4937 if [ "$CFG_DIRECTFB" = "yes" ]; then
4938 QT_CONFIG="$QT_CONFIG directfb"
4939 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4940 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4942 if [ "$CFG_LINUXFB" = "yes" ]; then
4943 QT_CONFIG="$QT_CONFIG linuxfb"
4945 if [ "$CFG_KMS" = "yes" ]; then
4946 QT_CONFIG="$QT_CONFIG kms"
4949 if [ "$BUILD_ON_MAC" = "yes" ]; then
4950 if compileTest mac/coreservices "CoreServices"; then
4951 QT_CONFIG="$QT_CONFIG coreservices"
4953 QMakeVar add DEFINES QT_NO_CORESERVICES
4957 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4958 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
4959 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4960 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
4961 echo "No QPA platform plugin enabled!"
4962 echo " If you really want to build without a QPA platform plugin you must pass"
4963 echo " -no-qpa-platform-guard to configure. Doing this will"
4964 echo " produce a Qt that can not run GUI applications."
4965 echo " The dependencies needed for xcb to build are listed in"
4966 echo " src/plugins/platforms/xcb/README"
4973 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4974 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4975 if compileTest unix/freetype "FreeType"; then
4976 CFG_LIBFREETYPE=system
4982 if ! compileTest unix/stl "STL" &&
4983 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4984 echo "STL functionality check failed! Cannot build Qt with this STL library."
4985 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4990 # detect POSIX clock_gettime()
4991 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
4992 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
4993 CFG_CLOCK_GETTIME=yes
4995 CFG_CLOCK_GETTIME=no
4999 # detect POSIX monotonic clocks
5000 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5001 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5002 CFG_CLOCK_MONOTONIC=yes
5004 CFG_CLOCK_MONOTONIC=no
5006 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5007 CFG_CLOCK_MONOTONIC=no
5011 if [ "$CFG_MREMAP" = "auto" ]; then
5012 if compileTest unix/mremap "mremap"; then
5019 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5020 if [ "$CFG_GETADDRINFO" != "no" ]; then
5021 if compileTest unix/getaddrinfo "getaddrinfo"; then
5024 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5025 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5026 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5027 echo " If you believe this message is in error you may use the continue"
5028 echo " switch (-continue) to $0 to continue."
5036 # find if the platform provides inotify
5037 if [ "$CFG_INOTIFY" != "no" ]; then
5038 if compileTest unix/inotify "inotify"; then
5041 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5042 echo "inotify support cannot be enabled due to functionality tests!"
5043 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5044 echo " If you believe this message is in error you may use the continue"
5045 echo " switch (-continue) to $0 to continue."
5053 # find if the platform provides if_nametoindex (ipv6 interface name support)
5054 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5055 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5058 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5059 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5060 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5061 echo " If you believe this message is in error you may use the continue"
5062 echo " switch (-continue) to $0 to continue."
5070 # find if the platform provides getifaddrs (network interface enumeration)
5071 if [ "$CFG_GETIFADDRS" != "no" ]; then
5072 if compileTest unix/getifaddrs "getifaddrs"; then
5075 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5076 echo "getifaddrs support cannot be enabled due to functionality tests!"
5077 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5078 echo " If you believe this message is in error you may use the continue"
5079 echo " switch (-continue) to $0 to continue."
5088 if [ "$CFG_OPENSSL" != "no" ]; then
5089 if compileTest unix/openssl "OpenSSL"; then
5090 if [ "$CFG_OPENSSL" = "auto" ]; then
5094 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5095 echo "OpenSSL support cannot be enabled due to functionality tests!"
5096 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5097 echo " If you believe this message is in error you may use the continue"
5098 echo " switch (-continue) to $0 to continue."
5107 if [ "$CFG_PCRE" != "qt" ]; then
5108 if compileTest unix/pcre "PCRE"; then
5111 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5112 echo "PCRE support cannot be enabled due to functionality tests!"
5113 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5114 echo " If you believe this message is in error you may use the continue"
5115 echo " switch (-continue) to $0 to continue."
5123 # detect OpenVG support
5124 if [ "$CFG_OPENVG" != "no" ]; then
5125 if compileTest unix/openvg "OpenVG"; then
5126 if [ "$CFG_OPENVG" = "auto" ]; then
5129 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5130 if [ "$CFG_OPENVG" = "auto" ]; then
5133 CFG_OPENVG_ON_OPENGL=yes
5134 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5135 if [ "$CFG_OPENVG" = "auto" ]; then
5138 CFG_OPENVG_LC_INCLUDES=yes
5139 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5140 if [ "$CFG_OPENVG" = "auto" ]; then
5143 CFG_OPENVG_LC_INCLUDES=yes
5144 CFG_OPENVG_ON_OPENGL=yes
5146 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5147 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5148 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5149 echo " If you believe this message is in error you may use the continue"
5150 echo " switch (-continue) to $0 to continue."
5156 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5157 CFG_OPENVG_SHIVA=yes
5161 if [ "$CFG_ALSA" = "auto" ]; then
5162 if compileTest unix/alsa "alsa"; then
5169 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5170 if [ "$CFG_ARCH" = "arm" ]; then
5171 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5172 if [ $? != "0" ]; then
5173 CFG_JAVASCRIPTCORE_JIT=no
5176 case "$XPLATFORM" in
5178 CFG_JAVASCRIPTCORE_JIT=no
5184 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5185 QMakeVar set JAVASCRIPTCORE_JIT yes
5186 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5187 QMakeVar set JAVASCRIPTCORE_JIT no
5190 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5191 CFG_AUDIO_BACKEND=yes
5194 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5195 echo "Warning: largefile support cannot be disabled for win32."
5199 #-------------------------------------------------------------------------------
5200 # ask for all that hasn't been auto-detected or specified in the arguments
5201 #-------------------------------------------------------------------------------
5203 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5205 # disable accessibility
5206 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5207 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5209 QT_CONFIG="$QT_CONFIG accessibility"
5213 if [ "$CFG_EGL" = "yes" ]; then
5214 QT_CONFIG="$QT_CONFIG egl"
5216 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5220 if [ "$CFG_EGLFS" = "yes" ]; then
5221 QT_CONFIG="$QT_CONFIG eglfs"
5223 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5227 if [ "$CFG_OPENVG" = "no" ]; then
5228 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5230 QT_CONFIG="$QT_CONFIG openvg"
5231 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5232 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5234 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5235 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5237 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5238 QT_CONFIG="$QT_CONFIG shivavg"
5239 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5244 if [ "$CFG_OPENGL" = "no" ]; then
5245 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5247 QT_CONFIG="$QT_CONFIG opengl"
5250 if [ "$CFG_OPENGL" = "es2" ]; then
5251 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5254 if [ "$CFG_OPENGL" = "es2" ]; then
5255 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5256 QT_CONFIG="$QT_CONFIG opengles2"
5259 # build up the variables for output
5260 if [ "$CFG_DEBUG" = "yes" ]; then
5261 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5262 elif [ "$CFG_DEBUG" = "no" ]; then
5263 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5265 if [ "$CFG_SHARED" = "yes" ]; then
5266 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5267 QT_CONFIG="$QT_CONFIG shared"
5268 elif [ "$CFG_SHARED" = "no" ]; then
5269 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5270 QT_CONFIG="$QT_CONFIG static"
5273 #FIXME: qpa is implicit this should all be removed
5274 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5275 QT_CONFIG="$QT_CONFIG qpa"
5276 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5277 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5279 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5280 # Do not set this here for Windows. Let qmake do it so
5281 # debug and release precompiled headers are kept separate.
5282 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5284 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5285 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5286 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5287 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5288 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5289 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5291 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5292 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5294 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5295 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5296 [ "$CFG_STRIP" = "no" ] && QMAKE_CONFIG="$QMAKE_CONFIG nostrip"
5297 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5298 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5299 QMakeVar add QMAKE_CFLAGS -g
5300 QMakeVar add QMAKE_CXXFLAGS -g
5301 QT_CONFIG="$QT_CONFIG separate_debug_info"
5303 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5304 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5306 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5307 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5308 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5309 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5310 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5311 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5312 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5313 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5314 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5315 if [ "$CFG_ARCH" = "mips" ]; then
5316 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5317 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5319 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5320 QT_CONFIG="$QT_CONFIG clock-gettime"
5322 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5323 QT_CONFIG="$QT_CONFIG clock-monotonic"
5325 if [ "$CFG_MREMAP" = "yes" ]; then
5326 QT_CONFIG="$QT_CONFIG mremap"
5328 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5329 QT_CONFIG="$QT_CONFIG getaddrinfo"
5331 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5332 QT_CONFIG="$QT_CONFIG ipv6ifname"
5334 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5335 QT_CONFIG="$QT_CONFIG getifaddrs"
5337 if [ "$CFG_INOTIFY" = "yes" ]; then
5338 QT_CONFIG="$QT_CONFIG inotify"
5340 if [ "$CFG_LIBJPEG" = "no" ]; then
5342 elif [ "$CFG_LIBJPEG" = "system" ]; then
5343 QT_CONFIG="$QT_CONFIG system-jpeg"
5345 if [ "$CFG_JPEG" = "no" ]; then
5346 QT_CONFIG="$QT_CONFIG no-jpeg"
5347 elif [ "$CFG_JPEG" = "yes" ]; then
5348 QT_CONFIG="$QT_CONFIG jpeg"
5350 if [ "$CFG_LIBPNG" = "no" ]; then
5353 if [ "$CFG_LIBPNG" = "system" ]; then
5354 QT_CONFIG="$QT_CONFIG system-png"
5356 if [ "$CFG_PNG" = "no" ]; then
5357 QT_CONFIG="$QT_CONFIG no-png"
5358 elif [ "$CFG_PNG" = "yes" ]; then
5359 QT_CONFIG="$QT_CONFIG png"
5361 if [ "$CFG_GIF" = "no" ]; then
5362 QT_CONFIG="$QT_CONFIG no-gif"
5363 elif [ "$CFG_GIF" = "yes" ]; then
5364 QT_CONFIG="$QT_CONFIG gif"
5366 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5367 QT_CONFIG="$QT_CONFIG no-freetype"
5368 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5369 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5370 QT_CONFIG="$QT_CONFIG system-freetype"
5372 QT_CONFIG="$QT_CONFIG freetype"
5374 if [ "$CFG_GUI" = "auto" ]; then
5377 if [ "$CFG_GUI" = "no" ]; then
5378 QT_CONFIG="$QT_CONFIG no-gui"
5381 if [ "$CFG_WIDGETS" = "no" ]; then
5382 QT_CONFIG="$QT_CONFIG no-widgets"
5383 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5386 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5387 #On Mac we implicitly link against libz, so we
5388 #never use the 3rdparty stuff.
5389 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5391 if [ "$CFG_ZLIB" = "yes" ]; then
5392 QT_CONFIG="$QT_CONFIG zlib"
5393 elif [ "$CFG_ZLIB" = "system" ]; then
5394 QT_CONFIG="$QT_CONFIG system-zlib"
5397 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5398 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5399 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5400 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5401 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5402 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5403 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5404 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5405 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5406 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5407 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5408 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5409 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5410 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5412 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5413 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5415 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5416 if [ "$CFG_RPATH" = "yes" ]; then
5417 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5419 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5420 if [ -n "$RPATH_FLAGS" ]; then
5422 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5426 elif [ "$CFG_RPATH" = "yes" ]; then
5427 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5431 if [ -n "$RPATH_FLAGS" ]; then
5432 # add the user defined rpaths
5433 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5436 if [ "$CFG_RPATH" = "yes" ]; then
5437 QT_CONFIG="$QT_CONFIG rpath"
5440 if [ '!' -z "$I_FLAGS" ]; then
5441 # add the user define include paths
5442 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5443 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5446 if [ '!' -z "$W_FLAGS" ]; then
5447 # add the user defined warning flags
5448 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5449 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5450 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5453 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5454 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5455 # Follow default behavior of configure.exe by overriding with "rtti".
5456 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5459 if [ "$CFG_ALSA" = "yes" ]; then
5460 QT_CONFIG="$QT_CONFIG alsa"
5463 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5464 QT_CONFIG="$QT_CONFIG pulseaudio"
5467 if [ "$CFG_COREWLAN" = "yes" ]; then
5468 QT_CONFIG="$QT_CONFIG corewlan"
5471 if [ "$CFG_ICU" = "yes" ]; then
5472 QT_CONFIG="$QT_CONFIG icu"
5475 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5476 QT_CONFIG="$QT_CONFIG force_asserts"
5479 if [ "$CFG_PCRE" = "qt" ]; then
5480 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5484 # Some Qt modules are too advanced in C++ for some old compilers
5485 # Detect here the platforms where they are known to work.
5487 # See Qt documentation for more information on which features are
5488 # supported and on which compilers.
5490 canBuildQtConcurrent="yes"
5491 canUseV8Snapshot="yes"
5493 case "$XPLATFORM" in
5495 # PA-RISC's assembly is too limited
5496 # gcc 3.4 on that platform can't build QtXmlPatterns
5497 # the assembly it generates cannot be compiled
5499 # Check gcc's version
5500 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5504 canBuildQtXmlPatterns="no"
5508 canBuildQtXmlPatterns="no"
5512 unsupported/vxworks-*-g++*)
5515 unsupported/vxworks-*-dcc*)
5517 canBuildQtXmlPatterns="no"
5520 # Check gcc's version
5521 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5529 canBuildQtXmlPatterns="no"
5534 # Check the compiler version
5535 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5538 canBuildQtXmlPatterns="no"
5539 canBuildQtConcurrent="no"
5543 canBuildQtConcurrent="no"
5549 canBuildQtXmlPatterns="no"
5550 canBuildQtConcurrent="no"
5556 # Get the xlC version
5557 cat > xlcver.c <<EOF
5561 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5566 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5567 xlcver=`./xlcver 2>/dev/null`
5570 if [ "$OPT_VERBOSE" = "yes" ]; then
5571 if [ -n "$xlcver" ]; then
5572 echo Found IBM xlC version: $xlcver.
5574 echo Could not determine IBM xlC version, assuming oldest supported.
5581 canBuildQtXmlPatterns="no"
5582 canBuildQtConcurrent="no"
5586 canBuildQtConcurrent="no"
5592 canBuildQtConcurrent="no"
5596 if [ "$CFG_GUI" = "no" ]; then
5597 # WebKit requires QtGui
5601 if [ "$CFG_SHARED" = "no" ]; then
5603 echo "WARNING: Using static linking will disable the WebKit module."
5608 CFG_CONCURRENT="yes"
5609 if [ "$canBuildQtConcurrent" = "no" ]; then
5610 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5613 QT_CONFIG="$QT_CONFIG concurrent"
5617 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5618 QT_CONFIG="$QT_CONFIG audio-backend"
5622 if [ "$CFG_WEBKIT" = "debug" ]; then
5623 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5627 QT_CONFIG="$QT_CONFIG v8"
5628 # Detect snapshot support
5629 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5630 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5633 *) canUseV8Snapshot="no"
5637 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5638 # QEMU crashes when building inside Scratchbox with an ARM target
5639 canUseV8Snapshot="no"
5642 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5643 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5645 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5646 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5649 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5650 QT_CONFIG="$QT_CONFIG v8snapshot"
5654 if [ "$CFG_QML_DEBUG" = "no" ]; then
5655 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5658 case "$QMAKE_CONF_COMPILER" in
5661 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5663 case "$COMPILER_VERSION" in
5665 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5666 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5667 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5670 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5671 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5672 QT_GCC_PATCH_VERSION=0
5682 #-------------------------------------------------------------------------------
5683 # part of configuration information goes into qconfig.h
5684 #-------------------------------------------------------------------------------
5686 case "$CFG_QCONFIG" in
5688 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5691 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5692 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5693 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5694 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5695 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5696 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5698 echo "#endif" >>"$tmpconfig"
5702 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5706 # define QT_EDITION $QT_EDITION
5710 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5711 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5713 if [ "$CFG_SHARED" = "no" ]; then
5714 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5715 /* Qt was configured for a static build */
5716 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5723 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5724 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5727 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5728 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5731 if [ "$BUILD_ON_MAC" = "yes" ]; then
5732 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5733 #if defined(__LP64__)
5734 # define QT_POINTER_SIZE 8
5736 # define QT_POINTER_SIZE 4
5740 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5741 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5744 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5745 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5746 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5749 # Add compiler sub-architecture support
5750 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5751 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5752 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5754 MIPS_DSP MIPS_DSPR2; do
5755 eval "VAL=\$CFG_$SUBARCH"
5758 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5759 >>"$outpath/src/corelib/global/qconfig.h.new"
5764 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5766 if [ "$CFG_DEV" = "yes" ]; then
5767 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5770 # Add QPA to config.h
5771 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5773 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5774 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5777 # Add turned on SQL drivers
5778 for DRIVER in $CFG_SQL_AVAILABLE; do
5779 eval "VAL=\$CFG_SQL_$DRIVER"
5782 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5783 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5784 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5787 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5792 QMakeVar set sql-drivers "$SQL_DRIVERS"
5793 QMakeVar set sql-plugins "$SQL_PLUGINS"
5795 # Add other configuration options to the qconfig.h file
5796 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5797 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5798 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5799 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5800 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5802 # X11/Unix/Mac only configs
5803 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5804 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5805 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5806 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5807 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5808 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5809 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5810 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5811 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5812 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5813 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5814 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5815 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5816 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5818 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5819 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5820 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5821 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5822 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5823 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5824 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5825 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5826 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5827 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5828 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5829 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5830 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5832 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5833 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5834 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5835 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5836 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5837 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5838 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5839 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5841 # sort QCONFIG_FLAGS for neatness if we can
5842 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5843 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5845 if [ -n "$QCONFIG_FLAGS" ]; then
5846 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5847 #ifndef QT_BOOTSTRAPPED
5850 for cfg in $QCONFIG_FLAGS; do
5851 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5852 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5853 # figure out define logic, so we can output the correct
5854 # ifdefs to override the global defines in a project
5856 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5857 # QT_NO_option can be forcefully turned on by QT_option
5858 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5859 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5860 # QT_option can be forcefully turned off by QT_NO_option
5861 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5864 if [ -z $cfgdNeg ]; then
5865 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5872 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5873 #if defined($cfgd) && defined($cfgdNeg)
5875 #elif !defined($cfgd) && !defined($cfgdNeg)
5882 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5883 #endif // QT_BOOTSTRAPPED
5888 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5889 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5890 #define QT_VISIBILITY_AVAILABLE
5895 if [ -n "$QT_LIBINFIX" ]; then
5896 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5897 #define QT_LIBINFIX "$QT_LIBINFIX"
5902 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5904 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5905 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5906 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5908 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5909 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5910 chmod -w "$outpath/src/corelib/global/qconfig.h"
5911 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5912 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5916 #-------------------------------------------------------------------------------
5917 # save configuration into qconfig.pri
5918 #-------------------------------------------------------------------------------
5919 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5920 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5921 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5922 if [ "$CFG_DEBUG" = "yes" ]; then
5923 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5924 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5925 QT_CONFIG="$QT_CONFIG release"
5927 QT_CONFIG="$QT_CONFIG debug"
5928 elif [ "$CFG_DEBUG" = "no" ]; then
5929 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5930 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5931 QT_CONFIG="$QT_CONFIG debug"
5933 QT_CONFIG="$QT_CONFIG release"
5935 if [ "$CFG_FRAMEWORK" = "no" ]; then
5936 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5938 QT_CONFIG="$QT_CONFIG qt_framework"
5939 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5941 if [ "$CFG_DEV" = "yes" ]; then
5942 QT_CONFIG="$QT_CONFIG private_tests"
5945 cat >>"$QTCONFIG.tmp" <<EOF
5947 CONFIG += $QTCONFIG_CONFIG
5949 QT_HOST_ARCH = $CFG_HOST_ARCH
5950 QT_CPU_FEATURES = $CFG_CPUFEATURES
5951 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5952 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5953 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5954 QT_EDITION = $Edition
5955 QT_CONFIG += $QT_CONFIG
5958 QT_VERSION = $QT_VERSION
5959 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5960 QT_MINOR_VERSION = $QT_MINOR_VERSION
5961 QT_PATCH_VERSION = $QT_PATCH_VERSION
5964 QT_LIBINFIX = $QT_LIBINFIX
5965 QT_NAMESPACE = $QT_NAMESPACE
5969 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5970 echo "# pkgconfig" >> "$QTCONFIG.tmp"
5971 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5972 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5973 echo >> "$QTCONFIG.tmp"
5976 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
5977 echo "# sysroot" >>"$QTCONFIG.tmp"
5978 echo "!host_build {" >>"$QTCONFIG.tmp"
5979 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5980 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5981 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5982 echo "}" >> "$QTCONFIG.tmp"
5983 echo >> "$QTCONFIG.tmp"
5985 if [ -n "$RPATH_FLAGS" ]; then
5986 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
5988 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
5989 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
5990 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
5991 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
5994 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
5995 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
5996 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
5999 # replace qconfig.pri if it differs from the newly created temp file
6000 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6001 rm -f "$QTCONFIG.tmp"
6003 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6006 #-------------------------------------------------------------------------------
6007 # save configuration into qmodule.pri
6008 #-------------------------------------------------------------------------------
6009 QTMODULE="$outpath/mkspecs/qmodule.pri"
6011 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
6012 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6014 if [ -n "$QT_CFLAGS_PSQL" ]; then
6015 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6017 if [ -n "$QT_LFLAGS_PSQL" ]; then
6018 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6020 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6021 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6023 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6024 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6026 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6027 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6029 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6030 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6032 if [ -n "$QT_LFLAGS_ODBC" ]; then
6033 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6035 if [ -n "$QT_LFLAGS_TDS" ]; then
6036 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6039 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6040 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6043 #dump in the OPENSSL_LIBS info
6044 if [ '!' -z "$OPENSSL_LIBS" ]; then
6045 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6046 elif [ "$CFG_OPENSSL" = "linked" ]; then
6047 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6050 #dump in the SDK info
6051 if [ '!' -z "$CFG_SDK" ]; then
6052 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6056 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6057 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6059 # replace qmodule.pri if it differs from the newly created temp file
6060 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6061 rm -f "$QTMODULE.tmp"
6063 mv -f "$QTMODULE.tmp" "$QTMODULE"
6066 #-------------------------------------------------------------------------------
6067 # save configuration into .qmake.cache
6068 #-------------------------------------------------------------------------------
6070 CACHEFILE="$outpath/.qmake.cache"
6071 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6072 cat >>"$CACHEFILE.tmp" <<EOF
6074 QT_SOURCE_TREE = \$\$quote($relpath)
6075 QT_BUILD_TREE = \$\$quote($outpath)
6077 include(\$\$PWD/mkspecs/qmodule.pri)
6078 CONFIG += dylib fix_output_dirs no_private_qt_headers_warning QTDIR_build
6082 # replace .qmake.cache if it differs from the newly created temp file
6083 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6084 rm -f "$CACHEFILE.tmp"
6086 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6089 #-------------------------------------------------------------------------------
6090 # give feedback on configuration
6091 #-------------------------------------------------------------------------------
6092 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6095 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6096 echo "Build type: $PLATFORM"
6098 echo "Building on: $PLATFORM"
6099 echo "Building for: $XPLATFORM"
6102 # the missing space before $CFG_FEATURES is intentional
6103 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6104 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6106 if [ -n "$PLATFORM_NOTES" ]; then
6107 echo "Platform notes:"
6108 echo "$PLATFORM_NOTES"
6113 if [ "$OPT_VERBOSE" = "yes" ]; then
6114 echo $ECHO_N "qmake vars .......... $ECHO_C"
6115 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6116 echo "qmake switches ......... $QMAKE_SWITCHES"
6119 echo "Build .................. $CFG_BUILD_PARTS"
6120 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6121 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6122 echo "Debug .................. yes (combined)"
6123 if [ "$CFG_DEBUG" = "yes" ]; then
6124 echo "Default Link ........... debug"
6126 echo "Default Link ........... release"
6129 echo "Debug .................. $CFG_DEBUG"
6131 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6132 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6134 echo "C++11 support .......... $CFG_CXX11"
6135 if [ -n "$PKG_CONFIG" ]; then
6136 echo "pkg-config ............. yes"
6138 echo "pkg-config ............. no"
6140 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6141 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6142 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6143 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6144 echo "QtGui module ........... $CFG_GUI"
6145 echo "QtWidgets module ....... $CFG_WIDGETS"
6146 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6147 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6149 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6151 echo "QML debugging .......... $CFG_QML_DEBUG"
6152 echo "PCH support ............ $CFG_PRECOMPILE"
6153 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6154 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6155 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6156 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6157 elif [ "$CFG_ARCH" = "arm" ]; then
6158 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6159 echo "NEON support ........... ${CFG_NEON}"
6161 if [ "$CFG_ARCH" = "mips" ]; then
6162 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6164 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6165 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6166 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6167 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6168 echo "NIS support ............ $CFG_NIS"
6169 echo "CUPS support ........... $CFG_CUPS"
6170 echo "Iconv support .......... $CFG_ICONV"
6171 echo "Glib support ........... $CFG_GLIB"
6172 echo "GStreamer support ...... $CFG_GSTREAMER"
6173 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6174 echo "Large File support ..... $CFG_LARGEFILE"
6175 echo "GIF support ............ $CFG_GIF"
6176 if [ "$CFG_JPEG" = "no" ]; then
6177 echo "JPEG support ........... $CFG_JPEG"
6179 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6181 if [ "$CFG_PNG" = "no" ]; then
6182 echo "PNG support ............ $CFG_PNG"
6184 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6186 echo "zlib support ........... $CFG_ZLIB"
6187 echo "Session management ..... $CFG_SM"
6188 echo "libudev support ........ $CFG_LIBUDEV"
6190 if [ "$CFG_OPENGL" = "desktop" ]; then
6191 echo "OpenGL support ......... yes (Desktop OpenGL)"
6192 elif [ "$CFG_OPENGL" = "es2" ]; then
6193 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6195 echo "OpenGL support ......... no"
6198 if [ "$CFG_OPENVG" ]; then
6199 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6200 echo "OpenVG support ......... ShivaVG"
6202 echo "OpenVG support ......... $CFG_OPENVG"
6206 echo "XShape support ......... $CFG_XSHAPE"
6207 echo "XVideo support ......... $CFG_XVIDEO"
6208 echo "XSync support .......... $CFG_XSYNC"
6209 echo "Xinerama support ....... $CFG_XINERAMA"
6210 echo "Xcursor support ........ $CFG_XCURSOR"
6211 echo "Xfixes support ......... $CFG_XFIXES"
6212 echo "Xrandr support ......... $CFG_XRANDR"
6213 echo "Xi support ............. $CFG_XINPUT"
6214 echo "Xi2 support ............ $CFG_XINPUT2"
6215 echo "MIT-SHM support ........ $CFG_MITSHM"
6216 echo "FontConfig support ..... $CFG_FONTCONFIG"
6217 echo "XKB Support ............ $CFG_XKB"
6218 echo "immodule support ....... $CFG_IM"
6219 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6221 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6222 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6223 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6224 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6225 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6226 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6227 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6228 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6229 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6232 if [ "$CFG_OPENSSL" = "yes" ]; then
6233 OPENSSL_LINKAGE="(run-time)"
6234 elif [ "$CFG_OPENSSL" = "linked" ]; then
6235 OPENSSL_LINKAGE="(linked)"
6237 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6238 echo "Alsa support ........... $CFG_ALSA"
6239 if [ "$BUILD_ON_MAC" = "yes" ]; then
6240 echo "CoreWlan support ....... $CFG_COREWLAN"
6242 echo "libICU support ......... $CFG_ICU"
6243 echo "PCRE support ........... $CFG_PCRE"
6244 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6245 echo "Xcb support ............ limited (old version)"
6247 echo "Xcb support ............ $CFG_XCB"
6249 echo "Xrender support ........ $CFG_XRENDER"
6250 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6251 echo "XInput2 support ........ $CFG_XINPUT2"
6253 echo "EGLFS support .......... $CFG_EGLFS"
6254 echo "DirectFB support ....... $CFG_DIRECTFB"
6255 echo "LinuxFB support ........ $CFG_LINUXFB"
6256 echo "KMS support ............ $CFG_KMS"
6259 # complain about not being able to use dynamic plugins if we are using a static build
6260 if [ "$CFG_SHARED" = "no" ]; then
6262 echo "WARNING: Using static linking will disable the use of dynamically"
6263 echo "loaded plugins. Make sure to import all needed static plugins,"
6264 echo "or compile needed modules into the library."
6267 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6269 echo "NOTE: When linking against OpenSSL, you can override the default"
6270 echo "library names through OPENSSL_LIBS."
6272 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6276 exec 1>&3 3>&- # restore stdout
6277 cat $outpath/config.summary # display config feedback to user
6279 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6281 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6282 echo "if you want a pure debug build."
6287 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6292 #-------------------------------------------------------------------------------
6293 # build makefiles based on the configuration
6294 #-------------------------------------------------------------------------------
6296 if [ "$CFG_PROCESS" != "no" ]; then
6298 if [ "$CFG_PROCESS" = "full" ]; then
6299 echo "Creating makefiles. Please wait..."
6300 "$outpath/bin/qmake" -r "$relpath"
6303 "$outpath/bin/qmake" "$relpath"
6306 if [ "$OPT_FAST" = "yes" ]; then
6308 for part in $CFG_BUILD_PARTS; do
6310 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6313 if [ "x$PART_ROOTS" != "x" ]; then
6315 echo "Creating stub makefiles. Please wait..."
6316 QMAKE="$outpath/bin/qmake"
6317 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6318 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6320 test -f "$outpath/$d/Makefile" && continue
6321 echo " for $relpath/$p"
6323 mkdir -p "$outpath/$d" || exit
6324 cat > "$outpath/$d/Makefile" <<EOF || exit
6325 # $outpath/$d/Makefile: generated by configure
6327 # WARNING: This makefile will be replaced with a real makefile.
6328 # All changes made to this file will be lost.
6333 all clean install qmake first Makefile: FORCE
6334 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6344 #-------------------------------------------------------------------------------
6345 # check for platforms that we don't yet know about
6346 #-------------------------------------------------------------------------------
6347 if [ "$CFG_ARCH" = "unknown" ]; then
6350 NOTICE: configure was unable to determine the architecture
6351 for the $XQMAKESPEC target.
6353 Qt will not use a specialized implementation for any atomic
6354 operations. Instead a generic implemention based on either GCC
6355 intrinsics or C++11 std::atomic<T> will be used (when
6356 available). The generic implementations are generally as fast
6357 as and always as safe as a specialized implementation.
6359 If no generic implementation is available, Qt will use a
6360 fallback UNIX implementation which uses a single
6361 pthread_mutex_t to protect all atomic operations. This
6362 implementation is the slow (but safe) fallback implementation
6363 for architectures Qt does not yet support.
6367 #-------------------------------------------------------------------------------
6368 # check if the user passed the -no-zlib option, which is no longer supported
6369 #-------------------------------------------------------------------------------
6370 if [ -n "$ZLIB_FORCED" ]; then
6371 which_zlib="supplied"
6372 if [ "$CFG_ZLIB" = "system" ]; then
6378 NOTICE: The -no-zlib option was supplied but is no longer
6381 Qt now requires zlib support in all builds, so the -no-zlib
6382 option was ignored. Qt will be built using the $which_zlib
6387 #-------------------------------------------------------------------------------
6388 # check if the user passed the obsoleted -wayland or -no-wayland flag
6389 #-------------------------------------------------------------------------------
6390 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6393 NOTICE: The -wayland and -no-wayland flags are now obsolete
6395 All configuring of QtWayland plugin and QtCompositor happens in the module
6399 #-------------------------------------------------------------------------------
6400 # check if the user passed the obsoleted -arch or -host-arch options
6401 #-------------------------------------------------------------------------------
6402 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6405 NOTICE: The -arch and -host-arch options are obsolete.
6407 Qt now detects the target and host architectures based on compiler
6408 output. Qt will be built using $CFG_ARCH for the target architecture
6409 and $CFG_HOST_ARCH for the host architecture (note that these two
6410 will be the same unless you are cross-compiling).
6414 #-------------------------------------------------------------------------------
6415 # finally save the executed command to another script
6416 #-------------------------------------------------------------------------------
6417 if [ `basename $0` != "config.status" ]; then
6418 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6420 # add the system variables
6421 for varname in $SYSTEM_VARIABLES; do
6423 'if [ -n "\$'${varname}'" ]; then
6424 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6429 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6431 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6432 echo "#!/bin/sh" > "$outpath/config.status"
6433 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6434 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6435 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6436 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6437 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6438 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6439 echo "else" >> "$outpath/config.status"
6440 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6441 echo "fi" >> "$outpath/config.status"
6442 chmod +x "$outpath/config.status"
6445 if [ -n "$RPATH_MESSAGE" ]; then
6447 echo "$RPATH_MESSAGE"
6450 MAKE=`basename "$MAKE"`
6452 echo Qt is now configured for building. Just run \'$MAKE\'.
6453 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6454 echo Once everything is built, Qt is installed.
6455 echo You should not run \'$MAKE install\'.
6457 echo Once everything is built, you must run \'$MAKE install\'.
6458 echo Qt will be installed into $QT_INSTALL_PREFIX
6461 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.