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
689 CFG_DECLARATIVE_DEBUG=yes
690 CFG_JAVASCRIPTCORE_JIT=auto
692 # Target architecture
694 # Host architecture, same as CFG_ARCH when not cross-compiling
696 # Set when the -arch or -host-arch arguments are used
697 OPT_OBSOLETE_HOST_ARG=no
708 CFG_OBSOLETE_WAYLAND=no
721 CFG_SEPARATE_DEBUG_INFO=no
722 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
723 CFG_REDUCE_EXPORTS=auto
733 CFG_REDUCE_RELOCATIONS=auto
734 CFG_ACCESSIBILITY=auto
739 CFG_CLOCK_GETTIME=auto
740 CFG_CLOCK_MONOTONIC=auto
748 MAC_CONFIG_TEST_COMMANDLINE= # used to make the configure tests run with the correct arch's and SDK settings
752 CFG_PREFIX_INSTALL=yes
761 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
762 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
766 OPT_CONFIRM_LICENSE=no
779 QPA_PLATFORM_GUARD=yes
781 # initalize variables used for installation
790 QT_INSTALL_TRANSLATIONS=
799 #flags for SQL drivers
807 QT_LFLAGS_ODBC="-lodbc"
810 # flags for libdbus-1
814 # flags for Glib (X11 only)
818 # flags for GStreamer (X11 only)
822 #-------------------------------------------------------------------------------
823 # check SQL drivers available in this package
824 #-------------------------------------------------------------------------------
826 # opensource version removes some drivers, so force them to be off
832 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
833 for a in "$relpath/src/plugins/sqldrivers/"*; do
835 base_a=`basename "$a"`
836 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
837 eval "CFG_SQL_${base_a}=auto"
842 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
843 if [ -d "$relpath/src/plugins/imageformats" ]; then
844 for a in "$relpath/src/plugins/imageformats/"*; do
846 base_a=`basename "$a"`
847 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
852 #-------------------------------------------------------------------------------
853 # parse command line arguments
854 #-------------------------------------------------------------------------------
856 # parse the arguments, setting things to "yes" or "no"
857 while [ "$#" -gt 0 ]; do
861 #Autoconf style options
863 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
867 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
871 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
872 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
875 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
879 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
883 -no-*-*|-plugin-*-*|-qt-*-*)
884 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
885 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
889 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
892 #Qt style yes options
893 -profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-xinput2|-egl|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-xcb|-eglfs|-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|-declarative-debug|-javascript-jit|-rpath|-force-pkg-config|-icu|-force-asserts|-testcocoon)
894 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
897 #Qt style options that pass an argument
900 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
904 -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)
905 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
909 #Qt style complex options in one command
910 -enable-*|-disable-*)
911 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
912 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
914 #Qt Builtin/System style options
915 -no-*|-system-*|-qt-*)
916 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
917 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
919 #Options that cannot be generalized
926 # this option may or may not be followed by an argument
927 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
936 # this option may or may not be followed by an argument
937 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
945 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
946 # this option may or may not be followed by an argument
947 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
966 if [ "$1" = "-D" ]; then
970 VAL=`echo $1 | sed 's,-D,,'`
975 # this option may or may not be followed by an argument
976 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
985 if [ "$1" = "-I" ]; then
989 VAL=`echo $1 | sed 's,-I,,'`
994 if [ "$1" = "-L" ]; then
998 VAL=`echo $1 | sed 's,-L,,'`
1003 if [ "$1" = "-R" ]; then
1007 VAL=`echo $1 | sed 's,-R,,'`
1012 VAL=`echo $1 | sed 's,-l,,'`
1016 if [ "$1" = "-F" ]; then
1020 VAL=`echo $1 | sed 's,-F,,'`
1025 if [ "$1" = "-fw" ]; then
1029 VAL=`echo $1 | sed 's,-fw,,'`
1037 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1044 if [ "$UNKNOWN_ARG" = "yes" ]; then
1045 echo "$1: unknown argument"
1056 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1057 CFG_ACCESSIBILITY="$VAL"
1066 CFG_USE_GNUMAKE="$VAL"
1069 CFG_MYSQL_CONFIG="$VAL"
1072 QT_INSTALL_PREFIX="$VAL"
1075 QT_HOST_PREFIX="$VAL"
1084 QT_FORCE_PKGCONFIG=yes
1087 QT_INSTALL_DOCS="$VAL"
1090 QT_INSTALL_HEADERS="$VAL"
1093 QT_INSTALL_PLUGINS="$VAL"
1096 QT_INSTALL_IMPORTS="$VAL"
1099 QT_INSTALL_DATA="$VAL"
1102 QT_INSTALL_LIBS="$VAL"
1111 QT_INSTALL_TRANSLATIONS="$VAL"
1113 sysconfdir|settingsdir)
1114 QT_INSTALL_SETTINGS="$VAL"
1117 QT_INSTALL_EXAMPLES="$VAL"
1120 QT_INSTALL_TESTS="$VAL"
1129 QT_INSTALL_BINS="$VAL"
1135 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1142 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1143 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1144 [ "$VAL" = "es2" ]; then
1151 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1158 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1161 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1164 if [ "$BUILD_ON_MAC" = "yes" ]; then
1171 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1172 CFG_MAC_DWARF2="$VAL"
1178 OPT_OBSOLETE_HOST_ARG=yes
1181 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1182 CFG_MAC_HARFBUZZ="$VAL"
1189 if [ "$BUILD_ON_MAC" = "yes" ]; then
1190 CFG_FRAMEWORK="$VAL"
1196 if [ "$VAL" = "yes" ]; then
1198 QMakeVar add QMAKE_CFLAGS -pg
1199 QMakeVar add QMAKE_CXXFLAGS -pg
1200 QMakeVar add QMAKE_LFLAGS -pg
1201 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1207 if [ "$VAL" = "yes" ]; then
1208 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1211 exceptions|g++-exceptions)
1212 if [ "$VAL" = "no" ]; then
1214 elif [ "$VAL" = "yes" ]; then
1222 # keep compatibility with old platform names
1228 PLATFORM=hpux-acc-o64
1231 PLATFORM=hpux-acc-64
1234 PLATFORM=hpux-acc-64
1246 PLATFORM=reliant-cds-64
1249 PLATFORM=solaris-cc-64
1252 PLATFORM=unixware-cc
1255 PLATFORM=unixware-g++
1258 PLATFORM=unixware-cc
1261 PLATFORM=unixware-g++
1267 i386) NATIVE_64_ARCH="x86_64" ;;
1268 powerpc) NATIVE_64_ARCH="ppc64" ;;
1269 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1271 if [ ! -z "$NATIVE_64_ARCH" ]; then
1272 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1279 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
1282 XPLATFORM="devices/$VAL"
1285 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1286 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1287 DeviceVar set $DEV_VAR $DEV_VAL
1290 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1291 CFG_DEBUG_RELEASE="$VAL"
1297 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1298 CFG_RELEASE_QMAKE="$VAL"
1304 if [ "$VAL" = "yes" ]; then
1306 elif [ "$VAL" = "no" ]; then
1313 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1314 CFG_PREFIX_INSTALL="$VAL"
1322 developer-build|commercial|opensource)
1323 # These switches have been dealt with already
1326 if [ "$VAL" = "yes" ]; then
1328 elif [ "$VAL" = "no" ]; then
1335 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1336 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1342 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1343 if [ "$VAL" = "no" ]; then
1344 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1345 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1346 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1352 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1359 if [ "$VAL" = "no" ]; then
1366 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1374 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1381 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1388 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1395 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1402 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1409 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1416 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1423 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1430 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1431 CFG_PRECOMPILE="$VAL"
1436 separate-debug-info)
1437 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1438 CFG_SEPARATE_DEBUG_INFO="$VAL"
1439 elif [ "$VAL" = "nocopy" ] ; then
1440 CFG_SEPARATE_DEBUG_INFO="yes"
1441 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1447 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1448 CFG_REDUCE_EXPORTS="$VAL"
1454 if [ "$VAL" = "no" ]; then
1461 if [ "$VAL" = "no" ]; then
1468 if [ "$VAL" = "no" ]; then
1475 if [ "$VAL" = "no" ]; then
1482 if [ "$VAL" = "no" ]; then
1489 if [ "$VAL" = "no" ]; then
1496 if [ "$VAL" = "no" ]; then
1503 if [ "$VAL" = "no" ]; then
1510 if [ "$VAL" = "no" ]; then
1520 if [ "$VAL" = "no" ]; then
1527 if [ "$VAL" = "no" ]; then
1534 if [ "$VAL" = "no" ]; then
1535 CFG_MIPS_DSPR2="$VAL"
1541 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1542 CFG_REDUCE_RELOCATIONS="$VAL"
1548 [ "$VAL" = "qt" ] && VAL=yes
1549 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1554 # No longer supported:
1555 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1558 if [ "$VAL" = "system" ]; then
1565 [ "$VAL" = "yes" ] && VAL=qt
1566 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1573 [ "$VAL" = "yes" ] && VAL=qt
1574 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1581 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1588 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1595 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1602 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1609 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1616 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1617 CFG_FONTCONFIG="$VAL"
1623 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1630 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1637 CFG_OBSOLETE_WAYLAND=yes
1640 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1647 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1654 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1661 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1668 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1675 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1682 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1683 CFG_GSTREAMER="$VAL"
1689 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1690 CFG_QGTKSTYLE="$VAL"
1696 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1699 if [ "$VAL" = "no" ]; then
1707 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1709 elif [ "$VAL" = "no" ]; then
1716 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1717 QPA_PLATFORM_GUARD="$VAL"
1723 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1725 elif [ "$VAL" = "runtime" ]; then
1732 if [ "$VAL" = "yes" ]; then
1739 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1746 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1747 CFG_LARGEFILE="$VAL"
1753 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1760 if [ "$VAL" = "yes" ]; then
1761 CFG_OPENSSL="linked"
1767 if [ "$VAL" = "yes" ]; then
1768 CFG_DECLARATIVE_DEBUG="yes"
1770 if [ "$VAL" = "no" ]; then
1771 CFG_DECLARATIVE_DEBUG="no"
1778 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1779 CFG_JAVASCRIPTCORE_JIT="$VAL"
1785 if [ "$VAL" = "yes" ]; then
1786 OPT_CONFIRM_LICENSE="$VAL"
1792 if [ "$VAL" = "yes" ]; then
1798 sql-*|imageformat-*)
1799 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1800 # if autoconf style options were used, $VAL can be "yes" or "no"
1801 [ "$VAL" = "yes" ] && VAL=qt
1802 # now $VAL should be "no", "qt", or "plugin"... double-check
1803 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1806 # now $VAL is "no", "qt", or "plugin"
1808 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1809 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1811 # Grab the available values
1814 avail="$CFG_SQL_AVAILABLE"
1817 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1818 if [ "$OPT" != "plugin" ]; then
1819 # png is always built in
1825 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1829 # Check that that user's value is available.
1832 if [ "$VAL" = "$d" ]; then
1837 [ "$found" = yes ] || ERROR=yes
1839 if [ "$VAR" = "sql" ]; then
1840 # set the CFG_SQL_driver
1841 eval "CFG_SQL_$VAL=\$OPT"
1843 elif [ "$VAR" = "imageformat" ]; then
1844 [ "$OPT" = "qt" ] && OPT=yes
1845 VAL="`echo $VAL |tr a-z A-Z`"
1846 eval "CFG_$VAL=$OPT"
1850 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1851 if [ "$OPT" = "plugin" ]; then
1854 QMakeVar add "${VAR}s" "${VAL}"
1855 elif [ "$OPT" = "no" ]; then
1856 PLUG_VAR="${VAR}-plugin"
1858 QMakeVar del "${IN_VAR}s" "$VAL"
1859 QMakeVar del "${PLUG_VAR}s" "$VAL"
1861 if [ "$ERROR" = "yes" ]; then
1862 echo "$CURRENT_OPT: unknown argument"
1867 if [ "$VAL" = "yes" ]; then
1868 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1869 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1873 elif [ "$VAL" = "no" ]; then
1874 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1875 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1884 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1891 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1898 D_FLAGS="$D_FLAGS \"$VAL\""
1901 I_FLAGS="$I_FLAGS -I\"${VAL}\""
1904 L_FLAGS="$L_FLAGS -L\"${VAL}\""
1907 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
1910 l_FLAGS="$l_FLAGS -l\"${VAL}\""
1913 if [ "$BUILD_ON_MAC" = "yes" ]; then
1914 L_FLAGS="$L_FLAGS -F\"${VAL}\""
1915 I_FLAGS="$I_FLAGS -F\"${VAL}\""
1921 if [ "$BUILD_ON_MAC" = "yes" ]; then
1922 l_FLAGS="$l_FLAGS -framework \"${VAL}\""
1928 W_FLAGS="$W_FLAGS \"${VAL}\""
1934 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1935 CFG_PHONON_BACKEND="$VAL"
1947 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1948 CFG_AUDIO_BACKEND="$VAL"
1954 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1961 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1962 CFG_FORCE_ASSERTS="$VAL"
1968 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
1978 if [ "$UNKNOWN_OPT" = "yes" ]; then
1979 echo "${CURRENT_OPT}: invalid command-line switch"
1985 # update QT_CONFIG to show our current predefined configuration
1986 case "$CFG_QCONFIG" in
1987 minimal|small|medium|large|full)
1988 # these are a sequence of increasing functionality
1989 for c in minimal small medium large full; do
1990 QT_CONFIG="$QT_CONFIG $c-config"
1991 [ "$CFG_QCONFIG" = $c ] && break
1995 # not known to be sufficient for anything
1996 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
1997 echo >&2 "Error: configuration file not found:"
1998 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2000 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2005 #-------------------------------------------------------------------------------
2006 # build tree initialization
2007 #-------------------------------------------------------------------------------
2009 # where to find which..
2010 unixtests="$relpath/config.tests/unix"
2011 mactests="$relpath/config.tests/mac"
2012 WHICH="$unixtests/which.test"
2014 PERL=`$WHICH perl 2>/dev/null`
2016 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2018 for e in gawk nawk awk; do
2019 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2026 PERL="/usr/bin/perl"
2027 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2031 ### skip this if the user just needs help...
2032 if [ "$OPT_HELP" != "yes" ]; then
2034 # is this a shadow build?
2035 if [ "$OPT_SHADOW" = "maybe" ]; then
2037 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2038 if [ -h "$outpath" ]; then
2039 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2045 if [ "$OPT_SHADOW" = "yes" ]; then
2046 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2047 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2048 echo >&2 "Cannot proceed."
2051 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2054 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2056 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2057 echo "Qt can be built in release mode with separate debug information, so"
2058 echo "-debug-and-release is not necessary anymore"
2062 if [ "$CFG_SILENT" = "yes" ]; then
2063 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2066 # if the source tree is different from the build tree,
2067 # symlink or copy part of the sources
2068 if [ "$OPT_SHADOW" = "yes" ]; then
2069 echo "Preparing build tree..."
2071 if [ -z "$PERL" ]; then
2073 echo "You need perl in your PATH to make a shadow build."
2074 echo "Cannot proceed."
2078 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2080 # make a syncqt script that can be used in the shadow
2081 rm -f "$outpath/bin/syncqt"
2082 if [ -x "$relpath/bin/syncqt" ]; then
2083 mkdir -p "$outpath/bin"
2084 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2085 echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2086 chmod 755 "$outpath/bin/syncqt"
2089 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2090 rm -f "$outpath/bin/$i"
2091 if [ -x "$relpath/bin/$i" ]; then
2092 mkdir -p "$outpath/bin"
2093 echo "#!/bin/sh" >"$outpath/bin/$i"
2094 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2095 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2096 chmod 755 "$outpath/bin/$i"
2100 # symlink the mkspecs directory
2101 mkdir -p "$outpath/mkspecs"
2102 rm -rf "$outpath"/mkspecs/*
2103 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2104 rm -f "$outpath/mkspecs/default"
2108 rm -rf "$outpath/mkspecs/$1"
2109 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2110 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2113 # Special case for mkspecs/features directory.
2114 # To be able to place .prf files into a shadow build directory,
2115 # we're creating links for files only. The directory structure is reproduced.
2116 ShadowMkspecs features
2118 # The modules dir is special, too.
2119 ShadowMkspecs modules
2121 # symlink the doc directory
2122 rm -rf "$outpath/doc"
2123 ln -s "$relpath/doc" "$outpath/doc"
2126 # symlink fonts to be able to run application from build directory
2127 if [ ! -d "${outpath}/lib/fonts" ]; then
2128 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2129 mkdir -p "${outpath}/lib"
2130 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2134 if [ "$OPT_FAST" = "auto" ]; then
2135 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2142 # find a make command
2143 if [ -z "$MAKE" ]; then
2145 for mk in gmake make; do
2146 if "$WHICH" $mk >/dev/null 2>&1; then
2151 if [ -z "$MAKE" ]; then
2152 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2153 echo >&2 "Cannot proceed."
2156 # export MAKE, we need it later in the config.tests
2162 #-------------------------------------------------------------------------------
2163 # auto-detect all that hasn't been specified in the arguments
2164 #-------------------------------------------------------------------------------
2166 if [ -z "$PLATFORM" ]; then
2168 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2170 OSX_VERSION=`uname -r | cut -d. -f1`
2171 if [ "$OSX_VERSION" -ge 11 ]; then
2172 # We're on Lion or above. Check if we have a supported Clang version
2173 case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2176 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2188 #PLATFORM=aix-g++-64
2190 #PLATFORM=aix-xlc-64
2192 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2202 # PLATFORM=dynix-g++
2208 PLATFORM=freebsd-g++
2210 - Also available for FreeBSD: freebsd-icc
2214 PLATFORM=openbsd-g++
2225 #PLATFORM=irix-cc-64
2227 - Also available for IRIX: irix-g++ irix-cc-64
2231 case "$UNAME_MACHINE" in
2233 #PLATFORM=hpuxi-acc-32
2234 PLATFORM=hpuxi-acc-64
2236 - Also available for HP-UXi: hpuxi-acc-32
2242 #PLATFORM=hpux-acc-64
2244 #PLATFORM=hpux-acc-o64
2246 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2255 - Also available for Tru64: tru64-g++
2259 case "$UNAME_MACHINE" in
2261 PLATFORM=linux-g++-64
2268 - Also available for Linux: linux-kcc linux-icc linux-cxx
2272 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2273 PLATFORM="solaris-g++"
2275 #PLATFORM=solaris-g++
2277 #PLATFORM=solaris-cc64
2280 - Also available for Solaris: solaris-g++ solaris-cc-64
2283 ReliantUNIX-*:*|SINIX-*:*)
2284 PLATFORM=reliant-cds
2285 #PLATFORM=reliant-cds-64
2287 - Also available for Reliant UNIX: reliant-cds-64
2297 #PLATFORM=unixware-g++
2298 PLATFORM=unixware-cc
2300 - Also available for OpenUNIX: unixware-g++
2304 #PLATFORM=unixware-g++
2305 PLATFORM=unixware-cc
2307 - Also available for UnixWare: unixware-g++
2314 - Also available for SCO OpenServer: sco-g++
2318 PLATFORM=unixware-g++
2321 PLATFORM=unsupported/qnx-g++
2324 if [ "$OPT_HELP" != "yes" ]; then
2326 for p in $PLATFORMS; do
2327 echo " $relconf $* -platform $p"
2330 echo " The build script does not currently recognize all" >&2
2331 echo " platforms supported by Qt." >&2
2332 echo " Rerun this script with a -platform option listed to" >&2
2333 echo " set the system/compiler combination you use." >&2
2340 PLATFORMS=`find "$relpath/mkspecs/" -type f | grep -v qws | sed "s,$relpath/mkspecs/qws/,,"`
2342 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2344 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2345 case "$XPLATFORM" in linux-g++-maemo) XPLATFORM_MAEMO=yes;; esac
2347 if [ -d "$PLATFORM" ]; then
2348 QMAKESPEC="$PLATFORM"
2350 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2352 if [ -d "$XPLATFORM" ]; then
2353 XQMAKESPEC="$XPLATFORM"
2355 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2357 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2358 QT_CROSS_COMPILE=yes
2359 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2360 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2363 if [ "$BUILD_ON_MAC" = "yes" ]; then
2364 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2366 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2367 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2368 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2369 echo " built with 'macx-g++'" >&2
2375 # check specified platforms are supported
2376 if [ '!' -d "$QMAKESPEC" ]; then
2378 echo " The specified system/compiler is not supported:"
2382 echo " Please see the README file for a complete list."
2386 if [ '!' -d "$XQMAKESPEC" ]; then
2388 echo " The specified system/compiler is not supported:"
2392 echo " Please see the README file for a complete list."
2396 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2398 echo " The specified system/compiler port is not complete:"
2400 echo " $XQMAKESPEC/qplatformdefs.h"
2402 echo " Please contact qt-info@nokia.com."
2407 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2408 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2409 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2410 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2411 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2415 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2416 case `basename "$XPLATFORM"` in
2419 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2421 echo "Please contact qt-info@nokia.com to upgrade your license to"
2422 echo "include this platform, or install the Qt Open Source Edition"
2423 echo "if you intend to develop free software."
2429 #-------------------------------------------------------------------------------
2430 # write out device config before we run the test.
2431 #-------------------------------------------------------------------------------
2432 if cmp -s "$DEVICE_VARS_FILE" "$outpath/mkspecs/qdevice.pri"; then
2433 rm -f "$DEVICE_VARS_FILE"
2435 mv -f $DEVICE_VARS_FILE "$outpath/mkspecs/qdevice.pri"
2438 #-------------------------------------------------------------------------------
2439 # tests that don't need qmake (must be run before displaying help)
2440 #-------------------------------------------------------------------------------
2442 # detect build style
2443 if [ "$CFG_DEBUG" = "auto" ]; then
2444 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2445 CFG_DEBUG_RELEASE=yes
2447 elif [ "$CFG_DEV" = "yes" ]; then
2448 CFG_DEBUG_RELEASE=no
2451 CFG_DEBUG_RELEASE=no
2455 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2456 QT_CONFIG="$QT_CONFIG build_all"
2459 if [ -z "$PKG_CONFIG" ]; then
2460 # See if PKG_CONFIG is set in the mkspec:
2461 PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
2463 if [ -z "$PKG_CONFIG" ]; then
2464 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
2467 # Work out if we can use pkg-config
2468 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
2469 if [ "$QT_FORCE_PKGCONFIG" = "yes" ]; then
2471 echo >&2 "You have asked to use pkg-config and are cross-compiling."
2472 echo >&2 "Please make sure you have a correctly set-up pkg-config"
2473 echo >&2 "environment!"
2475 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
2477 echo >&2 "Warning: PKG_CONFIG_LIBDIR has not been set. This could mean"
2478 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
2479 echo >&2 "This is probably not what you want."
2481 elif [ -z "$PKG_CONFIG_SYSROOT" ] && [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
2483 echo >&2 "Warning: PKG_CONFIG_SYSROOT/PKG_CONFIG_SYSROOT_DIR has not"
2484 echo >&2 "been set. This means your toolchain's .pc files must contain"
2485 echo >&2 "the paths to the toolchain's libraries & headers. If configure"
2486 echo >&2 "tests are failing, please check these files."
2491 echo >&2 "You have not explicitly asked to use pkg-config and are cross-compiling."
2492 echo >&2 "pkg-config will not be used to automatically query cflag/lib parameters for"
2493 echo >&2 "dependencies"
2499 if [ ! -n "$PKG_CONFIG" ]; then
2500 QT_CONFIG="$QT_CONFIG no-pkg-config"
2503 # pass on $CFG_SDK to the configure tests.
2504 if [ '!' -z "$CFG_SDK" ]; then
2505 MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -sdk $CFG_SDK"
2508 # find the default framework value
2509 if [ "$BUILD_ON_MAC" = "yes" ]; then
2510 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2511 CFG_FRAMEWORK="$CFG_SHARED"
2512 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2514 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2522 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2524 TEST_COMPILER=$QMAKE_CONF_COMPILER
2525 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2526 if [ -z "$TEST_COMPILER" ]; then
2527 echo "ERROR: Cannot set the compiler for the configuration tests"
2533 if [ -n "$CFG_SYSROOT" ]; then
2534 if compilerSupportsFlag --sysroot="$CFG_SYSROOT"; then
2535 [ "$OPT_VERBOSE" = "yes" ] && echo "Setting sysroot to: $CFG_SYSROOT"
2536 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2538 echo >&2 "The compiler doesn't support the --sysroot flag, I can't set the sysroot"
2542 export SYSROOT_FLAG # used by config.tests/unix/compile.test
2544 # auto-detect precompiled header support
2545 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2546 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2553 #auto-detect DWARF2 on the mac
2554 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_MAC_DWARF2" = "auto" ]; then
2555 if "$mactests/dwarf2.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests" ; then
2562 # don't autodetect support for separate debug info on objcopy when
2563 # cross-compiling as lots of toolchains seems to have problems with this
2564 if [ "$QT_CROSS_COMPILE" = "yes" ] && [ "$CFG_SEPARATE_DEBUG_INFO" = "auto" ]; then
2565 CFG_SEPARATE_DEBUG_INFO="no"
2568 # auto-detect support for separate debug info in objcopy
2569 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2570 TEST_COMPILER_CFLAGS=`getXQMakeConf QMAKE_CFLAGS`
2571 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2572 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2573 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2574 COMPILER_WITH_FLAGS=`echo "$COMPILER_WITH_FLAGS" | sed -e "s%\\$\\$QMAKE_CFLAGS%$TEST_COMPILER_CFLAGS%g"`
2575 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2576 CFG_SEPARATE_DEBUG_INFO=no
2580 # binutils on HP-UX is buggy; default to no.
2581 CFG_SEPARATE_DEBUG_INFO=no
2584 CFG_SEPARATE_DEBUG_INFO=yes
2590 # auto-detect -fvisibility support
2591 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2592 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2593 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2594 echo "-reduce-exports was requested but this compiler does not support it"
2595 echo "Re-run configure with -v for more information"
2598 CFG_REDUCE_EXPORTS=no
2600 CFG_REDUCE_EXPORTS=yes
2604 # detect the availability of the -Bsymbolic-functions linker optimization
2605 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2606 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2607 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2608 echo "-reduce-relocations was requested but this compiler does not support it"
2609 echo "Re-run configure with -v for more information"
2612 CFG_REDUCE_RELOCATIONS=no
2614 CFG_REDUCE_RELOCATIONS=yes
2618 # auto-detect GNU make support
2619 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2623 # find the default framework value
2624 if [ "$BUILD_ON_MAC" = "yes" ]; then
2625 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2626 CFG_FRAMEWORK="$CFG_SHARED"
2627 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2629 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2637 #setup the build parts
2638 if [ -z "$CFG_BUILD_PARTS" ]; then
2639 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2641 # build tests by default, if a developer build
2642 if [ "$CFG_DEV" = "yes" ]; then
2643 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2646 # don't build tools by default when cross-compiling
2647 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2648 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2651 for nobuild in $CFG_NOBUILD_PARTS; do
2652 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2654 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2656 # echo "WARNING: libs is a required part of the build."
2658 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2661 #-------------------------------------------------------------------------------
2662 # post process QT_INSTALL_* variables
2663 #-------------------------------------------------------------------------------
2665 if [ -z "$QT_INSTALL_PREFIX" ]; then
2666 if [ "$CFG_DEV" = "yes" ]; then
2667 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2669 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2672 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2674 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2675 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2676 if [ "$BUILD_ON_MAC" = "yes" ]; then
2677 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2680 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2683 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2685 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2686 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2687 if [ "$BUILD_ON_MAC" = "yes" ]; then
2688 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2693 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2696 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2698 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2699 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2700 if [ "$BUILD_ON_MAC" = "yes" ]; then
2701 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2702 QT_INSTALL_LIBS="/Libraries/Frameworks"
2706 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2708 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2710 if [ -z "$QT_INSTALL_BINS" ]; then #default
2711 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2712 if [ "$BUILD_ON_MAC" = "yes" ]; then
2713 QT_INSTALL_BINS="/Developer/Applications/Qt"
2716 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2718 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2720 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2721 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2722 if [ "$BUILD_ON_MAC" = "yes" ]; then
2723 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2726 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2728 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2730 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2731 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2732 if [ "$BUILD_ON_MAC" = "yes" ]; then
2733 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2736 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2738 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2740 if [ -z "$QT_INSTALL_DATA" ]; then #default
2741 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2743 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2745 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2746 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2748 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2750 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2751 if [ "$BUILD_ON_MAC" = "yes" ]; then
2752 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2754 QT_INSTALL_SETTINGS=/etc/xdg
2757 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2759 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2760 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2761 if [ "$BUILD_ON_MAC" = "yes" ]; then
2762 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2765 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2767 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2770 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2771 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2772 if [ "$BUILD_ON_MAC" = "yes" ]; then
2773 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2776 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2778 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2780 #------- host paths --------
2782 if [ -z "$QT_HOST_PREFIX" ]; then
2783 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2786 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2790 if [ -z "$QT_HOST_BINS" ]; then #default
2792 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2793 if [ "$BUILD_ON_MAC" = "yes" ]; then
2794 QT_HOST_BINS="/Developer/Applications/Qt"
2797 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2799 QT_HOST_BINS="$QT_INSTALL_BINS"
2802 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2804 if [ -z "$QT_HOST_DATA" ]; then #default
2806 QT_HOST_DATA="$QT_HOST_PREFIX"
2808 QT_HOST_DATA="$QT_INSTALL_DATA"
2811 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2814 #-------------------------------------------------------------------------------
2815 # help - interactive parts of the script _after_ this section please
2816 #-------------------------------------------------------------------------------
2818 # next, emit a usage message if something failed.
2819 if [ "$OPT_HELP" = "yes" ]; then
2820 [ "x$ERROR" = "xyes" ] && echo
2821 if [ "$CFG_NIS" = "no" ]; then
2828 if [ "$CFG_CUPS" = "no" ]; then
2835 if [ "$CFG_ICONV" = "no" ]; then
2842 if [ "$CFG_LARGEFILE" = "no" ]; then
2849 if [ "$CFG_STL" = "auto" ] || [ "$CFG_STL" = "yes" ]; then
2856 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2864 if [ "$CFG_XCB" = "no" ]; then
2872 if [ "$CFG_EGLFS" = "no" ]; then
2880 if [ "$CFG_XINPUT2" = "no" ]; then
2888 if [ "$CFG_DBUS" = "no" ]; then
2896 if [ "$CFG_SEPARATE_DEBUG_INFO" = "auto" ]; then
2897 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
2904 elif [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
2912 if [ "$CFG_GLIB" = "no" ]; then
2921 Usage: $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>]
2922 [-docdir <dir>] [-headerdir <dir>] [-plugindir <dir> ] [-importdir <dir>] [-datadir <dir>]
2923 [-translationdir <dir>] [-sysconfdir <dir>] [-examplesdir <dir>] [-testsdir <dir>]
2924 [-release] [-debug] [-debug-and-release]
2925 [-developer-build] [-shared] [-static] [-no-fast] [-fast] [-no-largefile]
2926 [-largefile] [-no-exceptions] [-exceptions] [-no-accessibility]
2927 [-accessibility] [-no-stl] [-stl] [-no-sql-<driver>] [-sql-<driver>]
2928 [-plugin-sql-<driver>] [-system-sqlite]
2929 [-platform] [-D <string>] [-I <string>] [-L <string>] [-help]
2930 [-qt-zlib] [-system-zlib] [-no-gif] [-no-libpng] [-qt-libpng] [-system-libpng]
2931 [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make <part>]
2932 [-nomake <part>] [-R <string>] [-l <string>] [-no-rpath] [-rpath] [-continue]
2933 [-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv]
2934 [-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked] [-no-gui]
2935 [-no-separate-debug-info] [-no-mmx] [-no-3dnow] [-no-sse] [-no-sse2]
2936 [-no-sse3] [-no-ssse3] [-no-sse4.1] [-no-sse4.2] [-no-avx] [-no-neon]
2937 [-qtnamespace <namespace>] [-qtlibinfix <infix>] [-separate-debug-info]
2938 [-no-phonon-backend] [-phonon-backend] [-no-media-backend] [-media-backend]
2939 [-no-audio-backend] [-audio-backend]
2940 [-no-javascript-jit] [-javascript-jit] [-no-declarative-debug] [-declarative-debug]
2941 [-no-optimized-qmake] [-optimized-qmake]
2942 [-no-openssl] [-openssl] [-openssl-linked]
2943 [-no-gtkstyle] [-gtkstyle]
2944 [-qt-pcre] [-system-pcre]
2945 [-device <name>] [-device-option <key=value>]
2946 [additional platform specific options (see below)]
2949 Installation options:
2951 These are optional, but you may specify install directories.
2953 -prefix <dir> ...... This will install everything relative to <dir>
2954 (default $QT_INSTALL_PREFIX)
2956 -hostprefix [dir] .. Tools and libraries needed when developing
2957 applications are installed in [dir]. If [dir] is
2958 not given, the current build directory will be used.
2961 * -prefix-install .... Force a sandboxed "local" installation of
2962 Qt. This will install into
2963 $QT_INSTALL_PREFIX, if this option is
2964 disabled then some platforms will attempt a
2965 "system" install by placing default values to
2966 be placed in a system location other than
2969 You may use these to separate different parts of the install:
2971 -bindir <dir> ......... Executables will be installed to <dir>
2972 (default PREFIX/bin)
2973 -libdir <dir> ......... Libraries will be installed to <dir>
2974 (default PREFIX/lib)
2975 -docdir <dir> ......... Documentation will be installed to <dir>
2976 (default PREFIX/doc)
2977 -headerdir <dir> ...... Headers will be installed to <dir>
2978 (default PREFIX/include)
2979 -plugindir <dir> ...... Plugins will be installed to <dir>
2980 (default PREFIX/plugins)
2981 -importdir <dir> ...... Imports for QML will be installed to <dir>
2982 (default PREFIX/imports)
2983 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
2985 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
2986 (default PREFIX/translations)
2987 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
2988 (default PREFIX/etc/settings)
2989 -examplesdir <dir> .... Examples will be installed to <dir>
2990 (default PREFIX/examples)
2991 -testsdir <dir> ....... Tests will be installed to <dir>
2992 (default PREFIX/tests)
2994 -hostbindir <dir> .. Host executables will be installed to <dir>
2995 (default HOSTPREFIX/bin)
2996 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
2997 (default HOSTPREFIX)
3001 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3002 that needs to be evaluated. If the evaluation succeeds, the feature is
3003 included. Here is a short explanation of each option:
3005 * -release ........... Compile and link Qt with debugging turned off.
3006 -debug ............. Compile and link Qt with debugging turned on.
3007 -debug-and-release . Compile and link two versions of Qt, with and without
3008 debugging turned on (Mac only).
3010 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3012 -opensource ........ Compile and link the Open-Source Edition of Qt.
3013 -commercial ........ Compile and link the Commercial Edition of Qt.
3016 * -shared ............ Create and use shared Qt libraries.
3017 -static ............ Create and use static Qt libraries.
3019 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3021 -fast .............. Configure Qt quickly by generating Makefiles only for
3022 library and subdirectory targets. All other Makefiles
3023 are created as wrappers, which will in turn run qmake.
3025 -no-largefile ...... Disables large file support.
3026 + -largefile ......... Enables Qt to access files larger than 4 GB.
3028 -no-exceptions ..... Disable exceptions on compilers that support it.
3029 * -exceptions ........ Enable exceptions on compilers that support it.
3031 -no-accessibility .. Do not compile Accessibility support.
3032 * -accessibility ..... Compile Accessibility support.
3034 $SHN -no-stl ............ Do not compile STL support.
3035 $SHY -stl ............... Compile STL support.
3037 -no-sql-<driver> ... Disable SQL <driver> entirely.
3038 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3040 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3043 Possible values for <driver>:
3044 [ $CFG_SQL_AVAILABLE ]
3046 -system-sqlite ..... Use sqlite from the operating system.
3048 -no-phonon-backend.. Do not build the platform phonon plugin.
3049 + -phonon-backend..... Build the platform phonon plugin.
3051 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3052 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3054 -no-declarative-debug ..... Do not build the declarative debugging support.
3055 + -declarative-debug ....... Build the declarative debugging support.
3057 -platform target ... The operating system and compiler you are building
3060 See the README file for a list of supported
3061 operating systems and compilers.
3063 -no-mmx ............ Do not compile with use of MMX instructions.
3064 -no-3dnow .......... Do not compile with use of 3DNOW instructions.
3065 -no-sse ............ Do not compile with use of SSE instructions.
3066 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3067 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3068 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3069 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3070 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3071 -no-avx ............ Do not compile with use of AVX instructions.
3072 -no-neon ........... Do not compile with use of NEON instructions.
3073 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3074 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3076 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3077 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3079 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3081 -D <string> ........ Add an explicit define to the preprocessor.
3082 -I <string> ........ Add an explicit include path.
3083 -L <string> ........ Add an explicit library path.
3085 -help, -h .......... Display this information.
3087 Third Party Libraries:
3089 -qt-zlib ........... Use the zlib bundled with Qt.
3090 + -system-zlib ....... Use zlib from the operating system.
3091 See http://www.gzip.org/zlib
3093 -no-gif ............ Do not compile GIF reading support.
3095 -no-libpng ......... Do not compile PNG support.
3096 -qt-libpng ......... Use the libpng bundled with Qt.
3097 + -system-libpng ..... Use libpng from the operating system.
3098 See http://www.libpng.org/pub/png
3100 -no-libjpeg ........ Do not compile JPEG support.
3101 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3102 + -system-libjpeg .... Use libjpeg from the operating system.
3103 See http://www.ijg.org
3105 -no-openssl ........ Do not compile support for OpenSSL.
3106 + -openssl ........... Enable run-time OpenSSL support.
3107 -openssl-linked .... Enabled linked OpenSSL support.
3109 -qt-pcre ........... Use the PCRE library bundled with Qt.
3110 + -system-pcre ....... Use the PCRE library from the operating system.
3114 -make <part> ....... Add part to the list of parts to be built at make time.
3115 ($QT_DEFAULT_BUILD_PARTS)
3116 -nomake <part> ..... Exclude part from the list of parts to be built.
3118 -R <string> ........ Add an explicit runtime library path to the Qt
3120 -l <string> ........ Add an explicit library.
3122 -no-rpath .......... Do not use the library install path as a runtime
3124 + -rpath ............. Link Qt libraries and executables using the library
3125 install path as a runtime library path. Equivalent
3126 to -R install_libpath
3128 -continue .......... Continue as far as possible if an error occurs.
3130 -verbose, -v ....... Print verbose information about each step of the
3133 -silent ............ Reduce the build output so that warnings and errors
3134 can be seen more easily.
3136 * -no-optimized-qmake ... Do not build qmake optimized.
3137 -optimized-qmake ...... Build qmake optimized.
3139 -no-gui ............ Don't build the Qt GUI library
3141 $NSN -no-nis ............ Do not compile NIS support.
3142 $NSY -nis ............... Compile NIS support.
3144 $CUN -no-cups ........... Do not compile CUPS support.
3145 $CUY -cups .............. Compile CUPS support.
3146 Requires cups/cups.h and libcups.so.2.
3148 $CIN -no-iconv .......... Do not compile support for iconv(3).
3149 $CIY -iconv ............. Compile support for iconv(3).
3151 $PHN -no-pch ............ Do not use precompiled header support.
3152 $PHY -pch ............... Use precompiled header support.
3154 $DBN -no-dbus ........... Do not compile the QtDBus module.
3155 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3156 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3158 -reduce-relocations ..... Reduce relocations in the libraries through extra
3159 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3160 experimental; needs GNU ld >= 2.18).
3162 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3164 -device <name> ............... Cross-compile for device <name> (experimental)
3165 -device-option <key=value> ... Add device specific options for the device mkspec
3168 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3169 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3171 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3172 $XCBY -xcb ............... Compile Xcb support.
3174 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3175 $EGLFSY -eglfs ............. Compile EGLFS support.
3177 -xplatform target ... The target platform when cross-compiling.
3179 -no-feature-<feature> Do not compile in <feature>.
3180 -feature-<feature> .. Compile in <feature>. The available features
3181 are described in src/corelib/global/qfeatures.txt
3183 -no-freetype ........ Do not compile in Freetype2 support.
3184 -qt-freetype ........ Use the libfreetype bundled with Qt.
3185 * -system-freetype .... Use libfreetype from the operating system.
3186 See http://www.freetype.org/
3188 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3189 default ($CFG_QCONFIG).
3191 -no-opengl .......... Do not support OpenGL.
3192 -opengl <api> ....... Enable OpenGL support
3193 With no parameter, this will attempt to auto-detect
3194 OpenGL ES 2, or regular desktop OpenGL.
3195 Use es2 for <api> to override auto-detection.
3197 $GBN -no-glib ........... Do not compile Glib support.
3198 $GBY -glib .............. Compile Glib support.
3201 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3204 $X2N -no-xinput2......... Do not compile XInput2 support.
3205 $X2Y -xinput2............ Compile XInput2 support.
3211 if [ "$BUILD_ON_MAC" = "yes" ]; then
3216 -Fstring ........... Add an explicit framework path.
3217 -fw string ......... Add an explicit framework.
3219 * -framework ......... Build Qt as a series of frameworks and
3220 link tools against those frameworks.
3221 -no-framework ...... Do not build Qt as a series of frameworks.
3223 * -dwarf2 ............ Enable dwarf2 debugging symbols.
3224 -no-dwarf2 ......... Disable dwarf2 debugging symbols.
3226 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3227 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3229 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3230 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3231 QT_ENABLE_HARFBUZZ environment variable.
3236 [ "x$ERROR" = "xyes" ] && exit 1
3241 # -----------------------------------------------------------------------------
3242 # LICENSING, INTERACTIVE PART
3243 # -----------------------------------------------------------------------------
3246 echo "This is the Qt ${EditionString} Edition."
3249 if [ "$Edition" = "OpenSource" ]; then
3251 echo "You are licensed to use this software under the terms of"
3252 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3253 if [ -f "$relpath/LICENSE.GPL3" ]; then
3254 echo "You are also licensed to use this software under the terms of"
3255 echo "the GNU General Public License (GPL) versions 3."
3261 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3262 echo "You have already accepted the terms of the $LicenseType license."
3265 if [ -f "$relpath/LICENSE.GPL3" ]; then
3266 echo "Type '3' to view the GNU General Public License version 3."
3268 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3269 echo "Type 'yes' to accept this license offer."
3270 echo "Type 'no' to decline this license offer."
3272 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3276 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3278 elif [ "$acceptance" = "no" ]; then
3279 echo "You are not licensed to use this software."
3282 elif [ "$acceptance" = "3" ]; then
3283 more "$relpath/LICENSE.GPL3"
3284 elif [ "$acceptance" = "L" ]; then
3285 more "$relpath/LICENSE.LGPL"
3288 elif [ "$Edition" = "Preview" ]; then
3289 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3292 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3293 echo "You have already accepted the terms of the $LicenseType license."
3296 echo "You are licensed to use this software under the terms of"
3297 echo "the $TheLicense"
3299 echo "Type '?' to read the Preview License."
3300 echo "Type 'yes' to accept this license offer."
3301 echo "Type 'no' to decline this license offer."
3303 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3307 if [ "$acceptance" = "yes" ]; then
3309 elif [ "$acceptance" = "no" ] ;then
3310 echo "You are not licensed to use this software."
3313 elif [ "$acceptance" = "?" ]; then
3314 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3317 elif [ "$Edition" != "OpenSource" ]; then
3318 if [ -n "$ExpiryDate" ]; then
3319 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3320 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3321 Today=`date +%Y%m%d`
3322 if [ "$Today" -gt "$ExpiryDate" ]; then
3323 case "$LicenseType" in
3324 Commercial|Academic|Educational)
3325 if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
3327 echo "NOTICE NOTICE NOTICE NOTICE"
3329 echo " Your support and upgrade period has expired."
3331 echo " You are no longer licensed to use this version of Qt."
3332 echo " Please contact qt-info@nokia.com to renew your support"
3333 echo " and upgrades for this license."
3335 echo "NOTICE NOTICE NOTICE NOTICE"
3340 echo "WARNING WARNING WARNING WARNING"
3342 echo " Your support and upgrade period has expired."
3344 echo " You may continue to use your last licensed release"
3345 echo " of Qt under the terms of your existing license"
3346 echo " agreement. But you are not entitled to technical"
3347 echo " support, nor are you entitled to use any more recent"
3348 echo " Qt releases."
3350 echo " Please contact qt-info@nokia.com to renew your"
3351 echo " support and upgrades for this license."
3353 echo "WARNING WARNING WARNING WARNING"
3360 echo "NOTICE NOTICE NOTICE NOTICE"
3362 echo " Your Evaluation license has expired."
3364 echo " You are no longer licensed to use this software. Please"
3365 echo " contact qt-info@nokia.com to purchase license, or install"
3366 echo " the Qt Open Source Edition if you intend to develop free"
3369 echo "NOTICE NOTICE NOTICE NOTICE"
3376 TheLicense=`head -n 1 "$outpath/LICENSE"`
3378 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3379 echo "You have already accepted the terms of the $TheLicense."
3382 echo "You are licensed to use this software under the terms of"
3383 echo "the $TheLicense."
3385 echo "Type '?' to view the $TheLicense."
3386 echo "Type 'yes' to accept this license offer."
3387 echo "Type 'no' to decline this license offer."
3389 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3393 if [ "$acceptance" = "yes" ]; then
3395 elif [ "$acceptance" = "no" ]; then
3396 echo "You are not licensed to use this software."
3399 else [ "$acceptance" = "?" ]
3400 more "$outpath/LICENSE"
3405 # this should be moved somewhere else
3408 AIX_VERSION=`uname -v`
3409 if [ "$AIX_VERSION" -lt "5" ]; then
3410 QMakeVar add QMAKE_LIBS_X11 -lbind
3417 #-------------------------------------------------------------------------------
3418 # generate qconfig.cpp
3419 #-------------------------------------------------------------------------------
3420 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3422 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3424 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3425 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3427 /* Installation date */
3428 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3430 /* Installation Info */
3431 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3432 "qt_prfxpath=$QT_INSTALL_PREFIX",
3433 "qt_docspath=$QT_INSTALL_DOCS",
3434 "qt_hdrspath=$QT_INSTALL_HEADERS",
3435 "qt_libspath=$QT_INSTALL_LIBS",
3436 "qt_binspath=$QT_INSTALL_BINS",
3437 "qt_plugpath=$QT_INSTALL_PLUGINS",
3438 "qt_impspath=$QT_INSTALL_IMPORTS",
3439 "qt_datapath=$QT_INSTALL_DATA",
3440 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3441 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3442 "qt_tstspath=$QT_INSTALL_TESTS",
3443 #ifdef QT_BUILD_QMAKE
3444 "qt_ssrtpath=$CFG_SYSROOT",
3445 "qt_hpfxpath=$QT_HOST_PREFIX",
3446 "qt_hbinpath=$QT_HOST_BINS",
3447 "qt_hdatpath=$QT_HOST_DATA",
3450 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3453 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3455 /* strlen( "qt_lcnsxxxx" ) == 12 */
3456 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3457 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3459 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3462 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3463 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3464 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3466 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3467 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3468 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3471 # -----------------------------------------------------------------------------
3472 if [ "$LicenseType" = "Evaluation" ]; then
3473 EVALKEY=qt_qevalkey=$LicenseKeyExt
3474 elif echo "$D_FLAGS" | grep QT_EVAL >/dev/null 2>&1; then
3475 EVALKEY=qt_qevalkey=
3478 if [ -n "$EVALKEY" ]; then
3479 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3480 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3481 /* Evaluation license key */
3482 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3484 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3488 # -----------------------------------------------------------------------------
3490 # -----------------------------------------------------------------------------
3493 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3495 [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
3496 if [ "$OPT_SHADOW" = "yes" ]; then
3497 "$outpath/bin/syncqt" $SYNCQT_OPTS "$relpath" || exit 1
3498 elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then
3499 QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
3503 # $1: input variable name (awk regexp)
3504 # $2: optional output variable name
3505 # $3: optional value transformation (sed command)
3506 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3507 # is where the resulting variable is written to
3508 setBootstrapVariable()
3510 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3514 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3515 echo "Creating qmake. Please wait..."
3518 QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
3519 QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
3520 if [ -f "$QCONFIG_H" ]; then
3521 OLD_QCONFIG_H=$QCONFIG_H
3522 mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
3525 # create temporary qconfig.h for compiling qmake, if it doesn't exist
3526 # when building qmake, we use #defines for the install paths,
3527 # however they are real functions in the library
3528 if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
3529 mkdir -p "$outpath/src/corelib/global"
3530 [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
3531 echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
3534 mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
3536 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3537 rm -rf mkspecs/default
3538 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3539 mkdir -p "$outpath/qmake" || exit
3541 for mkfile in GNUmakefile Makefile; do
3544 in_mkfile="${mkfile}.in"
3545 if [ "$mkfile" = "Makefile" ]; then
3546 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3547 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3549 in_mkfile="${mkfile}.unix"
3551 in_mkfile="$relpath/qmake/$in_mkfile"
3552 mkfile="$outpath/qmake/$mkfile"
3553 if [ -f "$mkfile" ]; then
3554 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3557 [ -f "$in_mkfile" ] || continue
3559 echo "########################################################################" > "$mkfile"
3560 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3561 echo "########################################################################" >> "$mkfile"
3564 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3565 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3566 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3568 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3569 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3572 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3573 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3574 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3575 setBootstrapVariable QMAKE_CFLAGS
3576 setBootstrapVariable QMAKE_CXXFLAGS
3577 setBootstrapVariable QMAKE_LFLAGS
3579 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3580 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3581 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3583 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3584 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3585 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3586 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3587 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3588 elif [ "$CFG_DEBUG" = "yes" ]; then
3589 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3590 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3591 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3592 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3595 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3596 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3597 for rpath in $RPATH_FLAGS; do
3598 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3601 if [ "$BUILD_ON_MAC" = "yes" ]; then
3602 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3603 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3604 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3605 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3606 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3607 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3608 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3609 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3610 if [ '!' -z "$CFG_SDK" ]; then
3611 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3612 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3613 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3614 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3615 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3618 if [ '!' -z "$D_FLAGS" ]; then
3619 for DEF in $D_FLAGS; do
3620 EXTRA_CFLAGS="$EXTRA_CFLAGS \"-D${DEF}\""
3623 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3624 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3625 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3626 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3628 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3629 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3630 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3631 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3632 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3633 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3634 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3635 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3636 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3637 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3639 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3640 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3641 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3642 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3647 QMAKE_BUILD_ERROR=no
3648 (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
3649 [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
3650 [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
3651 [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
3654 #-------------------------------------------------------------------------------
3655 # tests that need qmake
3656 #-------------------------------------------------------------------------------
3658 #-------------------------------------------------------------------------------
3659 # determine the target and host architectures
3660 #-------------------------------------------------------------------------------
3662 # Use config.tests/arch/arch.pro to has the compiler tell us what the target architecture is
3663 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'`
3665 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3666 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3667 # Do the same test again, using the host compiler
3668 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'`
3669 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3671 # not cross compiling, host == target
3672 CFG_HOST_ARCH="$CFG_ARCH"
3675 if [ "$OPT_VERBOSE" = "yes" ]; then
3676 echo "System architecture: '$CFG_ARCH'"
3677 echo "Host architecture: '$CFG_HOST_ARCH'"
3680 #-------------------------------------------------------------------------------
3681 # functionality tests
3682 #-------------------------------------------------------------------------------
3684 # detect availability of float math.h functions
3685 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/floatmath "floatmath" $L_FLAGS $I_FLAGS $l_FLAGS; then
3686 CFG_USE_FLOATMATH=yes
3688 CFG_USE_FLOATMATH=no
3691 # detect mmx support
3692 if [ "${CFG_MMX}" = "auto" ]; then
3693 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mmx "mmx" $L_FLAGS $I_FLAGS $l_FLAGS "-mmmx"; then
3700 # detect 3dnow support
3701 if [ "${CFG_3DNOW}" = "auto" ]; then
3702 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/3dnow "3dnow" $L_FLAGS $I_FLAGS $l_FLAGS "-m3dnow"; then
3709 # detect sse support
3710 if [ "${CFG_SSE}" = "auto" ]; then
3711 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse "sse" $L_FLAGS $I_FLAGS $l_FLAGS "-msse"; then
3718 # detect sse2 support
3719 if [ "${CFG_SSE2}" = "auto" ]; then
3720 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse2 "sse2" $L_FLAGS $I_FLAGS $l_FLAGS "-msse2"; then
3727 # detect sse3 support
3728 if [ "${CFG_SSE3}" = "auto" ]; then
3729 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse3 "sse3" $L_FLAGS $I_FLAGS $l_FLAGS "-msse3"; then
3736 # detect ssse3 support
3737 if [ "${CFG_SSSE3}" = "auto" ]; then
3738 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ssse3 "ssse3" $L_FLAGS $I_FLAGS $l_FLAGS "-mssse3"; then
3745 # detect sse4.1 support
3746 if [ "${CFG_SSE4_1}" = "auto" ]; then
3747 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
3754 # detect sse4.2 support
3755 if [ "${CFG_SSE4_2}" = "auto" ]; then
3756 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
3763 # detect avx support
3764 if [ "${CFG_AVX}" = "auto" ]; then
3765 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/avx "avx" $L_FLAGS $I_FLAGS $l_FLAGS "-mavx"; then
3772 # check iWMMXt support
3773 if [ "$CFG_IWMMXT" = "yes" ]; then
3774 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iwmmxt "iwmmxt" $L_FLAGS $I_FLAGS $l_FLAGS "-mcpu=iwmmxt"
3775 if [ $? != "0" ]; then
3776 echo "The iWMMXt functionality test failed!"
3777 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3782 # detect neon support
3783 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3784 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
3789 elif [ "$CFG_ARCH" != "arm" ]; then
3793 # detect mips_dsp support
3794 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSP}" = "yes" ]; then
3800 # detect mips_dspr2 support
3801 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "yes" ]; then
3807 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3810 if [ "$CFG_ZLIB" = "no" ]; then
3811 # Note: Qt no longer support builds without zlib
3812 # So we force a "no" to be "auto" here.
3813 # If you REALLY really need no zlib support, you can still disable
3814 # it by doing the following:
3815 # add "no-zlib" to mkspecs/qconfig.pri
3816 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
3818 # There's no guarantee that Qt will build under those conditions
3823 if [ "$CFG_ZLIB" = "auto" ]; then
3824 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
3831 if [ "$CFG_LARGEFILE" = "auto" ]; then
3832 #Large files should be enabled for all Linux systems
3836 if [ "$CFG_GUI" = "no" ]; then
3837 QPA_PLATFORM_GUARD=no
3840 # detect how jpeg should be built
3841 if [ "$CFG_JPEG" = "auto" ]; then
3842 if [ "$CFG_SHARED" = "yes" ]; then
3849 if [ "$CFG_LIBJPEG" = "auto" ]; then
3850 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
3857 # detect how gif should be built
3858 if [ "$CFG_GIF" = "auto" ]; then
3859 if [ "$CFG_SHARED" = "yes" ]; then
3867 if [ "$CFG_LIBPNG" = "auto" ]; then
3868 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
3875 # detect accessibility
3876 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
3877 CFG_ACCESSIBILITY=yes
3880 if [ "$CFG_EGLFS" = "yes" ]; then
3881 if [ "$CFG_EGL" = "no" ]; then
3882 echo "The EGLFS plugin requires EGL support and cannot be built"
3888 # auto-detect SQL-modules support
3889 for _SQLDR in $CFG_SQL_AVAILABLE; do
3892 if [ "$CFG_SQL_mysql" != "no" ]; then
3893 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
3894 if [ -x "$CFG_MYSQL_CONFIG" ]; then
3895 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
3896 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
3897 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
3898 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
3899 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
3901 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
3902 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3903 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
3904 echo " You need MySql 4 or higher."
3905 echo " If you believe this message is in error you may use the continue"
3906 echo " switch (-continue) to $0 to continue."
3911 QT_LFLAGS_MYSQL_R=""
3915 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
3916 QMakeVar add CONFIG use_libmysqlclient_r
3917 if [ "$CFG_SQL_mysql" = "auto" ]; then
3918 CFG_SQL_mysql=plugin
3920 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
3921 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
3922 if [ "$CFG_SQL_mysql" = "auto" ]; then
3923 CFG_SQL_mysql=plugin
3926 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3927 echo "MySQL support cannot be enabled due to functionality tests!"
3928 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3929 echo " If you believe this message is in error you may use the continue"
3930 echo " switch (-continue) to $0 to continue."
3935 QT_LFLAGS_MYSQL_R=""
3943 if [ "$CFG_SQL_psql" != "no" ]; then
3944 # Be careful not to use native pg_config when cross building.
3945 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
3946 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
3947 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
3949 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
3950 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
3951 # But, respect PSQL_LIBS if set
3952 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
3953 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
3954 if [ "$CFG_SQL_psql" = "auto" ]; then
3958 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3959 echo "PostgreSQL support cannot be enabled due to functionality tests!"
3960 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3961 echo " If you believe this message is in error you may use the continue"
3962 echo " switch (-continue) to $0 to continue."
3973 if [ "$CFG_SQL_odbc" != "no" ]; then
3974 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
3975 if [ "$CFG_SQL_odbc" = "auto" ]; then
3979 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
3980 QT_LFLAGS_ODBC="-liodbc"
3981 if [ "$CFG_SQL_odbc" = "auto" ]; then
3985 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3986 echo "ODBC support cannot be enabled due to functionality tests!"
3987 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3988 echo " If you believe this message is in error you may use the continue"
3989 echo " switch (-continue) to $0 to continue."
3999 if [ "$CFG_SQL_oci" != "no" ]; then
4000 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
4001 if [ "$CFG_SQL_oci" = "auto" ]; then
4005 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4006 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4007 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4008 echo " If you believe this message is in error you may use the continue"
4009 echo " switch (-continue) to $0 to continue."
4018 if [ "$CFG_SQL_tds" != "no" ]; then
4019 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4020 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4021 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
4022 if [ "$CFG_SQL_tds" = "auto" ]; then
4026 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4027 echo "TDS support cannot be enabled due to functionality tests!"
4028 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4029 echo " If you believe this message is in error you may use the continue"
4030 echo " switch (-continue) to $0 to continue."
4039 if [ "$CFG_SQL_db2" != "no" ]; then
4040 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
4041 if [ "$CFG_SQL_db2" = "auto" ]; then
4045 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4046 echo "ODBC support cannot be enabled due to functionality tests!"
4047 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4048 echo " If you believe this message is in error you may use the continue"
4049 echo " switch (-continue) to $0 to continue."
4058 if [ "$CFG_SQL_ibase" != "no" ]; then
4059 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
4060 if [ "$CFG_SQL_ibase" = "auto" ]; then
4061 CFG_SQL_ibase=plugin
4064 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4065 echo "InterBase support cannot be enabled due to functionality tests!"
4066 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4067 echo " If you believe this message is in error you may use the continue"
4068 echo " switch (-continue) to $0 to continue."
4077 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4078 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
4079 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4080 CFG_SQL_sqlite2=plugin
4083 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4084 echo "SQLite2 support cannot be enabled due to functionality tests!"
4085 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4086 echo " If you believe this message is in error you may use the continue"
4087 echo " switch (-continue) to $0 to continue."
4096 if [ "$CFG_SQL_sqlite" != "no" ]; then
4097 SQLITE_AUTODETECT_FAILED="no"
4098 if [ "$CFG_SQLITE" = "system" ]; then
4099 if [ -n "$PKG_CONFIG" ]; then
4100 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4101 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4103 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
4104 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4105 CFG_SQL_sqlite=plugin
4107 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4109 SQLITE_AUTODETECT_FAILED="yes"
4112 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4113 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4114 CFG_SQL_sqlite=plugin
4117 SQLITE_AUTODETECT_FAILED="yes"
4121 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4122 echo "SQLite support cannot be enabled due to functionality tests!"
4123 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4124 echo " If you believe this message is in error you may use the continue"
4125 echo " switch (-continue) to $0 to continue."
4131 if [ "$OPT_VERBOSE" = "yes" ]; then
4132 echo "unknown SQL driver: $_SQLDR"
4138 # auto-detect NIS support
4139 if [ "$CFG_NIS" != "no" ]; then
4140 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
4143 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4144 echo "NIS support cannot be enabled due to functionality tests!"
4145 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4146 echo " If you believe this message is in error you may use the continue"
4147 echo " switch (-continue) to $0 to continue."
4155 # auto-detect CUPS support
4156 if [ "$CFG_CUPS" != "no" ]; then
4157 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
4160 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4161 echo "Cups support cannot be enabled due to functionality tests!"
4162 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4163 echo " If you believe this message is in error you may use the continue"
4164 echo " switch (-continue) to $0 to continue."
4172 # auto-detect iconv(3) support
4173 if [ "$CFG_ICONV" != "no" ]; then
4174 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4176 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
4178 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
4180 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
4183 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4184 echo "Iconv support cannot be enabled due to functionality tests!"
4185 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4186 echo " If you believe this message is in error you may use the continue"
4187 echo " switch (-continue) to $0 to continue."
4195 # auto-detect libdbus-1 support
4196 if [ "$CFG_DBUS" != "no" ]; then
4197 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4198 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4199 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4201 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
4202 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4203 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4204 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4206 if [ "$CFG_DBUS" = "auto" ]; then
4208 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4209 # CFG_DBUS is "yes" or "linked" here
4211 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4212 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4213 echo " If you believe this message is in error you may use the continue"
4214 echo " switch (-continue) to $0 to continue."
4220 # auto-detect Glib support
4221 if [ "$CFG_GLIB" != "no" ]; then
4222 if [ -n "$PKG_CONFIG" ]; then
4223 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4224 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4226 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
4228 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4229 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4231 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4232 echo "Glib support cannot be enabled due to functionality tests!"
4233 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4234 echo " If you believe this message is in error you may use the continue"
4235 echo " switch (-continue) to $0 to continue."
4244 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4245 if [ -n "$PKG_CONFIG" ]; then
4246 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4247 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4249 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
4251 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4252 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4254 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4255 echo "Gstreamer support cannot be enabled due to functionality tests!"
4256 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4257 echo " If you believe this message is in error you may use the continue"
4258 echo " switch (-continue) to $0 to continue."
4264 elif [ "$CFG_GLIB" = "no" ]; then
4268 # auto-detect libicu support
4269 if [ "$CFG_ICU" != "no" ]; then
4270 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/icu "ICU" $L_FLAGS $I_FLAGS $l_FLAGS; then
4271 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4273 if [ "$CFG_ICU" = "auto" ]; then
4275 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4278 echo "The ICU library support cannot be enabled."
4279 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4280 echo " If you believe this message is in error you may use the continue"
4281 echo " switch (-continue) to $0 to continue."
4287 # Auto-detect PulseAudio support
4288 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4289 if [ -n "$PKG_CONFIG" ]; then
4290 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4291 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4293 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
4295 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4296 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4298 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4299 echo "PulseAudio support cannot be enabled due to functionality tests!"
4300 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4301 echo " If you believe this message is in error you may use the continue"
4302 echo " switch (-continue) to $0 to continue."
4311 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4312 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4313 if [ "$CFG_GUI" = "no" ]; then
4314 if [ "$CFG_OPENGL" = "auto" ]; then
4317 if [ "$CFG_OPENGL" != "no" ]; then
4318 echo "OpenGL enabled, but GUI disabled."
4319 echo " You might need to either enable the GUI or disable OpenGL"
4323 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4324 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS; then
4326 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
4329 if [ "$CFG_OPENGL" = "yes" ]; then
4330 echo "All the OpenGL functionality tests failed!"
4331 echo " You might need to modify the include and library search paths by editing"
4332 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4333 echo " ${XQMAKESPEC}."
4340 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4341 if [ "$CFG_OPENGL" = "desktop" ]; then
4342 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS
4343 if [ $? != "0" ]; then
4344 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4351 elif [ "$CFG_OPENGL" = "es2" ]; then
4353 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS
4354 if [ $? != "0" ]; then
4355 echo "The OpenGL ES 2.0 functionality test failed!"
4356 echo " You might need to modify the include and library search paths by editing"
4357 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4358 echo " ${XQMAKESPEC}."
4361 elif [ "$CFG_OPENGL" = "desktop" ]; then
4362 # Desktop OpenGL support
4363 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS
4364 if [ $? != "0" ]; then
4365 echo "The OpenGL functionality test failed!"
4366 echo " You might need to modify the include and library search paths by editing"
4367 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4368 echo " ${XQMAKESPEC}."
4373 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4374 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS
4375 if [ $? != "0" ]; then
4376 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4383 fi # X11/MINGW OpenGL
4385 if [ "$BUILD_ON_MAC" = "yes" ]; then
4386 if [ "$CFG_PHONON" != "no" ]; then
4387 # Always enable Phonon (unless it was explicitly disabled)
4391 if [ "$CFG_COREWLAN" = "auto" ]; then
4392 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
4400 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4401 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4402 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS; then
4404 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
4407 if [ "$CFG_OPENGL" = "yes" ]; then
4408 echo "All the OpenGL functionality tests failed!"
4409 echo " You might need to modify the include and library search paths by editing"
4410 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4411 echo " ${XQMAKESPEC}."
4416 elif [ "$CFG_OPENGL" = "es2" ]; then
4418 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4419 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4420 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4421 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4422 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4423 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "$QMAKE_INCDIR_OPENGL_ES2"
4424 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "$QMAKE_LIBDIR_OPENGL_ES2"
4425 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "$QMAKE_LIBS_OPENGL_ES2"
4428 "$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
4429 if [ $? != "0" ]; then
4430 echo "The OpenGL ES 2.0 functionality test failed!"
4431 echo " You might need to modify the include and library search paths by editing"
4432 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4433 echo " ${XQMAKESPEC}."
4436 elif [ "$CFG_OPENGL" = "desktop" ]; then
4437 # Desktop OpenGL support
4438 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS
4439 if [ $? != "0" ]; then
4440 echo "The OpenGL functionality test failed!"
4441 echo " You might need to modify the include and library search paths by editing"
4442 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4443 echo " ${XQMAKESPEC}."
4448 # auto-detect FontConfig support
4449 if [ "$CFG_FONTCONFIG" != "no" ]; then
4450 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4451 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4452 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4454 QT_CFLAGS_FONTCONFIG=
4455 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4457 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
4458 QT_CONFIG="$QT_CONFIG fontconfig"
4459 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4460 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4461 CFG_LIBFREETYPE=system
4466 # Save these for a check later
4467 ORIG_CFG_XCB="$CFG_XCB"
4468 ORIG_CFG_EGLFS="$CFG_EGLFS"
4470 if [ "$CFG_LIBUDEV" != "no" ]; then
4471 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4472 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4473 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4474 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4475 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4477 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
4479 QT_CONFIG="$QT_CONFIG libudev"
4480 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4481 echo "The libudev functionality test failed!"
4485 QMakeVar add DEFINES QT_NO_LIBUDEV
4489 if [ "$CFG_EVDEV" != "no" ]; then
4490 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/evdev "evdev" $L_FLAGS $I_FLAGS $l_FLAGS; then
4492 QT_CONFIG="$QT_CONFIG evdev"
4493 elif [ "$CFG_EVDEV" = "yes" ]; then
4494 echo "The evdev functionality test failed!"
4498 QMakeVar add DEFINES QT_NO_EVDEV
4502 # Check we actually have X11 :-)
4503 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xlib "XLib" $L_FLAGS $I_FLAGS $l_FLAGS; then
4504 QT_CONFIG="$QT_CONFIG xlib"
4507 # auto-detect Xrender support
4508 if [ "$CFG_XRENDER" != "no" ]; then
4509 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xrender "Xrender" $L_FLAGS $I_FLAGS $l_FLAGS; then
4511 QT_CONFIG="$QT_CONFIG xrender"
4513 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4514 echo "Xrender support cannot be enabled due to functionality tests!"
4515 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4516 echo " If you believe this message is in error you may use the continue"
4517 echo " switch (-continue) to $0 to continue."
4525 if [ "$CFG_XCB" != "no" ]; then
4526 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4527 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4528 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4530 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
4532 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
4533 QT_CONFIG="$QT_CONFIG xcb-render"
4536 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
4538 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4541 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
4542 QT_CONFIG="$QT_CONFIG xcb-xlib"
4545 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
4546 # auto-detect XInput2/Xinput support
4547 if [ "$CFG_XINPUT2" != "no" ]; then
4548 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xinput2 "XInput2" $L_FLAGS $I_FLAGS $l_FLAGS; then
4552 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4553 echo "XInput2 support cannot be enabled due to functionality tests!"
4554 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4555 echo " If you believe this message is in error you may use the continue"
4556 echo " switch (-continue) to $0 to continue."
4565 if [ "$CFG_XCB" = "yes" ]; then
4566 echo "The XCB test failed!"
4567 echo " You might need to install dependency packages."
4568 echo " See src/plugins/platforms/xcb/README."
4572 QMakeVar add DEFINES QT_NO_XCB
4576 # Detect libxkbcommon
4577 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4578 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4579 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4580 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4581 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4583 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4587 if [ "$CFG_EGL" != "no" ]; then
4588 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4589 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4590 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4591 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4592 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4593 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4594 fi # detect EGL support
4595 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
4597 elif [ "$CFG_EGL" = "yes" ]; then
4598 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4599 echo " You might need to modify the include and library search paths by editing"
4600 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4607 if [ "$CFG_EGLFS" != "no" ]; then
4608 CFG_EGLFS="$CFG_EGL"
4611 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4612 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4613 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4614 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4617 if [ "$BUILD_ON_MAC" = "yes" ]; then
4618 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
4619 QT_CONFIG="$QT_CONFIG coreservices"
4621 QMakeVar add DEFINES QT_NO_CORESERVICES
4625 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ]; then
4626 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ]; then
4627 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4628 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] ); then
4629 echo "No QPA platform plugin enabled!"
4630 echo " If you really want to build without a QPA platform plugin you must pass"
4631 echo " -no-xcb and -no-eglfs to configure. Doing this will"
4632 echo " produce a Qt that cannot run GUI applications."
4633 echo " The dependencies needed for xcb to build are listed in"
4634 echo " src/plugins/platforms/xcb/README"
4640 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_PHONON" != "no" ] && CFG_PHONON="yes"
4643 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4644 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4645 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
4646 CFG_LIBFREETYPE=system
4653 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $l_FLAGS; then
4657 if [ "$CFG_STL" != "no" ]; then
4658 if [ "$HAVE_STL" = "yes" ]; then
4661 if [ "$CFG_STL" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4662 echo "STL support cannot be enabled due to functionality tests!"
4663 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4664 echo " If you believe this message is in error you may use the continue"
4665 echo " switch (-continue) to $0 to continue."
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_STL" = "no" ]; then
5014 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STL"
5016 QMAKE_CONFIG="$QMAKE_CONFIG stl"
5018 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5019 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5021 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5022 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5023 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5024 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5025 QMakeVar add QMAKE_CFLAGS -g
5026 QMakeVar add QMAKE_CXXFLAGS -g
5027 QT_CONFIG="$QT_CONFIG separate_debug_info"
5029 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5030 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5032 [ "$CFG_MMX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mmx"
5033 [ "$CFG_3DNOW" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG 3dnow"
5034 [ "$CFG_SSE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse"
5035 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5036 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5037 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5038 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5039 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5040 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5041 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5042 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5043 if [ "$CFG_ARCH" = "mips" ]; then
5044 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5045 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5047 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5048 QT_CONFIG="$QT_CONFIG clock-gettime"
5050 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5051 QT_CONFIG="$QT_CONFIG clock-monotonic"
5053 if [ "$CFG_MREMAP" = "yes" ]; then
5054 QT_CONFIG="$QT_CONFIG mremap"
5056 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5057 QT_CONFIG="$QT_CONFIG getaddrinfo"
5059 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5060 QT_CONFIG="$QT_CONFIG ipv6ifname"
5062 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5063 QT_CONFIG="$QT_CONFIG getifaddrs"
5065 if [ "$CFG_INOTIFY" = "yes" ]; then
5066 QT_CONFIG="$QT_CONFIG inotify"
5068 if [ "$CFG_LIBJPEG" = "no" ]; then
5070 elif [ "$CFG_LIBJPEG" = "system" ]; then
5071 QT_CONFIG="$QT_CONFIG system-jpeg"
5073 if [ "$CFG_JPEG" = "no" ]; then
5074 QT_CONFIG="$QT_CONFIG no-jpeg"
5075 elif [ "$CFG_JPEG" = "yes" ]; then
5076 QT_CONFIG="$QT_CONFIG jpeg"
5078 if [ "$CFG_LIBPNG" = "no" ]; then
5081 if [ "$CFG_LIBPNG" = "system" ]; then
5082 QT_CONFIG="$QT_CONFIG system-png"
5084 if [ "$CFG_PNG" = "no" ]; then
5085 QT_CONFIG="$QT_CONFIG no-png"
5086 elif [ "$CFG_PNG" = "yes" ]; then
5087 QT_CONFIG="$QT_CONFIG png"
5089 if [ "$CFG_GIF" = "no" ]; then
5090 QT_CONFIG="$QT_CONFIG no-gif"
5091 elif [ "$CFG_GIF" = "yes" ]; then
5092 QT_CONFIG="$QT_CONFIG gif"
5094 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5095 QT_CONFIG="$QT_CONFIG no-freetype"
5096 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5097 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5098 QT_CONFIG="$QT_CONFIG system-freetype"
5100 QT_CONFIG="$QT_CONFIG freetype"
5102 if [ "$CFG_GUI" = "auto" ]; then
5105 if [ "$CFG_GUI" = "no" ]; then
5106 QT_CONFIG="$QT_CONFIG no-gui"
5109 if [ "$CFG_WIDGETS" = "no" ]; then
5110 QT_CONFIG="$QT_CONFIG no-widgets"
5111 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5114 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5115 #On Mac we implicitly link against libz, so we
5116 #never use the 3rdparty stuff.
5117 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5119 if [ "$CFG_ZLIB" = "yes" ]; then
5120 QT_CONFIG="$QT_CONFIG zlib"
5121 elif [ "$CFG_ZLIB" = "system" ]; then
5122 QT_CONFIG="$QT_CONFIG system-zlib"
5125 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5126 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5127 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5128 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5129 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5130 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5131 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5132 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5133 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5134 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5135 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5136 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5137 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5138 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5140 [ '!' -z "$D_FLAGS" ] && QMakeVar add DEFINES "$D_FLAGS"
5141 [ '!' -z "$L_FLAGS" ] && QMakeVar add QMAKE_LIBDIR_FLAGS "$L_FLAGS"
5142 [ '!' -z "$l_FLAGS" ] && QMakeVar add LIBS "$l_FLAGS"
5144 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5145 if [ "$CFG_RPATH" = "yes" ]; then
5146 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5147 # set the default rpath to the library installation directory
5148 RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5150 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5151 if [ -n "$RPATH_FLAGS" ]; then
5153 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5157 elif [ "$CFG_RPATH" = "yes" ]; then
5158 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5162 if [ "$CFG_RPATH" = "yes" ]; then
5163 # set the default rpath to the library installation directory
5164 RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5166 if [ -n "$RPATH_FLAGS" ]; then
5167 # add the user defined rpaths
5168 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5172 if [ '!' -z "$I_FLAGS" ]; then
5173 # add the user define include paths
5174 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5175 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5178 if [ '!' -z "$W_FLAGS" ]; then
5179 # add the user defined warning flags
5180 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5181 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5182 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5185 # turn off exceptions for the compilers that support it
5186 if [ "$XPLATFORM" != "$PLATFORM" ]; then
5187 COMPILER=`echo $XPLATFORM | cut -f 2- -d-`
5189 COMPILER=`echo $PLATFORM | cut -f 2- -d-`
5192 if [ "$CFG_EXCEPTIONS" != "no" ]; then
5193 QTCONFIG_CONFIG="$QTCONFIG_CONFIG exceptions"
5196 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5197 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5198 # Follow default behavior of configure.exe by overriding with "rtti".
5199 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5202 if [ "$CFG_ALSA" = "yes" ]; then
5203 QT_CONFIG="$QT_CONFIG alsa"
5206 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5207 QT_CONFIG="$QT_CONFIG pulseaudio"
5210 if [ "$CFG_COREWLAN" = "yes" ]; then
5211 QT_CONFIG="$QT_CONFIG corewlan"
5214 if [ "$CFG_ICU" = "yes" ]; then
5215 QT_CONFIG="$QT_CONFIG icu"
5218 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5219 QT_CONFIG="$QT_CONFIG force_asserts"
5222 if [ "$CFG_PCRE" = "qt" ]; then
5223 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5227 # Some Qt modules are too advanced in C++ for some old compilers
5228 # Detect here the platforms where they are known to work.
5230 # See Qt documentation for more information on which features are
5231 # supported and on which compilers.
5233 canBuildQtConcurrent="yes"
5234 canUseV8Snapshot="yes"
5236 case "$XPLATFORM" in
5238 # PA-RISC's assembly is too limited
5239 # gcc 3.4 on that platform can't build QtXmlPatterns
5240 # the assembly it generates cannot be compiled
5242 # Check gcc's version
5243 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5247 canBuildQtXmlPatterns="no"
5251 canBuildQtXmlPatterns="no"
5255 unsupported/vxworks-*-g++*)
5258 unsupported/vxworks-*-dcc*)
5260 canBuildQtXmlPatterns="no"
5263 # Check gcc's version
5264 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5272 canBuildQtXmlPatterns="no"
5277 # Check the compiler version
5278 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5281 canBuildQtXmlPatterns="no"
5282 canBuildQtConcurrent="no"
5286 canBuildQtConcurrent="no"
5292 canBuildQtXmlPatterns="no"
5293 canBuildQtConcurrent="no"
5299 # Get the xlC version
5300 cat > xlcver.c <<EOF
5304 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5309 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5310 xlcver=`./xlcver 2>/dev/null`
5313 if [ "$OPT_VERBOSE" = "yes" ]; then
5314 if [ -n "$xlcver" ]; then
5315 echo Found IBM xlC version: $xlcver.
5317 echo Could not determine IBM xlC version, assuming oldest supported.
5324 canBuildQtXmlPatterns="no"
5325 canBuildQtConcurrent="no"
5329 canBuildQtConcurrent="no"
5335 canBuildQtConcurrent="no"
5339 if [ "$CFG_GUI" = "no" ]; then
5340 # WebKit requires QtGui
5344 if [ "$CFG_SHARED" = "no" ]; then
5346 echo "WARNING: Using static linking will disable the WebKit module."
5351 CFG_CONCURRENT="yes"
5352 if [ "$canBuildQtConcurrent" = "no" ]; then
5353 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5356 QT_CONFIG="$QT_CONFIG concurrent"
5360 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5361 QT_CONFIG="$QT_CONFIG audio-backend"
5365 if [ "$CFG_WEBKIT" = "debug" ]; then
5366 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5370 QT_CONFIG="$QT_CONFIG v8"
5371 # Detect snapshot support
5372 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5373 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5376 *) canUseV8Snapshot="no"
5380 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5381 # QEMU crashes when building inside Scratchbox with an ARM target
5382 canUseV8Snapshot="no"
5385 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5386 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5388 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5389 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5392 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5393 QT_CONFIG="$QT_CONFIG v8snapshot"
5397 if [ "$CFG_DECLARATIVE_DEBUG" = "no" ]; then
5398 QCONFIG_FLAGS="$QCONFIG_FLAGS QDECLARATIVE_NO_DEBUG_PROTOCOL"
5401 if [ "$CFG_EXCEPTIONS" = "no" ]; then
5404 QMakeVar add QMAKE_CFLAGS -fno-exceptions
5405 QMakeVar add QMAKE_CXXFLAGS -fno-exceptions
5406 QMakeVar add QMAKE_LFLAGS -fno-exceptions
5411 QMakeVar add QMAKE_CFLAGS -LANG:exceptions=off
5412 QMakeVar add QMAKE_CXXFLAGS -LANG:exceptions=off
5413 QMakeVar add QMAKE_LFLAGS -LANG:exceptions=off
5420 QMAKE_CONFIG="$QMAKE_CONFIG exceptions_off"
5426 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5428 case "$COMPILER_VERSION" in
5430 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5431 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5432 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5435 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5436 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5437 QT_GCC_PATCH_VERSION=0
5447 #-------------------------------------------------------------------------------
5448 # part of configuration information goes into qconfig.h
5449 #-------------------------------------------------------------------------------
5451 case "$CFG_QCONFIG" in
5453 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5456 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5457 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5458 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5459 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5460 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5461 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5463 echo "#endif" >>"$tmpconfig"
5467 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5471 # define QT_EDITION $QT_EDITION
5475 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5476 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5478 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5479 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5482 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5483 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5486 if [ "$BUILD_ON_MAC" = "yes" ]; then
5487 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5488 #if defined(__LP64__)
5489 # define QT_POINTER_SIZE 8
5491 # define QT_POINTER_SIZE 4
5495 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5496 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5499 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5500 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5501 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5505 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5507 if [ "$CFG_DEV" = "yes" ]; then
5508 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5511 # Add QPA to config.h
5512 QCONFIG_FLAGS="$QCONFIG_FLAGS Q_WS_QPA QT_NO_QWS_QPF QT_NO_QWS_QPF2"
5514 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5515 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5518 # Add turned on SQL drivers
5519 for DRIVER in $CFG_SQL_AVAILABLE; do
5520 eval "VAL=\$CFG_SQL_$DRIVER"
5523 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5524 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5525 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5528 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5534 QMakeVar set sql-drivers "$SQL_DRIVERS"
5535 QMakeVar set sql-plugins "$SQL_PLUGINS"
5537 # Add other configuration options to the qconfig.h file
5538 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5539 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5540 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5541 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5542 [ "$CFG_EXCEPTIONS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EXCEPTIONS"
5543 [ "$CFG_SXE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SXE"
5544 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5546 # X11/Unix/Mac only configs
5547 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5548 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5549 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5550 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5551 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5552 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5553 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5554 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5555 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5556 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5557 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5558 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5559 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5560 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5562 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5563 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5564 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5565 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5566 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5567 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5568 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5569 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5570 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5571 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5572 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5573 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5574 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5576 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5577 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5578 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5579 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5580 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5581 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5582 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5583 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5585 # sort QCONFIG_FLAGS for neatness if we can
5586 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5587 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5589 if [ -n "$QCONFIG_FLAGS" ]; then
5590 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5591 #ifndef QT_BOOTSTRAPPED
5594 for cfg in $QCONFIG_FLAGS; do
5595 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5596 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5597 # figure out define logic, so we can output the correct
5598 # ifdefs to override the global defines in a project
5600 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5601 # QT_NO_option can be forcefully turned on by QT_option
5602 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5603 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5604 # QT_option can be forcefully turned off by QT_NO_option
5605 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5608 if [ -z $cfgdNeg ]; then
5609 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5616 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5617 #if defined($cfgd) && defined($cfgdNeg)
5619 #elif !defined($cfgd) && !defined($cfgdNeg)
5626 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5627 #endif // QT_BOOTSTRAPPED
5632 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5633 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5634 #define QT_VISIBILITY_AVAILABLE
5639 if [ -n "$QT_LIBINFIX" ]; then
5640 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5641 #define QT_LIBINFIX "$QT_LIBINFIX"
5646 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5647 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5648 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5650 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5651 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5652 chmod -w "$outpath/src/corelib/global/qconfig.h"
5653 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5654 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5658 #-------------------------------------------------------------------------------
5659 # save configuration into qconfig.pri
5660 #-------------------------------------------------------------------------------
5661 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5662 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5663 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5664 if [ "$CFG_DEBUG" = "yes" ]; then
5665 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5666 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5667 QT_CONFIG="$QT_CONFIG release"
5669 QT_CONFIG="$QT_CONFIG debug"
5670 elif [ "$CFG_DEBUG" = "no" ]; then
5671 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5672 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5673 QT_CONFIG="$QT_CONFIG debug"
5675 QT_CONFIG="$QT_CONFIG release"
5677 if [ "$CFG_STL" = "yes" ]; then
5678 QTCONFIG_CONFIG="$QTCONFIG_CONFIG stl"
5680 if [ "$CFG_FRAMEWORK" = "no" ]; then
5681 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5683 QT_CONFIG="$QT_CONFIG qt_framework"
5684 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5686 if [ "$CFG_DEV" = "yes" ]; then
5687 QT_CONFIG="$QT_CONFIG private_tests"
5690 cat >>"$QTCONFIG.tmp" <<EOF
5692 CONFIG += $QTCONFIG_CONFIG
5694 QT_HOST_ARCH = $CFG_HOST_ARCH
5695 QT_EDITION = $Edition
5696 QT_CONFIG += $QT_CONFIG
5699 QT_VERSION = $QT_VERSION
5700 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5701 QT_MINOR_VERSION = $QT_MINOR_VERSION
5702 QT_PATCH_VERSION = $QT_PATCH_VERSION
5705 QT_LIBINFIX = $QT_LIBINFIX
5706 QT_NAMESPACE = $QT_NAMESPACE
5709 if [ -n "$CFG_SYSROOT" ]; then
5710 echo "# sysroot" >>"$QTCONFIG.tmp"
5711 echo `basename "$XQMAKESPEC"` \{ >>"$QTCONFIG.tmp"
5712 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5713 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5714 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5715 echo "}" >> "$QTCONFIG.tmp"
5716 echo >> "$QTCONFIG.tmp"
5718 if [ -n "$RPATH_FLAGS" ]; then
5719 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
5721 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
5722 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
5723 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
5724 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
5727 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
5728 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
5729 echo "QMAKE_INCDIR_OPENGL_ES2 = \"$QMAKE_INCDIR_OPENGL_ES2\"" >> "$QTCONFIG.tmp"
5732 # replace qconfig.pri if it differs from the newly created temp file
5733 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
5734 rm -f "$QTCONFIG.tmp"
5736 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
5739 #-------------------------------------------------------------------------------
5740 # save configuration into qmodule.pri
5741 #-------------------------------------------------------------------------------
5742 QTMODULE="$outpath/mkspecs/qmodule.pri"
5744 echo "CONFIG += create_prl link_prl" >> "$QTMODULE.tmp"
5746 # Ensure we can link to uninistalled libraries
5747 if [ "$BUILD_ON_MAC" != "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ] && linkerSupportsFlag -rpath-link "$outpath/lib"; then
5748 echo "QMAKE_LFLAGS = -Wl,-rpath-link,\$\$QT_BUILD_TREE/lib \$\$QMAKE_LFLAGS" >> "$QTMODULE.tmp"
5750 if [ -n "$QT_CFLAGS_PSQL" ]; then
5751 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
5753 if [ -n "$QT_LFLAGS_PSQL" ]; then
5754 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
5756 if [ -n "$QT_CFLAGS_MYSQL" ]; then
5757 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
5759 if [ -n "$QT_LFLAGS_MYSQL" ]; then
5760 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
5762 if [ -n "$QT_CFLAGS_SQLITE" ]; then
5763 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
5765 if [ -n "$QT_LFLAGS_SQLITE" ]; then
5766 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
5768 if [ -n "$QT_LFLAGS_ODBC" ]; then
5769 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
5771 if [ -n "$QT_LFLAGS_TDS" ]; then
5772 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
5775 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
5776 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
5779 #dump in the OPENSSL_LIBS info
5780 if [ '!' -z "$OPENSSL_LIBS" ]; then
5781 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
5782 elif [ "$CFG_OPENSSL" = "linked" ]; then
5783 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
5786 #dump in the SDK info
5787 if [ '!' -z "$CFG_SDK" ]; then
5788 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
5792 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
5793 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
5795 # replace qmodule.pri if it differs from the newly created temp file
5796 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
5797 rm -f "$QTMODULE.tmp"
5799 mv -f "$QTMODULE.tmp" "$QTMODULE"
5802 #-------------------------------------------------------------------------------
5803 # save configuration into .qmake.cache
5804 #-------------------------------------------------------------------------------
5806 CACHEFILE="$outpath/.qmake.cache"
5807 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
5808 cat >>"$CACHEFILE.tmp" <<EOF
5810 QT_SOURCE_TREE = \$\$quote($relpath)
5811 QT_BUILD_TREE = \$\$quote($outpath)
5812 QT_BUILD_PARTS = $CFG_BUILD_PARTS
5814 #local paths that cannot be queried from the QT_INSTALL_* properties while building QTDIR
5815 QMAKE_INCDIR_QT = \$\$QT_BUILD_TREE/include
5816 QMAKE_LIBDIR_QT = \$\$QT_BUILD_TREE/lib
5818 include(\$\$PWD/mkspecs/qmodule.pri)
5819 CONFIG += $QMAKE_CONFIG dylib depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
5823 #dump the qmake spec
5824 if [ -d "$outpath/mkspecs/$XPLATFORM" ]; then
5825 echo "QMAKESPEC = \$\$QT_BUILD_TREE/mkspecs/$XPLATFORM" >> "$CACHEFILE.tmp"
5827 echo "QMAKESPEC = $XPLATFORM" >> "$CACHEFILE.tmp"
5830 # replace .qmake.cache if it differs from the newly created temp file
5831 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
5832 rm -f "$CACHEFILE.tmp"
5834 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
5837 #-------------------------------------------------------------------------------
5838 # give feedback on configuration
5839 #-------------------------------------------------------------------------------
5843 if [ "$CFG_EXCEPTIONS" != "no" ]; then
5846 This target is using the GNU C++ compiler ($PLATFORM).
5848 Recent versions of this compiler automatically include code for
5849 exceptions, which increase both the size of the Qt libraries and
5850 the amount of memory taken by your applications.
5852 You may choose to re-run `basename $0` with the -no-exceptions
5853 option to compile Qt without exceptions. This is completely binary
5854 compatible, and existing applications will continue to work.
5862 if [ "$CFG_EXCEPTIONS" != "no" ]; then
5865 This target is using the MIPSpro C++ compiler ($PLATFORM).
5867 You may choose to re-run `basename $0` with the -no-exceptions
5868 option to compile Qt without exceptions. This will make the
5869 size of the Qt library smaller and reduce the amount of memory
5870 taken by your applications.
5882 if [ "$XPLATFORM" = "$PLATFORM" ]; then
5883 echo "Build type: $PLATFORM"
5885 echo "Building on: $PLATFORM"
5886 echo "Building for: $XPLATFORM"
5889 echo "Architecture: $CFG_ARCH"
5890 echo "Host architecture: $CFG_HOST_ARCH"
5892 if [ -n "$PLATFORM_NOTES" ]; then
5893 echo "Platform notes:"
5894 echo "$PLATFORM_NOTES"
5899 if [ "$OPT_VERBOSE" = "yes" ]; then
5900 echo $ECHO_N "qmake vars .......... $ECHO_C"
5901 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
5902 echo "qmake switches ......... $QMAKE_SWITCHES"
5905 echo "Build .................. $CFG_BUILD_PARTS"
5906 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
5907 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5908 echo "Debug .................. yes (combined)"
5909 if [ "$CFG_DEBUG" = "yes" ]; then
5910 echo "Default Link ........... debug"
5912 echo "Default Link ........... release"
5915 echo "Debug .................. $CFG_DEBUG"
5917 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
5918 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
5919 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
5920 echo "QtConcurrent code ...... $CFG_CONCURRENT"
5921 echo "QtGui module ........... $CFG_GUI"
5922 echo "QtWidgets module ....... $CFG_WIDGETS"
5923 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5924 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
5926 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
5928 echo "Declarative debugging ...$CFG_DECLARATIVE_DEBUG"
5929 echo "STL support ............ $CFG_STL"
5930 echo "PCH support ............ $CFG_PRECOMPILE"
5931 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
5932 echo "MMX/3DNOW/SSE/SSE2/SSE3. ${CFG_MMX}/${CFG_3DNOW}/${CFG_SSE}/${CFG_SSE2}/${CFG_SSE3}"
5933 echo "SSSE3/SSE4.1/SSE4.2..... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
5934 echo "AVX..................... ${CFG_AVX}"
5935 elif [ "$CFG_ARCH" = "arm" ]; then
5936 echo "iWMMXt support ......... ${CFG_IWMMXT}"
5937 echo "NEON support ........... ${CFG_NEON}"
5939 if [ "$CFG_ARCH" = "mips" ]; then
5940 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
5942 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
5943 echo "getaddrinfo support .... $CFG_GETADDRINFO"
5944 echo "getifaddrs support ..... $CFG_GETIFADDRS"
5945 echo "Accessibility .......... $CFG_ACCESSIBILITY"
5946 echo "NIS support ............ $CFG_NIS"
5947 echo "CUPS support ........... $CFG_CUPS"
5948 echo "Iconv support .......... $CFG_ICONV"
5949 echo "Glib support ........... $CFG_GLIB"
5950 echo "GStreamer support ...... $CFG_GSTREAMER"
5951 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
5952 echo "Large File support ..... $CFG_LARGEFILE"
5953 echo "GIF support ............ $CFG_GIF"
5954 if [ "$CFG_JPEG" = "no" ]; then
5955 echo "JPEG support ........... $CFG_JPEG"
5957 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
5959 if [ "$CFG_PNG" = "no" ]; then
5960 echo "PNG support ............ $CFG_PNG"
5962 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
5964 echo "zlib support ........... $CFG_ZLIB"
5965 echo "Session management ..... $CFG_SM"
5966 echo "libudev support ........ $CFG_LIBUDEV"
5968 if [ "$CFG_OPENGL" = "desktop" ]; then
5969 echo "OpenGL support ......... yes (Desktop OpenGL)"
5970 elif [ "$CFG_OPENGL" = "es2" ]; then
5971 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
5973 echo "OpenGL support ......... no"
5976 if [ "$CFG_OPENVG" ]; then
5977 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5978 echo "OpenVG support ......... ShivaVG"
5980 echo "OpenVG support ......... $CFG_OPENVG"
5984 echo "XShape support ......... $CFG_XSHAPE"
5985 echo "XVideo support ......... $CFG_XVIDEO"
5986 echo "XSync support .......... $CFG_XSYNC"
5987 echo "Xinerama support ....... $CFG_XINERAMA"
5988 echo "Xcursor support ........ $CFG_XCURSOR"
5989 echo "Xfixes support ......... $CFG_XFIXES"
5990 echo "Xrandr support ......... $CFG_XRANDR"
5991 echo "Xi support ............. $CFG_XINPUT"
5992 echo "MIT-SHM support ........ $CFG_MITSHM"
5993 echo "FontConfig support ..... $CFG_FONTCONFIG"
5994 echo "XKB Support ............ $CFG_XKB"
5995 echo "immodule support ....... $CFG_IM"
5996 echo "GTK theme support ...... $CFG_QGTKSTYLE"
5998 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
5999 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6000 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6001 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6002 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6003 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6004 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6005 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6006 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6009 if [ "$CFG_OPENSSL" = "yes" ]; then
6010 OPENSSL_LINKAGE="(run-time)"
6011 elif [ "$CFG_OPENSSL" = "linked" ]; then
6012 OPENSSL_LINKAGE="(linked)"
6014 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6015 echo "Alsa support ........... $CFG_ALSA"
6016 if [ "$BUILD_ON_MAC" = "yes" ]; then
6017 echo "CoreWlan support ....... $CFG_COREWLAN"
6019 echo "libICU support ......... $CFG_ICU"
6020 echo "PCRE support ........... $CFG_PCRE"
6021 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6022 echo "Xcb support ............ limited (old version)"
6024 echo "Xcb support ............ $CFG_XCB"
6026 echo "Xrender support ........ $CFG_XRENDER"
6027 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6028 echo "XInput2 support ........ $CFG_XINPUT2"
6030 echo "EGLFS support .......... $CFG_EGLFS"
6033 # complain about not being able to use dynamic plugins if we are using a static build
6034 if [ "$CFG_SHARED" = "no" ]; then
6036 echo "WARNING: Using static linking will disable the use of dynamically"
6037 echo "loaded plugins. Make sure to import all needed static plugins,"
6038 echo "or compile needed modules into the library."
6041 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6043 echo "NOTE: When linking against OpenSSL, you can override the default"
6044 echo "library names through OPENSSL_LIBS."
6046 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
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*) 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\'.