2 #############################################################################
4 ## Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
5 ## Contact: http://www.qt-project.org/
7 ## This file is the build configuration utility of the Qt Toolkit.
9 ## $QT_BEGIN_LICENSE:LGPL$
10 ## GNU Lesser General Public License Usage
11 ## This file may be used under the terms of the GNU Lesser General Public
12 ## License version 2.1 as published by the Free Software Foundation and
13 ## appearing in the file LICENSE.LGPL included in the packaging of this
14 ## file. Please review the following information to ensure the GNU Lesser
15 ## General Public License version 2.1 requirements will be met:
16 ## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
18 ## In addition, as a special exception, Nokia gives you certain additional
19 ## rights. These rights are described in the Nokia Qt LGPL Exception
20 ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
22 ## GNU General Public License Usage
23 ## Alternatively, this file may be used under the terms of the GNU General
24 ## Public License version 3.0 as published by the Free Software Foundation
25 ## and appearing in the file LICENSE.GPL included in the packaging of this
26 ## file. Please review the following information to ensure the GNU General
27 ## Public License version 3.0 requirements will be met:
28 ## http://www.gnu.org/copyleft/gpl.html.
31 ## Alternatively, this file may be used in accordance with the terms and
32 ## conditions contained in a signed written agreement between you and Nokia.
41 #############################################################################
43 #-------------------------------------------------------------------------------
44 # script initialization
45 #-------------------------------------------------------------------------------
47 # the name of this script
49 # the directory of this script is the "source tree"
51 relpath=`(cd "$relpath"; /bin/pwd)`
52 # the current directory is the "build tree" or "object tree"
55 #license file location
56 LICENSE_FILE="$QT_LICENSE_FILE"
57 [ -z "$LICENSE_FILE" ] && LICENSE_FILE="$HOME/.qt-license"
58 if [ -f "$LICENSE_FILE" ]; then
59 tr -d '\r' <"$LICENSE_FILE" >"${LICENSE_FILE}.tmp"
60 diff "${LICENSE_FILE}.tmp" "${LICENSE_FILE}" >/dev/null 2>&1 || LICENSE_FILE="${LICENSE_FILE}.tmp"
63 # later cache the command line in config.status
64 OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
66 # initialize global variables
73 QMAKE_VARS_FILE=.qmake.vars
74 DEVICE_VARS_FILE=.device.vars
77 :> "$DEVICE_VARS_FILE"
79 #-------------------------------------------------------------------------------
81 #-------------------------------------------------------------------------------
85 echo "$@" | sed 's/ /\ /g'
88 # Adds a new qmake variable to the cache
89 # Usage: QMakeVar mode varname contents
90 # where mode is one of: set, add, del
104 echo >&2 "BUG: wrong command to QMakeVar: $1"
108 echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
111 # Helper function for getQMakeConf. It parses include statements in
112 # qmake.conf and prints out the expanded file
115 while read line; do case "$line" in
117 inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"`
118 current_dir=`dirname "$1"`
119 conf_file="$current_dir/$inc_file"
120 if [ ! -f "$conf_file" ]; then
121 echo "WARNING: Unable to find file $conf_file" >&2
124 getQMakeConf1 "$conf_file"
136 values["LITERAL_WHITESPACE"] = " "
137 values["LITERAL_DOLLAR"] = "$"
139 /^[_A-Z0-9.]+[ \t]*\+?=/ {
140 valStart = index($0, "=") + 1
143 if (substr($0, valStart - 2, 1) == "+") {
147 variable = substr($0, 0, valStart - 2 - append)
148 value = substr($0, valStart)
149 gsub("[ \t]+", "", variable)
150 gsub("^[ \t]+", "", value)
151 gsub("[ \t]+$", "", value)
154 while (match(value, /\$\$(\{[_A-Z0-9.]+\}|[_A-Z0-9.]+)/)) {
155 ovalue = ovalue substr(value, 1, RSTART - 1)
156 var = substr(value, RSTART + 2, RLENGTH - 2)
157 value = substr(value, RSTART + RLENGTH)
159 var = substr(var, 2, length(var) - 2)
161 ovalue = ovalue values[var]
163 ovalue = ovalue value
165 combinedValue = values[variable]
166 if (append == 1 && length(combinedValue) > 0) {
167 combinedValue = combinedValue " " ovalue
169 combinedValue = ovalue
171 values[variable] = combinedValue
174 for (var in values) {
175 print var "=" values[var]
183 echo "$2" | $AWK "/^($1)=/ { print substr(\$0, index(\$0, \"=\") + 1) }"
186 # relies on $QMAKESPEC being set correctly. parses include statements in
187 # qmake.conf and prints out the expanded file
190 if [ -z "$specvals" ]; then
191 specvals=`getQMakeConf1 "$QMAKESPEC/qmake.conf" | getQMakeConf2`
193 getQMakeConf3 "$1" "$specvals"
198 if [ -z "$xspecvals" ]; then
199 xspecvals=`getQMakeConf1 "$XQMAKESPEC/qmake.conf" | getQMakeConf2`
201 getQMakeConf3 "$1" "$xspecvals"
204 # relies on $TEST_COMPILER being set correctly
205 compilerSupportsFlag()
207 cat >conftest.cpp <<EOF
208 int main() { return 0; }
210 "$TEST_COMPILER" "$@" -o conftest.o conftest.cpp
212 rm -f conftest.cpp conftest.o
216 # relies on $TEST_COMPILER being set correctly
222 safe_flag=`shellEscape "$flag"`
223 lflags=$lflags,$safe_flag
225 compilerSupportsFlag "$lflags" >/dev/null 2>&1
228 #-------------------------------------------------------------------------------
230 #-------------------------------------------------------------------------------
238 echo >&2 "BUG: wrong command to QMakeVar: $1"
242 echo "$2" "$eq" "$3" >> "$DEVICE_VARS_FILE"
245 #-------------------------------------------------------------------------------
246 # operating system detection
247 #-------------------------------------------------------------------------------
249 # need that throughout the script
250 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
251 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
252 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
253 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
255 # detect the "echo without newline" style. usage: echo $ECHO_N "<string>$ECHO_C"
256 if echo '\c' | grep '\c' >/dev/null; then
262 #-------------------------------------------------------------------------------
263 # window system detection
264 #-------------------------------------------------------------------------------
268 if [ -d /System/Library/Frameworks/Carbon.framework ]; then
273 #-----------------------------------------------------------------------------
274 # Qt version detection
275 #-----------------------------------------------------------------------------
276 QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
280 if [ -n "$QT_VERSION" ]; then
281 QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
282 MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
283 if [ -n "$MAJOR" ]; then
284 MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
285 PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
286 QT_MAJOR_VERSION="$MAJOR"
287 [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
288 [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
291 if [ -z "$QT_MAJOR_VERSION" ]; then
292 echo "Cannot process version from qglobal.h: $QT_VERSION"
293 echo "Cannot proceed."
297 QT_PACKAGEDATE=`grep '^# *define *QT_PACKAGEDATE_STR' "$relpath"/src/corelib/global/qglobal.h | sed -e 's,^# *define *QT_PACKAGEDATE_STR *"\([^ ]*\)"$,\1,' -e s,-,,g`
298 if [ -z "$QT_PACKAGEDATE" ]; then
299 echo "Unable to determine package date from qglobal.h: '$QT_PACKAGEDATE'"
300 echo "Cannot proceed"
304 #-------------------------------------------------------------------------------
306 #-------------------------------------------------------------------------------
310 EditionString=Commercial
314 # parse the arguments, setting things to "yes" or "no"
315 while [ "$#" -gt 0 ]; do
319 #Autoconf style options
321 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
325 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
329 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
330 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
333 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
336 -h|help|--help|-help)
337 if [ "$VAL" = "yes" ]; then
339 COMMERCIAL_USER="no" #doesn't matter we will display the help
342 COMMERCIAL_USER="no" #doesn't matter we will display the help
346 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
350 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
357 if [ "$UNKNOWN_ARG" = "yes" ]; then
369 COMMERCIAL_USER="yes"
383 if [ "$COMMERCIAL_USER" = "ask" ]; then
385 echo "Which edition of Qt do you want to use ?"
387 echo "Type 'c' if you want to use the Commercial Edition."
388 echo "Type 'o' if you want to use the Open Source Edition."
392 if [ "$commercial" = "c" ]; then
393 COMMERCIAL_USER="yes"
395 elif [ "$commercial" = "o" ]; then
402 if [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
403 # Commercial preview release
404 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
407 QT_EDITION="QT_EDITION_DESKTOP"
408 LicenseType="Technology Preview"
409 elif [ $COMMERCIAL_USER = "yes" ]; then
410 # one of commercial editions
411 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
413 # read in the license file
414 if [ -f "$LICENSE_FILE" ]; then
415 . "$LICENSE_FILE" >/dev/null 2>&1
416 if [ -z "$LicenseKeyExt" ]; then
418 echo "You are using an old license file."
420 echo "Please install the license file supplied by Nokia,"
421 echo "or install the Qt Open Source Edition if you intend to"
422 echo "develop free software."
425 if [ -z "$Licensee" ]; then
427 echo "Invalid license key. Please check the license key."
431 if [ -z "$LicenseKeyExt" ]; then
433 echo $ECHO_N "Please enter your license key: $ECHO_C"
435 Licensee="Unknown user"
440 echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
441 && LicenseValid="yes" \
443 if [ "$LicenseValid" != "yes" ]; then
445 echo "Invalid license key. Please check the license key."
448 ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
449 PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d -`
450 LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
451 LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
453 # determine which edition we are licensed to use
454 case "$LicenseTypeCode" in
456 LicenseType="Commercial"
460 QT_EDITION="QT_EDITION_UNIVERSAL"
463 Edition="FullFramework"
464 EditionString="Full Framework"
465 QT_EDITION="QT_EDITION_DESKTOP"
468 Edition="GUIFramework"
469 EditionString="GUI Framework"
470 QT_EDITION="QT_EDITION_DESKTOPLIGHT"
475 LicenseType="Evaluation"
476 QMakeVar add DEFINES QT_EVAL
480 QT_EDITION="QT_EDITION_EVALUATION"
485 if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
487 echo "Invalid license key. Please check the license key."
491 # verify that we are licensed to use Qt on this platform
493 case "$PlatformCode" in
496 PlatformCode=`echo "$PlatformCode" | sed 'h;y/8NPQRTZ/UCWX9M7/;x;G;s/\(.\)....\(.\)./\1\2/'`
500 PlatformCode=`echo "$PlatformCode" | sed 's/.$//'`
503 ### EMBEDDED_QPA logic missing ###
504 case "$PlatformCode,$PLATFORM_MAC" in
505 X9,* | XC,* | XU,* | XW,* | XM,*)
507 LICENSE_EXTENSION="-ALLOS"
509 8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*)
510 # Qt for Embedded Linux
511 LICENSE_EXTENSION="-EMBEDDED"
513 6M,* | N7,* | N9,* | NX,*)
515 LICENSE_EXTENSION="-EMBEDDED"
517 FM,* | LM,yes | ZM,no)
519 LICENSE_EXTENSION="-DESKTOP"
523 [ "$PLATFORM_MAC" = "yes" ] && Platform='Mac OS X'
525 echo "You are not licensed for the $Platform platform."
527 echo "Please contact qt-info@nokia.com to upgrade your license to"
528 echo "include the $Platform platform, or install the Qt Open Source Edition"
529 echo "if you intend to develop free software."
534 if test -r "$relpath/.LICENSE"; then
535 # Generic, non-final license
537 line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
542 *TECHNOLOGY?PREVIEW*)
549 echo >&2 "Invalid license files; cannot continue"
554 EditionString="$Edition"
555 QT_EDITION="QT_EDITION_DESKTOP"
558 case "$LicenseFeatureCode" in
561 case "$LicenseType" in
563 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
566 cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
572 case "$LicenseType" in
574 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
577 cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
583 echo "Invalid license key. Please check the license key."
587 case "$LicenseFeatureCode" in
595 if [ '!' -f "$outpath/LICENSE" ]; then
596 echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
597 echo "this software has disappeared."
599 echo "Sorry, you are not licensed to use this software."
600 echo "Try re-installing."
604 elif [ $COMMERCIAL_USER = "no" ]; then
605 # Open Source edition - may only be used under the terms of the GPL or LGPL.
606 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
607 Licensee="Open Source"
609 EditionString="Open Source"
610 QT_EDITION="QT_EDITION_OPENSOURCE"
613 #-------------------------------------------------------------------------------
614 # initalize variables
615 #-------------------------------------------------------------------------------
617 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
618 for varname in $SYSTEM_VARIABLES; do
619 qmakevarname="${varname}"
620 # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
621 if [ "${varname}" = "LDFLAGS" ]; then
622 qmakevarname="LFLAGS"
623 elif [ "${varname}" = "LD" ]; then
627 'if [ -n "\$'${varname}'" ]; then
628 QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
632 # Use CC/CXX to run config.tests
633 mkdir -p "$outpath/config.tests"
634 rm -f "$outpath/config.tests/.qmake.cache"
635 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
637 QMakeVar add styles "cde mac motif plastique cleanlooks windows"
639 # QTDIR may be set and point to an old or system-wide Qt installation
642 # the minimum version of libdbus-1 that we require:
643 MIN_DBUS_1_VERSION=0.93
645 # initalize internal variables
646 CFG_CONFIGURE_EXIT_ON_ERROR=yes
648 CFG_EXCEPTIONS=unspecified
649 CFG_GUI=auto # (yes|no|auto)
675 CFG_OPENVG_LC_INCLUDES=no
676 CFG_OPENVG_SHIVA=auto
677 CFG_OPENVG_ON_OPENGL=auto
683 QT_DEFAULT_BUILD_PARTS="libs examples"
687 CFG_AUDIO_BACKEND=auto
690 CFG_JAVASCRIPTCORE_JIT=auto
693 # Target architecture
695 # Host architecture, same as CFG_ARCH when not cross-compiling
697 # Set when the -arch or -host-arch arguments are used
698 OPT_OBSOLETE_HOST_ARG=no
710 CFG_OBSOLETE_WAYLAND=no
722 CFG_SEPARATE_DEBUG_INFO=no
723 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
724 CFG_REDUCE_EXPORTS=auto
732 CFG_REDUCE_RELOCATIONS=auto
733 CFG_ACCESSIBILITY=auto
738 CFG_CLOCK_GETTIME=auto
739 CFG_CLOCK_MONOTONIC=auto
747 MAC_CONFIG_TEST_COMMANDLINE= # used to make the configure tests run with the correct arch's and SDK settings
751 CFG_PREFIX_INSTALL=yes
760 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
761 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
765 OPT_CONFIRM_LICENSE=no
778 QPA_PLATFORM_GUARD=yes
780 # initalize variables used for installation
789 QT_INSTALL_TRANSLATIONS=
798 #flags for SQL drivers
806 QT_LFLAGS_ODBC="-lodbc"
809 # flags for libdbus-1
813 # flags for Glib (X11 only)
817 # flags for GStreamer (X11 only)
821 #-------------------------------------------------------------------------------
822 # check SQL drivers available in this package
823 #-------------------------------------------------------------------------------
825 # opensource version removes some drivers, so force them to be off
831 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
832 for a in "$relpath/src/plugins/sqldrivers/"*; do
834 base_a=`basename "$a"`
835 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
836 eval "CFG_SQL_${base_a}=auto"
841 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
842 if [ -d "$relpath/src/plugins/imageformats" ]; then
843 for a in "$relpath/src/plugins/imageformats/"*; do
845 base_a=`basename "$a"`
846 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
851 #-------------------------------------------------------------------------------
852 # parse command line arguments
853 #-------------------------------------------------------------------------------
855 # parse the arguments, setting things to "yes" or "no"
856 while [ "$#" -gt 0 ]; do
860 #Autoconf style options
862 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
866 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
870 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
871 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
874 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
878 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
882 -no-*-*|-plugin-*-*|-qt-*-*)
883 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
884 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
888 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
891 #Qt style yes options
892 -profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-xinput2|-egl|-reduce-exports|-pch|-separate-debug-info|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-xcb|-eglfs|-directfb|-nis|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-debug-and-release|-exceptions|-harfbuzz|-prefix-install|-silent|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-phonon-backend|-audio-backend|-qml-debug|-javascript-jit|-rpath|-pkg-config|-force-pkg-config|-icu|-force-asserts|-testcocoon)
893 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
896 #Qt style options that pass an argument
899 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
903 -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)
904 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
908 #Qt style complex options in one command
909 -enable-*|-disable-*)
910 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
911 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
913 #Qt Builtin/System style options
914 -no-*|-system-*|-qt-*)
915 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
916 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
918 #Options that cannot be generalized
925 # this option may or may not be followed by an argument
926 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
935 # this option may or may not be followed by an argument
936 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
944 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
945 # this option may or may not be followed by an argument
946 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
965 if [ "$1" = "-D" ]; then
969 VAL=`echo $1 | sed 's,-D,,'`
974 # this option may or may not be followed by an argument
975 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
984 if [ "$1" = "-I" ]; then
988 VAL=`echo $1 | sed 's,-I,,'`
993 if [ "$1" = "-L" ]; then
997 VAL=`echo $1 | sed 's,-L,,'`
1002 if [ "$1" = "-R" ]; then
1006 VAL=`echo $1 | sed 's,-R,,'`
1011 VAL=`echo $1 | sed 's,-l,,'`
1015 if [ "$1" = "-F" ]; then
1019 VAL=`echo $1 | sed 's,-F,,'`
1024 if [ "$1" = "-fw" ]; then
1028 VAL=`echo $1 | sed 's,-fw,,'`
1036 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1043 if [ "$UNKNOWN_ARG" = "yes" ]; then
1044 echo "$1: unknown argument"
1055 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1056 CFG_ACCESSIBILITY="$VAL"
1065 CFG_USE_GNUMAKE="$VAL"
1068 CFG_MYSQL_CONFIG="$VAL"
1071 QT_INSTALL_PREFIX="$VAL"
1074 QT_HOST_PREFIX="$VAL"
1083 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1084 CFG_PKGCONFIG="$VAL"
1090 CFG_PKGCONFIG="force"
1093 QT_INSTALL_DOCS="$VAL"
1096 QT_INSTALL_HEADERS="$VAL"
1099 QT_INSTALL_PLUGINS="$VAL"
1102 QT_INSTALL_IMPORTS="$VAL"
1105 QT_INSTALL_DATA="$VAL"
1108 QT_INSTALL_LIBS="$VAL"
1117 QT_INSTALL_TRANSLATIONS="$VAL"
1119 sysconfdir|settingsdir)
1120 QT_INSTALL_SETTINGS="$VAL"
1123 QT_INSTALL_EXAMPLES="$VAL"
1126 QT_INSTALL_TESTS="$VAL"
1135 QT_INSTALL_BINS="$VAL"
1141 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1148 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1149 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1150 [ "$VAL" = "es2" ]; then
1157 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1164 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1167 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1170 if [ "$BUILD_ON_MAC" = "yes" ]; then
1177 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1178 CFG_MAC_DWARF2="$VAL"
1184 OPT_OBSOLETE_HOST_ARG=yes
1187 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1188 CFG_MAC_HARFBUZZ="$VAL"
1195 if [ "$BUILD_ON_MAC" = "yes" ]; then
1196 CFG_FRAMEWORK="$VAL"
1202 if [ "$VAL" = "yes" ]; then
1204 QMakeVar add QMAKE_CFLAGS -pg
1205 QMakeVar add QMAKE_CXXFLAGS -pg
1206 QMakeVar add QMAKE_LFLAGS -pg
1207 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1213 if [ "$VAL" = "yes" ]; then
1214 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1217 exceptions|g++-exceptions)
1218 if [ "$VAL" = "no" ]; then
1220 elif [ "$VAL" = "yes" ]; then
1228 # keep compatibility with old platform names
1234 PLATFORM=hpux-acc-o64
1237 PLATFORM=hpux-acc-64
1240 PLATFORM=hpux-acc-64
1252 PLATFORM=reliant-cds-64
1255 PLATFORM=solaris-cc-64
1258 PLATFORM=unixware-cc
1261 PLATFORM=unixware-g++
1264 PLATFORM=unixware-cc
1267 PLATFORM=unixware-g++
1273 i386) NATIVE_64_ARCH="x86_64" ;;
1274 powerpc) NATIVE_64_ARCH="ppc64" ;;
1275 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1277 if [ ! -z "$NATIVE_64_ARCH" ]; then
1278 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1285 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
1288 XPLATFORM="devices/$VAL"
1291 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1292 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1293 DeviceVar set $DEV_VAR $DEV_VAL
1296 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1297 CFG_DEBUG_RELEASE="$VAL"
1303 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1304 CFG_RELEASE_QMAKE="$VAL"
1310 if [ "$VAL" = "yes" ]; then
1312 elif [ "$VAL" = "no" ]; then
1319 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1320 CFG_PREFIX_INSTALL="$VAL"
1328 developer-build|commercial|opensource)
1329 # These switches have been dealt with already
1332 if [ "$VAL" = "yes" ]; then
1334 elif [ "$VAL" = "no" ]; then
1341 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1342 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1348 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1349 if [ "$VAL" = "no" ]; then
1350 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1351 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1352 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1358 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1365 if [ "$VAL" = "no" ]; then
1372 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1380 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1387 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1394 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1401 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1408 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1415 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1422 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1429 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1430 CFG_PRECOMPILE="$VAL"
1435 separate-debug-info)
1436 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1437 CFG_SEPARATE_DEBUG_INFO="$VAL"
1438 elif [ "$VAL" = "nocopy" ] ; then
1439 CFG_SEPARATE_DEBUG_INFO="yes"
1440 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1446 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1447 CFG_REDUCE_EXPORTS="$VAL"
1453 if [ "$VAL" = "no" ]; then
1460 if [ "$VAL" = "no" ]; then
1467 if [ "$VAL" = "no" ]; then
1474 if [ "$VAL" = "no" ]; then
1481 if [ "$VAL" = "no" ]; then
1488 if [ "$VAL" = "no" ]; then
1495 if [ "$VAL" = "no" ]; then
1505 if [ "$VAL" = "no" ]; then
1512 if [ "$VAL" = "no" ]; then
1519 if [ "$VAL" = "no" ]; then
1520 CFG_MIPS_DSPR2="$VAL"
1526 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1527 CFG_REDUCE_RELOCATIONS="$VAL"
1533 [ "$VAL" = "qt" ] && VAL=yes
1534 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1539 # No longer supported:
1540 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1543 if [ "$VAL" = "system" ]; then
1550 [ "$VAL" = "yes" ] && VAL=qt
1551 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1558 [ "$VAL" = "yes" ] && VAL=qt
1559 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1566 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1573 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1580 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1587 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1594 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1601 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1602 CFG_FONTCONFIG="$VAL"
1608 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1615 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1622 CFG_OBSOLETE_WAYLAND=yes
1625 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1632 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1639 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1646 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1653 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1660 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1667 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1674 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1675 CFG_GSTREAMER="$VAL"
1681 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1682 CFG_QGTKSTYLE="$VAL"
1688 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1691 if [ "$VAL" = "no" ]; then
1699 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1701 elif [ "$VAL" = "no" ]; then
1708 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1709 QPA_PLATFORM_GUARD="$VAL"
1715 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1717 elif [ "$VAL" = "runtime" ]; then
1724 if [ "$VAL" = "yes" ]; then
1731 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1738 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1739 CFG_LARGEFILE="$VAL"
1745 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1752 if [ "$VAL" = "yes" ]; then
1753 CFG_OPENSSL="linked"
1759 if [ "$VAL" = "yes" ]; then
1762 if [ "$VAL" = "no" ]; then
1770 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1771 CFG_JAVASCRIPTCORE_JIT="$VAL"
1777 if [ "$VAL" = "yes" ]; then
1778 OPT_CONFIRM_LICENSE="$VAL"
1784 if [ "$VAL" = "yes" ]; then
1790 sql-*|imageformat-*)
1791 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1792 # if autoconf style options were used, $VAL can be "yes" or "no"
1793 [ "$VAL" = "yes" ] && VAL=qt
1794 # now $VAL should be "no", "qt", or "plugin"... double-check
1795 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1798 # now $VAL is "no", "qt", or "plugin"
1800 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1801 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1803 # Grab the available values
1806 avail="$CFG_SQL_AVAILABLE"
1809 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1810 if [ "$OPT" != "plugin" ]; then
1811 # png is always built in
1817 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1821 # Check that that user's value is available.
1824 if [ "$VAL" = "$d" ]; then
1829 [ "$found" = yes ] || ERROR=yes
1831 if [ "$VAR" = "sql" ]; then
1832 # set the CFG_SQL_driver
1833 eval "CFG_SQL_$VAL=\$OPT"
1835 elif [ "$VAR" = "imageformat" ]; then
1836 [ "$OPT" = "qt" ] && OPT=yes
1837 VAL="`echo $VAL |tr a-z A-Z`"
1838 eval "CFG_$VAL=$OPT"
1842 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1843 if [ "$OPT" = "plugin" ]; then
1846 QMakeVar add "${VAR}s" "${VAL}"
1847 elif [ "$OPT" = "no" ]; then
1848 PLUG_VAR="${VAR}-plugin"
1850 QMakeVar del "${IN_VAR}s" "$VAL"
1851 QMakeVar del "${PLUG_VAR}s" "$VAL"
1853 if [ "$ERROR" = "yes" ]; then
1854 echo "$CURRENT_OPT: unknown argument"
1859 if [ "$VAL" = "yes" ]; then
1860 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1861 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1865 elif [ "$VAL" = "no" ]; then
1866 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1867 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1876 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1883 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1890 D_FLAGS="$D_FLAGS \"$VAL\""
1893 I_FLAGS="$I_FLAGS -I\"${VAL}\""
1896 L_FLAGS="$L_FLAGS -L\"${VAL}\""
1899 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
1902 l_FLAGS="$l_FLAGS -l\"${VAL}\""
1905 if [ "$BUILD_ON_MAC" = "yes" ]; then
1906 L_FLAGS="$L_FLAGS -F\"${VAL}\""
1907 I_FLAGS="$I_FLAGS -F\"${VAL}\""
1913 if [ "$BUILD_ON_MAC" = "yes" ]; then
1914 l_FLAGS="$l_FLAGS -framework \"${VAL}\""
1920 W_FLAGS="$W_FLAGS \"${VAL}\""
1926 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1927 CFG_PHONON_BACKEND="$VAL"
1939 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1940 CFG_AUDIO_BACKEND="$VAL"
1946 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1953 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1954 CFG_FORCE_ASSERTS="$VAL"
1960 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
1970 if [ "$UNKNOWN_OPT" = "yes" ]; then
1971 echo "${CURRENT_OPT}: invalid command-line switch"
1977 # update QT_CONFIG to show our current predefined configuration
1978 case "$CFG_QCONFIG" in
1979 minimal|small|medium|large|full)
1980 # these are a sequence of increasing functionality
1981 for c in minimal small medium large full; do
1982 QT_CONFIG="$QT_CONFIG $c-config"
1983 [ "$CFG_QCONFIG" = $c ] && break
1987 # not known to be sufficient for anything
1988 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
1989 echo >&2 "Error: configuration file not found:"
1990 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
1992 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
1997 #-------------------------------------------------------------------------------
1998 # build tree initialization
1999 #-------------------------------------------------------------------------------
2001 # where to find which..
2002 unixtests="$relpath/config.tests/unix"
2003 mactests="$relpath/config.tests/mac"
2004 WHICH="$unixtests/which.test"
2006 PERL=`$WHICH perl 2>/dev/null`
2008 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2010 for e in gawk nawk awk; do
2011 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2018 PERL="/usr/bin/perl"
2019 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2023 ### skip this if the user just needs help...
2024 if [ "$OPT_HELP" != "yes" ]; then
2026 # is this a shadow build?
2027 if [ "$OPT_SHADOW" = "maybe" ]; then
2029 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2030 if [ -h "$outpath" ]; then
2031 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2037 if [ "$OPT_SHADOW" = "yes" ]; then
2038 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2039 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2040 echo >&2 "Cannot proceed."
2043 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2046 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2048 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2049 echo "Qt can be built in release mode with separate debug information, so"
2050 echo "-debug-and-release is not necessary anymore"
2054 if [ "$CFG_SILENT" = "yes" ]; then
2055 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2058 # if the source tree is different from the build tree,
2059 # symlink or copy part of the sources
2060 if [ "$OPT_SHADOW" = "yes" ]; then
2061 echo "Preparing build tree..."
2063 if [ -z "$PERL" ]; then
2065 echo "You need perl in your PATH to make a shadow build."
2066 echo "Cannot proceed."
2070 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2072 # make a syncqt script that can be used in the shadow
2073 rm -f "$outpath/bin/syncqt"
2074 if [ -x "$relpath/bin/syncqt" ]; then
2075 mkdir -p "$outpath/bin"
2076 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2077 echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2078 chmod 755 "$outpath/bin/syncqt"
2081 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2082 rm -f "$outpath/bin/$i"
2083 if [ -x "$relpath/bin/$i" ]; then
2084 mkdir -p "$outpath/bin"
2085 echo "#!/bin/sh" >"$outpath/bin/$i"
2086 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2087 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2088 chmod 755 "$outpath/bin/$i"
2092 # save a pre-existing mkspecs/modules dir
2093 test -d "$outpath/mkspecs/modules" && \
2094 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2096 # symlink the mkspecs directory
2097 mkdir -p "$outpath/mkspecs"
2098 rm -rf "$outpath"/mkspecs/*
2099 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2100 rm -f "$outpath/mkspecs/default"
2104 rm -rf "$outpath/mkspecs/$1"
2105 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2106 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2109 # Special case for mkspecs/features directory.
2110 # To be able to place .prf files into a shadow build directory,
2111 # we're creating links for files only. The directory structure is reproduced.
2112 ShadowMkspecs features
2114 # The modules dir is special, too.
2115 if test -d "$outpath/mkspecs-modules"; then
2116 rm -rf "$outpath/mkspecs/modules"
2117 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2119 ShadowMkspecs modules
2122 # symlink the doc directory
2123 rm -rf "$outpath/doc"
2124 ln -s "$relpath/doc" "$outpath/doc"
2127 # symlink fonts to be able to run application from build directory
2128 if [ ! -d "${outpath}/lib/fonts" ]; then
2129 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2130 mkdir -p "${outpath}/lib"
2131 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2135 if [ "$OPT_FAST" = "auto" ]; then
2136 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2143 # find a make command
2144 if [ -z "$MAKE" ]; then
2146 for mk in gmake make; do
2147 if "$WHICH" $mk >/dev/null 2>&1; then
2152 if [ -z "$MAKE" ]; then
2153 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2154 echo >&2 "Cannot proceed."
2157 # export MAKE, we need it later in the config.tests
2163 #-------------------------------------------------------------------------------
2164 # auto-detect all that hasn't been specified in the arguments
2165 #-------------------------------------------------------------------------------
2167 if [ -z "$PLATFORM" ]; then
2169 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2171 OSX_VERSION=`uname -r | cut -d. -f1`
2172 # Select compiler. Use g++ unless we find a usable Clang version
2174 if [ "$OSX_VERSION" -ge 12 ]; then
2175 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2177 elif [ "$OSX_VERSION" -eq 11 ]; then
2178 # We're on Lion. Check if we have a supported Clang version
2179 case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2182 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2189 #PLATFORM=aix-g++-64
2191 #PLATFORM=aix-xlc-64
2193 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2203 # PLATFORM=dynix-g++
2209 PLATFORM=freebsd-g++
2211 - Also available for FreeBSD: freebsd-icc
2215 PLATFORM=openbsd-g++
2226 #PLATFORM=irix-cc-64
2228 - Also available for IRIX: irix-g++ irix-cc-64
2232 case "$UNAME_MACHINE" in
2234 #PLATFORM=hpuxi-acc-32
2235 PLATFORM=hpuxi-acc-64
2237 - Also available for HP-UXi: hpuxi-acc-32
2243 #PLATFORM=hpux-acc-64
2245 #PLATFORM=hpux-acc-o64
2247 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2256 - Also available for Tru64: tru64-g++
2260 case "$UNAME_MACHINE" in
2262 PLATFORM=linux-g++-64
2269 - Also available for Linux: linux-kcc linux-icc linux-cxx
2273 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2274 PLATFORM="solaris-g++"
2276 #PLATFORM=solaris-g++
2278 #PLATFORM=solaris-cc64
2281 - Also available for Solaris: solaris-g++ solaris-cc-64
2284 ReliantUNIX-*:*|SINIX-*:*)
2285 PLATFORM=reliant-cds
2286 #PLATFORM=reliant-cds-64
2288 - Also available for Reliant UNIX: reliant-cds-64
2298 #PLATFORM=unixware-g++
2299 PLATFORM=unixware-cc
2301 - Also available for OpenUNIX: unixware-g++
2305 #PLATFORM=unixware-g++
2306 PLATFORM=unixware-cc
2308 - Also available for UnixWare: unixware-g++
2315 - Also available for SCO OpenServer: sco-g++
2319 PLATFORM=unixware-g++
2322 PLATFORM=unsupported/qnx-g++
2325 if [ "$OPT_HELP" != "yes" ]; then
2327 for p in $PLATFORMS; do
2328 echo " $relconf $* -platform $p"
2331 echo " The build script does not currently recognize all" >&2
2332 echo " platforms supported by Qt." >&2
2333 echo " Rerun this script with a -platform option listed to" >&2
2334 echo " set the system/compiler combination you use." >&2
2341 PLATFORMS=`find "$relpath/mkspecs/" -type f | grep -v qws | sed "s,$relpath/mkspecs/qws/,,"`
2343 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2345 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2346 case "$XPLATFORM" in linux-g++-maemo) XPLATFORM_MAEMO=yes;; esac
2348 if [ -d "$PLATFORM" ]; then
2349 QMAKESPEC="$PLATFORM"
2351 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2353 if [ -d "$XPLATFORM" ]; then
2354 XQMAKESPEC="$XPLATFORM"
2356 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2358 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2359 QT_CROSS_COMPILE=yes
2360 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2361 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2364 if [ "$BUILD_ON_MAC" = "yes" ]; then
2365 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2367 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2368 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2369 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2370 echo " built with 'macx-g++'" >&2
2376 # check specified platforms are supported
2377 if [ '!' -d "$QMAKESPEC" ]; then
2379 echo " The specified system/compiler is not supported:"
2383 echo " Please see the README file for a complete list."
2387 if [ '!' -d "$XQMAKESPEC" ]; then
2389 echo " The specified system/compiler is not supported:"
2393 echo " Please see the README file for a complete list."
2397 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2399 echo " The specified system/compiler port is not complete:"
2401 echo " $XQMAKESPEC/qplatformdefs.h"
2403 echo " Please contact qt-info@nokia.com."
2408 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2409 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2410 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2411 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2412 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2416 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2417 case `basename "$XPLATFORM"` in
2420 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2422 echo "Please contact qt-info@nokia.com to upgrade your license to"
2423 echo "include this platform, or install the Qt Open Source Edition"
2424 echo "if you intend to develop free software."
2430 #-------------------------------------------------------------------------------
2431 # write out device config before we run the test.
2432 #-------------------------------------------------------------------------------
2433 if cmp -s "$DEVICE_VARS_FILE" "$outpath/mkspecs/qdevice.pri"; then
2434 rm -f "$DEVICE_VARS_FILE"
2436 mv -f $DEVICE_VARS_FILE "$outpath/mkspecs/qdevice.pri"
2439 #-------------------------------------------------------------------------------
2440 # tests that don't need qmake (must be run before displaying help)
2441 #-------------------------------------------------------------------------------
2443 # detect build style
2444 if [ "$CFG_DEBUG" = "auto" ]; then
2445 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2446 CFG_DEBUG_RELEASE=yes
2448 elif [ "$CFG_DEV" = "yes" ]; then
2449 CFG_DEBUG_RELEASE=no
2452 CFG_DEBUG_RELEASE=no
2456 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2457 QT_CONFIG="$QT_CONFIG build_all"
2460 # pass on $CFG_SDK to the configure tests.
2461 if [ '!' -z "$CFG_SDK" ]; then
2462 MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -sdk $CFG_SDK"
2465 # find the default framework value
2466 if [ "$BUILD_ON_MAC" = "yes" ]; then
2467 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2468 CFG_FRAMEWORK="$CFG_SHARED"
2469 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2471 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2479 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2481 TEST_COMPILER=$QMAKE_CONF_COMPILER
2482 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2483 if [ -z "$TEST_COMPILER" ]; then
2484 echo "ERROR: Cannot set the compiler for the configuration tests"
2489 if [ -n "$CFG_SYSROOT" ]; then
2490 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2494 export SYSROOT_FLAG # used by config.tests/unix/compile.test
2496 # auto-detect precompiled header support
2497 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2498 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2505 #auto-detect DWARF2 on the mac
2506 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_MAC_DWARF2" = "auto" ]; then
2507 if "$mactests/dwarf2.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests" ; then
2514 # auto-detect support for separate debug info in objcopy
2515 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2516 TEST_COMPILER_CFLAGS=`getXQMakeConf QMAKE_CFLAGS`
2517 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2518 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2519 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2520 COMPILER_WITH_FLAGS=`echo "$COMPILER_WITH_FLAGS" | sed -e "s%\\$\\$QMAKE_CFLAGS%$TEST_COMPILER_CFLAGS%g"`
2521 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2522 CFG_SEPARATE_DEBUG_INFO=no
2526 # binutils on HP-UX is buggy; default to no.
2527 CFG_SEPARATE_DEBUG_INFO=no
2530 CFG_SEPARATE_DEBUG_INFO=yes
2536 # auto-detect -fvisibility support
2537 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2538 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2539 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2540 echo "-reduce-exports was requested but this compiler does not support it"
2541 echo "Re-run configure with -v for more information"
2544 CFG_REDUCE_EXPORTS=no
2546 CFG_REDUCE_EXPORTS=yes
2550 # detect the availability of the -Bsymbolic-functions linker optimization
2551 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2552 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2553 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2554 echo "-reduce-relocations was requested but this compiler does not support it"
2555 echo "Re-run configure with -v for more information"
2558 CFG_REDUCE_RELOCATIONS=no
2560 CFG_REDUCE_RELOCATIONS=yes
2564 # auto-detect GNU make support
2565 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2569 # find the default framework value
2570 if [ "$BUILD_ON_MAC" = "yes" ]; then
2571 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2572 CFG_FRAMEWORK="$CFG_SHARED"
2573 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2575 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2583 #setup the build parts
2584 if [ -z "$CFG_BUILD_PARTS" ]; then
2585 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2587 # build tests by default, if a developer build
2588 if [ "$CFG_DEV" = "yes" ]; then
2589 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2592 # don't build tools by default when cross-compiling
2593 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2594 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2597 for nobuild in $CFG_NOBUILD_PARTS; do
2598 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2600 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2602 # echo "WARNING: libs is a required part of the build."
2604 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2607 #-------------------------------------------------------------------------------
2608 # post process QT_INSTALL_* variables
2609 #-------------------------------------------------------------------------------
2611 if [ -z "$QT_INSTALL_PREFIX" ]; then
2612 if [ "$CFG_DEV" = "yes" ]; then
2613 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2615 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2618 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2620 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2621 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2622 if [ "$BUILD_ON_MAC" = "yes" ]; then
2623 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2626 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2629 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2631 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2632 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2633 if [ "$BUILD_ON_MAC" = "yes" ]; then
2634 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2639 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2642 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2644 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2645 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2646 if [ "$BUILD_ON_MAC" = "yes" ]; then
2647 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2648 QT_INSTALL_LIBS="/Libraries/Frameworks"
2652 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2654 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2656 if [ -z "$QT_INSTALL_BINS" ]; then #default
2657 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2658 if [ "$BUILD_ON_MAC" = "yes" ]; then
2659 QT_INSTALL_BINS="/Developer/Applications/Qt"
2662 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2664 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2666 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2667 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2668 if [ "$BUILD_ON_MAC" = "yes" ]; then
2669 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2672 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2674 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2676 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2677 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2678 if [ "$BUILD_ON_MAC" = "yes" ]; then
2679 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2682 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2684 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2686 if [ -z "$QT_INSTALL_DATA" ]; then #default
2687 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2689 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2691 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2692 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2694 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2696 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2697 if [ "$BUILD_ON_MAC" = "yes" ]; then
2698 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2700 QT_INSTALL_SETTINGS=/etc/xdg
2703 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2705 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2706 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2707 if [ "$BUILD_ON_MAC" = "yes" ]; then
2708 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2711 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2713 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2716 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2717 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2718 if [ "$BUILD_ON_MAC" = "yes" ]; then
2719 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2722 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2724 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2726 #------- host paths --------
2728 if [ -z "$QT_HOST_PREFIX" ]; then
2729 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2732 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2736 if [ -z "$QT_HOST_BINS" ]; then #default
2738 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2739 if [ "$BUILD_ON_MAC" = "yes" ]; then
2740 QT_HOST_BINS="/Developer/Applications/Qt"
2743 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2745 QT_HOST_BINS="$QT_INSTALL_BINS"
2748 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2750 if [ -z "$QT_HOST_DATA" ]; then #default
2752 QT_HOST_DATA="$QT_HOST_PREFIX"
2754 QT_HOST_DATA="$QT_INSTALL_DATA"
2757 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2760 #-------------------------------------------------------------------------------
2761 # help - interactive parts of the script _after_ this section please
2762 #-------------------------------------------------------------------------------
2764 # next, emit a usage message if something failed.
2765 if [ "$OPT_HELP" = "yes" ]; then
2766 [ "x$ERROR" = "xyes" ] && echo
2767 if [ "$CFG_NIS" = "no" ]; then
2774 if [ "$CFG_CUPS" = "no" ]; then
2781 if [ "$CFG_ICONV" = "no" ]; then
2788 if [ "$CFG_LARGEFILE" = "no" ]; then
2795 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2803 if [ "$CFG_XCB" = "no" ]; then
2811 if [ "$CFG_EGLFS" = "no" ]; then
2819 if [ "$CFG_DIRECTFB" = "no"]; then
2826 if [ "$CFG_XINPUT2" = "no" ]; then
2834 if [ "$CFG_DBUS" = "no" ]; then
2842 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2850 if [ "$CFG_GLIB" = "no" ]; then
2859 Usage: $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>]
2860 [-docdir <dir>] [-headerdir <dir>] [-plugindir <dir> ] [-importdir <dir>] [-datadir <dir>]
2861 [-translationdir <dir>] [-sysconfdir <dir>] [-examplesdir <dir>] [-testsdir <dir>]
2862 [-release] [-debug] [-debug-and-release]
2863 [-developer-build] [-shared] [-static] [-no-fast] [-fast] [-no-largefile]
2864 [-largefile] [-no-exceptions] [-exceptions] [-no-accessibility]
2865 [-accessibility] [-no-sql-<driver>] [-sql-<driver>]
2866 [-plugin-sql-<driver>] [-system-sqlite]
2867 [-platform] [-D <string>] [-I <string>] [-L <string>] [-help]
2868 [-qt-zlib] [-system-zlib] [-no-gif] [-no-libpng] [-qt-libpng] [-system-libpng]
2869 [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make <part>]
2870 [-nomake <part>] [-R <string>] [-l <string>] [-no-rpath] [-rpath] [-continue]
2871 [-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv]
2872 [-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked] [-no-gui]
2873 [-no-separate-debug-info] [-no-sse2]
2874 [-no-sse3] [-no-ssse3] [-no-sse4.1] [-no-sse4.2] [-no-avx] [-no-neon]
2875 [-qtnamespace <namespace>] [-qtlibinfix <infix>] [-separate-debug-info]
2876 [-no-phonon-backend] [-phonon-backend] [-no-media-backend] [-media-backend]
2877 [-no-audio-backend] [-audio-backend]
2878 [-no-javascript-jit] [-javascript-jit] [-no-qml-debug] [-qml-debug]
2879 [-no-optimized-qmake] [-optimized-qmake]
2880 [-no-openssl] [-openssl] [-openssl-linked]
2881 [-no-gtkstyle] [-gtkstyle]
2882 [-qt-pcre] [-system-pcre]
2883 [-device <name>] [-device-option <key=value>]
2884 [additional platform specific options (see below)]
2887 Installation options:
2889 These are optional, but you may specify install directories.
2891 -prefix <dir> ...... This will install everything relative to <dir>
2892 (default $QT_INSTALL_PREFIX)
2894 -hostprefix [dir] .. Tools and libraries needed when developing
2895 applications are installed in [dir]. If [dir] is
2896 not given, the current build directory will be used.
2899 * -prefix-install .... Force a sandboxed "local" installation of
2900 Qt. This will install into
2901 $QT_INSTALL_PREFIX, if this option is
2902 disabled then some platforms will attempt a
2903 "system" install by placing default values to
2904 be placed in a system location other than
2907 You may use these to separate different parts of the install:
2909 -bindir <dir> ......... Executables will be installed to <dir>
2910 (default PREFIX/bin)
2911 -libdir <dir> ......... Libraries will be installed to <dir>
2912 (default PREFIX/lib)
2913 -docdir <dir> ......... Documentation will be installed to <dir>
2914 (default PREFIX/doc)
2915 -headerdir <dir> ...... Headers will be installed to <dir>
2916 (default PREFIX/include)
2917 -plugindir <dir> ...... Plugins will be installed to <dir>
2918 (default PREFIX/plugins)
2919 -importdir <dir> ...... Imports for QML will be installed to <dir>
2920 (default PREFIX/imports)
2921 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
2923 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
2924 (default PREFIX/translations)
2925 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
2926 (default PREFIX/etc/settings)
2927 -examplesdir <dir> .... Examples will be installed to <dir>
2928 (default PREFIX/examples)
2929 -testsdir <dir> ....... Tests will be installed to <dir>
2930 (default PREFIX/tests)
2932 -hostbindir <dir> .. Host executables will be installed to <dir>
2933 (default HOSTPREFIX/bin)
2934 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
2935 (default HOSTPREFIX)
2939 The defaults (*) are usually acceptable. A plus (+) denotes a default value
2940 that needs to be evaluated. If the evaluation succeeds, the feature is
2941 included. Here is a short explanation of each option:
2943 * -release ........... Compile and link Qt with debugging turned off.
2944 -debug ............. Compile and link Qt with debugging turned on.
2945 -debug-and-release . Compile and link two versions of Qt, with and without
2946 debugging turned on (Mac only).
2948 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
2950 -opensource ........ Compile and link the Open-Source Edition of Qt.
2951 -commercial ........ Compile and link the Commercial Edition of Qt.
2954 * -shared ............ Create and use shared Qt libraries.
2955 -static ............ Create and use static Qt libraries.
2957 * -no-fast ........... Configure Qt normally by generating Makefiles for all
2959 -fast .............. Configure Qt quickly by generating Makefiles only for
2960 library and subdirectory targets. All other Makefiles
2961 are created as wrappers, which will in turn run qmake.
2963 -no-largefile ...... Disables large file support.
2964 + -largefile ......... Enables Qt to access files larger than 4 GB.
2966 -no-exceptions ..... Disable exceptions on compilers that support it.
2967 * -exceptions ........ Enable exceptions on compilers that support it.
2969 -no-accessibility .. Do not compile Accessibility support.
2970 * -accessibility ..... Compile Accessibility support.
2972 -no-sql-<driver> ... Disable SQL <driver> entirely.
2973 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
2975 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
2978 Possible values for <driver>:
2979 [ $CFG_SQL_AVAILABLE ]
2981 -system-sqlite ..... Use sqlite from the operating system.
2983 -no-phonon-backend.. Do not build the platform phonon plugin.
2984 + -phonon-backend..... Build the platform phonon plugin.
2986 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
2987 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
2989 -no-qml-debug ...... Do not build the in-process QML debugging support.
2990 + -qml-debug ......... Build the QML debugging support.
2992 -platform target ... The operating system and compiler you are building
2995 See the README file for a list of supported
2996 operating systems and compilers.
2998 -no-sse2 ........... Do not compile with use of SSE2 instructions.
2999 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3000 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3001 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3002 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3003 -no-avx ............ Do not compile with use of AVX instructions.
3004 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3005 -no-neon ........... Do not compile with use of NEON instructions.
3006 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3007 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3009 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3010 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3012 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3014 -D <string> ........ Add an explicit define to the preprocessor.
3015 -I <string> ........ Add an explicit include path.
3016 -L <string> ........ Add an explicit library path.
3018 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3019 configure determines whether to use pkg-config or not with
3020 some heuristics such as checking the environment variables.
3021 -no-pkg-config ..... Disable use of pkg-config.
3022 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3023 detection heuristic).
3025 -help, -h .......... Display this information.
3027 Third Party Libraries:
3029 -qt-zlib ........... Use the zlib bundled with Qt.
3030 + -system-zlib ....... Use zlib from the operating system.
3031 See http://www.gzip.org/zlib
3033 -no-gif ............ Do not compile GIF reading support.
3035 -no-libpng ......... Do not compile PNG support.
3036 -qt-libpng ......... Use the libpng bundled with Qt.
3037 + -system-libpng ..... Use libpng from the operating system.
3038 See http://www.libpng.org/pub/png
3040 -no-libjpeg ........ Do not compile JPEG support.
3041 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3042 + -system-libjpeg .... Use libjpeg from the operating system.
3043 See http://www.ijg.org
3045 -no-openssl ........ Do not compile support for OpenSSL.
3046 + -openssl ........... Enable run-time OpenSSL support.
3047 -openssl-linked .... Enabled linked OpenSSL support.
3049 -qt-pcre ........... Use the PCRE library bundled with Qt.
3050 + -system-pcre ....... Use the PCRE library from the operating system.
3054 -make <part> ....... Add part to the list of parts to be built at make time.
3055 ($QT_DEFAULT_BUILD_PARTS)
3056 -nomake <part> ..... Exclude part from the list of parts to be built.
3058 -R <string> ........ Add an explicit runtime library path to the Qt
3060 -l <string> ........ Add an explicit library.
3062 -no-rpath .......... Do not use the library install path as a runtime
3064 + -rpath ............. Link Qt libraries and executables using the library
3065 install path as a runtime library path. Equivalent
3066 to -R install_libpath
3068 -continue .......... Continue as far as possible if an error occurs.
3070 -verbose, -v ....... Print verbose information about each step of the
3073 -silent ............ Reduce the build output so that warnings and errors
3074 can be seen more easily.
3076 * -no-optimized-qmake ... Do not build qmake optimized.
3077 -optimized-qmake ...... Build qmake optimized.
3079 -no-gui ............ Don't build the Qt GUI library
3081 $NSN -no-nis ............ Do not compile NIS support.
3082 $NSY -nis ............... Compile NIS support.
3084 $CUN -no-cups ........... Do not compile CUPS support.
3085 $CUY -cups .............. Compile CUPS support.
3086 Requires cups/cups.h and libcups.so.2.
3088 $CIN -no-iconv .......... Do not compile support for iconv(3).
3089 $CIY -iconv ............. Compile support for iconv(3).
3091 $PHN -no-pch ............ Do not use precompiled header support.
3092 $PHY -pch ............... Use precompiled header support.
3094 $DBN -no-dbus ........... Do not compile the QtDBus module.
3095 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3096 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3098 -reduce-relocations ..... Reduce relocations in the libraries through extra
3099 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3100 experimental; needs GNU ld >= 2.18).
3102 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3104 -device <name> ............... Cross-compile for device <name> (experimental)
3105 -device-option <key=value> ... Add device specific options for the device mkspec
3108 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3109 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3111 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3112 $XCBY -xcb ............... Compile Xcb support.
3114 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3115 $EGLFSY -eglfs ............. Compile EGLFS support.
3117 $DFBN -no-directfb ....... Do not compile DirectFB support.
3118 $DFBY -directfb .......... Compile DirectFB support.
3120 -xplatform target ... The target platform when cross-compiling.
3122 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot.
3124 -no-feature-<feature> Do not compile in <feature>.
3125 -feature-<feature> .. Compile in <feature>. The available features
3126 are described in src/corelib/global/qfeatures.txt
3128 -no-freetype ........ Do not compile in Freetype2 support.
3129 -qt-freetype ........ Use the libfreetype bundled with Qt.
3130 * -system-freetype .... Use libfreetype from the operating system.
3131 See http://www.freetype.org/
3133 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3134 default ($CFG_QCONFIG).
3136 -no-opengl .......... Do not support OpenGL.
3137 -opengl <api> ....... Enable OpenGL support
3138 With no parameter, this will attempt to auto-detect
3139 OpenGL ES 2, or regular desktop OpenGL.
3140 Use es2 for <api> to override auto-detection.
3142 $GBN -no-glib ........... Do not compile Glib support.
3143 $GBY -glib .............. Compile Glib support.
3146 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3149 $X2N -no-xinput2......... Do not compile XInput2 support.
3150 $X2Y -xinput2............ Compile XInput2 support.
3156 if [ "$BUILD_ON_MAC" = "yes" ]; then
3161 -Fstring ........... Add an explicit framework path.
3162 -fw string ......... Add an explicit framework.
3164 * -framework ......... Build Qt as a series of frameworks and
3165 link tools against those frameworks.
3166 -no-framework ...... Do not build Qt as a series of frameworks.
3168 * -dwarf2 ............ Enable dwarf2 debugging symbols.
3169 -no-dwarf2 ......... Disable dwarf2 debugging symbols.
3171 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3172 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3174 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3175 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3176 QT_ENABLE_HARFBUZZ environment variable.
3181 [ "x$ERROR" = "xyes" ] && exit 1
3186 # -----------------------------------------------------------------------------
3187 # LICENSING, INTERACTIVE PART
3188 # -----------------------------------------------------------------------------
3191 echo "This is the Qt ${EditionString} Edition."
3194 if [ "$Edition" = "OpenSource" ]; then
3196 echo "You are licensed to use this software under the terms of"
3197 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3198 if [ -f "$relpath/LICENSE.GPL3" ]; then
3199 echo "You are also licensed to use this software under the terms of"
3200 echo "the GNU General Public License (GPL) versions 3."
3206 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3207 echo "You have already accepted the terms of the $LicenseType license."
3210 if [ -f "$relpath/LICENSE.GPL3" ]; then
3211 echo "Type '3' to view the GNU General Public License version 3."
3213 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3214 echo "Type 'yes' to accept this license offer."
3215 echo "Type 'no' to decline this license offer."
3217 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3221 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3223 elif [ "$acceptance" = "no" ]; then
3224 echo "You are not licensed to use this software."
3227 elif [ "$acceptance" = "3" ]; then
3228 more "$relpath/LICENSE.GPL3"
3229 elif [ "$acceptance" = "L" ]; then
3230 more "$relpath/LICENSE.LGPL"
3233 elif [ "$Edition" = "Preview" ]; then
3234 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3237 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3238 echo "You have already accepted the terms of the $LicenseType license."
3241 echo "You are licensed to use this software under the terms of"
3242 echo "the $TheLicense"
3244 echo "Type '?' to read the Preview License."
3245 echo "Type 'yes' to accept this license offer."
3246 echo "Type 'no' to decline this license offer."
3248 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3252 if [ "$acceptance" = "yes" ]; then
3254 elif [ "$acceptance" = "no" ] ;then
3255 echo "You are not licensed to use this software."
3258 elif [ "$acceptance" = "?" ]; then
3259 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3262 elif [ "$Edition" != "OpenSource" ]; then
3263 if [ -n "$ExpiryDate" ]; then
3264 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3265 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3266 Today=`date +%Y%m%d`
3267 if [ "$Today" -gt "$ExpiryDate" ]; then
3268 case "$LicenseType" in
3269 Commercial|Academic|Educational)
3270 if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
3272 echo "NOTICE NOTICE NOTICE NOTICE"
3274 echo " Your support and upgrade period has expired."
3276 echo " You are no longer licensed to use this version of Qt."
3277 echo " Please contact qt-info@nokia.com to renew your support"
3278 echo " and upgrades for this license."
3280 echo "NOTICE NOTICE NOTICE NOTICE"
3285 echo "WARNING WARNING WARNING WARNING"
3287 echo " Your support and upgrade period has expired."
3289 echo " You may continue to use your last licensed release"
3290 echo " of Qt under the terms of your existing license"
3291 echo " agreement. But you are not entitled to technical"
3292 echo " support, nor are you entitled to use any more recent"
3293 echo " Qt releases."
3295 echo " Please contact qt-info@nokia.com to renew your"
3296 echo " support and upgrades for this license."
3298 echo "WARNING WARNING WARNING WARNING"
3305 echo "NOTICE NOTICE NOTICE NOTICE"
3307 echo " Your Evaluation license has expired."
3309 echo " You are no longer licensed to use this software. Please"
3310 echo " contact qt-info@nokia.com to purchase license, or install"
3311 echo " the Qt Open Source Edition if you intend to develop free"
3314 echo "NOTICE NOTICE NOTICE NOTICE"
3321 TheLicense=`head -n 1 "$outpath/LICENSE"`
3323 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3324 echo "You have already accepted the terms of the $TheLicense."
3327 echo "You are licensed to use this software under the terms of"
3328 echo "the $TheLicense."
3330 echo "Type '?' to view the $TheLicense."
3331 echo "Type 'yes' to accept this license offer."
3332 echo "Type 'no' to decline this license offer."
3334 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3338 if [ "$acceptance" = "yes" ]; then
3340 elif [ "$acceptance" = "no" ]; then
3341 echo "You are not licensed to use this software."
3344 else [ "$acceptance" = "?" ]
3345 more "$outpath/LICENSE"
3350 # this should be moved somewhere else
3353 AIX_VERSION=`uname -v`
3354 if [ "$AIX_VERSION" -lt "5" ]; then
3355 QMakeVar add QMAKE_LIBS_X11 -lbind
3362 #-------------------------------------------------------------------------------
3363 # generate qconfig.cpp
3364 #-------------------------------------------------------------------------------
3365 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3367 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3369 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3370 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3372 /* Installation date */
3373 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3375 /* Installation Info */
3376 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3377 "qt_prfxpath=$QT_INSTALL_PREFIX",
3378 "qt_docspath=$QT_INSTALL_DOCS",
3379 "qt_hdrspath=$QT_INSTALL_HEADERS",
3380 "qt_libspath=$QT_INSTALL_LIBS",
3381 "qt_binspath=$QT_INSTALL_BINS",
3382 "qt_plugpath=$QT_INSTALL_PLUGINS",
3383 "qt_impspath=$QT_INSTALL_IMPORTS",
3384 "qt_datapath=$QT_INSTALL_DATA",
3385 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3386 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3387 "qt_tstspath=$QT_INSTALL_TESTS",
3388 #ifdef QT_BUILD_QMAKE
3389 "qt_ssrtpath=$CFG_SYSROOT",
3390 "qt_hpfxpath=$QT_HOST_PREFIX",
3391 "qt_hbinpath=$QT_HOST_BINS",
3392 "qt_hdatpath=$QT_HOST_DATA",
3395 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3398 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3400 /* strlen( "qt_lcnsxxxx" ) == 12 */
3401 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3402 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3404 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3407 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3408 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3409 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3411 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3412 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3413 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3416 # -----------------------------------------------------------------------------
3417 if [ "$LicenseType" = "Evaluation" ]; then
3418 EVALKEY=qt_qevalkey=$LicenseKeyExt
3419 elif echo "$D_FLAGS" | grep QT_EVAL >/dev/null 2>&1; then
3420 EVALKEY=qt_qevalkey=
3423 if [ -n "$EVALKEY" ]; then
3424 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3425 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3426 /* Evaluation license key */
3427 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3429 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3433 # -----------------------------------------------------------------------------
3435 # -----------------------------------------------------------------------------
3438 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3440 [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
3441 if [ "$OPT_SHADOW" = "yes" ]; then
3442 "$outpath/bin/syncqt" $SYNCQT_OPTS "$relpath" || exit 1
3443 elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then
3444 QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
3448 # $1: input variable name (awk regexp)
3449 # $2: optional output variable name
3450 # $3: optional value transformation (sed command)
3451 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3452 # is where the resulting variable is written to
3453 setBootstrapVariable()
3455 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3459 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3460 echo "Creating qmake. Please wait..."
3463 QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
3464 QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
3465 if [ -f "$QCONFIG_H" ]; then
3466 OLD_QCONFIG_H=$QCONFIG_H
3467 mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
3470 # create temporary qconfig.h for compiling qmake, if it doesn't exist
3471 # when building qmake, we use #defines for the install paths,
3472 # however they are real functions in the library
3473 if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
3474 mkdir -p "$outpath/src/corelib/global"
3475 [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
3476 echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
3479 mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
3481 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3482 rm -rf mkspecs/default
3483 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3484 mkdir -p "$outpath/qmake" || exit
3486 for mkfile in GNUmakefile Makefile; do
3489 in_mkfile="${mkfile}.in"
3490 if [ "$mkfile" = "Makefile" ]; then
3491 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3492 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3494 in_mkfile="${mkfile}.unix"
3496 in_mkfile="$relpath/qmake/$in_mkfile"
3497 mkfile="$outpath/qmake/$mkfile"
3498 if [ -f "$mkfile" ]; then
3499 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3502 [ -f "$in_mkfile" ] || continue
3504 echo "########################################################################" > "$mkfile"
3505 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3506 echo "########################################################################" >> "$mkfile"
3509 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3510 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3511 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3513 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3514 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3517 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3518 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3519 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3520 setBootstrapVariable QMAKE_CFLAGS
3521 setBootstrapVariable QMAKE_CXXFLAGS
3522 setBootstrapVariable QMAKE_LFLAGS
3524 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3525 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3526 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3528 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3529 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3530 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3531 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3532 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3533 elif [ "$CFG_DEBUG" = "yes" ]; then
3534 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3535 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3536 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3537 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3540 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3541 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3542 for rpath in $RPATH_FLAGS; do
3543 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3546 if [ "$BUILD_ON_MAC" = "yes" ]; then
3547 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3548 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3549 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3550 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3551 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3552 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3553 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3554 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3555 if [ '!' -z "$CFG_SDK" ]; then
3556 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3557 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3558 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3559 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3560 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3563 if [ '!' -z "$D_FLAGS" ]; then
3564 for DEF in $D_FLAGS; do
3565 EXTRA_CFLAGS="$EXTRA_CFLAGS \"-D${DEF}\""
3568 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3569 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3570 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3571 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3573 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3574 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3575 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3576 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3577 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3578 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3579 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3580 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3581 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3582 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3584 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3585 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3586 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3587 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3592 QMAKE_BUILD_ERROR=no
3593 (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
3594 [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
3595 [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
3596 [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
3599 #-------------------------------------------------------------------------------
3601 #-------------------------------------------------------------------------------
3602 if [ -z "$PKG_CONFIG" ]; then
3603 # See if PKG_CONFIG is set in the mkspec:
3604 PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
3606 if [ -z "$PKG_CONFIG" ]; then
3607 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3610 if [ "$CFG_PKGCONFIG" = "no" ]; then
3612 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3614 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3615 echo >&2 "a correctly setup pkg-config environment!"
3617 elif [ -n "$PKG_CONFIG" ]; then
3618 # found a pkg-config
3619 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3620 # when xcompiling, check environment to see if it's actually usable
3621 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3622 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3623 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3624 export PKG_CONFIG_LIBDIR
3625 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3626 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3627 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3628 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3629 echo >&2 "Set this variable to the directory that contains target .pc files"
3630 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3631 echo >&2 "use -force-pkg-config to override this test."
3635 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3638 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3639 if [ -n "$CFG_SYSROOT" ]; then
3640 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3641 export PKG_CONFIG_SYSROOT_DIR
3642 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3643 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3644 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3645 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3646 echo >&2 "or use -force-pkg-config to override this test."
3650 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3654 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3655 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3659 if [ -z "$PKG_CONFIG" ]; then
3660 QT_CONFIG="$QT_CONFIG no-pkg-config"
3663 #-------------------------------------------------------------------------------
3664 # tests that need qmake
3665 #-------------------------------------------------------------------------------
3667 #-------------------------------------------------------------------------------
3668 # determine the target and host architectures
3669 #-------------------------------------------------------------------------------
3671 # Use config.tests/arch/arch.pro to has the compiler tell us what the target architecture is
3672 CFG_ARCH=`OUTDIR="$outpath" "$outpath/bin/qmake" -spec "$XQMAKESPEC" -o /dev/null "$relpath/config.tests/arch/arch.pro" 2>&1 | sed -n -e 's,^Project MESSAGE:.*Architecture: \([a-zA-Z0-9_]*\).*,\1,p'`
3674 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3675 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3676 # Do the same test again, using the host compiler
3677 CFG_HOST_ARCH=`OUTDIR="$outpath" "$outpath/bin/qmake" -spec "$QMAKESPEC" -o /dev/null "$relpath/config.tests/arch/arch.pro" 2>&1 | sed -n -e 's,^Project MESSAGE:.*Architecture: \([a-zA-Z0-9_]*\).*,\1,p'`
3678 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3680 # not cross compiling, host == target
3681 CFG_HOST_ARCH="$CFG_ARCH"
3684 if [ "$OPT_VERBOSE" = "yes" ]; then
3685 echo "System architecture: '$CFG_ARCH'"
3686 echo "Host architecture: '$CFG_HOST_ARCH'"
3689 #-------------------------------------------------------------------------------
3690 # functionality tests
3691 #-------------------------------------------------------------------------------
3693 # detect availability of float math.h functions
3694 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/floatmath "floatmath" $L_FLAGS $I_FLAGS $l_FLAGS; then
3695 CFG_USE_FLOATMATH=yes
3697 CFG_USE_FLOATMATH=no
3700 # detect sse2 support
3701 if [ "${CFG_SSE2}" = "auto" ]; then
3702 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse2 "sse2" $L_FLAGS $I_FLAGS $l_FLAGS "-msse2"; then
3709 # detect sse3 support
3710 if [ "${CFG_SSE3}" = "auto" ]; then
3711 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse3 "sse3" $L_FLAGS $I_FLAGS $l_FLAGS "-msse3"; then
3718 # detect ssse3 support
3719 if [ "${CFG_SSSE3}" = "auto" ]; then
3720 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ssse3 "ssse3" $L_FLAGS $I_FLAGS $l_FLAGS "-mssse3"; then
3727 # detect sse4.1 support
3728 if [ "${CFG_SSE4_1}" = "auto" ]; then
3729 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse4_1 "sse4_1" $L_FLAGS $I_FLAGS $l_FLAGS "-msse4.1"; then
3736 # detect sse4.2 support
3737 if [ "${CFG_SSE4_2}" = "auto" ]; then
3738 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse4_2 "sse4_2" $L_FLAGS $I_FLAGS $l_FLAGS "-msse4.2"; then
3745 # detect avx support
3746 if [ "${CFG_AVX}" = "auto" ]; then
3747 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/avx "avx" $L_FLAGS $I_FLAGS $l_FLAGS "-mavx"; then
3754 # detect avx2 support
3755 if [ "${CFG_AVX2}" = "auto" ]; then
3756 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/avx2 "avx2" $L_FLAGS $I_FLAGS $l_FLAGS "-march=core-avx2"; then
3763 # check iWMMXt support
3764 if [ "$CFG_IWMMXT" = "yes" ]; then
3765 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iwmmxt "iwmmxt" $L_FLAGS $I_FLAGS $l_FLAGS "-mcpu=iwmmxt"
3766 if [ $? != "0" ]; then
3767 echo "The iWMMXt functionality test failed!"
3768 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3773 # detect neon support
3774 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3775 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/neon "neon" $L_FLAGS $I_FLAGS $l_FLAGS "-mfpu=neon"; then
3780 elif [ "$CFG_ARCH" != "arm" ]; then
3784 # detect mips_dsp support
3785 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSP}" = "yes" ]; then
3791 # detect mips_dspr2 support
3792 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "yes" ]; then
3798 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3801 if [ "$CFG_ZLIB" = "no" ]; then
3802 # Note: Qt no longer support builds without zlib
3803 # So we force a "no" to be "auto" here.
3804 # If you REALLY really need no zlib support, you can still disable
3805 # it by doing the following:
3806 # add "no-zlib" to mkspecs/qconfig.pri
3807 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
3809 # There's no guarantee that Qt will build under those conditions
3814 if [ "$CFG_ZLIB" = "auto" ]; then
3815 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/zlib "zlib" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3822 if [ "$CFG_LARGEFILE" = "auto" ]; then
3823 #Large files should be enabled for all Linux systems
3827 if [ "$CFG_GUI" = "no" ]; then
3828 QPA_PLATFORM_GUARD=no
3831 # detect how jpeg should be built
3832 if [ "$CFG_JPEG" = "auto" ]; then
3833 if [ "$CFG_SHARED" = "yes" ]; then
3840 if [ "$CFG_LIBJPEG" = "auto" ]; then
3841 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libjpeg "libjpeg" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3848 # detect how gif should be built
3849 if [ "$CFG_GIF" = "auto" ]; then
3850 if [ "$CFG_SHARED" = "yes" ]; then
3858 if [ "$CFG_LIBPNG" = "auto" ]; then
3859 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libpng "libpng" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3866 # detect accessibility
3867 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
3868 CFG_ACCESSIBILITY=yes
3871 if [ "$CFG_EGLFS" = "yes" ]; then
3872 if [ "$CFG_EGL" = "no" ]; then
3873 echo "The EGLFS plugin requires EGL support and cannot be built"
3879 # auto-detect SQL-modules support
3880 for _SQLDR in $CFG_SQL_AVAILABLE; do
3883 if [ "$CFG_SQL_mysql" != "no" ]; then
3884 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
3885 if [ -x "$CFG_MYSQL_CONFIG" ]; then
3886 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
3887 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
3888 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
3889 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
3890 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
3892 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
3893 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3894 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
3895 echo " You need MySql 4 or higher."
3896 echo " If you believe this message is in error you may use the continue"
3897 echo " switch (-continue) to $0 to continue."
3902 QT_LFLAGS_MYSQL_R=""
3906 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $L_FLAGS $QT_CFLAGS_MYSQL $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3907 QMakeVar add CONFIG use_libmysqlclient_r
3908 if [ "$CFG_SQL_mysql" = "auto" ]; then
3909 CFG_SQL_mysql=plugin
3911 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
3912 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $L_FLAGS $QT_CFLAGS_MYSQL $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3913 if [ "$CFG_SQL_mysql" = "auto" ]; then
3914 CFG_SQL_mysql=plugin
3917 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3918 echo "MySQL support cannot be enabled due to functionality tests!"
3919 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3920 echo " If you believe this message is in error you may use the continue"
3921 echo " switch (-continue) to $0 to continue."
3926 QT_LFLAGS_MYSQL_R=""
3934 if [ "$CFG_SQL_psql" != "no" ]; then
3935 # Be careful not to use native pg_config when cross building.
3936 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
3937 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
3938 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
3940 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
3941 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
3942 # But, respect PSQL_LIBS if set
3943 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
3944 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $L_FLAGS $QT_CFLAGS_PSQL $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3945 if [ "$CFG_SQL_psql" = "auto" ]; then
3949 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3950 echo "PostgreSQL support cannot be enabled due to functionality tests!"
3951 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3952 echo " If you believe this message is in error you may use the continue"
3953 echo " switch (-continue) to $0 to continue."
3964 if [ "$CFG_SQL_odbc" != "no" ]; then
3965 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/odbc "ODBC" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3966 if [ "$CFG_SQL_odbc" = "auto" ]; then
3970 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iodbc "iODBC" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3971 QT_LFLAGS_ODBC="-liodbc"
3972 if [ "$CFG_SQL_odbc" = "auto" ]; then
3976 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3977 echo "ODBC support cannot be enabled due to functionality tests!"
3978 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3979 echo " If you believe this message is in error you may use the continue"
3980 echo " switch (-continue) to $0 to continue."
3990 if [ "$CFG_SQL_oci" != "no" ]; then
3991 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/oci "OCI" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3992 if [ "$CFG_SQL_oci" = "auto" ]; then
3996 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3997 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
3998 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3999 echo " If you believe this message is in error you may use the continue"
4000 echo " switch (-continue) to $0 to continue."
4009 if [ "$CFG_SQL_tds" != "no" ]; then
4010 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4011 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4012 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/tds "TDS" $QT_LFLAGS_TDS $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4013 if [ "$CFG_SQL_tds" = "auto" ]; then
4017 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4018 echo "TDS support cannot be enabled due to functionality tests!"
4019 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4020 echo " If you believe this message is in error you may use the continue"
4021 echo " switch (-continue) to $0 to continue."
4030 if [ "$CFG_SQL_db2" != "no" ]; then
4031 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/db2 "DB2" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4032 if [ "$CFG_SQL_db2" = "auto" ]; then
4036 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4037 echo "ODBC support cannot be enabled due to functionality tests!"
4038 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4039 echo " If you believe this message is in error you may use the continue"
4040 echo " switch (-continue) to $0 to continue."
4049 if [ "$CFG_SQL_ibase" != "no" ]; then
4050 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ibase "InterBase" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4051 if [ "$CFG_SQL_ibase" = "auto" ]; then
4052 CFG_SQL_ibase=plugin
4055 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4056 echo "InterBase support cannot be enabled due to functionality tests!"
4057 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4058 echo " If you believe this message is in error you may use the continue"
4059 echo " switch (-continue) to $0 to continue."
4068 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4069 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sqlite2 "SQLite2" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4070 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4071 CFG_SQL_sqlite2=plugin
4074 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4075 echo "SQLite2 support cannot be enabled due to functionality tests!"
4076 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4077 echo " If you believe this message is in error you may use the continue"
4078 echo " switch (-continue) to $0 to continue."
4087 if [ "$CFG_SQL_sqlite" != "no" ]; then
4088 SQLITE_AUTODETECT_FAILED="no"
4089 if [ "$CFG_SQLITE" = "system" ]; then
4090 if [ -n "$PKG_CONFIG" ]; then
4091 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4092 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4094 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $L_FLAGS $QT_CFLAGS_SQLITE $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4095 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4096 CFG_SQL_sqlite=plugin
4098 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4100 SQLITE_AUTODETECT_FAILED="yes"
4103 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4104 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4105 CFG_SQL_sqlite=plugin
4108 SQLITE_AUTODETECT_FAILED="yes"
4112 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4113 echo "SQLite support cannot be enabled due to functionality tests!"
4114 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4115 echo " If you believe this message is in error you may use the continue"
4116 echo " switch (-continue) to $0 to continue."
4122 if [ "$OPT_VERBOSE" = "yes" ]; then
4123 echo "unknown SQL driver: $_SQLDR"
4129 # auto-detect NIS support
4130 if [ "$CFG_NIS" != "no" ]; then
4131 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/nis "NIS" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4134 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4135 echo "NIS support cannot be enabled due to functionality tests!"
4136 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4137 echo " If you believe this message is in error you may use the continue"
4138 echo " switch (-continue) to $0 to continue."
4146 # auto-detect CUPS support
4147 if [ "$CFG_CUPS" != "no" ]; then
4148 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/cups "Cups" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4151 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4152 echo "Cups support cannot be enabled due to functionality tests!"
4153 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4154 echo " If you believe this message is in error you may use the continue"
4155 echo " switch (-continue) to $0 to continue."
4163 # auto-detect iconv(3) support
4164 if [ "$CFG_ICONV" != "no" ]; then
4165 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4167 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/iconv" "POSIX iconv" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4169 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/sun-libiconv" "SUN libiconv" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4171 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/gnu-libiconv" "GNU libiconv" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4174 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4175 echo "Iconv support cannot be enabled due to functionality tests!"
4176 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4177 echo " If you believe this message is in error you may use the continue"
4178 echo " switch (-continue) to $0 to continue."
4186 # auto-detect libdbus-1 support
4187 if [ "$CFG_DBUS" != "no" ]; then
4188 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4189 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4190 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4192 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/dbus "D-Bus" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_DBUS $QT_LIBS_DBUS $MAC_CONFIG_TEST_COMMANDLINE; then
4193 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4194 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4195 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4197 if [ "$CFG_DBUS" = "auto" ]; then
4199 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4200 # CFG_DBUS is "yes" or "linked" here
4202 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4203 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4204 echo " If you believe this message is in error you may use the continue"
4205 echo " switch (-continue) to $0 to continue."
4211 # auto-detect Glib support
4212 if [ "$CFG_GLIB" != "no" ]; then
4213 if [ -n "$PKG_CONFIG" ]; then
4214 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4215 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4217 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/glib "Glib" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4219 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4220 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4222 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4223 echo "Glib support cannot be enabled due to functionality tests!"
4224 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4225 echo " If you believe this message is in error you may use the continue"
4226 echo " switch (-continue) to $0 to continue."
4235 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4236 if [ -n "$PKG_CONFIG" ]; then
4237 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4238 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4240 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/gstreamer "GStreamer" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4242 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4243 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4245 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4246 echo "Gstreamer support cannot be enabled due to functionality tests!"
4247 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4248 echo " If you believe this message is in error you may use the continue"
4249 echo " switch (-continue) to $0 to continue."
4255 elif [ "$CFG_GLIB" = "no" ]; then
4259 # auto-detect libicu support
4260 if [ "$CFG_ICU" != "no" ]; then
4261 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/icu "ICU" $L_FLAGS $I_FLAGS $l_FLAGS; then
4262 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4264 if [ "$CFG_ICU" = "auto" ]; then
4266 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4269 echo "The ICU library support cannot be enabled."
4270 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4271 echo " If you believe this message is in error you may use the continue"
4272 echo " switch (-continue) to $0 to continue."
4278 # Auto-detect PulseAudio support
4279 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4280 if [ -n "$PKG_CONFIG" ]; then
4281 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4282 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4284 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/pulseaudio "PulseAudio" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4286 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4287 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4289 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4290 echo "PulseAudio support cannot be enabled due to functionality tests!"
4291 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4292 echo " If you believe this message is in error you may use the continue"
4293 echo " switch (-continue) to $0 to continue."
4302 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4303 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4304 if [ "$CFG_GUI" = "no" ]; then
4305 if [ "$CFG_OPENGL" = "auto" ]; then
4308 if [ "$CFG_OPENGL" != "no" ]; then
4309 echo "OpenGL enabled, but GUI disabled."
4310 echo " You might need to either enable the GUI or disable OpenGL"
4314 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4315 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS; then
4317 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
4320 if [ "$CFG_OPENGL" = "yes" ]; then
4321 echo "All the OpenGL functionality tests failed!"
4322 echo " You might need to modify the include and library search paths by editing"
4323 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4324 echo " ${XQMAKESPEC}."
4331 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4332 if [ "$CFG_OPENGL" = "desktop" ]; then
4333 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS
4334 if [ $? != "0" ]; then
4335 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4342 elif [ "$CFG_OPENGL" = "es2" ]; then
4344 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS
4345 if [ $? != "0" ]; then
4346 echo "The OpenGL ES 2.0 functionality test failed!"
4347 echo " You might need to modify the include and library search paths by editing"
4348 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4349 echo " ${XQMAKESPEC}."
4352 elif [ "$CFG_OPENGL" = "desktop" ]; then
4353 # Desktop OpenGL support
4354 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS
4355 if [ $? != "0" ]; then
4356 echo "The OpenGL functionality test failed!"
4357 echo " You might need to modify the include and library search paths by editing"
4358 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4359 echo " ${XQMAKESPEC}."
4364 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4365 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS
4366 if [ $? != "0" ]; then
4367 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4374 fi # X11/MINGW OpenGL
4376 if [ "$BUILD_ON_MAC" = "yes" ]; then
4377 if [ "$CFG_PHONON" != "no" ]; then
4378 # Always enable Phonon (unless it was explicitly disabled)
4382 if [ "$CFG_COREWLAN" = "auto" ]; then
4383 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/mac/corewlan "CoreWlan" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4391 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4392 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4393 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS; then
4395 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
4398 if [ "$CFG_OPENGL" = "yes" ]; then
4399 echo "All the OpenGL functionality tests failed!"
4400 echo " You might need to modify the include and library search paths by editing"
4401 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4402 echo " ${XQMAKESPEC}."
4407 elif [ "$CFG_OPENGL" = "es2" ]; then
4409 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4410 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4411 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4412 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4413 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4414 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "$QMAKE_INCDIR_OPENGL_ES2"
4415 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "$QMAKE_LIBDIR_OPENGL_ES2"
4416 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "$QMAKE_LIBS_OPENGL_ES2"
4419 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4420 if [ $? != "0" ]; then
4421 echo "The OpenGL ES 2.0 functionality test failed!"
4422 echo " You might need to modify the include and library search paths by editing"
4423 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4424 echo " ${XQMAKESPEC}."
4427 elif [ "$CFG_OPENGL" = "desktop" ]; then
4428 # Desktop OpenGL support
4429 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS
4430 if [ $? != "0" ]; then
4431 echo "The OpenGL functionality test failed!"
4432 echo " You might need to modify the include and library search paths by editing"
4433 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4434 echo " ${XQMAKESPEC}."
4439 # auto-detect FontConfig support
4440 if [ "$CFG_FONTCONFIG" != "no" ]; then
4441 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4442 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4443 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4445 QT_CFLAGS_FONTCONFIG=
4446 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4448 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/fontconfig "FontConfig" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4449 QT_CONFIG="$QT_CONFIG fontconfig"
4450 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4451 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4452 CFG_LIBFREETYPE=system
4457 # Save these for a check later
4458 ORIG_CFG_XCB="$CFG_XCB"
4459 ORIG_CFG_EGLFS="$CFG_EGLFS"
4460 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4462 if [ "$CFG_LIBUDEV" != "no" ]; then
4463 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4464 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4465 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4466 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4467 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4469 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libudev "libudev" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4471 QT_CONFIG="$QT_CONFIG libudev"
4472 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4473 echo "The libudev functionality test failed!"
4477 QMakeVar add DEFINES QT_NO_LIBUDEV
4481 if [ "$CFG_EVDEV" != "no" ]; then
4482 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/evdev "evdev" $L_FLAGS $I_FLAGS $l_FLAGS; then
4484 QT_CONFIG="$QT_CONFIG evdev"
4485 elif [ "$CFG_EVDEV" = "yes" ]; then
4486 echo "The evdev functionality test failed!"
4490 QMakeVar add DEFINES QT_NO_EVDEV
4494 # Check we actually have X11 :-)
4495 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xlib "XLib" $L_FLAGS $I_FLAGS $l_FLAGS; then
4496 QT_CONFIG="$QT_CONFIG xlib"
4499 # auto-detect Xrender support
4500 if [ "$CFG_XRENDER" != "no" ]; then
4501 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xrender "Xrender" $L_FLAGS $I_FLAGS $l_FLAGS; then
4503 QT_CONFIG="$QT_CONFIG xrender"
4505 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4506 echo "Xrender support cannot be enabled due to functionality tests!"
4507 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4508 echo " If you believe this message is in error you may use the continue"
4509 echo " switch (-continue) to $0 to continue."
4517 if [ "$CFG_XCB" != "no" ]; then
4518 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4519 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4520 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4522 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb "xcb" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4524 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-render "xcb-render" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4525 QT_CONFIG="$QT_CONFIG xcb-render"
4528 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4530 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4533 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-xlib "xcb-xlib" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4534 QT_CONFIG="$QT_CONFIG xcb-xlib"
4537 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
4538 # auto-detect XInput2/Xinput support
4539 if [ "$CFG_XINPUT2" != "no" ]; then
4540 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xinput2 "XInput2" $L_FLAGS $I_FLAGS $l_FLAGS; then
4544 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4545 echo "XInput2 support cannot be enabled due to functionality tests!"
4546 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4547 echo " If you believe this message is in error you may use the continue"
4548 echo " switch (-continue) to $0 to continue."
4557 if [ "$CFG_XCB" = "yes" ]; then
4558 echo "The XCB test failed!"
4559 echo " You might need to install dependency packages."
4560 echo " See src/plugins/platforms/xcb/README."
4564 QMakeVar add DEFINES QT_NO_XCB
4568 if [ "$CFG_DIRECTFB" != "no" ]; then
4569 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4570 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4571 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4572 QT_CONFIG="$QT_CONFIG directfb"
4578 # Detect libxkbcommon
4579 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4580 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4581 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4582 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4583 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4585 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4589 if [ "$CFG_EGL" != "no" ] && [ "$CFG_OPENGL" != "desktop" ]; then
4590 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4591 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4592 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4593 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4594 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4595 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4596 fi # detect EGL support
4597 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/qpa/egl" "EGL" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4599 elif [ "$CFG_EGL" = "yes" ]; then
4600 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4601 echo " You might need to modify the include and library search paths by editing"
4602 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4607 elif [ "$CFG_OPENGL" = "desktop" ]; then
4608 if [ "$CFG_EGL" = "yes" ]; then
4609 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4610 echo "Either disable EGL support or enable OpenGL ES support."
4616 if [ "$CFG_EGLFS" != "no" ]; then
4617 CFG_EGLFS="$CFG_EGL"
4620 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4621 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4622 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4623 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4625 if [ -n "$QMAKE_CFLAGS_DIRECTFB" ] || [ -n "$QMAKE_LIBS_DIRECTFB" ]; then
4626 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4627 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4630 if [ "$BUILD_ON_MAC" = "yes" ]; then
4631 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/mac/coreservices "CoreServices" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4632 QT_CONFIG="$QT_CONFIG coreservices"
4634 QMakeVar add DEFINES QT_NO_CORESERVICES
4638 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ]; then
4639 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ]; then
4640 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4641 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] ); then
4642 echo "No QPA platform plugin enabled!"
4643 echo " If you really want to build without a QPA platform plugin you must pass"
4644 echo " -no-xcb, -no-eglfs and -no-directfb to configure. Doing this will"
4645 echo " produce a Qt that cannot run GUI applications."
4646 echo " The dependencies needed for xcb to build are listed in"
4647 echo " src/plugins/platforms/xcb/README"
4653 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_PHONON" != "no" ] && CFG_PHONON="yes"
4656 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4657 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4658 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/freetype "FreeType" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4659 CFG_LIBFREETYPE=system
4665 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $l_FLAGS &&
4666 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4667 echo "STL functionality check failed! Cannot build Qt with this STL library."
4668 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4673 # detect POSIX clock_gettime()
4674 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
4675 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/clock-gettime "POSIX clock_gettime()" $L_FLAGS $I_FLAGS $l_FLAGS; then
4676 CFG_CLOCK_GETTIME=yes
4678 CFG_CLOCK_GETTIME=no
4682 # detect POSIX monotonic clocks
4683 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
4684 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/clock-monotonic "POSIX Monotonic Clock" $L_FLAGS $I_FLAGS $l_FLAGS; then
4685 CFG_CLOCK_MONOTONIC=yes
4687 CFG_CLOCK_MONOTONIC=no
4689 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
4690 CFG_CLOCK_MONOTONIC=no
4694 if [ "$CFG_MREMAP" = "auto" ]; then
4695 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mremap "mremap" $L_FLAGS $I_FLAGS $l_FLAGS; then
4702 # find if the platform provides getaddrinfo (ipv6 dns lookups)
4703 if [ "$CFG_GETADDRINFO" != "no" ]; then
4704 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getaddrinfo "getaddrinfo" $L_FLAGS $I_FLAGS $l_FLAGS; then
4707 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4708 echo "getaddrinfo support cannot be enabled due to functionality tests!"
4709 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4710 echo " If you believe this message is in error you may use the continue"
4711 echo " switch (-continue) to $0 to continue."
4719 # find if the platform provides inotify
4720 if [ "$CFG_INOTIFY" != "no" ]; then
4721 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/inotify "inotify" $L_FLAGS $I_FLAGS $l_FLAGS; then
4724 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4725 echo "inotify support cannot be enabled due to functionality tests!"
4726 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4727 echo " If you believe this message is in error you may use the continue"
4728 echo " switch (-continue) to $0 to continue."
4736 # find if the platform provides if_nametoindex (ipv6 interface name support)
4737 if [ "$CFG_IPV6IFNAME" != "no" ]; then
4738 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ipv6ifname "IPv6 interface name" $L_FLAGS $I_FLAGS $l_FLAGS; then
4741 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4742 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
4743 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4744 echo " If you believe this message is in error you may use the continue"
4745 echo " switch (-continue) to $0 to continue."
4753 # find if the platform provides getifaddrs (network interface enumeration)
4754 if [ "$CFG_GETIFADDRS" != "no" ]; then
4755 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getifaddrs "getifaddrs" $L_FLAGS $I_FLAGS $l_FLAGS; then
4758 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4759 echo "getifaddrs support cannot be enabled due to functionality tests!"
4760 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4761 echo " If you believe this message is in error you may use the continue"
4762 echo " switch (-continue) to $0 to continue."
4771 if [ "$CFG_OPENSSL" != "no" ]; then
4772 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/openssl "OpenSSL" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4773 if [ "$CFG_OPENSSL" = "auto" ]; then
4777 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4778 echo "OpenSSL support cannot be enabled due to functionality tests!"
4779 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4780 echo " If you believe this message is in error you may use the continue"
4781 echo " switch (-continue) to $0 to continue."
4790 if [ "$CFG_PCRE" != "qt" ]; then
4791 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/pcre "PCRE" $L_FLAGS $I_FLAGS $l_FLAGS; then
4794 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4795 echo "PCRE support cannot be enabled due to functionality tests!"
4796 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4797 echo " If you believe this message is in error you may use the continue"
4798 echo " switch (-continue) to $0 to continue."
4806 # detect OpenVG support
4807 if [ "$CFG_OPENVG" != "no" ]; then
4808 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
4809 if [ "$CFG_OPENVG" = "auto" ]; then
4812 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG openvg_on_opengl" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
4813 if [ "$CFG_OPENVG" = "auto" ]; then
4816 CFG_OPENVG_ON_OPENGL=yes
4817 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG lower_case_includes" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG (lc includes)" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
4818 if [ "$CFG_OPENVG" = "auto" ]; then
4821 CFG_OPENVG_LC_INCLUDES=yes
4822 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG openvg_on_opengl lower_case_includes" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG (lc includes)" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
4823 if [ "$CFG_OPENVG" = "auto" ]; then
4826 CFG_OPENVG_LC_INCLUDES=yes
4827 CFG_OPENVG_ON_OPENGL=yes
4829 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4830 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
4831 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4832 echo " If you believe this message is in error you may use the continue"
4833 echo " switch (-continue) to $0 to continue."
4839 if [ "$CFG_OPENVG" = "yes" ] && "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/shivavg" "ShivaVG" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
4840 CFG_OPENVG_SHIVA=yes
4844 if [ "$CFG_ALSA" = "auto" ]; then
4845 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/alsa "alsa" $L_FLAGS $I_FLAGS $l_FLAGS; then
4852 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
4853 if [ "$CFG_ARCH" = "arm" ]; then
4854 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/javascriptcore-jit "javascriptcore-jit" $L_FLAGS $I_FLAGS $l_FLAGS
4855 if [ $? != "0" ]; then
4856 CFG_JAVASCRIPTCORE_JIT=no
4859 case "$XPLATFORM" in
4861 CFG_JAVASCRIPTCORE_JIT=no
4867 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
4868 QMakeVar set JAVASCRIPTCORE_JIT yes
4869 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
4870 QMakeVar set JAVASCRIPTCORE_JIT no
4873 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
4874 CFG_AUDIO_BACKEND=yes
4877 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
4878 echo "Warning: largefile support cannot be disabled for win32."
4882 #-------------------------------------------------------------------------------
4883 # ask for all that hasn't been auto-detected or specified in the arguments
4884 #-------------------------------------------------------------------------------
4886 # enable dwarf2 support on Mac
4887 if [ "$CFG_MAC_DWARF2" = "yes" ]; then
4888 QT_CONFIG="$QT_CONFIG dwarf2"
4891 # Detect the default arch (x86 or x86_64) on Mac OS X
4892 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
4894 case `file "${outpath}/bin/qmake"` in
4902 # unsupported/unknown
4906 if [ -n "$DEFAULT_ARCH" ]; then
4907 [ "$OPT_VERBOSE" = "yes" ] && echo "Setting default Mac OS X architechture to $DEFAULT_ARCH."
4908 QT_CONFIG="$QT_CONFIG $DEFAULT_ARCH"
4909 QMAKE_CONFIG="$QMAKE_CONFIG $DEFAULT_ARCH"
4910 # Make the application arch follow the Qt arch
4911 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $DEFAULT_ARCH"
4916 if [ "$CFG_PHONON_BACKEND" = "yes" ]; then
4917 QT_CONFIG="$QT_CONFIG phonon-backend"
4920 # disable accessibility
4921 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
4922 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
4924 QT_CONFIG="$QT_CONFIG accessibility"
4928 if [ "$CFG_EGL" = "yes" ]; then
4929 QT_CONFIG="$QT_CONFIG egl"
4931 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
4935 if [ "$CFG_EGLFS" = "yes" ]; then
4936 QT_CONFIG="$QT_CONFIG eglfs"
4938 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
4942 if [ "$CFG_OPENVG" = "no" ]; then
4943 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
4945 QT_CONFIG="$QT_CONFIG openvg"
4946 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
4947 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
4949 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
4950 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
4952 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
4953 QT_CONFIG="$QT_CONFIG shivavg"
4954 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
4959 if [ "$CFG_OPENGL" = "no" ]; then
4960 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
4962 QT_CONFIG="$QT_CONFIG opengl"
4965 if [ "$CFG_OPENGL" = "es2" ]; then
4966 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
4969 if [ "$CFG_OPENGL" = "es2" ]; then
4970 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
4971 QT_CONFIG="$QT_CONFIG opengles2"
4974 # safe execution environment
4975 if [ "$CFG_SXE" != "no" ]; then
4976 QT_CONFIG="$QT_CONFIG sxe"
4979 # build up the variables for output
4980 if [ "$CFG_DEBUG" = "yes" ]; then
4981 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
4982 QMAKE_CONFIG="$QMAKE_CONFIG debug"
4983 elif [ "$CFG_DEBUG" = "no" ]; then
4984 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
4985 QMAKE_CONFIG="$QMAKE_CONFIG release"
4987 if [ "$CFG_SHARED" = "yes" ]; then
4988 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
4989 QMAKE_CONFIG="$QMAKE_CONFIG shared dll"
4990 elif [ "$CFG_SHARED" = "no" ]; then
4991 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
4992 QMAKE_CONFIG="$QMAKE_CONFIG static"
4995 #FIXME: qpa is implicit this should all be removed
4996 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
4997 QT_CONFIG="$QT_CONFIG qpa"
4998 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
4999 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5001 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5002 # Do not set this here for Windows. Let qmake do it so
5003 # debug and release precompiled headers are kept separate.
5004 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5006 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5007 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5008 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5009 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5010 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5011 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5013 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5014 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5016 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5017 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5018 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5019 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5020 QMakeVar add QMAKE_CFLAGS -g
5021 QMakeVar add QMAKE_CXXFLAGS -g
5022 QT_CONFIG="$QT_CONFIG separate_debug_info"
5024 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5025 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5027 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5028 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5029 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5030 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5031 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5032 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5033 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5034 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5035 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5036 if [ "$CFG_ARCH" = "mips" ]; then
5037 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5038 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5040 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5041 QT_CONFIG="$QT_CONFIG clock-gettime"
5043 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5044 QT_CONFIG="$QT_CONFIG clock-monotonic"
5046 if [ "$CFG_MREMAP" = "yes" ]; then
5047 QT_CONFIG="$QT_CONFIG mremap"
5049 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5050 QT_CONFIG="$QT_CONFIG getaddrinfo"
5052 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5053 QT_CONFIG="$QT_CONFIG ipv6ifname"
5055 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5056 QT_CONFIG="$QT_CONFIG getifaddrs"
5058 if [ "$CFG_INOTIFY" = "yes" ]; then
5059 QT_CONFIG="$QT_CONFIG inotify"
5061 if [ "$CFG_LIBJPEG" = "no" ]; then
5063 elif [ "$CFG_LIBJPEG" = "system" ]; then
5064 QT_CONFIG="$QT_CONFIG system-jpeg"
5066 if [ "$CFG_JPEG" = "no" ]; then
5067 QT_CONFIG="$QT_CONFIG no-jpeg"
5068 elif [ "$CFG_JPEG" = "yes" ]; then
5069 QT_CONFIG="$QT_CONFIG jpeg"
5071 if [ "$CFG_LIBPNG" = "no" ]; then
5074 if [ "$CFG_LIBPNG" = "system" ]; then
5075 QT_CONFIG="$QT_CONFIG system-png"
5077 if [ "$CFG_PNG" = "no" ]; then
5078 QT_CONFIG="$QT_CONFIG no-png"
5079 elif [ "$CFG_PNG" = "yes" ]; then
5080 QT_CONFIG="$QT_CONFIG png"
5082 if [ "$CFG_GIF" = "no" ]; then
5083 QT_CONFIG="$QT_CONFIG no-gif"
5084 elif [ "$CFG_GIF" = "yes" ]; then
5085 QT_CONFIG="$QT_CONFIG gif"
5087 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5088 QT_CONFIG="$QT_CONFIG no-freetype"
5089 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5090 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5091 QT_CONFIG="$QT_CONFIG system-freetype"
5093 QT_CONFIG="$QT_CONFIG freetype"
5095 if [ "$CFG_GUI" = "auto" ]; then
5098 if [ "$CFG_GUI" = "no" ]; then
5099 QT_CONFIG="$QT_CONFIG no-gui"
5102 if [ "$CFG_WIDGETS" = "no" ]; then
5103 QT_CONFIG="$QT_CONFIG no-widgets"
5104 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5107 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5108 #On Mac we implicitly link against libz, so we
5109 #never use the 3rdparty stuff.
5110 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5112 if [ "$CFG_ZLIB" = "yes" ]; then
5113 QT_CONFIG="$QT_CONFIG zlib"
5114 elif [ "$CFG_ZLIB" = "system" ]; then
5115 QT_CONFIG="$QT_CONFIG system-zlib"
5118 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5119 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5120 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5121 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5122 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5123 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5124 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5125 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5126 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5127 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5128 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5129 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5130 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5131 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5133 [ '!' -z "$D_FLAGS" ] && QMakeVar add DEFINES "$D_FLAGS"
5134 [ '!' -z "$L_FLAGS" ] && QMakeVar add QMAKE_LIBDIR_FLAGS "$L_FLAGS"
5135 [ '!' -z "$l_FLAGS" ] && QMakeVar add LIBS "$l_FLAGS"
5137 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5138 if [ "$CFG_RPATH" = "yes" ]; then
5139 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5140 # set the default rpath to the library installation directory
5141 RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5143 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5144 if [ -n "$RPATH_FLAGS" ]; then
5146 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5150 elif [ "$CFG_RPATH" = "yes" ]; then
5151 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5155 if [ "$CFG_RPATH" = "yes" ]; then
5156 # set the default rpath to the library installation directory
5157 RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5159 if [ -n "$RPATH_FLAGS" ]; then
5160 # add the user defined rpaths
5161 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5165 if [ '!' -z "$I_FLAGS" ]; then
5166 # add the user define include paths
5167 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5168 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5171 if [ '!' -z "$W_FLAGS" ]; then
5172 # add the user defined warning flags
5173 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5174 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5175 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5178 # turn off exceptions for the compilers that support it
5179 if [ "$XPLATFORM" != "$PLATFORM" ]; then
5180 COMPILER=`echo $XPLATFORM | cut -f 2- -d-`
5182 COMPILER=`echo $PLATFORM | cut -f 2- -d-`
5185 if [ "$CFG_EXCEPTIONS" != "no" ]; then
5186 QTCONFIG_CONFIG="$QTCONFIG_CONFIG exceptions"
5189 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5190 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5191 # Follow default behavior of configure.exe by overriding with "rtti".
5192 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5195 if [ "$CFG_ALSA" = "yes" ]; then
5196 QT_CONFIG="$QT_CONFIG alsa"
5199 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5200 QT_CONFIG="$QT_CONFIG pulseaudio"
5203 if [ "$CFG_COREWLAN" = "yes" ]; then
5204 QT_CONFIG="$QT_CONFIG corewlan"
5207 if [ "$CFG_ICU" = "yes" ]; then
5208 QT_CONFIG="$QT_CONFIG icu"
5211 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5212 QT_CONFIG="$QT_CONFIG force_asserts"
5215 if [ "$CFG_PCRE" = "qt" ]; then
5216 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5220 # Some Qt modules are too advanced in C++ for some old compilers
5221 # Detect here the platforms where they are known to work.
5223 # See Qt documentation for more information on which features are
5224 # supported and on which compilers.
5226 canBuildQtConcurrent="yes"
5227 canUseV8Snapshot="yes"
5229 case "$XPLATFORM" in
5231 # PA-RISC's assembly is too limited
5232 # gcc 3.4 on that platform can't build QtXmlPatterns
5233 # the assembly it generates cannot be compiled
5235 # Check gcc's version
5236 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5240 canBuildQtXmlPatterns="no"
5244 canBuildQtXmlPatterns="no"
5248 unsupported/vxworks-*-g++*)
5251 unsupported/vxworks-*-dcc*)
5253 canBuildQtXmlPatterns="no"
5256 # Check gcc's version
5257 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5265 canBuildQtXmlPatterns="no"
5270 # Check the compiler version
5271 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5274 canBuildQtXmlPatterns="no"
5275 canBuildQtConcurrent="no"
5279 canBuildQtConcurrent="no"
5285 canBuildQtXmlPatterns="no"
5286 canBuildQtConcurrent="no"
5292 # Get the xlC version
5293 cat > xlcver.c <<EOF
5297 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5302 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5303 xlcver=`./xlcver 2>/dev/null`
5306 if [ "$OPT_VERBOSE" = "yes" ]; then
5307 if [ -n "$xlcver" ]; then
5308 echo Found IBM xlC version: $xlcver.
5310 echo Could not determine IBM xlC version, assuming oldest supported.
5317 canBuildQtXmlPatterns="no"
5318 canBuildQtConcurrent="no"
5322 canBuildQtConcurrent="no"
5328 canBuildQtConcurrent="no"
5332 if [ "$CFG_GUI" = "no" ]; then
5333 # WebKit requires QtGui
5337 if [ "$CFG_SHARED" = "no" ]; then
5339 echo "WARNING: Using static linking will disable the WebKit module."
5344 CFG_CONCURRENT="yes"
5345 if [ "$canBuildQtConcurrent" = "no" ]; then
5346 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5349 QT_CONFIG="$QT_CONFIG concurrent"
5353 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5354 QT_CONFIG="$QT_CONFIG audio-backend"
5358 if [ "$CFG_WEBKIT" = "debug" ]; then
5359 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5363 QT_CONFIG="$QT_CONFIG v8"
5364 # Detect snapshot support
5365 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5366 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5369 *) canUseV8Snapshot="no"
5373 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5374 # QEMU crashes when building inside Scratchbox with an ARM target
5375 canUseV8Snapshot="no"
5378 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5379 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5381 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5382 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5385 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5386 QT_CONFIG="$QT_CONFIG v8snapshot"
5390 if [ "$CFG_QML_DEBUG" = "no" ]; then
5391 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5394 if [ "$CFG_EXCEPTIONS" = "no" ]; then
5397 QMakeVar add QMAKE_CFLAGS -fno-exceptions
5398 QMakeVar add QMAKE_CXXFLAGS -fno-exceptions
5399 QMakeVar add QMAKE_LFLAGS -fno-exceptions
5404 QMakeVar add QMAKE_CFLAGS -LANG:exceptions=off
5405 QMakeVar add QMAKE_CXXFLAGS -LANG:exceptions=off
5406 QMakeVar add QMAKE_LFLAGS -LANG:exceptions=off
5413 QMAKE_CONFIG="$QMAKE_CONFIG exceptions_off"
5419 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5421 case "$COMPILER_VERSION" in
5423 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5424 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5425 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5428 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5429 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5430 QT_GCC_PATCH_VERSION=0
5440 #-------------------------------------------------------------------------------
5441 # part of configuration information goes into qconfig.h
5442 #-------------------------------------------------------------------------------
5444 case "$CFG_QCONFIG" in
5446 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5449 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5450 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5451 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5452 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5453 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5454 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5456 echo "#endif" >>"$tmpconfig"
5460 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5464 # define QT_EDITION $QT_EDITION
5468 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5469 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5471 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5472 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5475 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5476 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5479 if [ "$BUILD_ON_MAC" = "yes" ]; then
5480 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5481 #if defined(__LP64__)
5482 # define QT_POINTER_SIZE 8
5484 # define QT_POINTER_SIZE 4
5488 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5489 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5492 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5493 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5494 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5498 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5500 if [ "$CFG_DEV" = "yes" ]; then
5501 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5504 # Add QPA to config.h
5505 QCONFIG_FLAGS="$QCONFIG_FLAGS Q_WS_QPA QT_NO_QWS_QPF QT_NO_QWS_QPF2"
5507 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5508 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5511 # Add turned on SQL drivers
5512 for DRIVER in $CFG_SQL_AVAILABLE; do
5513 eval "VAL=\$CFG_SQL_$DRIVER"
5516 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5517 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5518 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5521 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5527 QMakeVar set sql-drivers "$SQL_DRIVERS"
5528 QMakeVar set sql-plugins "$SQL_PLUGINS"
5530 # Add other configuration options to the qconfig.h file
5531 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5532 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5533 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5534 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5535 [ "$CFG_EXCEPTIONS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EXCEPTIONS"
5536 [ "$CFG_SXE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SXE"
5537 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5539 # X11/Unix/Mac only configs
5540 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5541 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5542 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5543 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5544 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5545 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5546 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5547 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5548 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5549 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5550 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5551 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5552 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5553 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5555 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5556 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5557 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5558 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5559 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5560 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5561 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5562 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5563 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5564 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5565 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5566 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5567 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5569 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5570 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5571 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5572 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5573 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5574 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5575 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5576 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5578 # sort QCONFIG_FLAGS for neatness if we can
5579 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5580 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5582 if [ -n "$QCONFIG_FLAGS" ]; then
5583 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5584 #ifndef QT_BOOTSTRAPPED
5587 for cfg in $QCONFIG_FLAGS; do
5588 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5589 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5590 # figure out define logic, so we can output the correct
5591 # ifdefs to override the global defines in a project
5593 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5594 # QT_NO_option can be forcefully turned on by QT_option
5595 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5596 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5597 # QT_option can be forcefully turned off by QT_NO_option
5598 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5601 if [ -z $cfgdNeg ]; then
5602 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5609 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5610 #if defined($cfgd) && defined($cfgdNeg)
5612 #elif !defined($cfgd) && !defined($cfgdNeg)
5619 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5620 #endif // QT_BOOTSTRAPPED
5625 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5626 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5627 #define QT_VISIBILITY_AVAILABLE
5632 if [ -n "$QT_LIBINFIX" ]; then
5633 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5634 #define QT_LIBINFIX "$QT_LIBINFIX"
5639 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5640 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5641 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5643 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5644 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5645 chmod -w "$outpath/src/corelib/global/qconfig.h"
5646 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5647 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5651 #-------------------------------------------------------------------------------
5652 # save configuration into qconfig.pri
5653 #-------------------------------------------------------------------------------
5654 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5655 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5656 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5657 if [ "$CFG_DEBUG" = "yes" ]; then
5658 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5659 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5660 QT_CONFIG="$QT_CONFIG release"
5662 QT_CONFIG="$QT_CONFIG debug"
5663 elif [ "$CFG_DEBUG" = "no" ]; then
5664 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5665 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5666 QT_CONFIG="$QT_CONFIG debug"
5668 QT_CONFIG="$QT_CONFIG release"
5670 if [ "$CFG_FRAMEWORK" = "no" ]; then
5671 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5673 QT_CONFIG="$QT_CONFIG qt_framework"
5674 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5676 if [ "$CFG_DEV" = "yes" ]; then
5677 QT_CONFIG="$QT_CONFIG private_tests"
5680 cat >>"$QTCONFIG.tmp" <<EOF
5682 CONFIG += $QTCONFIG_CONFIG
5684 QT_HOST_ARCH = $CFG_HOST_ARCH
5685 QT_EDITION = $Edition
5686 QT_CONFIG += $QT_CONFIG
5689 QT_VERSION = $QT_VERSION
5690 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5691 QT_MINOR_VERSION = $QT_MINOR_VERSION
5692 QT_PATCH_VERSION = $QT_PATCH_VERSION
5695 QT_LIBINFIX = $QT_LIBINFIX
5696 QT_NAMESPACE = $QT_NAMESPACE
5699 if [ -n "$CFG_SYSROOT" ]; then
5700 echo "# sysroot" >>"$QTCONFIG.tmp"
5701 echo `basename "$XQMAKESPEC"` \{ >>"$QTCONFIG.tmp"
5702 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5703 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5704 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5705 echo "}" >> "$QTCONFIG.tmp"
5706 echo >> "$QTCONFIG.tmp"
5708 if [ -n "$RPATH_FLAGS" ]; then
5709 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
5711 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
5712 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
5713 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
5714 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
5717 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
5718 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
5719 echo "QMAKE_INCDIR_OPENGL_ES2 = \"$QMAKE_INCDIR_OPENGL_ES2\"" >> "$QTCONFIG.tmp"
5722 # replace qconfig.pri if it differs from the newly created temp file
5723 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
5724 rm -f "$QTCONFIG.tmp"
5726 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
5729 #-------------------------------------------------------------------------------
5730 # save configuration into qmodule.pri
5731 #-------------------------------------------------------------------------------
5732 QTMODULE="$outpath/mkspecs/qmodule.pri"
5734 echo "CONFIG += create_prl link_prl" >> "$QTMODULE.tmp"
5736 # Ensure we can link to uninistalled libraries
5737 if [ "$BUILD_ON_MAC" != "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ] && linkerSupportsFlag -rpath-link "$outpath/lib"; then
5738 echo "QMAKE_LFLAGS = -Wl,-rpath-link,\$\$QT_BUILD_TREE/lib \$\$QMAKE_LFLAGS" >> "$QTMODULE.tmp"
5740 if [ -n "$QT_CFLAGS_PSQL" ]; then
5741 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
5743 if [ -n "$QT_LFLAGS_PSQL" ]; then
5744 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
5746 if [ -n "$QT_CFLAGS_MYSQL" ]; then
5747 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
5749 if [ -n "$QT_LFLAGS_MYSQL" ]; then
5750 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
5752 if [ -n "$QT_CFLAGS_SQLITE" ]; then
5753 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
5755 if [ -n "$QT_LFLAGS_SQLITE" ]; then
5756 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
5758 if [ -n "$QT_LFLAGS_ODBC" ]; then
5759 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
5761 if [ -n "$QT_LFLAGS_TDS" ]; then
5762 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
5765 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
5766 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
5769 #dump in the OPENSSL_LIBS info
5770 if [ '!' -z "$OPENSSL_LIBS" ]; then
5771 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
5772 elif [ "$CFG_OPENSSL" = "linked" ]; then
5773 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
5776 #dump in the SDK info
5777 if [ '!' -z "$CFG_SDK" ]; then
5778 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
5782 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
5783 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
5785 # replace qmodule.pri if it differs from the newly created temp file
5786 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
5787 rm -f "$QTMODULE.tmp"
5789 mv -f "$QTMODULE.tmp" "$QTMODULE"
5792 #-------------------------------------------------------------------------------
5793 # save configuration into .qmake.cache
5794 #-------------------------------------------------------------------------------
5796 CACHEFILE="$outpath/.qmake.cache"
5797 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
5798 cat >>"$CACHEFILE.tmp" <<EOF
5800 QT_SOURCE_TREE = \$\$quote($relpath)
5801 QT_BUILD_TREE = \$\$quote($outpath)
5802 QT_BUILD_PARTS = $CFG_BUILD_PARTS
5804 #local paths that cannot be queried from the QT_INSTALL_* properties while building QTDIR
5805 QMAKE_INCDIR_QT = \$\$QT_BUILD_TREE/include
5806 QMAKE_LIBDIR_QT = \$\$QT_BUILD_TREE/lib
5808 include(\$\$PWD/mkspecs/qmodule.pri)
5809 CONFIG += $QMAKE_CONFIG dylib depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
5813 #dump the qmake spec
5814 if [ -d "$outpath/mkspecs/$XPLATFORM" ]; then
5815 echo "QMAKESPEC = \$\$QT_BUILD_TREE/mkspecs/$XPLATFORM" >> "$CACHEFILE.tmp"
5817 echo "QMAKESPEC = $XPLATFORM" >> "$CACHEFILE.tmp"
5820 # replace .qmake.cache if it differs from the newly created temp file
5821 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
5822 rm -f "$CACHEFILE.tmp"
5824 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
5827 #-------------------------------------------------------------------------------
5828 # give feedback on configuration
5829 #-------------------------------------------------------------------------------
5830 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
5834 if [ "$CFG_EXCEPTIONS" != "no" ]; then
5837 This target is using the GNU C++ compiler ($PLATFORM).
5839 Recent versions of this compiler automatically include code for
5840 exceptions, which increase both the size of the Qt libraries and
5841 the amount of memory taken by your applications.
5843 You may choose to re-run `basename $0` with the -no-exceptions
5844 option to compile Qt without exceptions. This is completely binary
5845 compatible, and existing applications will continue to work.
5853 if [ "$CFG_EXCEPTIONS" != "no" ]; then
5856 This target is using the MIPSpro C++ compiler ($PLATFORM).
5858 You may choose to re-run `basename $0` with the -no-exceptions
5859 option to compile Qt without exceptions. This will make the
5860 size of the Qt library smaller and reduce the amount of memory
5861 taken by your applications.
5873 if [ "$XPLATFORM" = "$PLATFORM" ]; then
5874 echo "Build type: $PLATFORM"
5876 echo "Building on: $PLATFORM"
5877 echo "Building for: $XPLATFORM"
5880 echo "Architecture: $CFG_ARCH"
5881 echo "Host architecture: $CFG_HOST_ARCH"
5883 if [ -n "$PLATFORM_NOTES" ]; then
5884 echo "Platform notes:"
5885 echo "$PLATFORM_NOTES"
5890 if [ "$OPT_VERBOSE" = "yes" ]; then
5891 echo $ECHO_N "qmake vars .......... $ECHO_C"
5892 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
5893 echo "qmake switches ......... $QMAKE_SWITCHES"
5896 echo "Build .................. $CFG_BUILD_PARTS"
5897 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
5898 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5899 echo "Debug .................. yes (combined)"
5900 if [ "$CFG_DEBUG" = "yes" ]; then
5901 echo "Default Link ........... debug"
5903 echo "Default Link ........... release"
5906 echo "Debug .................. $CFG_DEBUG"
5908 if [ -n "$PKG_CONFIG" ]; then
5909 echo "pkg-config ............. yes"
5911 echo "pkg-config ............. no"
5913 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
5914 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
5915 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
5916 echo "QtConcurrent code ...... $CFG_CONCURRENT"
5917 echo "QtGui module ........... $CFG_GUI"
5918 echo "QtWidgets module ....... $CFG_WIDGETS"
5919 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5920 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
5922 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
5924 echo "QML debugging .......... $CFG_QML_DEBUG"
5925 echo "PCH support ............ $CFG_PRECOMPILE"
5926 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
5927 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
5928 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
5929 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
5930 elif [ "$CFG_ARCH" = "arm" ]; then
5931 echo "iWMMXt support ......... ${CFG_IWMMXT}"
5932 echo "NEON support ........... ${CFG_NEON}"
5934 if [ "$CFG_ARCH" = "mips" ]; then
5935 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
5937 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
5938 echo "getaddrinfo support .... $CFG_GETADDRINFO"
5939 echo "getifaddrs support ..... $CFG_GETIFADDRS"
5940 echo "Accessibility .......... $CFG_ACCESSIBILITY"
5941 echo "NIS support ............ $CFG_NIS"
5942 echo "CUPS support ........... $CFG_CUPS"
5943 echo "Iconv support .......... $CFG_ICONV"
5944 echo "Glib support ........... $CFG_GLIB"
5945 echo "GStreamer support ...... $CFG_GSTREAMER"
5946 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
5947 echo "Large File support ..... $CFG_LARGEFILE"
5948 echo "GIF support ............ $CFG_GIF"
5949 if [ "$CFG_JPEG" = "no" ]; then
5950 echo "JPEG support ........... $CFG_JPEG"
5952 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
5954 if [ "$CFG_PNG" = "no" ]; then
5955 echo "PNG support ............ $CFG_PNG"
5957 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
5959 echo "zlib support ........... $CFG_ZLIB"
5960 echo "Session management ..... $CFG_SM"
5961 echo "libudev support ........ $CFG_LIBUDEV"
5963 if [ "$CFG_OPENGL" = "desktop" ]; then
5964 echo "OpenGL support ......... yes (Desktop OpenGL)"
5965 elif [ "$CFG_OPENGL" = "es2" ]; then
5966 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
5968 echo "OpenGL support ......... no"
5971 if [ "$CFG_OPENVG" ]; then
5972 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5973 echo "OpenVG support ......... ShivaVG"
5975 echo "OpenVG support ......... $CFG_OPENVG"
5979 echo "XShape support ......... $CFG_XSHAPE"
5980 echo "XVideo support ......... $CFG_XVIDEO"
5981 echo "XSync support .......... $CFG_XSYNC"
5982 echo "Xinerama support ....... $CFG_XINERAMA"
5983 echo "Xcursor support ........ $CFG_XCURSOR"
5984 echo "Xfixes support ......... $CFG_XFIXES"
5985 echo "Xrandr support ......... $CFG_XRANDR"
5986 echo "Xi support ............. $CFG_XINPUT"
5987 echo "MIT-SHM support ........ $CFG_MITSHM"
5988 echo "FontConfig support ..... $CFG_FONTCONFIG"
5989 echo "XKB Support ............ $CFG_XKB"
5990 echo "immodule support ....... $CFG_IM"
5991 echo "GTK theme support ...... $CFG_QGTKSTYLE"
5993 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
5994 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
5995 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
5996 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
5997 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
5998 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
5999 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6000 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6001 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6004 if [ "$CFG_OPENSSL" = "yes" ]; then
6005 OPENSSL_LINKAGE="(run-time)"
6006 elif [ "$CFG_OPENSSL" = "linked" ]; then
6007 OPENSSL_LINKAGE="(linked)"
6009 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6010 echo "Alsa support ........... $CFG_ALSA"
6011 if [ "$BUILD_ON_MAC" = "yes" ]; then
6012 echo "CoreWlan support ....... $CFG_COREWLAN"
6014 echo "libICU support ......... $CFG_ICU"
6015 echo "PCRE support ........... $CFG_PCRE"
6016 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6017 echo "Xcb support ............ limited (old version)"
6019 echo "Xcb support ............ $CFG_XCB"
6021 echo "Xrender support ........ $CFG_XRENDER"
6022 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6023 echo "XInput2 support ........ $CFG_XINPUT2"
6025 echo "EGLFS support .......... $CFG_EGLFS"
6026 echo "DirectFB support ....... $CFG_DIRECTFB"
6029 # complain about not being able to use dynamic plugins if we are using a static build
6030 if [ "$CFG_SHARED" = "no" ]; then
6032 echo "WARNING: Using static linking will disable the use of dynamically"
6033 echo "loaded plugins. Make sure to import all needed static plugins,"
6034 echo "or compile needed modules into the library."
6037 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6039 echo "NOTE: When linking against OpenSSL, you can override the default"
6040 echo "library names through OPENSSL_LIBS."
6042 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6046 exec 1>&3 3>&- # restore stdout
6047 cat $outpath/config.summary # display config feedback to user
6049 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6051 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6052 echo "if you want a pure debug build."
6057 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6062 #-------------------------------------------------------------------------------
6063 # build makefiles based on the configuration
6064 #-------------------------------------------------------------------------------
6066 echo "Finding project files. Please wait..."
6067 if [ "$CFG_NOPROCESS" != "yes" ]; then
6068 "$outpath/bin/qmake" -prl -r "${relpath}/qtbase.pro"
6069 if [ -f "${relpath}/qtbase.pro" ]; then
6070 mkfile="${outpath}/Makefile"
6071 [ -f "$mkfile" ] && chmod +w "$mkfile"
6072 QTDIR="$outpath" "$outpath/bin/qmake" -spec "$XQMAKESPEC" "${relpath}/qtbase.pro" -o "$mkfile"
6076 # .projects -> projects to process
6077 # .projects.1 -> qt and moc
6078 # .projects.2 -> subdirs and libs
6079 # .projects.3 -> the rest
6080 rm -f .projects .projects.1 .projects.2 .projects.3
6082 QMAKE_PROJECTS=`find "$relpath/." -name '*.pro' -print | sed 's-/\./-/-'`
6083 if [ -z "$AWK" ]; then
6084 for p in `echo $QMAKE_PROJECTS`; do
6085 echo "$p" >> .projects
6088 cat >projects.awk <<EOF
6094 first = "./.projects.1.tmp"
6095 second = "./.projects.2.tmp"
6096 third = "./.projects.3.tmp"
6101 if ( ! target_file )
6103 print input_file >target_file
6108 input_file = FILENAME
6113 if ( \$3 == "moc" || \$3 ~ /^Qt/ ) {
6116 } else if ( \$3 == "lrelease" || \$3 == "qm_phony_target" ) {
6117 target_file = second
6122 matched_target == 0 && /^(TEMPLATE.*=)/ {
6123 if ( \$3 == "subdirs" )
6124 target_file = second
6125 else if ( \$3 == "lib" )
6131 matched_target == 0 && template_lib == 1 && /^(CONFIG.*=)/ {
6132 if ( \$0 ~ /plugin/ )
6135 target_file = second
6140 if ( ! target_file )
6142 print input_file >>target_file
6149 for p in `echo $QMAKE_PROJECTS`; do
6150 echo "$p" >> .projects.all
6153 # if you get errors about the length of the command line to awk, change the -l arg
6155 split -l 100 .projects.all .projects.all.
6156 for p in .projects.all.*; do
6157 "$AWK" -f projects.awk `cat $p`
6158 [ -f .projects.1.tmp ] && cat .projects.1.tmp >> .projects.1
6159 [ -f .projects.2.tmp ] && cat .projects.2.tmp >> .projects.2
6160 [ -f .projects.3.tmp ] && cat .projects.3.tmp >> .projects.3
6161 rm -f .projects.1.tmp .projects.2.tmp .projects.3.tmp $p
6163 rm -f .projects.all* projects.awk
6165 [ -f .projects.1 ] && cat .projects.1 >>.projects
6166 [ -f .projects.2 ] && cat .projects.2 >>.projects
6167 rm -f .projects.1 .projects.2
6168 if [ -f .projects.3 ] && [ "$OPT_FAST" = "no" ]; then
6169 cat .projects.3 >>.projects
6173 # don't sort Qt and MOC in with the other project files
6174 # also work around a segfaulting uniq(1)
6175 if [ -f .sorted.projects.2 ]; then
6176 sort .sorted.projects.2 > .sorted.projects.2.new
6177 mv -f .sorted.projects.2.new .sorted.projects.2
6178 cat .sorted.projects.2 >> .sorted.projects.1
6180 [ -f .sorted.projects.1 ] && sort .sorted.projects.1 >> .sorted.projects
6181 rm -f .sorted.projects.2 .sorted.projects.1
6185 if [ -f .projects ]; then
6186 uniq .projects >.tmp
6187 mv -f .tmp .projects
6188 NORM_PROJECTS=`cat .projects | wc -l | sed -e "s, ,,g"`
6190 if [ -f .projects.3 ]; then
6191 uniq .projects.3 >.tmp
6192 mv -f .tmp .projects.3
6193 FAST_PROJECTS=`cat .projects.3 | wc -l | sed -e "s, ,,g"`
6195 echo " `expr $NORM_PROJECTS + $FAST_PROJECTS` projects found."
6199 for part in $CFG_BUILD_PARTS; do
6201 tools) PART_ROOTS="$PART_ROOTS tools" ;;
6202 libs) PART_ROOTS="$PART_ROOTS src" ;;
6203 translations) PART_ROOTS="$PART_ROOTS translations" ;;
6204 examples) PART_ROOTS="$PART_ROOTS examples" ;;
6209 if [ "$CFG_DEV" = "yes" ]; then
6210 PART_ROOTS="$PART_ROOTS tests"
6213 echo "Creating makefiles. Please wait..."
6214 for file in .projects .projects.3; do
6215 [ '!' -f "$file" ] && continue
6216 for a in `cat $file`; do
6218 for r in $PART_ROOTS; do
6219 if echo "$a" | grep "^$r" >/dev/null 2>&1 || echo "$a" | grep "^$relpath/$r" >/dev/null 2>&1; then
6224 [ "$IN_ROOT" = "no" ] && continue
6227 *winmain/winmain.pro)
6228 if [ "$CFG_NOPROCESS" = "yes" ] || [ "$XPLATFORM_MINGW" != "yes" ]; then
6232 */qmake/qmake.pro) continue ;;
6233 *tools/bootstrap*|*tools/moc*|*tools/rcc*|*tools/uic*|*tools/qdoc*|*tools/qdbusxml2cpp*|*tools/qdbuscpp2xml*) SPEC=$QMAKESPEC ;;
6234 *) if [ "$CFG_NOPROCESS" = "yes" ]; then
6240 dir=`dirname "$a" | sed -e "s;$sepath;.;g"`
6241 test -d "$dir" || mkdir -p "$dir"
6242 OUTDIR="$outpath/$dir"
6243 if [ -f "${OUTDIR}/Makefile" ] && [ "$OPT_FAST" = "yes" ]; then
6244 # fast configure - the makefile exists, skip it
6245 # since the makefile exists, it was generated by qmake, which means we
6246 # can skip it, since qmake has a rule to regenerate the makefile if the .pro
6248 [ "$OPT_VERBOSE" = "yes" ] && echo " skipping $a"
6251 QMAKE_SPEC_ARGS="-spec $SPEC"
6252 echo $ECHO_N " for $a$ECHO_C"
6254 QMAKE="$outpath/bin/qmake"
6255 QMAKE_ARGS="$QMAKE_SWITCHES $QMAKE_SPEC_ARGS"
6256 if [ "$file" = ".projects.3" ]; then
6259 cat >"${OUTDIR}/Makefile" <<EOF
6260 # ${OUTDIR}/Makefile: generated by configure
6262 # WARNING: This makefile will be replaced with a real makefile.
6263 # All changes made to this file will be lost.
6265 [ "$CFG_DEBUG_RELEASE" = "no" ] && echo "first_target: first" >>${OUTDIR}/Makefile
6267 cat >>"${OUTDIR}/Makefile" <<EOF
6269 all clean install qmake first Makefile: FORCE
6270 \$(QMAKE) $QMAKE_ARGS -o "$OUTDIR" "$a"
6278 if [ "$OPT_VERBOSE" = "yes" ]; then
6279 echo " (`basename $SPEC`)"
6280 echo "$QMAKE" $QMAKE_ARGS -o "$OUTDIR" "$a"
6285 [ -f "${OUTDIR}/Makefile" ] && chmod +w "${OUTDIR}/Makefile"
6286 QTDIR="$outpath" "$QMAKE" $QMAKE_ARGS -o "$OUTDIR" "$a"
6290 rm -f .projects .projects.3
6292 #-------------------------------------------------------------------------------
6293 # check for platforms that we don't yet know about
6294 #-------------------------------------------------------------------------------
6295 if [ "$CFG_ARCH" = "unknown" ]; then
6298 NOTICE: configure was unable to determine the architecture
6299 for the $XQMAKESPEC target.
6301 Qt will not use a specialized implementation for any atomic
6302 operations. Instead a generic implemention based on either GCC
6303 intrinsics or C++11 std::atomic<T> will be used (when
6304 available). The generic implementations are generally as fast
6305 as and always as safe as a specialized implementation.
6307 If no generic implementation is available, Qt will use a
6308 fallback UNIX implementation which uses a single
6309 pthread_mutex_t to protect all atomic operations. This
6310 implementation is the slow (but safe) fallback implementation
6311 for architectures Qt does not yet support.
6315 #-------------------------------------------------------------------------------
6316 # check if the user passed the -no-zlib option, which is no longer supported
6317 #-------------------------------------------------------------------------------
6318 if [ -n "$ZLIB_FORCED" ]; then
6319 which_zlib="supplied"
6320 if [ "$CFG_ZLIB" = "system" ]; then
6326 NOTICE: The -no-zlib option was supplied but is no longer
6329 Qt now requires zlib support in all builds, so the -no-zlib
6330 option was ignored. Qt will be built using the $which_zlib
6335 #-------------------------------------------------------------------------------
6336 # check if the user passed the obsoleted -wayland or -no-wayland flag
6337 #-------------------------------------------------------------------------------
6338 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6341 NOTICE: The -wayland and -no-wayland flags are now obsolete
6343 All configuring of QtWayland plugin and QtCompositor happens in the module
6347 #-------------------------------------------------------------------------------
6348 # check if the user passed the obsoleted -arch or -host-arch options
6349 #-------------------------------------------------------------------------------
6350 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6353 NOTICE: The -arch and -host-arch options are obsolete.
6355 Qt now detects the target and host architectures based on compiler
6356 output. Qt will be built using $CFG_ARCH for the target architecture
6357 and $CFG_HOST_ARCH for the host architecture (note that these two
6358 will be the same unless you are cross-compiling).
6362 #-------------------------------------------------------------------------------
6363 # finally save the executed command to another script
6364 #-------------------------------------------------------------------------------
6365 if [ `basename $0` != "config.status" ]; then
6366 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6368 # add the system variables
6369 for varname in $SYSTEM_VARIABLES; do
6371 'if [ -n "\$'${varname}'" ]; then
6372 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6377 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6379 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6380 echo "#!/bin/sh" > "$outpath/config.status"
6381 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6382 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6383 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6384 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6385 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6386 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6387 echo "else" >> "$outpath/config.status"
6388 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6389 echo "fi" >> "$outpath/config.status"
6390 chmod +x "$outpath/config.status"
6393 if [ -n "$RPATH_MESSAGE" ]; then
6395 echo "$RPATH_MESSAGE"
6398 MAKE=`basename "$MAKE"`
6400 echo Qt is now configured for building. Just run \'$MAKE\'.
6401 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6402 echo Once everything is built, Qt is installed.
6403 echo You should not run \'$MAKE install\'.
6405 echo Once everything is built, you must run \'$MAKE install\'.
6406 echo Qt will be installed into $QT_INSTALL_PREFIX
6409 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.