2 #############################################################################
4 ## Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
5 ## Contact: http://www.qt-project.org/
7 ## This file is the build configuration utility of the Qt Toolkit.
9 ## $QT_BEGIN_LICENSE:LGPL$
10 ## GNU Lesser General Public License Usage
11 ## This file may be used under the terms of the GNU Lesser General Public
12 ## License version 2.1 as published by the Free Software Foundation and
13 ## appearing in the file LICENSE.LGPL included in the packaging of this
14 ## file. Please review the following information to ensure the GNU Lesser
15 ## General Public License version 2.1 requirements will be met:
16 ## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
18 ## In addition, as a special exception, Nokia gives you certain additional
19 ## rights. These rights are described in the Nokia Qt LGPL Exception
20 ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
22 ## GNU General Public License Usage
23 ## Alternatively, this file may be used under the terms of the GNU General
24 ## Public License version 3.0 as published by the Free Software Foundation
25 ## and appearing in the file LICENSE.GPL included in the packaging of this
26 ## file. Please review the following information to ensure the GNU General
27 ## Public License version 3.0 requirements will be met:
28 ## http://www.gnu.org/copyleft/gpl.html.
31 ## Alternatively, this file may be used in accordance with the terms and
32 ## conditions contained in a signed written agreement between you and Nokia.
41 #############################################################################
43 #-------------------------------------------------------------------------------
44 # script initialization
45 #-------------------------------------------------------------------------------
47 # the name of this script
49 # the directory of this script is the "source tree"
51 relpath=`(cd "$relpath"; /bin/pwd)`
52 # the current directory is the "build tree" or "object tree"
55 #license file location
56 LICENSE_FILE="$QT_LICENSE_FILE"
57 [ -z "$LICENSE_FILE" ] && LICENSE_FILE="$HOME/.qt-license"
58 if [ -f "$LICENSE_FILE" ]; then
59 tr -d '\r' <"$LICENSE_FILE" >"${LICENSE_FILE}.tmp"
60 diff "${LICENSE_FILE}.tmp" "${LICENSE_FILE}" >/dev/null 2>&1 || LICENSE_FILE="${LICENSE_FILE}.tmp"
63 # later cache the command line in config.status
64 OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
66 # initialize global variables
73 QMAKE_VARS_FILE=.qmake.vars
74 DEVICE_VARS_FILE=.device.vars
77 :> "$DEVICE_VARS_FILE"
79 #-------------------------------------------------------------------------------
81 #-------------------------------------------------------------------------------
85 echo "$@" | sed 's/ /\ /g'
88 # Adds a new qmake variable to the cache
89 # Usage: QMakeVar mode varname contents
90 # where mode is one of: set, add, del
104 echo >&2 "BUG: wrong command to QMakeVar: $1"
108 echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
111 shellArgumentListToQMakeListHelper()
114 for arg in "$@"; do retval="$retval \"$arg\""; done
118 # Convert a string usable on a shell command line into word-by-word quoted
120 shellArgumentListToQMakeList()
122 # eval is needed for the shell to interpret the backslash escape sequences
123 eval shellArgumentListToQMakeListHelper "$@"
126 # Helper function for getQMakeConf. It parses include statements in
127 # qmake.conf and prints out the expanded file
130 while read line; do case "$line" in
132 inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"`
133 current_dir=`dirname "$1"`
134 conf_file="$current_dir/$inc_file"
135 if [ ! -f "$conf_file" ]; then
136 echo "WARNING: Unable to find file $conf_file" >&2
139 getQMakeConf1 "$conf_file"
141 *load\(device_config\)*)
142 conf_file="$DEVICE_VARS_FILE"
143 if [ ! -f "$conf_file" ]; then
144 echo "WARNING: Unable to find file $conf_file" >&2
147 getQMakeConf1 "$conf_file"
159 values["LITERAL_WHITESPACE"] = " "
160 values["LITERAL_DOLLAR"] = "$"
162 /^[_A-Z0-9.]+[ \t]*\+?=/ {
163 valStart = index($0, "=") + 1
166 if (substr($0, valStart - 2, 1) == "+") {
170 variable = substr($0, 0, valStart - 2 - append)
171 value = substr($0, valStart)
172 gsub("[ \t]+", "", variable)
173 gsub("^[ \t]+", "", value)
174 gsub("[ \t]+$", "", value)
177 while (match(value, /\$\$(\{[_A-Z0-9.]+\}|[_A-Z0-9.]+)/)) {
178 ovalue = ovalue substr(value, 1, RSTART - 1)
179 var = substr(value, RSTART + 2, RLENGTH - 2)
180 value = substr(value, RSTART + RLENGTH)
182 var = substr(var, 2, length(var) - 2)
184 ovalue = ovalue values[var]
186 ovalue = ovalue value
188 combinedValue = values[variable]
189 if (append == 1 && length(combinedValue) > 0) {
190 combinedValue = combinedValue " " ovalue
192 combinedValue = ovalue
194 values[variable] = combinedValue
197 for (var in values) {
198 print var "=" values[var]
206 echo "$2" | $AWK "/^($1)=/ { print substr(\$0, index(\$0, \"=\") + 1) }"
209 # relies on $QMAKESPEC being set correctly. parses include statements in
210 # qmake.conf and prints out the expanded file
213 if [ -z "$specvals" ]; then
214 specvals=`getQMakeConf1 "$QMAKESPEC/qmake.conf" | getQMakeConf2`
216 getQMakeConf3 "$1" "$specvals"
221 if [ -z "$xspecvals" ]; then
222 xspecvals=`getQMakeConf1 "$XQMAKESPEC/qmake.conf" | getQMakeConf2`
224 getQMakeConf3 "$1" "$xspecvals"
227 # relies on $TEST_COMPILER being set correctly
228 compilerSupportsFlag()
230 cat >conftest.cpp <<EOF
231 int main() { return 0; }
233 "$TEST_COMPILER" "$@" -o conftest.o conftest.cpp
235 rm -f conftest.cpp conftest.o
239 # relies on $TEST_COMPILER being set correctly
245 safe_flag=`shellEscape "$flag"`
246 lflags=$lflags,$safe_flag
248 compilerSupportsFlag "$lflags" >/dev/null 2>&1
251 # $1: newline-separated list of default paths
253 # stdout: input path or nothing
258 echo "$1" | grep "^$path\$" > /dev/null || echo "$path"
263 filterDefaultPaths "$DEFAULT_INCDIRS"
268 filterDefaultPaths "$DEFAULT_LIBDIRS"
271 filterPathOptionsHelper()
273 local flag defpaths sep p path
279 if [ "x$path" != "x$p" ]; then
280 path=`echo "$path" | filterDefaultPaths "$defpaths"`
281 test -z "$path" && continue
283 # Re-quote for shell & qmake
284 p=`echo "$p" | sed 's,[^ ]* .*,"&",g'`
285 printf "%s%s" "$sep" "$p"
292 # $2: newline-separated list of default paths
293 # stdin: list of command line options
294 # sdout: stdin without the options naming default paths
297 # The eval does escape interpretation for us
298 eval filterPathOptionsHelper $1 "\"$2\"" "`cat`"
301 filterIncludeOptions()
303 filterPathOptions -I "$DEFAULT_INCDIRS"
306 filterLibraryOptions()
308 filterPathOptions -L "$DEFAULT_LIBDIRS"
311 #-------------------------------------------------------------------------------
313 #-------------------------------------------------------------------------------
321 echo >&2 "BUG: wrong command to QMakeVar: $1"
325 echo "$2" "$eq" "$3" >> "$DEVICE_VARS_FILE"
328 resolveDeviceMkspec()
330 result=$(find "$relpath/mkspecs/devices/" -type d -name "*$1*" | sed "s,^$relpath/mkspecs/,,")
331 match_count=$(echo "$result" | wc -w)
332 if [ "$match_count" -gt 1 ]; then
333 echo >&2 "Error: Multiple matches for device '$1'. Candidates are:"
334 tabbed_result=$(echo "$result" | sed "s,^, ,")
335 echo >&2 "$tabbed_result"
337 elif [ "$match_count" -eq 0 ]; then
338 echo >&2 "Error: No device matching '$1'"
345 #-------------------------------------------------------------------------------
346 # operating system detection
347 #-------------------------------------------------------------------------------
349 # need that throughout the script
350 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
351 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
352 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
353 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
355 # detect the "echo without newline" style. usage: echo $ECHO_N "<string>$ECHO_C"
356 if echo '\c' | grep '\c' >/dev/null; then
362 #-------------------------------------------------------------------------------
363 # window system detection
364 #-------------------------------------------------------------------------------
368 if [ -d /System/Library/Frameworks/Carbon.framework ]; then
373 #-----------------------------------------------------------------------------
374 # Qt version detection
375 #-----------------------------------------------------------------------------
376 QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
380 if [ -n "$QT_VERSION" ]; then
381 QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
382 MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
383 if [ -n "$MAJOR" ]; then
384 MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
385 PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
386 QT_MAJOR_VERSION="$MAJOR"
387 [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
388 [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
391 if [ -z "$QT_MAJOR_VERSION" ]; then
392 echo "Cannot process version from qglobal.h: $QT_VERSION"
393 echo "Cannot proceed."
397 QT_PACKAGEDATE=`grep '^# *define *QT_PACKAGEDATE_STR' "$relpath"/src/corelib/global/qglobal.h | sed -e 's,^# *define *QT_PACKAGEDATE_STR *"\([^ ]*\)"$,\1,' -e s,-,,g`
398 if [ -z "$QT_PACKAGEDATE" ]; then
399 echo "Unable to determine package date from qglobal.h: '$QT_PACKAGEDATE'"
400 echo "Cannot proceed"
404 #-------------------------------------------------------------------------------
406 #-------------------------------------------------------------------------------
410 EditionString=Commercial
414 # parse the arguments, setting things to "yes" or "no"
415 while [ "$#" -gt 0 ]; do
419 #Autoconf style options
421 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
425 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
429 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
430 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
433 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
436 -h|help|--help|-help)
437 if [ "$VAL" = "yes" ]; then
439 COMMERCIAL_USER="no" #doesn't matter we will display the help
442 COMMERCIAL_USER="no" #doesn't matter we will display the help
446 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
450 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
457 if [ "$UNKNOWN_ARG" = "yes" ]; then
469 COMMERCIAL_USER="yes"
483 if [ "$COMMERCIAL_USER" = "ask" ]; then
485 echo "Which edition of Qt do you want to use ?"
487 echo "Type 'c' if you want to use the Commercial Edition."
488 echo "Type 'o' if you want to use the Open Source Edition."
492 if [ "$commercial" = "c" ]; then
493 COMMERCIAL_USER="yes"
495 elif [ "$commercial" = "o" ]; then
502 if [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
503 # Commercial preview release
504 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
507 QT_EDITION="QT_EDITION_DESKTOP"
508 LicenseType="Technology Preview"
509 elif [ $COMMERCIAL_USER = "yes" ]; then
510 # one of commercial editions
511 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
513 # read in the license file
514 if [ -f "$LICENSE_FILE" ]; then
515 . "$LICENSE_FILE" >/dev/null 2>&1
516 if [ -z "$LicenseKeyExt" ]; then
518 echo "You are using an old license file."
520 echo "Please install the license file supplied by Nokia,"
521 echo "or install the Qt Open Source Edition if you intend to"
522 echo "develop free software."
525 if [ -z "$Licensee" ]; then
527 echo "Invalid license key. Please check the license key."
531 if [ -z "$LicenseKeyExt" ]; then
533 echo $ECHO_N "Please enter your license key: $ECHO_C"
535 Licensee="Unknown user"
540 echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
541 && LicenseValid="yes" \
543 if [ "$LicenseValid" != "yes" ]; then
545 echo "Invalid license key. Please check the license key."
548 ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
549 PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d -`
550 LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
551 LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
553 # determine which edition we are licensed to use
554 case "$LicenseTypeCode" in
556 LicenseType="Commercial"
560 QT_EDITION="QT_EDITION_UNIVERSAL"
563 Edition="FullFramework"
564 EditionString="Full Framework"
565 QT_EDITION="QT_EDITION_DESKTOP"
568 Edition="GUIFramework"
569 EditionString="GUI Framework"
570 QT_EDITION="QT_EDITION_DESKTOPLIGHT"
575 LicenseType="Evaluation"
576 QMakeVar add DEFINES QT_EVAL
580 QT_EDITION="QT_EDITION_EVALUATION"
585 if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
587 echo "Invalid license key. Please check the license key."
591 # verify that we are licensed to use Qt on this platform
593 case "$PlatformCode" in
596 PlatformCode=`echo "$PlatformCode" | sed 'h;y/8NPQRTZ/UCWX9M7/;x;G;s/\(.\)....\(.\)./\1\2/'`
600 PlatformCode=`echo "$PlatformCode" | sed 's/.$//'`
603 ### EMBEDDED_QPA logic missing ###
604 case "$PlatformCode,$PLATFORM_MAC" in
605 X9,* | XC,* | XU,* | XW,* | XM,*)
607 LICENSE_EXTENSION="-ALLOS"
609 8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*)
610 # Qt for Embedded Linux
611 LICENSE_EXTENSION="-EMBEDDED"
613 6M,* | N7,* | N9,* | NX,*)
615 LICENSE_EXTENSION="-EMBEDDED"
617 FM,* | LM,yes | ZM,no)
619 LICENSE_EXTENSION="-DESKTOP"
623 [ "$PLATFORM_MAC" = "yes" ] && Platform='Mac OS X'
625 echo "You are not licensed for the $Platform platform."
627 echo "Please contact qt-info@nokia.com to upgrade your license to"
628 echo "include the $Platform platform, or install the Qt Open Source Edition"
629 echo "if you intend to develop free software."
634 if test -r "$relpath/.LICENSE"; then
635 # Generic, non-final license
637 line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
642 *TECHNOLOGY?PREVIEW*)
649 echo >&2 "Invalid license files; cannot continue"
654 EditionString="$Edition"
655 QT_EDITION="QT_EDITION_DESKTOP"
658 case "$LicenseFeatureCode" in
661 case "$LicenseType" in
663 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
666 cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
672 case "$LicenseType" in
674 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
677 cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
683 echo "Invalid license key. Please check the license key."
687 case "$LicenseFeatureCode" in
695 if [ '!' -f "$outpath/LICENSE" ]; then
696 echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
697 echo "this software has disappeared."
699 echo "Sorry, you are not licensed to use this software."
700 echo "Try re-installing."
704 elif [ $COMMERCIAL_USER = "no" ]; then
705 # Open Source edition - may only be used under the terms of the GPL or LGPL.
706 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
707 Licensee="Open Source"
709 EditionString="Open Source"
710 QT_EDITION="QT_EDITION_OPENSOURCE"
713 #-------------------------------------------------------------------------------
714 # initalize variables
715 #-------------------------------------------------------------------------------
717 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
718 for varname in $SYSTEM_VARIABLES; do
719 qmakevarname="${varname}"
720 # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
721 if [ "${varname}" = "LDFLAGS" ]; then
722 qmakevarname="LFLAGS"
723 elif [ "${varname}" = "LD" ]; then
727 'if [ -n "\$'${varname}'" ]; then
728 QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
732 # Use CC/CXX to run config.tests
733 mkdir -p "$outpath/config.tests"
734 rm -f "$outpath/config.tests/.qmake.cache"
735 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
737 QMakeVar add styles "cde mac motif plastique cleanlooks windows"
739 # QTDIR may be set and point to an old or system-wide Qt installation
742 # the minimum version of libdbus-1 that we require:
743 MIN_DBUS_1_VERSION=0.93
745 # initalize internal variables
746 CFG_CONFIGURE_EXIT_ON_ERROR=yes
749 CFG_GUI=auto # (yes|no|auto)
755 CFG_FORCEDEBUGINFO=no
776 CFG_OPENVG_LC_INCLUDES=no
777 CFG_OPENVG_SHIVA=auto
778 CFG_OPENVG_ON_OPENGL=auto
784 QT_DEFAULT_BUILD_PARTS="libs tools examples"
788 CFG_AUDIO_BACKEND=auto
791 CFG_JAVASCRIPTCORE_JIT=auto
794 # Target architecture
797 # Host architecture, same as CFG_ARCH when not cross-compiling
799 CFG_HOST_CPUFEATURES=
800 # Set when the -arch or -host-arch arguments are used
801 OPT_OBSOLETE_HOST_ARG=no
815 CFG_OBSOLETE_WAYLAND=no
827 CFG_SEPARATE_DEBUG_INFO=no
828 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
829 CFG_REDUCE_EXPORTS=auto
837 CFG_REDUCE_RELOCATIONS=auto
838 CFG_ACCESSIBILITY=auto
843 CFG_CLOCK_GETTIME=auto
844 CFG_CLOCK_MONOTONIC=auto
852 MAC_CONFIG_TEST_COMMANDLINE= # used to make the configure tests run with the correct arch's and SDK settings
854 CFG_PREFIX_INSTALL=yes
863 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
864 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
869 OPT_CONFIRM_LICENSE=no
882 QPA_PLATFORM_GUARD=yes
885 # initalize variables used for installation
894 QT_INSTALL_TRANSLATIONS=
899 CFG_GCC_SYSROOT="yes"
904 #flags for SQL drivers
912 QT_LFLAGS_ODBC="-lodbc"
915 # flags for libdbus-1
919 # flags for Glib (X11 only)
923 # flags for GStreamer (X11 only)
927 # default qpa platform
928 QT_QPA_DEFAULT_PLATFORM=
930 #-------------------------------------------------------------------------------
931 # check SQL drivers available in this package
932 #-------------------------------------------------------------------------------
934 # opensource version removes some drivers, so force them to be off
940 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
941 for a in "$relpath/src/plugins/sqldrivers/"*; do
943 base_a=`basename "$a"`
944 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
945 eval "CFG_SQL_${base_a}=auto"
950 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
951 if [ -d "$relpath/src/plugins/imageformats" ]; then
952 for a in "$relpath/src/plugins/imageformats/"*; do
954 base_a=`basename "$a"`
955 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
960 #-------------------------------------------------------------------------------
961 # parse command line arguments
962 #-------------------------------------------------------------------------------
964 # parse the arguments, setting things to "yes" or "no"
965 while [ "$#" -gt 0 ]; do
969 #Autoconf style options
971 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
975 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
979 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
980 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
983 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
987 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
991 -no-*-*|-plugin-*-*|-qt-*-*)
992 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
993 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
997 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
1000 #Qt style options that pass an argument
1001 -prefix|-docdir|-headerdir|-plugindir|-importdir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-testsdir|-depths|-make|-nomake|-platform|-xplatform|-device|-device-option|-sdk|-arch|-host-arch|-mysql_config|-sysroot|-hostdatadir|-hostbindir|-qpa|-qconfig)
1002 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1006 #Qt style complex options in one command
1007 -enable-*|-disable-*)
1008 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1009 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1011 #Qt Builtin/System style options
1012 -no-*|-system-*|-qt-*)
1013 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1014 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1016 #Options that cannot be generalized
1023 # this option may or may not be followed by an argument
1024 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1033 # this option may or may not be followed by an argument
1034 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1042 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1043 # this option may or may not be followed by an argument
1044 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1063 if [ "$1" = "-D" ]; then
1067 VAL=`echo $1 | sed 's,-D,,'`
1072 # this option may or may not be followed by an argument
1073 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1082 if [ "$1" = "-I" ]; then
1086 VAL=`echo $1 | sed 's,-I,,'`
1091 if [ "$1" = "-L" ]; then
1095 VAL=`echo $1 | sed 's,-L,,'`
1100 if [ "$1" = "-R" ]; then
1104 VAL=`echo $1 | sed 's,-R,,'`
1109 if [ "$1" = "-l" ]; then
1113 VAL=`echo $1 | sed 's,-l,,'`
1118 if [ "$1" = "-F" ]; then
1122 VAL=`echo $1 | sed 's,-F,,'`
1127 if [ "$1" = "-fw" ]; then
1131 VAL=`echo $1 | sed 's,-fw,,'`
1138 #General options, including Qt style yes options
1140 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1147 if [ "$UNKNOWN_ARG" = "yes" ]; then
1148 echo "$1: unknown argument"
1159 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1160 CFG_ACCESSIBILITY="$VAL"
1169 CFG_USE_GNUMAKE="$VAL"
1172 CFG_MYSQL_CONFIG="$VAL"
1175 QT_INSTALL_PREFIX="$VAL"
1178 QT_HOST_PREFIX="$VAL"
1187 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1188 CFG_PKGCONFIG="$VAL"
1194 CFG_PKGCONFIG="force"
1197 QT_INSTALL_DOCS="$VAL"
1200 QT_INSTALL_HEADERS="$VAL"
1203 QT_INSTALL_PLUGINS="$VAL"
1206 QT_INSTALL_IMPORTS="$VAL"
1209 QT_INSTALL_DATA="$VAL"
1212 QT_INSTALL_LIBS="$VAL"
1221 QT_INSTALL_TRANSLATIONS="$VAL"
1223 sysconfdir|settingsdir)
1224 QT_INSTALL_SETTINGS="$VAL"
1227 QT_INSTALL_EXAMPLES="$VAL"
1230 QT_INSTALL_TESTS="$VAL"
1239 CFG_GCC_SYSROOT="$VAL"
1242 QT_INSTALL_BINS="$VAL"
1245 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1252 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1253 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1254 [ "$VAL" = "es2" ]; then
1261 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1268 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1271 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1274 if [ "$BUILD_ON_MAC" = "yes" ]; then
1281 OPT_OBSOLETE_HOST_ARG=yes
1284 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1285 CFG_MAC_HARFBUZZ="$VAL"
1292 if [ "$BUILD_ON_MAC" = "yes" ]; then
1293 CFG_FRAMEWORK="$VAL"
1299 if [ "$VAL" = "yes" ]; then
1301 QMakeVar add QMAKE_CFLAGS -pg
1302 QMakeVar add QMAKE_CXXFLAGS -pg
1303 QMakeVar add QMAKE_LFLAGS -pg
1304 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1310 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1317 if [ "$VAL" = "yes" ]; then
1318 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1323 # keep compatibility with old platform names
1329 PLATFORM=hpux-acc-o64
1332 PLATFORM=hpux-acc-64
1335 PLATFORM=hpux-acc-64
1347 PLATFORM=reliant-cds-64
1350 PLATFORM=solaris-cc-64
1353 PLATFORM=unixware-cc
1356 PLATFORM=unixware-g++
1359 PLATFORM=unixware-cc
1362 PLATFORM=unixware-g++
1368 i386) NATIVE_64_ARCH="x86_64" ;;
1369 powerpc) NATIVE_64_ARCH="ppc64" ;;
1370 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1372 if [ ! -z "$NATIVE_64_ARCH" ]; then
1373 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1380 case `basename "$XPLATFORM"` in win32-g++*)
1384 CFG_REDUCE_EXPORTS=no
1389 XPLATFORM=`resolveDeviceMkspec $VAL`
1390 [ "$XPLATFORM" = "undefined" ] && exit 101
1393 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1394 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1395 DeviceVar set $DEV_VAR $DEV_VAL
1398 QT_QPA_DEFAULT_PLATFORM="$VAL"
1401 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1402 CFG_DEBUG_RELEASE="$VAL"
1408 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1409 CFG_RELEASE_QMAKE="$VAL"
1415 if [ "$VAL" = "yes" ]; then
1417 elif [ "$VAL" = "no" ]; then
1424 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1425 CFG_PREFIX_INSTALL="$VAL"
1434 CFG_FORCEDEBUGINFO="$VAL"
1436 developer-build|commercial|opensource)
1437 # These switches have been dealt with already
1440 if [ "$VAL" = "yes" ]; then
1442 elif [ "$VAL" = "no" ]; then
1449 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1450 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1456 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1457 if [ "$VAL" = "no" ]; then
1458 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1459 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1460 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1466 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1473 if [ "$VAL" = "no" ]; then
1480 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1488 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1495 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1502 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1509 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1516 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1523 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1530 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1537 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1538 CFG_PRECOMPILE="$VAL"
1543 separate-debug-info)
1544 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1545 CFG_SEPARATE_DEBUG_INFO="$VAL"
1546 elif [ "$VAL" = "nocopy" ] ; then
1547 CFG_SEPARATE_DEBUG_INFO="yes"
1548 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1554 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1555 CFG_REDUCE_EXPORTS="$VAL"
1561 if [ "$VAL" = "no" ]; then
1568 if [ "$VAL" = "no" ]; then
1575 if [ "$VAL" = "no" ]; then
1582 if [ "$VAL" = "no" ]; then
1589 if [ "$VAL" = "no" ]; then
1596 if [ "$VAL" = "no" ]; then
1603 if [ "$VAL" = "no" ]; then
1613 if [ "$VAL" = "no" ]; then
1620 if [ "$VAL" = "no" ]; then
1627 if [ "$VAL" = "no" ]; then
1628 CFG_MIPS_DSPR2="$VAL"
1634 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1635 CFG_REDUCE_RELOCATIONS="$VAL"
1641 [ "$VAL" = "qt" ] && VAL=yes
1642 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1647 # No longer supported:
1648 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1651 if [ "$VAL" = "system" ]; then
1658 [ "$VAL" = "yes" ] && VAL=qt
1659 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1666 [ "$VAL" = "yes" ] && VAL=qt
1667 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1674 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1681 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1688 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1695 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1702 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1709 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1710 CFG_FONTCONFIG="$VAL"
1716 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1723 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1730 CFG_OBSOLETE_WAYLAND=yes
1733 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1740 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1747 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1754 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1761 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1768 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1775 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1782 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1789 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1796 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1797 CFG_GSTREAMER="$VAL"
1803 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1804 CFG_QGTKSTYLE="$VAL"
1810 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1813 if [ "$VAL" = "no" ]; then
1821 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1823 elif [ "$VAL" = "no" ]; then
1830 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1831 QPA_PLATFORM_GUARD="$VAL"
1837 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1839 elif [ "$VAL" = "runtime" ]; then
1846 if [ "$VAL" = "yes" ]; then
1853 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1860 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1861 CFG_LARGEFILE="$VAL"
1867 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1874 if [ "$VAL" = "yes" ]; then
1875 CFG_OPENSSL="linked"
1881 if [ "$VAL" = "yes" ]; then
1884 if [ "$VAL" = "no" ]; then
1892 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1893 CFG_JAVASCRIPTCORE_JIT="$VAL"
1899 if [ "$VAL" = "yes" ]; then
1900 OPT_CONFIRM_LICENSE="$VAL"
1906 if [ "$VAL" = "yes" ]; then
1912 sql-*|imageformat-*)
1913 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1914 # if autoconf style options were used, $VAL can be "yes" or "no"
1915 [ "$VAL" = "yes" ] && VAL=qt
1916 # now $VAL should be "no", "qt", or "plugin"... double-check
1917 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1920 # now $VAL is "no", "qt", or "plugin"
1922 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1923 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1925 # Grab the available values
1928 avail="$CFG_SQL_AVAILABLE"
1931 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1932 if [ "$OPT" != "plugin" ]; then
1933 # png is always built in
1939 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1943 # Check that that user's value is available.
1946 if [ "$VAL" = "$d" ]; then
1951 [ "$found" = yes ] || ERROR=yes
1953 if [ "$VAR" = "sql" ]; then
1954 # set the CFG_SQL_driver
1955 eval "CFG_SQL_$VAL=\$OPT"
1957 elif [ "$VAR" = "imageformat" ]; then
1958 [ "$OPT" = "qt" ] && OPT=yes
1959 VAL="`echo $VAL |tr a-z A-Z`"
1960 eval "CFG_$VAL=$OPT"
1964 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1965 if [ "$OPT" = "plugin" ]; then
1968 QMakeVar add "${VAR}s" "${VAL}"
1969 elif [ "$OPT" = "no" ]; then
1970 PLUG_VAR="${VAR}-plugin"
1972 QMakeVar del "${IN_VAR}s" "$VAL"
1973 QMakeVar del "${PLUG_VAR}s" "$VAL"
1975 if [ "$ERROR" = "yes" ]; then
1976 echo "$CURRENT_OPT: unknown argument"
1981 if [ "$VAL" = "yes" ]; then
1982 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1983 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1987 elif [ "$VAL" = "no" ]; then
1988 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1989 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1998 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2005 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2012 DEFINES="$DEFINES \"$VAL\""
2013 D_FLAGS="$D_FLAGS -D\"$VAL\""
2016 I_FLAGS="$I_FLAGS -I\"${VAL}\""
2019 L_FLAGS="$L_FLAGS -L\"${VAL}\""
2022 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2025 L_FLAGS="$L_FLAGS -l\"${VAL}\""
2028 if [ "$BUILD_ON_MAC" = "yes" ]; then
2029 L_FLAGS="$L_FLAGS -F\"${VAL}\""
2030 I_FLAGS="$I_FLAGS -F\"${VAL}\""
2036 if [ "$BUILD_ON_MAC" = "yes" ]; then
2037 L_FLAGS="$L_FLAGS -framework \"${VAL}\""
2043 W_FLAGS="$W_FLAGS \"${VAL}\""
2058 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2059 CFG_AUDIO_BACKEND="$VAL"
2065 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2072 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2073 CFG_FORCE_ASSERTS="$VAL"
2079 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2086 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2096 if [ "$UNKNOWN_OPT" = "yes" ]; then
2097 echo "${CURRENT_OPT}: invalid command-line switch"
2103 # update QT_CONFIG to show our current predefined configuration
2104 case "$CFG_QCONFIG" in
2105 minimal|small|medium|large|full)
2106 # these are a sequence of increasing functionality
2107 for c in minimal small medium large full; do
2108 QT_CONFIG="$QT_CONFIG $c-config"
2109 [ "$CFG_QCONFIG" = $c ] && break
2113 # not known to be sufficient for anything
2114 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2115 echo >&2 "Error: configuration file not found:"
2116 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2118 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2123 #-------------------------------------------------------------------------------
2124 # build tree initialization
2125 #-------------------------------------------------------------------------------
2127 # where to find which..
2128 unixtests="$relpath/config.tests/unix"
2129 mactests="$relpath/config.tests/mac"
2130 WHICH="$unixtests/which.test"
2132 PERL=`$WHICH perl 2>/dev/null`
2134 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2136 for e in gawk nawk awk; do
2137 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2144 PERL="/usr/bin/perl"
2145 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2149 ### skip this if the user just needs help...
2150 if [ "$OPT_HELP" != "yes" ]; then
2152 # is this a shadow build?
2153 if [ "$OPT_SHADOW" = "maybe" ]; then
2155 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2156 if [ -h "$outpath" ]; then
2157 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2163 if [ "$OPT_SHADOW" = "yes" ]; then
2164 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2165 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2166 echo >&2 "Cannot proceed."
2169 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2172 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2174 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2175 echo "Qt can be built in release mode with separate debug information, so"
2176 echo "-debug-and-release is not necessary anymore"
2180 if [ "$CFG_SILENT" = "yes" ]; then
2181 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2184 # if the source tree is different from the build tree,
2185 # symlink or copy part of the sources
2186 if [ "$OPT_SHADOW" = "yes" ]; then
2187 echo "Preparing build tree..."
2189 if [ -z "$PERL" ]; then
2191 echo "You need perl in your PATH to make a shadow build."
2192 echo "Cannot proceed."
2196 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2198 # make a syncqt script that can be used in the shadow
2199 rm -f "$outpath/bin/syncqt"
2200 if [ -x "$relpath/bin/syncqt" ]; then
2201 mkdir -p "$outpath/bin"
2202 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2203 echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2204 chmod 755 "$outpath/bin/syncqt"
2207 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2208 rm -f "$outpath/bin/$i"
2209 if [ -x "$relpath/bin/$i" ]; then
2210 mkdir -p "$outpath/bin"
2211 echo "#!/bin/sh" >"$outpath/bin/$i"
2212 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2213 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2214 chmod 755 "$outpath/bin/$i"
2218 # save a pre-existing mkspecs/modules dir
2219 test -d "$outpath/mkspecs/modules" && \
2220 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2221 # ditto for mkspecs/modules-inst
2222 test -d "$outpath/mkspecs/modules-inst" && \
2223 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2225 # symlink the mkspecs directory
2226 mkdir -p "$outpath/mkspecs"
2227 rm -rf "$outpath"/mkspecs/*
2228 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2229 rm -f "$outpath/mkspecs/default"
2233 rm -rf "$outpath/mkspecs/$1"
2234 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2235 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2238 # Special case for mkspecs/features directory.
2239 # To be able to place .prf files into a shadow build directory,
2240 # we're creating links for files only. The directory structure is reproduced.
2241 ShadowMkspecs features
2243 # The modules dir is special, too.
2244 if test -d "$outpath/mkspecs-modules"; then
2245 rm -rf "$outpath/mkspecs/modules"
2246 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2248 ShadowMkspecs modules
2251 # The modules-inst dir is not quite as special, but still.
2252 if test -d "$outpath/mkspecs-modules-inst"; then
2253 rm -rf "$outpath/mkspecs/modules-inst"
2254 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2257 # symlink the doc directory
2258 rm -rf "$outpath/doc"
2259 ln -s "$relpath/doc" "$outpath/doc"
2262 # symlink fonts to be able to run application from build directory
2263 if [ ! -d "${outpath}/lib/fonts" ]; then
2264 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2265 mkdir -p "${outpath}/lib"
2266 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2270 if [ "$OPT_FAST" = "auto" ]; then
2271 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2278 # find a make command
2279 if [ -z "$MAKE" ]; then
2281 for mk in gmake make; do
2282 if "$WHICH" $mk >/dev/null 2>&1; then
2287 if [ -z "$MAKE" ]; then
2288 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2289 echo >&2 "Cannot proceed."
2292 # export MAKE, we need it later in the config.tests
2298 #-------------------------------------------------------------------------------
2299 # auto-detect all that hasn't been specified in the arguments
2300 #-------------------------------------------------------------------------------
2302 if [ -z "$PLATFORM" ]; then
2304 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2306 OSX_VERSION=`uname -r | cut -d. -f1`
2307 # Select compiler. Use g++ unless we find a usable Clang version
2309 if [ "$OSX_VERSION" -ge 12 ]; then
2310 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2312 elif [ "$OSX_VERSION" -eq 11 ]; then
2313 # We're on Lion. Check if we have a supported Clang version
2314 case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2317 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2324 #PLATFORM=aix-g++-64
2326 #PLATFORM=aix-xlc-64
2328 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2338 # PLATFORM=dynix-g++
2344 PLATFORM=freebsd-g++
2346 - Also available for FreeBSD: freebsd-icc
2350 PLATFORM=openbsd-g++
2361 #PLATFORM=irix-cc-64
2363 - Also available for IRIX: irix-g++ irix-cc-64
2367 case "$UNAME_MACHINE" in
2369 #PLATFORM=hpuxi-acc-32
2370 PLATFORM=hpuxi-acc-64
2372 - Also available for HP-UXi: hpuxi-acc-32
2378 #PLATFORM=hpux-acc-64
2380 #PLATFORM=hpux-acc-o64
2382 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2391 - Also available for Tru64: tru64-g++
2395 case "$UNAME_MACHINE" in
2397 PLATFORM=linux-g++-64
2404 - Also available for Linux: linux-kcc linux-icc linux-cxx
2408 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2409 PLATFORM="solaris-g++"
2411 #PLATFORM=solaris-g++
2413 #PLATFORM=solaris-cc64
2416 - Also available for Solaris: solaris-g++ solaris-cc-64
2419 ReliantUNIX-*:*|SINIX-*:*)
2420 PLATFORM=reliant-cds
2421 #PLATFORM=reliant-cds-64
2423 - Also available for Reliant UNIX: reliant-cds-64
2433 #PLATFORM=unixware-g++
2434 PLATFORM=unixware-cc
2436 - Also available for OpenUNIX: unixware-g++
2440 #PLATFORM=unixware-g++
2441 PLATFORM=unixware-cc
2443 - Also available for UnixWare: unixware-g++
2450 - Also available for SCO OpenServer: sco-g++
2454 PLATFORM=unixware-g++
2457 PLATFORM=unsupported/qnx-g++
2460 if [ "$OPT_HELP" != "yes" ]; then
2462 echo " The build script does not currently recognize all" >&2
2463 echo " platforms supported by Qt." >&2
2464 echo " Rerun this script with a -platform option listed to" >&2
2465 echo " set the system/compiler combination you use." >&2
2472 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2474 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2475 case "$XPLATFORM" in linux-g++-maemo) XPLATFORM_MAEMO=yes;; esac
2476 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2478 if [ -d "$PLATFORM" ]; then
2479 QMAKESPEC="$PLATFORM"
2481 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2483 if [ -d "$XPLATFORM" ]; then
2484 XQMAKESPEC="$XPLATFORM"
2486 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2488 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2489 QT_CROSS_COMPILE=yes
2490 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2491 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2494 if [ "$BUILD_ON_MAC" = "yes" ]; then
2495 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2497 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2498 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2499 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2500 echo " built with 'macx-g++'" >&2
2506 # check specified platforms are supported
2507 if [ '!' -d "$QMAKESPEC" ]; then
2509 echo " The specified system/compiler is not supported:"
2513 echo " Please see the README file for a complete list."
2517 if [ '!' -d "$XQMAKESPEC" ]; then
2519 echo " The specified system/compiler is not supported:"
2523 echo " Please see the README file for a complete list."
2527 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2529 echo " The specified system/compiler port is not complete:"
2531 echo " $XQMAKESPEC/qplatformdefs.h"
2533 echo " Please contact qt-info@nokia.com."
2538 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2539 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2540 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2541 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2542 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2546 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2547 case `basename "$XPLATFORM"` in
2550 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2552 echo "Please contact qt-info@nokia.com to upgrade your license to"
2553 echo "include this platform, or install the Qt Open Source Edition"
2554 echo "if you intend to develop free software."
2560 #-------------------------------------------------------------------------------
2561 # tests that don't need qmake (must be run before displaying help)
2562 #-------------------------------------------------------------------------------
2564 # detect build style
2565 if [ "$CFG_DEBUG" = "auto" ]; then
2566 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2567 CFG_DEBUG_RELEASE=yes
2569 elif [ "$CFG_DEV" = "yes" ]; then
2570 CFG_DEBUG_RELEASE=no
2573 CFG_DEBUG_RELEASE=no
2577 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2578 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2581 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2582 QT_CONFIG="$QT_CONFIG force_debug_info"
2585 # pass on $CFG_SDK to the configure tests.
2586 if [ '!' -z "$CFG_SDK" ]; then
2587 MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -sdk $CFG_SDK"
2590 # find the default framework value
2591 if [ "$BUILD_ON_MAC" = "yes" ]; then
2592 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2593 CFG_FRAMEWORK="$CFG_SHARED"
2594 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2596 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2604 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2606 TEST_COMPILER=$QMAKE_CONF_COMPILER
2607 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2608 if [ -z "$TEST_COMPILER" ]; then
2609 echo "ERROR: Cannot set the compiler for the configuration tests"
2613 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2616 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2617 if [ -n "$GCC_MACHINE_DUMP" ]; then
2618 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2621 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2622 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2626 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2628 # auto-detect precompiled header support
2629 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2630 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2637 # auto-detect support for separate debug info in objcopy
2638 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2639 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2640 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2641 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2642 CFG_SEPARATE_DEBUG_INFO=no
2646 # binutils on HP-UX is buggy; default to no.
2647 CFG_SEPARATE_DEBUG_INFO=no
2650 CFG_SEPARATE_DEBUG_INFO=yes
2656 # auto-detect -fvisibility support
2657 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2658 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2659 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2660 echo "-reduce-exports was requested but this compiler does not support it"
2661 echo "Re-run configure with -v for more information"
2664 CFG_REDUCE_EXPORTS=no
2666 CFG_REDUCE_EXPORTS=yes
2670 # detect the availability of the -Bsymbolic-functions linker optimization
2671 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2672 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2673 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2674 echo "-reduce-relocations was requested but this compiler does not support it"
2675 echo "Re-run configure with -v for more information"
2678 CFG_REDUCE_RELOCATIONS=no
2680 CFG_REDUCE_RELOCATIONS=yes
2684 # auto-detect GNU make support
2685 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2689 # find the default framework value
2690 if [ "$BUILD_ON_MAC" = "yes" ]; then
2691 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2692 CFG_FRAMEWORK="$CFG_SHARED"
2693 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2695 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2703 # auto-detect default include and library search paths
2704 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2705 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2706 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2707 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2708 /^End of search/ { yup=0 }
2709 yup { print substr($0, 2) }
2710 /^\#include </ { yup=1 }
2712 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2714 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2717 #setup the build parts
2718 if [ -z "$CFG_BUILD_PARTS" ]; then
2719 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2721 # build tests by default, if a developer build
2722 if [ "$CFG_DEV" = "yes" ]; then
2723 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2726 # don't build tools by default when cross-compiling
2727 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2728 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2731 for nobuild in $CFG_NOBUILD_PARTS; do
2732 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2734 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2736 # echo "WARNING: libs is a required part of the build."
2738 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2741 #-------------------------------------------------------------------------------
2742 # post process QT_INSTALL_* variables
2743 #-------------------------------------------------------------------------------
2745 if [ -z "$QT_INSTALL_PREFIX" ]; then
2746 if [ "$CFG_DEV" = "yes" ]; then
2747 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2749 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2752 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2754 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2755 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2756 if [ "$BUILD_ON_MAC" = "yes" ]; then
2757 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2760 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2763 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2765 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2766 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2767 if [ "$BUILD_ON_MAC" = "yes" ]; then
2768 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2773 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2776 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2778 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2779 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2780 if [ "$BUILD_ON_MAC" = "yes" ]; then
2781 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2782 QT_INSTALL_LIBS="/Library/Frameworks"
2786 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2788 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2790 if [ -z "$QT_INSTALL_BINS" ]; then #default
2791 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2792 if [ "$BUILD_ON_MAC" = "yes" ]; then
2793 QT_INSTALL_BINS="/Developer/Applications/Qt"
2796 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2798 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2800 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2801 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2802 if [ "$BUILD_ON_MAC" = "yes" ]; then
2803 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2806 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2808 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2810 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2811 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2812 if [ "$BUILD_ON_MAC" = "yes" ]; then
2813 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2816 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2818 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2820 if [ -z "$QT_INSTALL_DATA" ]; then #default
2821 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2823 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2825 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2826 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2828 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2830 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2831 if [ "$BUILD_ON_MAC" = "yes" ]; then
2832 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2834 QT_INSTALL_SETTINGS=/etc/xdg
2837 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2839 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2840 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2841 if [ "$BUILD_ON_MAC" = "yes" ]; then
2842 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2845 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2847 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2850 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2851 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2852 if [ "$BUILD_ON_MAC" = "yes" ]; then
2853 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2856 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2858 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2860 #------- host paths --------
2862 if [ -z "$QT_HOST_PREFIX" ]; then
2863 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2866 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2870 if [ -z "$QT_HOST_BINS" ]; then #default
2872 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2873 if [ "$BUILD_ON_MAC" = "yes" ]; then
2874 QT_HOST_BINS="/Developer/Applications/Qt"
2877 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2879 QT_HOST_BINS="$QT_INSTALL_BINS"
2882 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2884 if [ -z "$QT_HOST_DATA" ]; then #default
2886 QT_HOST_DATA="$QT_HOST_PREFIX"
2888 QT_HOST_DATA="$QT_INSTALL_DATA"
2891 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2894 #-------------------------------------------------------------------------------
2895 # help - interactive parts of the script _after_ this section please
2896 #-------------------------------------------------------------------------------
2898 # next, emit a usage message if something failed.
2899 if [ "$OPT_HELP" = "yes" ]; then
2900 [ "x$ERROR" = "xyes" ] && echo
2901 if [ "$CFG_NIS" = "no" ]; then
2908 if [ "$CFG_CUPS" = "no" ]; then
2915 if [ "$CFG_ICONV" = "no" ]; then
2922 if [ "$CFG_LARGEFILE" = "no" ]; then
2929 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2937 if [ "$CFG_XCB" = "no" ]; then
2945 if [ "$CFG_EGLFS" = "no" ]; then
2953 if [ "$CFG_DIRECTFB" = "no" ]; then
2961 if [ "$CFG_LINUXFB" = "no" ]; then
2969 if [ "$CFG_KMS" = "no" ]; then
2977 if [ "$CFG_XINPUT2" = "no" ]; then
2985 if [ "$CFG_DBUS" = "no" ]; then
2993 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
3001 if [ "$CFG_GLIB" = "no" ]; then
3010 Usage: $relconf [options]
3012 Installation options:
3014 These are optional, but you may specify install directories.
3016 -prefix <dir> ...... This will install everything relative to <dir>
3017 (default $QT_INSTALL_PREFIX)
3019 -hostprefix [dir] .. Tools and libraries needed when developing
3020 applications are installed in [dir]. If [dir] is
3021 not given, the current build directory will be used.
3024 * -prefix-install .... Force a sandboxed "local" installation of
3025 Qt. This will install into
3026 $QT_INSTALL_PREFIX, if this option is
3027 disabled then some platforms will attempt a
3028 "system" install by placing default values to
3029 be placed in a system location other than
3032 You may use these to separate different parts of the install:
3034 -bindir <dir> ......... Executables will be installed to <dir>
3035 (default PREFIX/bin)
3036 -libdir <dir> ......... Libraries will be installed to <dir>
3037 (default PREFIX/lib)
3038 -docdir <dir> ......... Documentation will be installed to <dir>
3039 (default PREFIX/doc)
3040 -headerdir <dir> ...... Headers will be installed to <dir>
3041 (default PREFIX/include)
3042 -plugindir <dir> ...... Plugins will be installed to <dir>
3043 (default PREFIX/plugins)
3044 -importdir <dir> ...... Imports for QML will be installed to <dir>
3045 (default PREFIX/imports)
3046 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3048 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3049 (default PREFIX/translations)
3050 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3051 (default PREFIX/etc/settings)
3052 -examplesdir <dir> .... Examples will be installed to <dir>
3053 (default PREFIX/examples)
3054 -testsdir <dir> ....... Tests will be installed to <dir>
3055 (default PREFIX/tests)
3057 -hostbindir <dir> .. Host executables will be installed to <dir>
3058 (default HOSTPREFIX/bin)
3059 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3060 (default HOSTPREFIX)
3064 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3065 that needs to be evaluated. If the evaluation succeeds, the feature is
3066 included. Here is a short explanation of each option:
3068 * -release ........... Compile and link Qt with debugging turned off.
3069 -debug ............. Compile and link Qt with debugging turned on.
3070 -debug-and-release . Compile and link two versions of Qt, with and without
3071 debugging turned on (Mac only).
3073 -force-debug-info .. Create symbol files for release builds.
3075 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3077 -opensource ........ Compile and link the Open-Source Edition of Qt.
3078 -commercial ........ Compile and link the Commercial Edition of Qt.
3080 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3081 + -c++11 ............. Compile Qt with C++11 support enabled.
3083 * -shared ............ Create and use shared Qt libraries.
3084 -static ............ Create and use static Qt libraries.
3086 * -process ........... Generate only a top-level Makefile.
3087 -fully-process ..... Generate Makefiles for the entire Qt tree.
3088 -dont-process ...... Do not generate any Makefiles.
3090 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3092 -fast .............. Configure Qt quickly by generating Makefiles only for
3093 library and subdirectory targets. All other Makefiles
3094 are created as wrappers, which will in turn run qmake.
3096 -no-largefile ...... Disables large file support.
3097 + -largefile ......... Enables Qt to access files larger than 4 GB.
3099 -no-accessibility .. Do not compile Accessibility support.
3100 + -accessibility ..... Compile Accessibility support.
3102 -no-sql-<driver> ... Disable SQL <driver> entirely.
3103 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3105 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3108 Possible values for <driver>:
3109 [ $CFG_SQL_AVAILABLE ]
3111 -system-sqlite ..... Use sqlite from the operating system.
3113 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3114 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3116 -no-qml-debug ...... Do not build the in-process QML debugging support.
3117 + -qml-debug ......... Build the QML debugging support.
3119 -platform target ... The operating system and compiler you are building
3122 See the README file for a list of supported
3123 operating systems and compilers.
3125 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3126 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3127 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3128 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3129 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3130 -no-avx ............ Do not compile with use of AVX instructions.
3131 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3132 -no-neon ........... Do not compile with use of NEON instructions.
3133 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3134 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3136 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3137 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3139 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3141 -D <string> ........ Add an explicit define to the preprocessor.
3142 -I <string> ........ Add an explicit include path.
3143 -L <string> ........ Add an explicit library path.
3145 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3146 configure determines whether to use pkg-config or not with
3147 some heuristics such as checking the environment variables.
3148 -no-pkg-config ..... Disable use of pkg-config.
3149 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3150 detection heuristic).
3152 -help, -h .......... Display this information.
3154 Third Party Libraries:
3156 -qt-zlib ........... Use the zlib bundled with Qt.
3157 + -system-zlib ....... Use zlib from the operating system.
3158 See http://www.gzip.org/zlib
3160 -no-gif ............ Do not compile GIF reading support.
3162 -no-libpng ......... Do not compile PNG support.
3163 -qt-libpng ......... Use the libpng bundled with Qt.
3164 + -system-libpng ..... Use libpng from the operating system.
3165 See http://www.libpng.org/pub/png
3167 -no-libjpeg ........ Do not compile JPEG support.
3168 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3169 + -system-libjpeg .... Use libjpeg from the operating system.
3170 See http://www.ijg.org
3172 -no-openssl ........ Do not compile support for OpenSSL.
3173 + -openssl ........... Enable run-time OpenSSL support.
3174 -openssl-linked .... Enabled linked OpenSSL support.
3176 -qt-pcre ........... Use the PCRE library bundled with Qt.
3177 + -system-pcre ....... Use the PCRE library from the operating system.
3181 -make <part> ....... Add part to the list of parts to be built at make time.
3182 ($QT_DEFAULT_BUILD_PARTS)
3183 -nomake <part> ..... Exclude part from the list of parts to be built.
3185 -R <string> ........ Add an explicit runtime library path to the Qt
3187 -l <string> ........ Add an explicit library.
3189 -no-rpath .......... Do not use the library install path as a runtime
3191 + -rpath ............. Link Qt libraries and executables using the library
3192 install path as a runtime library path. Equivalent
3193 to -R install_libpath
3195 -continue .......... Continue as far as possible if an error occurs.
3197 -verbose, -v ....... Print verbose information about each step of the
3200 -silent ............ Reduce the build output so that warnings and errors
3201 can be seen more easily.
3203 * -no-optimized-qmake ... Do not build qmake optimized.
3204 -optimized-qmake ...... Build qmake optimized.
3206 -no-gui ............ Don't build the Qt GUI library
3208 $NSN -no-nis ............ Do not compile NIS support.
3209 $NSY -nis ............... Compile NIS support.
3211 $CUN -no-cups ........... Do not compile CUPS support.
3212 $CUY -cups .............. Compile CUPS support.
3213 Requires cups/cups.h and libcups.so.2.
3215 $CIN -no-iconv .......... Do not compile support for iconv(3).
3216 $CIY -iconv ............. Compile support for iconv(3).
3218 -no-strip .......... Do not strip binaries and libraries of unneeded symbols.
3219 * -strip ............. Strip binaries and libraries of unneeded symbols when installing.
3221 $PHN -no-pch ............ Do not use precompiled header support.
3222 $PHY -pch ............... Use precompiled header support.
3224 $DBN -no-dbus ........... Do not compile the QtDBus module.
3225 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3226 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3228 -reduce-relocations ..... Reduce relocations in the libraries through extra
3229 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3230 experimental; needs GNU ld >= 2.18).
3232 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3234 -device <name> ............... Cross-compile for device <name> (experimental)
3235 -device-option <key=value> ... Add device specific options for the device mkspec
3238 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3239 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3241 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3242 $XCBY -xcb ............... Compile Xcb support.
3244 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3245 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3247 $DFBN -no-directfb ....... Do not compile DirectFB support.
3248 $DFBY -directfb .......... Compile DirectFB support.
3250 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3251 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3253 $KMSN -no-kms ............ Do not compile KMS support.
3254 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3256 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3258 -xplatform target ... The target platform when cross-compiling.
3260 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3261 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3263 -no-feature-<feature> Do not compile in <feature>.
3264 -feature-<feature> .. Compile in <feature>. The available features
3265 are described in src/corelib/global/qfeatures.txt
3267 -no-freetype ........ Do not compile in Freetype2 support.
3268 -qt-freetype ........ Use the libfreetype bundled with Qt.
3269 * -system-freetype .... Use libfreetype from the operating system.
3270 See http://www.freetype.org/
3272 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3273 default ($CFG_QCONFIG).
3275 -no-opengl .......... Do not support OpenGL.
3276 -opengl <api> ....... Enable OpenGL support
3277 With no parameter, this will attempt to auto-detect
3278 OpenGL ES 2, or regular desktop OpenGL.
3279 Use es2 for <api> to override auto-detection.
3281 $GBN -no-glib ........... Do not compile Glib support.
3282 $GBY -glib .............. Compile Glib support.
3285 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3288 $X2N -no-xinput2......... Do not compile XInput2 support.
3289 $X2Y -xinput2............ Compile XInput2 support.
3295 if [ "$BUILD_ON_MAC" = "yes" ]; then
3300 -Fstring ........... Add an explicit framework path.
3301 -fw string ......... Add an explicit framework.
3303 * -framework ......... Build Qt as a series of frameworks and
3304 link tools against those frameworks.
3305 -no-framework ...... Do not build Qt as a series of frameworks.
3307 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3308 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3310 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3311 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3312 QT_ENABLE_HARFBUZZ environment variable.
3317 [ "x$ERROR" = "xyes" ] && exit 1
3322 # -----------------------------------------------------------------------------
3323 # LICENSING, INTERACTIVE PART
3324 # -----------------------------------------------------------------------------
3327 echo "This is the Qt ${EditionString} Edition."
3330 if [ "$Edition" = "OpenSource" ]; then
3332 echo "You are licensed to use this software under the terms of"
3333 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3334 if [ -f "$relpath/LICENSE.GPL3" ]; then
3335 echo "You are also licensed to use this software under the terms of"
3336 echo "the GNU General Public License (GPL) versions 3."
3342 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3343 echo "You have already accepted the terms of the $LicenseType license."
3346 if [ -f "$relpath/LICENSE.GPL3" ]; then
3347 echo "Type '3' to view the GNU General Public License version 3."
3349 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3350 echo "Type 'yes' to accept this license offer."
3351 echo "Type 'no' to decline this license offer."
3353 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3357 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3359 elif [ "$acceptance" = "no" ]; then
3360 echo "You are not licensed to use this software."
3363 elif [ "$acceptance" = "3" ]; then
3364 more "$relpath/LICENSE.GPL3"
3365 elif [ "$acceptance" = "L" ]; then
3366 more "$relpath/LICENSE.LGPL"
3369 elif [ "$Edition" = "Preview" ]; then
3370 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3373 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3374 echo "You have already accepted the terms of the $LicenseType license."
3377 echo "You are licensed to use this software under the terms of"
3378 echo "the $TheLicense"
3380 echo "Type '?' to read the Preview License."
3381 echo "Type 'yes' to accept this license offer."
3382 echo "Type 'no' to decline this license offer."
3384 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3388 if [ "$acceptance" = "yes" ]; then
3390 elif [ "$acceptance" = "no" ] ;then
3391 echo "You are not licensed to use this software."
3394 elif [ "$acceptance" = "?" ]; then
3395 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3398 elif [ "$Edition" != "OpenSource" ]; then
3399 if [ -n "$ExpiryDate" ]; then
3400 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3401 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3402 Today=`date +%Y%m%d`
3403 if [ "$Today" -gt "$ExpiryDate" ]; then
3404 case "$LicenseType" in
3405 Commercial|Academic|Educational)
3406 if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
3408 echo "NOTICE NOTICE NOTICE NOTICE"
3410 echo " Your support and upgrade period has expired."
3412 echo " You are no longer licensed to use this version of Qt."
3413 echo " Please contact qt-info@nokia.com to renew your support"
3414 echo " and upgrades for this license."
3416 echo "NOTICE NOTICE NOTICE NOTICE"
3421 echo "WARNING WARNING WARNING WARNING"
3423 echo " Your support and upgrade period has expired."
3425 echo " You may continue to use your last licensed release"
3426 echo " of Qt under the terms of your existing license"
3427 echo " agreement. But you are not entitled to technical"
3428 echo " support, nor are you entitled to use any more recent"
3429 echo " Qt releases."
3431 echo " Please contact qt-info@nokia.com to renew your"
3432 echo " support and upgrades for this license."
3434 echo "WARNING WARNING WARNING WARNING"
3441 echo "NOTICE NOTICE NOTICE NOTICE"
3443 echo " Your Evaluation license has expired."
3445 echo " You are no longer licensed to use this software. Please"
3446 echo " contact qt-info@nokia.com to purchase license, or install"
3447 echo " the Qt Open Source Edition if you intend to develop free"
3450 echo "NOTICE NOTICE NOTICE NOTICE"
3457 TheLicense=`head -n 1 "$outpath/LICENSE"`
3459 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3460 echo "You have already accepted the terms of the $TheLicense."
3463 echo "You are licensed to use this software under the terms of"
3464 echo "the $TheLicense."
3466 echo "Type '?' to view the $TheLicense."
3467 echo "Type 'yes' to accept this license offer."
3468 echo "Type 'no' to decline this license offer."
3470 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3474 if [ "$acceptance" = "yes" ]; then
3476 elif [ "$acceptance" = "no" ]; then
3477 echo "You are not licensed to use this software."
3480 else [ "$acceptance" = "?" ]
3481 more "$outpath/LICENSE"
3486 # this should be moved somewhere else
3489 AIX_VERSION=`uname -v`
3490 if [ "$AIX_VERSION" -lt "5" ]; then
3491 QMakeVar add QMAKE_LIBS_X11 -lbind
3498 #-------------------------------------------------------------------------------
3499 # generate qconfig.cpp
3500 #-------------------------------------------------------------------------------
3501 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3503 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3505 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3506 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3508 /* Installation date */
3509 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3511 /* Installation Info */
3512 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3513 "qt_prfxpath=$QT_INSTALL_PREFIX",
3514 "qt_docspath=$QT_INSTALL_DOCS",
3515 "qt_hdrspath=$QT_INSTALL_HEADERS",
3516 "qt_libspath=$QT_INSTALL_LIBS",
3517 "qt_binspath=$QT_INSTALL_BINS",
3518 "qt_plugpath=$QT_INSTALL_PLUGINS",
3519 "qt_impspath=$QT_INSTALL_IMPORTS",
3520 "qt_datapath=$QT_INSTALL_DATA",
3521 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3522 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3523 "qt_tstspath=$QT_INSTALL_TESTS",
3524 #ifdef QT_BUILD_QMAKE
3525 "qt_ssrtpath=$CFG_SYSROOT",
3526 "qt_hpfxpath=$QT_HOST_PREFIX",
3527 "qt_hbinpath=$QT_HOST_BINS",
3528 "qt_hdatpath=$QT_HOST_DATA",
3531 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3534 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3536 /* strlen( "qt_lcnsxxxx" ) == 12 */
3537 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3538 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3540 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3543 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3544 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3545 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3547 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3548 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3549 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3552 # -----------------------------------------------------------------------------
3553 if [ "$LicenseType" = "Evaluation" ]; then
3554 EVALKEY=qt_qevalkey=$LicenseKeyExt
3555 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3556 EVALKEY=qt_qevalkey=
3559 if [ -n "$EVALKEY" ]; then
3560 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3561 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3562 /* Evaluation license key */
3563 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3565 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3569 # -----------------------------------------------------------------------------
3571 # -----------------------------------------------------------------------------
3574 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3576 [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
3577 if [ "$OPT_SHADOW" = "yes" ]; then
3578 "$outpath/bin/syncqt" $SYNCQT_OPTS "$relpath" || exit 1
3579 elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then
3580 QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
3584 # $1: input variable name (awk regexp)
3585 # $2: optional output variable name
3586 # $3: optional value transformation (sed command)
3587 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3588 # is where the resulting variable is written to
3589 setBootstrapVariable()
3591 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3595 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3596 echo "Creating qmake. Please wait..."
3599 QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
3600 QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
3601 if [ -f "$QCONFIG_H" ]; then
3602 OLD_QCONFIG_H=$QCONFIG_H
3603 mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
3606 # create temporary qconfig.h for compiling qmake, if it doesn't exist
3607 # when building qmake, we use #defines for the install paths,
3608 # however they are real functions in the library
3609 if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
3610 mkdir -p "$outpath/src/corelib/global"
3611 [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
3612 echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
3615 mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
3617 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3618 rm -rf mkspecs/default mkspecs/default-host
3619 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3620 ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3621 mkdir -p "$outpath/qmake" || exit
3623 for mkfile in GNUmakefile Makefile; do
3626 in_mkfile="${mkfile}.in"
3627 if [ "$mkfile" = "Makefile" ]; then
3628 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3629 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3631 in_mkfile="${mkfile}.unix"
3633 in_mkfile="$relpath/qmake/$in_mkfile"
3634 mkfile="$outpath/qmake/$mkfile"
3635 if [ -f "$mkfile" ]; then
3636 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3639 [ -f "$in_mkfile" ] || continue
3641 echo "########################################################################" > "$mkfile"
3642 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3643 echo "########################################################################" >> "$mkfile"
3646 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3647 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3648 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3650 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3651 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3654 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3655 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3656 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3657 setBootstrapVariable QMAKE_CFLAGS
3658 setBootstrapVariable QMAKE_CXXFLAGS
3659 setBootstrapVariable QMAKE_LFLAGS
3661 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3662 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3663 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3665 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3666 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3667 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3668 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3669 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3670 elif [ "$CFG_DEBUG" = "yes" ]; then
3671 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3672 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3673 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3674 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3677 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3678 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3679 for rpath in $RPATH_FLAGS; do
3680 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3683 if [ "$BUILD_ON_MAC" = "yes" ]; then
3684 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3685 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3686 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3687 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3688 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3689 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3690 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3691 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3692 if [ '!' -z "$CFG_SDK" ]; then
3693 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3694 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3695 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3696 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3697 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3700 if [ '!' -z "$D_FLAGS" ]; then
3701 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3703 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3704 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3705 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3706 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3708 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3709 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3710 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3711 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3712 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3713 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3714 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3715 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3716 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3717 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3719 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3720 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3721 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3722 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3727 QMAKE_BUILD_ERROR=no
3728 (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
3729 [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
3730 [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
3731 [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
3734 #-------------------------------------------------------------------------------
3735 # create a qt.conf for the Qt build tree itself
3736 #-------------------------------------------------------------------------------
3738 QTCONFFILE="$outpath/bin/qt.conf"
3739 cat > "$QTCONFFILE" <<EOF
3744 #-------------------------------------------------------------------------------
3746 #-------------------------------------------------------------------------------
3747 if [ -z "$PKG_CONFIG" ]; then
3748 # See if PKG_CONFIG is set in the mkspec:
3749 PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
3751 if [ -z "$PKG_CONFIG" ]; then
3752 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3755 if [ "$CFG_PKGCONFIG" = "no" ]; then
3757 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3759 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3760 echo >&2 "a correctly setup pkg-config environment!"
3762 elif [ -n "$PKG_CONFIG" ]; then
3763 # found a pkg-config
3764 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3765 # when xcompiling, check environment to see if it's actually usable
3766 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3767 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3768 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3769 if [ -n "$GCC_MACHINE_DUMP" ]; then
3770 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3772 export PKG_CONFIG_LIBDIR
3773 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3774 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3775 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3776 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3777 echo >&2 "Set this variable to the directory that contains target .pc files"
3778 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3779 echo >&2 "use -force-pkg-config to override this test."
3783 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3786 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3787 if [ -n "$CFG_SYSROOT" ]; then
3788 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3789 export PKG_CONFIG_SYSROOT_DIR
3790 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3791 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3792 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3793 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3794 echo >&2 "or use -force-pkg-config to override this test."
3798 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3802 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3803 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3807 if [ -z "$PKG_CONFIG" ]; then
3808 QT_CONFIG="$QT_CONFIG no-pkg-config"
3811 #-------------------------------------------------------------------------------
3812 # write out device config before we run the test.
3813 #-------------------------------------------------------------------------------
3814 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3815 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3816 rm -f "$DEVICE_VARS_FILE"
3818 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3819 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3822 #-------------------------------------------------------------------------------
3823 # tests that need qmake
3824 #-------------------------------------------------------------------------------
3826 # parameters: path, name, extra args
3829 path=config.tests/$1
3832 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_CONFIG_TEST_COMMANDLINE "$@"
3835 #-------------------------------------------------------------------------------
3836 # determine the target and host architectures
3837 #-------------------------------------------------------------------------------
3839 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3840 OUTFILE=$outpath/arch.result
3841 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_CONFIG_TEST_COMMANDLINE
3842 if [ $? -eq 0 ]; then
3843 eval `cat "$OUTFILE"`
3846 echo "Could not determine the target architecture!"
3847 echo "Turn on verbose messaging (-v) to see the final report."
3849 rm -f "$OUTFILE" 2>/dev/null
3850 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3852 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3853 # Do the same test again, using the host compiler
3854 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_CONFIG_TEST_COMMANDLINE
3855 if [ $? -eq 0 ]; then
3856 eval `cat "$OUTFILE"`
3859 echo "Could not determine the host architecture!"
3860 echo "Turn on verbose messaging (-v) to see the final report."
3862 rm -f "$OUTFILE" 2>/dev/null
3863 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3865 # not cross compiling, host == target
3866 CFG_HOST_ARCH="$CFG_ARCH"
3867 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3871 if [ "$OPT_VERBOSE" = "yes" ]; then
3872 echo "System architecture: '$CFG_ARCH'"
3873 echo "Host architecture: '$CFG_HOST_ARCH'"
3876 #-------------------------------------------------------------------------------
3877 # functionality tests
3878 #-------------------------------------------------------------------------------
3880 # Detect C++11 support
3881 if [ "$CFG_CXX11" != "no" ]; then
3882 if compileTest unix/c++11 "C++11"; then
3884 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3885 echo "C++11 support cannot be enabled due to functionality tests!"
3886 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3887 echo " If you believe this message is in error you may use the continue"
3888 echo " switch (-continue) to $0 to continue."
3895 # detect availability of float math.h functions
3896 if compileTest unix/floatmath "floatmath"; then
3897 CFG_USE_FLOATMATH=yes
3899 CFG_USE_FLOATMATH=no
3902 # detect sse2 support
3903 if [ "${CFG_SSE2}" = "auto" ]; then
3904 if compileTest common/sse2 "sse2"; then
3911 # detect sse3 support
3912 if [ "${CFG_SSE3}" = "auto" ]; then
3913 if compileTest common/sse3 "sse3"; then
3920 # detect ssse3 support
3921 if [ "${CFG_SSSE3}" = "auto" ]; then
3922 if compileTest common/ssse3 "ssse3"; then
3929 # detect sse4.1 support
3930 if [ "${CFG_SSE4_1}" = "auto" ]; then
3931 if compileTest common/sse4_1 "sse4_1"; then
3938 # detect sse4.2 support
3939 if [ "${CFG_SSE4_2}" = "auto" ]; then
3940 if compileTest common/sse4_2 "sse4_2"; then
3947 # detect avx support
3948 if [ "${CFG_AVX}" = "auto" ]; then
3949 if compileTest common/avx "avx"; then
3950 case "$XQMAKESPEC" in
3952 # Some clang versions produce internal compiler errors compiling Qt AVX code
3953 case `$TEST_COMPILER --version` in
3954 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3956 if [ "$OPT_VERBOSE" = "yes" ]; then
3957 echo 'AVX support disabled for blacklisted clang compiler'
3974 # detect avx2 support
3975 if [ "${CFG_AVX}" = "no" ]; then
3978 if [ "${CFG_AVX2}" = "auto" ]; then
3979 if compileTest common/avx2 "avx2"; then
3986 # check iWMMXt support
3987 if [ "$CFG_IWMMXT" = "yes" ]; then
3988 compileTest unix/iwmmxt "iwmmxt"
3989 if [ $? != "0" ]; then
3990 echo "The iWMMXt functionality test failed!"
3991 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3996 # detect neon support
3997 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3998 if compileTest unix/neon "neon"; then
4003 elif [ "$CFG_ARCH" != "arm" ]; then
4007 # detect mips_dsp support
4008 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSP}" = "yes" ]; then
4014 # detect mips_dspr2 support
4015 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "yes" ]; then
4021 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
4024 if [ "$CFG_ZLIB" = "no" ]; then
4025 # Note: Qt no longer support builds without zlib
4026 # So we force a "no" to be "auto" here.
4027 # If you REALLY really need no zlib support, you can still disable
4028 # it by doing the following:
4029 # add "no-zlib" to mkspecs/qconfig.pri
4030 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4032 # There's no guarantee that Qt will build under those conditions
4037 if [ "$CFG_ZLIB" = "auto" ]; then
4038 if compileTest unix/zlib "zlib"; then
4045 if [ "$CFG_LARGEFILE" = "auto" ]; then
4046 #Large files should be enabled for all Linux systems
4050 if [ "$CFG_GUI" = "no" ]; then
4051 QPA_PLATFORM_GUARD=no
4054 # detect how jpeg should be built
4055 if [ "$CFG_JPEG" = "auto" ]; then
4056 if [ "$CFG_SHARED" = "yes" ]; then
4063 if [ "$CFG_LIBJPEG" = "auto" ]; then
4064 if compileTest unix/libjpeg "libjpeg"; then
4071 # detect how gif should be built
4072 if [ "$CFG_GIF" = "auto" ]; then
4073 if [ "$CFG_SHARED" = "yes" ]; then
4081 if [ "$CFG_LIBPNG" = "auto" ]; then
4082 if compileTest unix/libpng "libpng"; then
4089 if [ "$CFG_EGLFS" = "yes" ]; then
4090 if [ "$CFG_EGL" = "no" ]; then
4091 echo "The EGLFS plugin requires EGL support and cannot be built"
4094 if [ "$CFG_OPENGL" != "es2" ]; then
4095 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4102 if [ "$CFG_KMS" = "yes" ]; then
4103 if [ "$CFG_EGL" = "no" ]; then
4104 echo "The KMS plugin requires EGL support and cannot be built"
4107 if [ "$CFG_OPENGL" != "es2" ]; then
4108 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4113 # auto-detect SQL-modules support
4114 for _SQLDR in $CFG_SQL_AVAILABLE; do
4117 if [ "$CFG_SQL_mysql" != "no" ]; then
4118 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4119 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4120 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4121 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4122 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4123 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4124 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4126 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4127 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4128 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4129 echo " You need MySql 4 or higher."
4130 echo " If you believe this message is in error you may use the continue"
4131 echo " switch (-continue) to $0 to continue."
4136 QT_LFLAGS_MYSQL_R=""
4140 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4141 QMakeVar add CONFIG use_libmysqlclient_r
4142 if [ "$CFG_SQL_mysql" = "auto" ]; then
4143 CFG_SQL_mysql=plugin
4145 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4146 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4147 if [ "$CFG_SQL_mysql" = "auto" ]; then
4148 CFG_SQL_mysql=plugin
4151 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4152 echo "MySQL support cannot be enabled due to functionality tests!"
4153 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4154 echo " If you believe this message is in error you may use the continue"
4155 echo " switch (-continue) to $0 to continue."
4160 QT_LFLAGS_MYSQL_R=""
4168 if [ "$CFG_SQL_psql" != "no" ]; then
4169 # Be careful not to use native pg_config when cross building.
4170 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4171 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4172 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4174 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4175 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4176 # But, respect PSQL_LIBS if set
4177 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4178 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4179 if [ "$CFG_SQL_psql" = "auto" ]; then
4183 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4184 echo "PostgreSQL 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."
4198 if [ "$CFG_SQL_odbc" != "no" ]; then
4199 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4200 if [ "$CFG_SQL_odbc" = "auto" ]; then
4204 if compileTest unix/iodbc "iODBC"; then
4205 QT_LFLAGS_ODBC="-liodbc"
4206 if [ "$CFG_SQL_odbc" = "auto" ]; then
4210 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4211 echo "ODBC support cannot be enabled due to functionality tests!"
4212 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4213 echo " If you believe this message is in error you may use the continue"
4214 echo " switch (-continue) to $0 to continue."
4224 if [ "$CFG_SQL_oci" != "no" ]; then
4225 if compileTest unix/oci "OCI"; then
4226 if [ "$CFG_SQL_oci" = "auto" ]; then
4230 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4231 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4232 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4233 echo " If you believe this message is in error you may use the continue"
4234 echo " switch (-continue) to $0 to continue."
4243 if [ "$CFG_SQL_tds" != "no" ]; then
4244 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4245 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4246 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4247 if [ "$CFG_SQL_tds" = "auto" ]; then
4251 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4252 echo "TDS support cannot be enabled due to functionality tests!"
4253 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4254 echo " If you believe this message is in error you may use the continue"
4255 echo " switch (-continue) to $0 to continue."
4264 if [ "$CFG_SQL_db2" != "no" ]; then
4265 if compileTest unix/db2 "DB2"; then
4266 if [ "$CFG_SQL_db2" = "auto" ]; then
4270 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4271 echo "ODBC support cannot be enabled due to functionality tests!"
4272 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4273 echo " If you believe this message is in error you may use the continue"
4274 echo " switch (-continue) to $0 to continue."
4283 if [ "$CFG_SQL_ibase" != "no" ]; then
4284 if compileTest unix/ibase "InterBase"; then
4285 if [ "$CFG_SQL_ibase" = "auto" ]; then
4286 CFG_SQL_ibase=plugin
4289 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4290 echo "InterBase support cannot be enabled due to functionality tests!"
4291 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4292 echo " If you believe this message is in error you may use the continue"
4293 echo " switch (-continue) to $0 to continue."
4302 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4303 if compileTest unix/sqlite2 "SQLite2"; then
4304 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4305 CFG_SQL_sqlite2=plugin
4308 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4309 echo "SQLite2 support cannot be enabled due to functionality tests!"
4310 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4311 echo " If you believe this message is in error you may use the continue"
4312 echo " switch (-continue) to $0 to continue."
4321 if [ "$CFG_SQL_sqlite" != "no" ]; then
4322 SQLITE_AUTODETECT_FAILED="no"
4323 if [ "$CFG_SQLITE" = "system" ]; then
4324 if [ -n "$PKG_CONFIG" ]; then
4325 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4326 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4329 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4331 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4332 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4333 CFG_SQL_sqlite=plugin
4335 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4337 SQLITE_AUTODETECT_FAILED="yes"
4340 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4341 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4342 CFG_SQL_sqlite=plugin
4345 SQLITE_AUTODETECT_FAILED="yes"
4349 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4350 echo "SQLite support cannot be enabled due to functionality tests!"
4351 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4352 echo " If you believe this message is in error you may use the continue"
4353 echo " switch (-continue) to $0 to continue."
4359 if [ "$OPT_VERBOSE" = "yes" ]; then
4360 echo "unknown SQL driver: $_SQLDR"
4366 # auto-detect NIS support
4367 if [ "$CFG_NIS" != "no" ]; then
4368 if compileTest unix/nis "NIS"; then
4371 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4372 echo "NIS support cannot be enabled due to functionality tests!"
4373 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4374 echo " If you believe this message is in error you may use the continue"
4375 echo " switch (-continue) to $0 to continue."
4383 # auto-detect CUPS support
4384 if [ "$CFG_CUPS" != "no" ]; then
4385 if compileTest unix/cups "Cups"; then
4388 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4389 echo "Cups support cannot be enabled due to functionality tests!"
4390 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4391 echo " If you believe this message is in error you may use the continue"
4392 echo " switch (-continue) to $0 to continue."
4400 # auto-detect iconv(3) support
4401 if [ "$CFG_ICONV" != "no" ]; then
4402 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4404 elif compileTest unix/iconv "POSIX iconv"; then
4406 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4408 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4411 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4412 echo "Iconv support cannot be enabled due to functionality tests!"
4413 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4414 echo " If you believe this message is in error you may use the continue"
4415 echo " switch (-continue) to $0 to continue."
4423 # auto-detect libdbus-1 support
4424 if [ "$CFG_DBUS" != "no" ]; then
4425 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4426 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4427 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4429 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4430 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4431 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4432 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4434 if [ "$CFG_DBUS" = "auto" ]; then
4436 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4437 # CFG_DBUS is "yes" or "linked" here
4439 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4440 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4441 echo " If you believe this message is in error you may use the continue"
4442 echo " switch (-continue) to $0 to continue."
4448 # auto-detect Glib support
4449 if [ "$CFG_GLIB" != "no" ]; then
4450 if [ -n "$PKG_CONFIG" ]; then
4451 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4452 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4454 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4456 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4457 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4459 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4460 echo "Glib support cannot be enabled due to functionality tests!"
4461 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4462 echo " If you believe this message is in error you may use the continue"
4463 echo " switch (-continue) to $0 to continue."
4471 # auto-detect GTK style support
4472 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4473 if [ -n "$PKG_CONFIG" ]; then
4474 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4475 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4477 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4479 QT_CONFIG="$QT_CONFIG gtkstyle"
4480 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4481 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4483 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4484 echo "Gtk theme support cannot be enabled due to functionality tests!"
4485 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4486 echo " If you believe this message is in error you may use the continue"
4487 echo " switch (-continue) to $0 to continue."
4493 elif [ "$CFG_GLIB" = "no" ]; then
4498 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4499 if [ -n "$PKG_CONFIG" ]; then
4500 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4501 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4503 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4505 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4506 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4508 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4509 echo "Gstreamer support cannot be enabled due to functionality tests!"
4510 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4511 echo " If you believe this message is in error you may use the continue"
4512 echo " switch (-continue) to $0 to continue."
4518 elif [ "$CFG_GLIB" = "no" ]; then
4522 # auto-detect libicu support
4523 if [ "$CFG_ICU" != "no" ]; then
4524 if compileTest unix/icu "ICU"; then
4525 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4527 if [ "$CFG_ICU" = "auto" ]; then
4529 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4532 echo "The ICU library support cannot be enabled."
4533 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4534 echo " If you believe this message is in error you may use the continue"
4535 echo " switch (-continue) to $0 to continue."
4541 # Auto-detect PulseAudio support
4542 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4543 if [ -n "$PKG_CONFIG" ]; then
4544 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4545 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4547 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4549 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4550 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4552 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4553 echo "PulseAudio 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 [ "$XPLATFORM_MINGW" = "yes" ]; then
4566 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4567 if [ "$CFG_GUI" = "no" ]; then
4568 if [ "$CFG_OPENGL" = "auto" ]; then
4571 if [ "$CFG_OPENGL" != "no" ]; then
4572 echo "OpenGL enabled, but GUI disabled."
4573 echo " You might need to either enable the GUI or disable OpenGL"
4577 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4578 if compileTest x11/opengl "OpenGL"; then
4580 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4583 if [ "$CFG_OPENGL" = "yes" ]; then
4584 echo "All the OpenGL functionality tests failed!"
4585 echo " You might need to modify the include and library search paths by editing"
4586 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4587 echo " ${XQMAKESPEC}."
4594 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4595 if [ "$CFG_OPENGL" = "desktop" ]; then
4596 compileTest x11/glxfbconfig "OpenGL"
4597 if [ $? != "0" ]; then
4598 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4605 elif [ "$CFG_OPENGL" = "es2" ]; then
4607 compileTest unix/opengles2 "OpenGL ES 2.x"
4608 if [ $? != "0" ]; then
4609 echo "The OpenGL ES 2.0 functionality test failed!"
4610 echo " You might need to modify the include and library search paths by editing"
4611 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4612 echo " ${XQMAKESPEC}."
4615 elif [ "$CFG_OPENGL" = "desktop" ]; then
4616 # Desktop OpenGL support
4617 compileTest x11/opengl "OpenGL"
4618 if [ $? != "0" ]; then
4619 echo "The OpenGL functionality test failed!"
4620 echo " You might need to modify the include and library search paths by editing"
4621 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4622 echo " ${XQMAKESPEC}."
4627 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4628 compileTest x11/glxfbconfig "OpenGL"
4629 if [ $? != "0" ]; then
4630 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4637 fi # X11/MINGW OpenGL
4639 if [ "$BUILD_ON_MAC" = "yes" ]; then
4640 if [ "$CFG_COREWLAN" = "auto" ]; then
4641 if compileTest mac/corewlan "CoreWlan"; then
4649 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4650 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4651 if compileTest unix/opengldesktop "OpenGL"; then
4653 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4656 if [ "$CFG_OPENGL" = "yes" ]; then
4657 echo "All the OpenGL functionality tests failed!"
4658 echo " You might need to modify the include and library search paths by editing"
4659 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4660 echo " ${XQMAKESPEC}."
4665 elif [ "$CFG_OPENGL" = "es2" ]; then
4667 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4668 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4669 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4670 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4671 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4672 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4673 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4674 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4677 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4678 if [ $? != "0" ]; then
4679 echo "The OpenGL ES 2.0 functionality test failed!"
4680 echo " You might need to modify the include and library search paths by editing"
4681 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4682 echo " ${XQMAKESPEC}."
4685 elif [ "$CFG_OPENGL" = "desktop" ]; then
4686 # Desktop OpenGL support
4687 compileTest unix/opengldesktop "OpenGL"
4688 if [ $? != "0" ]; then
4689 echo "The OpenGL functionality test failed!"
4690 echo " You might need to modify the include and library search paths by editing"
4691 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4692 echo " ${XQMAKESPEC}."
4697 # auto-detect FontConfig support
4698 if [ "$CFG_FONTCONFIG" != "no" ]; then
4699 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4700 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4701 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4703 QT_CFLAGS_FONTCONFIG=
4704 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4706 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4707 QT_CONFIG="$QT_CONFIG fontconfig"
4708 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4709 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4711 CFG_LIBFREETYPE=system
4718 # Save these for a check later
4719 ORIG_CFG_XCB="$CFG_XCB"
4720 ORIG_CFG_EGLFS="$CFG_EGLFS"
4721 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4722 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4723 ORIG_CFG_KMS="$CFG_KMS"
4725 if [ "$CFG_LIBUDEV" != "no" ]; then
4726 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4727 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4728 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4729 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4730 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4732 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4734 QT_CONFIG="$QT_CONFIG libudev"
4735 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4736 echo "The libudev functionality test failed!"
4742 if [ "$CFG_LIBUDEV" = "no" ]; then
4743 QMakeVar add DEFINES QT_NO_LIBUDEV
4746 if [ "$CFG_EVDEV" != "no" ]; then
4747 if compileTest unix/evdev "evdev"; then
4749 QT_CONFIG="$QT_CONFIG evdev"
4750 elif [ "$CFG_EVDEV" = "yes" ]; then
4751 echo "The evdev functionality test failed!"
4757 if [ "$CFG_EVDEV" = "no" ]; then
4758 QMakeVar add DEFINES QT_NO_EVDEV
4761 # Check we actually have X11 :-)
4762 if compileTest x11/xlib "XLib"; then
4763 QT_CONFIG="$QT_CONFIG xlib"
4766 # auto-detect Xrender support
4767 if [ "$CFG_XRENDER" != "no" ]; then
4768 if compileTest x11/xrender "Xrender"; then
4770 QT_CONFIG="$QT_CONFIG xrender"
4772 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4773 echo "Xrender support cannot be enabled due to functionality tests!"
4774 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4775 echo " If you believe this message is in error you may use the continue"
4776 echo " switch (-continue) to $0 to continue."
4784 if [ "$CFG_XCB" != "no" ]; then
4785 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4786 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4787 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4789 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4791 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4792 QT_CONFIG="$QT_CONFIG xcb-render"
4795 if compileTest qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4797 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4800 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4801 QT_CONFIG="$QT_CONFIG xcb-xlib"
4804 # auto-detect XInput2 support. Needed by xcb too.
4805 if [ "$CFG_XINPUT2" != "no" ]; then
4806 if compileTest x11/xinput2 "XInput2"; then
4810 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4811 echo "XInput2 support cannot be enabled due to functionality tests!"
4812 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4813 echo " If you believe this message is in error you may use the continue"
4814 echo " switch (-continue) to $0 to continue."
4822 if [ "$CFG_XCB" = "yes" ]; then
4823 echo "The XCB test failed!"
4824 echo " You might need to install dependency packages."
4825 echo " See src/plugins/platforms/xcb/README."
4831 if [ "$CFG_XCB" = "no" ]; then
4832 QMakeVar add DEFINES QT_NO_XCB
4835 if [ "$CFG_DIRECTFB" != "no" ]; then
4836 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4837 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4838 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4839 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4841 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4842 echo " DirectFB support cannot be enabled due to functionality tests!"
4843 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4844 echo " If you believe this message is in error you may use the continue"
4845 echo " switch (-continue) to $0 to continue."
4855 if [ "$CFG_LINUXFB" != "no" ]; then
4856 if compileTest qpa/linuxfb "LinuxFB"; then
4858 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4859 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4860 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4861 echo " If you believe this message is in error you may use the continue"
4862 echo " switch (-continue) to $0 to continue."
4869 if [ "$CFG_KMS" != "no" ]; then
4870 if compileTest qpa/kms "KMS"; then
4872 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4873 echo " KMS support cannot be enabled due to functionality tests!"
4874 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4875 echo " If you believe this message is in error you may use the continue"
4876 echo " switch (-continue) to $0 to continue."
4883 # Detect libxkbcommon
4884 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4885 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4886 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4887 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4888 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4890 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4894 if [ "$CFG_EGL" != "no" ] && [ "$CFG_OPENGL" != "desktop" ]; then
4895 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4896 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4897 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4898 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4899 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4900 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4901 fi # detect EGL support
4902 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4904 elif [ "$CFG_EGL" = "yes" ]; then
4905 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4906 echo " You might need to modify the include and library search paths by editing"
4907 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4912 elif [ "$CFG_OPENGL" = "desktop" ]; then
4913 if [ "$CFG_EGL" = "yes" ]; then
4914 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4915 echo "Either disable EGL support or enable OpenGL ES support."
4921 if [ "$CFG_EGLFS" != "no" ]; then
4922 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4923 CFG_EGLFS="$CFG_EGL"
4929 if [ "$CFG_KMS" = "yes" ]; then
4930 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4937 # Detect accessibility support
4938 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4939 if [ "$CFG_XCB" = "no" ]; then
4940 CFG_ACCESSIBILITY=yes
4942 # linux/xcb accessibility needs dbus and atspi-2
4943 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "atspi-2" 2>/dev/null; then
4944 CFG_ACCESSIBILITY=yes
4946 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4947 CFG_ACCESSIBILITY=no
4949 echo "Accessibility support needs pkg-config and libatspi2."
4956 # Determine the default QPA platform
4957 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4959 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4960 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4961 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4962 QT_QPA_DEFAULT_PLATFORM="windows"
4963 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4964 QT_QPA_DEFAULT_PLATFORM="cocoa"
4965 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4966 QT_QPA_DEFAULT_PLATFORM="qnx"
4968 QT_QPA_DEFAULT_PLATFORM="xcb"
4973 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4974 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4975 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4976 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4978 if [ "$CFG_DIRECTFB" = "yes" ]; then
4979 QT_CONFIG="$QT_CONFIG directfb"
4980 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4981 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4983 if [ "$CFG_LINUXFB" = "yes" ]; then
4984 QT_CONFIG="$QT_CONFIG linuxfb"
4986 if [ "$CFG_KMS" = "yes" ]; then
4987 QT_CONFIG="$QT_CONFIG kms"
4990 if [ "$BUILD_ON_MAC" = "yes" ]; then
4991 if compileTest mac/coreservices "CoreServices"; then
4992 QT_CONFIG="$QT_CONFIG coreservices"
4994 QMakeVar add DEFINES QT_NO_CORESERVICES
4998 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4999 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
5000 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
5001 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
5002 echo "No QPA platform plugin enabled!"
5003 echo " If you really want to build without a QPA platform plugin you must pass"
5004 echo " -no-qpa-platform-guard to configure. Doing this will"
5005 echo " produce a Qt that can not run GUI applications."
5006 echo " The dependencies needed for xcb to build are listed in"
5007 echo " src/plugins/platforms/xcb/README"
5014 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
5015 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
5016 if compileTest unix/freetype "FreeType"; then
5017 CFG_LIBFREETYPE=system
5023 if ! compileTest unix/stl "STL" &&
5024 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5025 echo "STL functionality check failed! Cannot build Qt with this STL library."
5026 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5031 # detect POSIX clock_gettime()
5032 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5033 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
5034 CFG_CLOCK_GETTIME=yes
5036 CFG_CLOCK_GETTIME=no
5040 # detect POSIX monotonic clocks
5041 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5042 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5043 CFG_CLOCK_MONOTONIC=yes
5045 CFG_CLOCK_MONOTONIC=no
5047 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5048 CFG_CLOCK_MONOTONIC=no
5052 if [ "$CFG_MREMAP" = "auto" ]; then
5053 if compileTest unix/mremap "mremap"; then
5060 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5061 if [ "$CFG_GETADDRINFO" != "no" ]; then
5062 if compileTest unix/getaddrinfo "getaddrinfo"; then
5065 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5066 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5067 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5068 echo " If you believe this message is in error you may use the continue"
5069 echo " switch (-continue) to $0 to continue."
5077 # find if the platform provides inotify
5078 if [ "$CFG_INOTIFY" != "no" ]; then
5079 if compileTest unix/inotify "inotify"; then
5082 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5083 echo "inotify support cannot be enabled due to functionality tests!"
5084 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5085 echo " If you believe this message is in error you may use the continue"
5086 echo " switch (-continue) to $0 to continue."
5094 # find if the platform provides if_nametoindex (ipv6 interface name support)
5095 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5096 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5099 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5100 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5101 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5102 echo " If you believe this message is in error you may use the continue"
5103 echo " switch (-continue) to $0 to continue."
5111 # find if the platform provides getifaddrs (network interface enumeration)
5112 if [ "$CFG_GETIFADDRS" != "no" ]; then
5113 if compileTest unix/getifaddrs "getifaddrs"; then
5116 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5117 echo "getifaddrs support cannot be enabled due to functionality tests!"
5118 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5119 echo " If you believe this message is in error you may use the continue"
5120 echo " switch (-continue) to $0 to continue."
5129 if [ "$CFG_OPENSSL" != "no" ]; then
5130 if compileTest unix/openssl "OpenSSL"; then
5131 if [ "$CFG_OPENSSL" = "auto" ]; then
5135 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5136 echo "OpenSSL support cannot be enabled due to functionality tests!"
5137 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5138 echo " If you believe this message is in error you may use the continue"
5139 echo " switch (-continue) to $0 to continue."
5148 if [ "$CFG_PCRE" != "qt" ]; then
5149 if compileTest unix/pcre "PCRE"; then
5152 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5153 echo "PCRE support cannot be enabled due to functionality tests!"
5154 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5155 echo " If you believe this message is in error you may use the continue"
5156 echo " switch (-continue) to $0 to continue."
5164 # detect OpenVG support
5165 if [ "$CFG_OPENVG" != "no" ]; then
5166 if compileTest unix/openvg "OpenVG"; then
5167 if [ "$CFG_OPENVG" = "auto" ]; then
5170 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5171 if [ "$CFG_OPENVG" = "auto" ]; then
5174 CFG_OPENVG_ON_OPENGL=yes
5175 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5176 if [ "$CFG_OPENVG" = "auto" ]; then
5179 CFG_OPENVG_LC_INCLUDES=yes
5180 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5181 if [ "$CFG_OPENVG" = "auto" ]; then
5184 CFG_OPENVG_LC_INCLUDES=yes
5185 CFG_OPENVG_ON_OPENGL=yes
5187 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5188 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5189 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5190 echo " If you believe this message is in error you may use the continue"
5191 echo " switch (-continue) to $0 to continue."
5197 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5198 CFG_OPENVG_SHIVA=yes
5202 if [ "$CFG_ALSA" = "auto" ]; then
5203 if compileTest unix/alsa "alsa"; then
5210 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5211 if [ "$CFG_ARCH" = "arm" ]; then
5212 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5213 if [ $? != "0" ]; then
5214 CFG_JAVASCRIPTCORE_JIT=no
5217 case "$XPLATFORM" in
5219 CFG_JAVASCRIPTCORE_JIT=no
5225 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5226 QMakeVar set JAVASCRIPTCORE_JIT yes
5227 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5228 QMakeVar set JAVASCRIPTCORE_JIT no
5231 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5232 CFG_AUDIO_BACKEND=yes
5235 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5236 echo "Warning: largefile support cannot be disabled for win32."
5240 #-------------------------------------------------------------------------------
5241 # ask for all that hasn't been auto-detected or specified in the arguments
5242 #-------------------------------------------------------------------------------
5244 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5246 # disable accessibility
5247 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5248 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5250 QT_CONFIG="$QT_CONFIG accessibility"
5254 if [ "$CFG_EGL" = "yes" ]; then
5255 QT_CONFIG="$QT_CONFIG egl"
5257 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5261 if [ "$CFG_EGLFS" = "yes" ]; then
5262 QT_CONFIG="$QT_CONFIG eglfs"
5264 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5268 if [ "$CFG_OPENVG" = "no" ]; then
5269 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5271 QT_CONFIG="$QT_CONFIG openvg"
5272 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5273 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5275 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5276 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5278 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5279 QT_CONFIG="$QT_CONFIG shivavg"
5280 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5285 if [ "$CFG_OPENGL" = "no" ]; then
5286 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5288 QT_CONFIG="$QT_CONFIG opengl"
5291 if [ "$CFG_OPENGL" = "es2" ]; then
5292 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5295 if [ "$CFG_OPENGL" = "es2" ]; then
5296 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5297 QT_CONFIG="$QT_CONFIG opengles2"
5300 # build up the variables for output
5301 if [ "$CFG_DEBUG" = "yes" ]; then
5302 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5303 elif [ "$CFG_DEBUG" = "no" ]; then
5304 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5306 if [ "$CFG_SHARED" = "yes" ]; then
5307 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5308 QT_CONFIG="$QT_CONFIG shared"
5309 elif [ "$CFG_SHARED" = "no" ]; then
5310 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5311 QT_CONFIG="$QT_CONFIG static"
5314 #FIXME: qpa is implicit this should all be removed
5315 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5316 QT_CONFIG="$QT_CONFIG qpa"
5317 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5318 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5320 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5321 # Do not set this here for Windows. Let qmake do it so
5322 # debug and release precompiled headers are kept separate.
5323 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5325 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5326 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5327 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5328 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5329 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5330 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5332 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5333 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5335 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5336 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5337 [ "$CFG_STRIP" = "no" ] && QMAKE_CONFIG="$QMAKE_CONFIG nostrip"
5338 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5339 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5340 QMakeVar add QMAKE_CFLAGS -g
5341 QMakeVar add QMAKE_CXXFLAGS -g
5342 QT_CONFIG="$QT_CONFIG separate_debug_info"
5344 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5345 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5347 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5348 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5349 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5350 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5351 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5352 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5353 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5354 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5355 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5356 if [ "$CFG_ARCH" = "mips" ]; then
5357 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5358 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5360 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5361 QT_CONFIG="$QT_CONFIG clock-gettime"
5363 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5364 QT_CONFIG="$QT_CONFIG clock-monotonic"
5366 if [ "$CFG_MREMAP" = "yes" ]; then
5367 QT_CONFIG="$QT_CONFIG mremap"
5369 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5370 QT_CONFIG="$QT_CONFIG getaddrinfo"
5372 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5373 QT_CONFIG="$QT_CONFIG ipv6ifname"
5375 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5376 QT_CONFIG="$QT_CONFIG getifaddrs"
5378 if [ "$CFG_INOTIFY" = "yes" ]; then
5379 QT_CONFIG="$QT_CONFIG inotify"
5381 if [ "$CFG_LIBJPEG" = "no" ]; then
5383 elif [ "$CFG_LIBJPEG" = "system" ]; then
5384 QT_CONFIG="$QT_CONFIG system-jpeg"
5386 if [ "$CFG_JPEG" = "no" ]; then
5387 QT_CONFIG="$QT_CONFIG no-jpeg"
5388 elif [ "$CFG_JPEG" = "yes" ]; then
5389 QT_CONFIG="$QT_CONFIG jpeg"
5391 if [ "$CFG_LIBPNG" = "no" ]; then
5394 if [ "$CFG_LIBPNG" = "system" ]; then
5395 QT_CONFIG="$QT_CONFIG system-png"
5397 if [ "$CFG_PNG" = "no" ]; then
5398 QT_CONFIG="$QT_CONFIG no-png"
5399 elif [ "$CFG_PNG" = "yes" ]; then
5400 QT_CONFIG="$QT_CONFIG png"
5402 if [ "$CFG_GIF" = "no" ]; then
5403 QT_CONFIG="$QT_CONFIG no-gif"
5404 elif [ "$CFG_GIF" = "yes" ]; then
5405 QT_CONFIG="$QT_CONFIG gif"
5407 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5408 QT_CONFIG="$QT_CONFIG no-freetype"
5409 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5410 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5411 QT_CONFIG="$QT_CONFIG system-freetype"
5413 QT_CONFIG="$QT_CONFIG freetype"
5415 if [ "$CFG_GUI" = "auto" ]; then
5418 if [ "$CFG_GUI" = "no" ]; then
5419 QT_CONFIG="$QT_CONFIG no-gui"
5422 if [ "$CFG_WIDGETS" = "no" ]; then
5423 QT_CONFIG="$QT_CONFIG no-widgets"
5424 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5427 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5428 #On Mac we implicitly link against libz, so we
5429 #never use the 3rdparty stuff.
5430 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5432 if [ "$CFG_ZLIB" = "yes" ]; then
5433 QT_CONFIG="$QT_CONFIG zlib"
5434 elif [ "$CFG_ZLIB" = "system" ]; then
5435 QT_CONFIG="$QT_CONFIG system-zlib"
5438 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5439 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5440 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5441 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5442 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5443 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5444 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5445 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5446 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5447 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5448 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5449 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5450 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5451 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5453 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5454 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5456 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5457 if [ "$CFG_RPATH" = "yes" ]; then
5458 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5460 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5461 if [ -n "$RPATH_FLAGS" ]; then
5463 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5467 elif [ "$CFG_RPATH" = "yes" ]; then
5468 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5472 if [ -n "$RPATH_FLAGS" ]; then
5473 # add the user defined rpaths
5474 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5477 if [ "$CFG_RPATH" = "yes" ]; then
5478 QT_CONFIG="$QT_CONFIG rpath"
5481 if [ '!' -z "$I_FLAGS" ]; then
5482 # add the user define include paths
5483 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5484 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5487 if [ '!' -z "$W_FLAGS" ]; then
5488 # add the user defined warning flags
5489 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5490 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5491 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5494 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5495 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5496 # Follow default behavior of configure.exe by overriding with "rtti".
5497 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5500 if [ "$CFG_ALSA" = "yes" ]; then
5501 QT_CONFIG="$QT_CONFIG alsa"
5504 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5505 QT_CONFIG="$QT_CONFIG pulseaudio"
5508 if [ "$CFG_COREWLAN" = "yes" ]; then
5509 QT_CONFIG="$QT_CONFIG corewlan"
5512 if [ "$CFG_ICU" = "yes" ]; then
5513 QT_CONFIG="$QT_CONFIG icu"
5516 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5517 QT_CONFIG="$QT_CONFIG force_asserts"
5520 if [ "$CFG_PCRE" = "qt" ]; then
5521 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5525 # Some Qt modules are too advanced in C++ for some old compilers
5526 # Detect here the platforms where they are known to work.
5528 # See Qt documentation for more information on which features are
5529 # supported and on which compilers.
5531 canBuildQtConcurrent="yes"
5532 canUseV8Snapshot="yes"
5534 case "$XPLATFORM" in
5536 # PA-RISC's assembly is too limited
5537 # gcc 3.4 on that platform can't build QtXmlPatterns
5538 # the assembly it generates cannot be compiled
5540 # Check gcc's version
5541 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5545 canBuildQtXmlPatterns="no"
5549 canBuildQtXmlPatterns="no"
5553 unsupported/vxworks-*-g++*)
5556 unsupported/vxworks-*-dcc*)
5558 canBuildQtXmlPatterns="no"
5561 # Check gcc's version
5562 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5570 canBuildQtXmlPatterns="no"
5575 # Check the compiler version
5576 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5579 canBuildQtXmlPatterns="no"
5580 canBuildQtConcurrent="no"
5584 canBuildQtConcurrent="no"
5590 canBuildQtXmlPatterns="no"
5591 canBuildQtConcurrent="no"
5597 # Get the xlC version
5598 cat > xlcver.c <<EOF
5602 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5607 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5608 xlcver=`./xlcver 2>/dev/null`
5611 if [ "$OPT_VERBOSE" = "yes" ]; then
5612 if [ -n "$xlcver" ]; then
5613 echo Found IBM xlC version: $xlcver.
5615 echo Could not determine IBM xlC version, assuming oldest supported.
5622 canBuildQtXmlPatterns="no"
5623 canBuildQtConcurrent="no"
5627 canBuildQtConcurrent="no"
5633 canBuildQtConcurrent="no"
5637 if [ "$CFG_GUI" = "no" ]; then
5638 # WebKit requires QtGui
5642 if [ "$CFG_SHARED" = "no" ]; then
5644 echo "WARNING: Using static linking will disable the WebKit module."
5649 CFG_CONCURRENT="yes"
5650 if [ "$canBuildQtConcurrent" = "no" ]; then
5651 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5654 QT_CONFIG="$QT_CONFIG concurrent"
5658 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5659 QT_CONFIG="$QT_CONFIG audio-backend"
5663 if [ "$CFG_WEBKIT" = "debug" ]; then
5664 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5668 QT_CONFIG="$QT_CONFIG v8"
5669 # Detect snapshot support
5670 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5671 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5674 *) canUseV8Snapshot="no"
5678 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5679 # QEMU crashes when building inside Scratchbox with an ARM target
5680 canUseV8Snapshot="no"
5683 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5684 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5686 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5687 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5690 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5691 QT_CONFIG="$QT_CONFIG v8snapshot"
5695 if [ "$CFG_QML_DEBUG" = "no" ]; then
5696 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5699 case "$QMAKE_CONF_COMPILER" in
5702 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5704 case "$COMPILER_VERSION" in
5706 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5707 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5708 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5711 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5712 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5713 QT_GCC_PATCH_VERSION=0
5723 #-------------------------------------------------------------------------------
5724 # part of configuration information goes into qconfig.h
5725 #-------------------------------------------------------------------------------
5727 case "$CFG_QCONFIG" in
5729 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5732 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5733 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5734 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5735 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5736 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5737 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5739 echo "#endif" >>"$tmpconfig"
5743 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5747 # define QT_EDITION $QT_EDITION
5751 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5752 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5754 if [ "$CFG_SHARED" = "no" ]; then
5755 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5756 /* Qt was configured for a static build */
5757 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5764 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5765 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5768 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5769 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5772 if [ "$BUILD_ON_MAC" = "yes" ]; then
5773 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5774 #if defined(__LP64__)
5775 # define QT_POINTER_SIZE 8
5777 # define QT_POINTER_SIZE 4
5781 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5782 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5785 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5786 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5787 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5790 # Add compiler sub-architecture support
5791 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5792 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5793 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5795 MIPS_DSP MIPS_DSPR2; do
5796 eval "VAL=\$CFG_$SUBARCH"
5799 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5800 >>"$outpath/src/corelib/global/qconfig.h.new"
5805 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5807 if [ "$CFG_DEV" = "yes" ]; then
5808 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5811 # Add QPA to config.h
5812 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5814 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5815 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5818 # Add turned on SQL drivers
5819 for DRIVER in $CFG_SQL_AVAILABLE; do
5820 eval "VAL=\$CFG_SQL_$DRIVER"
5823 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5824 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5825 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5828 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5833 QMakeVar set sql-drivers "$SQL_DRIVERS"
5834 QMakeVar set sql-plugins "$SQL_PLUGINS"
5836 # Add other configuration options to the qconfig.h file
5837 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5838 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5839 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5840 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5841 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5843 # X11/Unix/Mac only configs
5844 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5845 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5846 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5847 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5848 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5849 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5850 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5851 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5852 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5853 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5854 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5855 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5856 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5857 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5859 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5860 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5861 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5862 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5863 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5864 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5865 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5866 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5867 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5868 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5869 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5870 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5871 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5873 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5874 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5875 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5876 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5877 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5878 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5879 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5880 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5882 # sort QCONFIG_FLAGS for neatness if we can
5883 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5884 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5886 if [ -n "$QCONFIG_FLAGS" ]; then
5887 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5888 #ifndef QT_BOOTSTRAPPED
5891 for cfg in $QCONFIG_FLAGS; do
5892 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5893 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5894 # figure out define logic, so we can output the correct
5895 # ifdefs to override the global defines in a project
5897 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5898 # QT_NO_option can be forcefully turned on by QT_option
5899 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5900 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5901 # QT_option can be forcefully turned off by QT_NO_option
5902 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5905 if [ -z $cfgdNeg ]; then
5906 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5913 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5914 #if defined($cfgd) && defined($cfgdNeg)
5916 #elif !defined($cfgd) && !defined($cfgdNeg)
5923 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5924 #endif // QT_BOOTSTRAPPED
5929 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5930 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5931 #define QT_VISIBILITY_AVAILABLE
5936 if [ -n "$QT_LIBINFIX" ]; then
5937 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5938 #define QT_LIBINFIX "$QT_LIBINFIX"
5943 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5945 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5946 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5947 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5949 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5950 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5951 chmod -w "$outpath/src/corelib/global/qconfig.h"
5952 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5953 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5957 #-------------------------------------------------------------------------------
5958 # save configuration into qconfig.pri
5959 #-------------------------------------------------------------------------------
5960 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5961 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5962 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5963 if [ "$CFG_DEBUG" = "yes" ]; then
5964 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5965 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5966 QT_CONFIG="$QT_CONFIG release"
5968 QT_CONFIG="$QT_CONFIG debug"
5969 elif [ "$CFG_DEBUG" = "no" ]; then
5970 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5971 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5972 QT_CONFIG="$QT_CONFIG debug"
5974 QT_CONFIG="$QT_CONFIG release"
5976 if [ "$CFG_FRAMEWORK" = "no" ]; then
5977 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5979 QT_CONFIG="$QT_CONFIG qt_framework"
5980 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5982 if [ "$CFG_DEV" = "yes" ]; then
5983 QT_CONFIG="$QT_CONFIG private_tests"
5986 cat >>"$QTCONFIG.tmp" <<EOF
5988 CONFIG += $QTCONFIG_CONFIG
5990 QT_HOST_ARCH = $CFG_HOST_ARCH
5991 QT_CPU_FEATURES = $CFG_CPUFEATURES
5992 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5993 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5994 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5995 QT_EDITION = $Edition
5996 QT_CONFIG += $QT_CONFIG
5999 QT_VERSION = $QT_VERSION
6000 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
6001 QT_MINOR_VERSION = $QT_MINOR_VERSION
6002 QT_PATCH_VERSION = $QT_PATCH_VERSION
6005 QT_LIBINFIX = $QT_LIBINFIX
6006 QT_NAMESPACE = $QT_NAMESPACE
6010 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
6011 echo "# pkgconfig" >> "$QTCONFIG.tmp"
6012 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
6013 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
6014 echo >> "$QTCONFIG.tmp"
6017 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
6018 echo "# sysroot" >>"$QTCONFIG.tmp"
6019 echo "!host_build {" >>"$QTCONFIG.tmp"
6020 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6021 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6022 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6023 echo "}" >> "$QTCONFIG.tmp"
6024 echo >> "$QTCONFIG.tmp"
6026 if [ -n "$RPATH_FLAGS" ]; then
6027 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
6029 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6030 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6031 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6032 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6035 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6036 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6037 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6040 # replace qconfig.pri if it differs from the newly created temp file
6041 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6042 rm -f "$QTCONFIG.tmp"
6044 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6047 #-------------------------------------------------------------------------------
6048 # save configuration into qmodule.pri
6049 #-------------------------------------------------------------------------------
6050 QTMODULE="$outpath/mkspecs/qmodule.pri"
6052 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
6053 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6055 if [ -n "$QT_CFLAGS_PSQL" ]; then
6056 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6058 if [ -n "$QT_LFLAGS_PSQL" ]; then
6059 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6061 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6062 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6064 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6065 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6067 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6068 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6070 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6071 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6073 if [ -n "$QT_LFLAGS_ODBC" ]; then
6074 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6076 if [ -n "$QT_LFLAGS_TDS" ]; then
6077 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6080 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6081 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6084 #dump in the OPENSSL_LIBS info
6085 if [ '!' -z "$OPENSSL_LIBS" ]; then
6086 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6087 elif [ "$CFG_OPENSSL" = "linked" ]; then
6088 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6091 #dump in the SDK info
6092 if [ '!' -z "$CFG_SDK" ]; then
6093 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6097 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6098 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6100 # replace qmodule.pri if it differs from the newly created temp file
6101 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6102 rm -f "$QTMODULE.tmp"
6104 mv -f "$QTMODULE.tmp" "$QTMODULE"
6107 #-------------------------------------------------------------------------------
6108 # save configuration into .qmake.cache
6109 #-------------------------------------------------------------------------------
6111 CACHEFILE="$outpath/.qmake.cache"
6112 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6113 cat >>"$CACHEFILE.tmp" <<EOF
6115 QT_SOURCE_TREE = \$\$quote($relpath)
6116 QT_BUILD_TREE = \$\$quote($outpath)
6118 include(\$\$PWD/mkspecs/qmodule.pri)
6119 CONFIG += dylib depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
6123 # replace .qmake.cache if it differs from the newly created temp file
6124 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6125 rm -f "$CACHEFILE.tmp"
6127 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6130 #-------------------------------------------------------------------------------
6131 # give feedback on configuration
6132 #-------------------------------------------------------------------------------
6133 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6136 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6137 echo "Build type: $PLATFORM"
6139 echo "Building on: $PLATFORM"
6140 echo "Building for: $XPLATFORM"
6143 # the missing space before $CFG_FEATURES is intentional
6144 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6145 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6147 if [ -n "$PLATFORM_NOTES" ]; then
6148 echo "Platform notes:"
6149 echo "$PLATFORM_NOTES"
6154 if [ "$OPT_VERBOSE" = "yes" ]; then
6155 echo $ECHO_N "qmake vars .......... $ECHO_C"
6156 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6157 echo "qmake switches ......... $QMAKE_SWITCHES"
6160 echo "Build .................. $CFG_BUILD_PARTS"
6161 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6162 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6163 echo "Debug .................. yes (combined)"
6164 if [ "$CFG_DEBUG" = "yes" ]; then
6165 echo "Default Link ........... debug"
6167 echo "Default Link ........... release"
6170 echo "Debug .................. $CFG_DEBUG"
6172 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6173 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6175 echo "C++11 support .......... $CFG_CXX11"
6176 if [ -n "$PKG_CONFIG" ]; then
6177 echo "pkg-config ............. yes"
6179 echo "pkg-config ............. no"
6181 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6182 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6183 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6184 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6185 echo "QtGui module ........... $CFG_GUI"
6186 echo "QtWidgets module ....... $CFG_WIDGETS"
6187 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6188 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6190 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6192 echo "QML debugging .......... $CFG_QML_DEBUG"
6193 echo "PCH support ............ $CFG_PRECOMPILE"
6194 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6195 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6196 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6197 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6198 elif [ "$CFG_ARCH" = "arm" ]; then
6199 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6200 echo "NEON support ........... ${CFG_NEON}"
6202 if [ "$CFG_ARCH" = "mips" ]; then
6203 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6205 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6206 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6207 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6208 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6209 echo "NIS support ............ $CFG_NIS"
6210 echo "CUPS support ........... $CFG_CUPS"
6211 echo "Iconv support .......... $CFG_ICONV"
6212 echo "Glib support ........... $CFG_GLIB"
6213 echo "GStreamer support ...... $CFG_GSTREAMER"
6214 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6215 echo "Large File support ..... $CFG_LARGEFILE"
6216 echo "GIF support ............ $CFG_GIF"
6217 if [ "$CFG_JPEG" = "no" ]; then
6218 echo "JPEG support ........... $CFG_JPEG"
6220 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6222 if [ "$CFG_PNG" = "no" ]; then
6223 echo "PNG support ............ $CFG_PNG"
6225 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6227 echo "zlib support ........... $CFG_ZLIB"
6228 echo "Session management ..... $CFG_SM"
6229 echo "libudev support ........ $CFG_LIBUDEV"
6231 if [ "$CFG_OPENGL" = "desktop" ]; then
6232 echo "OpenGL support ......... yes (Desktop OpenGL)"
6233 elif [ "$CFG_OPENGL" = "es2" ]; then
6234 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6236 echo "OpenGL support ......... no"
6239 if [ "$CFG_OPENVG" ]; then
6240 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6241 echo "OpenVG support ......... ShivaVG"
6243 echo "OpenVG support ......... $CFG_OPENVG"
6247 echo "XShape support ......... $CFG_XSHAPE"
6248 echo "XVideo support ......... $CFG_XVIDEO"
6249 echo "XSync support .......... $CFG_XSYNC"
6250 echo "Xinerama support ....... $CFG_XINERAMA"
6251 echo "Xcursor support ........ $CFG_XCURSOR"
6252 echo "Xfixes support ......... $CFG_XFIXES"
6253 echo "Xrandr support ......... $CFG_XRANDR"
6254 echo "Xi support ............. $CFG_XINPUT"
6255 echo "Xi2 support ............ $CFG_XINPUT2"
6256 echo "MIT-SHM support ........ $CFG_MITSHM"
6257 echo "FontConfig support ..... $CFG_FONTCONFIG"
6258 echo "XKB Support ............ $CFG_XKB"
6259 echo "immodule support ....... $CFG_IM"
6260 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6262 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6263 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6264 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6265 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6266 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6267 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6268 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6269 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6270 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6273 if [ "$CFG_OPENSSL" = "yes" ]; then
6274 OPENSSL_LINKAGE="(run-time)"
6275 elif [ "$CFG_OPENSSL" = "linked" ]; then
6276 OPENSSL_LINKAGE="(linked)"
6278 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6279 echo "Alsa support ........... $CFG_ALSA"
6280 if [ "$BUILD_ON_MAC" = "yes" ]; then
6281 echo "CoreWlan support ....... $CFG_COREWLAN"
6283 echo "libICU support ......... $CFG_ICU"
6284 echo "PCRE support ........... $CFG_PCRE"
6285 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6286 echo "Xcb support ............ limited (old version)"
6288 echo "Xcb support ............ $CFG_XCB"
6290 echo "Xrender support ........ $CFG_XRENDER"
6291 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6292 echo "XInput2 support ........ $CFG_XINPUT2"
6294 echo "EGLFS support .......... $CFG_EGLFS"
6295 echo "DirectFB support ....... $CFG_DIRECTFB"
6296 echo "LinuxFB support ........ $CFG_LINUXFB"
6297 echo "KMS support ............ $CFG_KMS"
6300 # complain about not being able to use dynamic plugins if we are using a static build
6301 if [ "$CFG_SHARED" = "no" ]; then
6303 echo "WARNING: Using static linking will disable the use of dynamically"
6304 echo "loaded plugins. Make sure to import all needed static plugins,"
6305 echo "or compile needed modules into the library."
6308 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6310 echo "NOTE: When linking against OpenSSL, you can override the default"
6311 echo "library names through OPENSSL_LIBS."
6313 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6317 exec 1>&3 3>&- # restore stdout
6318 cat $outpath/config.summary # display config feedback to user
6320 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6322 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6323 echo "if you want a pure debug build."
6328 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6333 #-------------------------------------------------------------------------------
6334 # build makefiles based on the configuration
6335 #-------------------------------------------------------------------------------
6337 if [ "$CFG_PROCESS" != "no" ]; then
6339 if [ "$CFG_PROCESS" = "full" ]; then
6340 echo "Creating makefiles. Please wait..."
6341 "$outpath/bin/qmake" -r "$relpath"
6344 "$outpath/bin/qmake" "$relpath"
6347 if [ "$OPT_FAST" = "yes" ]; then
6349 for part in $CFG_BUILD_PARTS; do
6351 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6354 if [ "x$PART_ROOTS" != "x" ]; then
6356 echo "Creating stub makefiles. Please wait..."
6357 QMAKE="$outpath/bin/qmake"
6358 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6359 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6361 test -f "$outpath/$d/Makefile" && continue
6362 echo " for $relpath/$p"
6364 mkdir -p "$outpath/$d" || exit
6365 cat > "$outpath/$d/Makefile" <<EOF || exit
6366 # $outpath/$d/Makefile: generated by configure
6368 # WARNING: This makefile will be replaced with a real makefile.
6369 # All changes made to this file will be lost.
6374 all clean install qmake first Makefile: FORCE
6375 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6385 #-------------------------------------------------------------------------------
6386 # check for platforms that we don't yet know about
6387 #-------------------------------------------------------------------------------
6388 if [ "$CFG_ARCH" = "unknown" ]; then
6391 NOTICE: configure was unable to determine the architecture
6392 for the $XQMAKESPEC target.
6394 Qt will not use a specialized implementation for any atomic
6395 operations. Instead a generic implemention based on either GCC
6396 intrinsics or C++11 std::atomic<T> will be used (when
6397 available). The generic implementations are generally as fast
6398 as and always as safe as a specialized implementation.
6400 If no generic implementation is available, Qt will use a
6401 fallback UNIX implementation which uses a single
6402 pthread_mutex_t to protect all atomic operations. This
6403 implementation is the slow (but safe) fallback implementation
6404 for architectures Qt does not yet support.
6408 #-------------------------------------------------------------------------------
6409 # check if the user passed the -no-zlib option, which is no longer supported
6410 #-------------------------------------------------------------------------------
6411 if [ -n "$ZLIB_FORCED" ]; then
6412 which_zlib="supplied"
6413 if [ "$CFG_ZLIB" = "system" ]; then
6419 NOTICE: The -no-zlib option was supplied but is no longer
6422 Qt now requires zlib support in all builds, so the -no-zlib
6423 option was ignored. Qt will be built using the $which_zlib
6428 #-------------------------------------------------------------------------------
6429 # check if the user passed the obsoleted -wayland or -no-wayland flag
6430 #-------------------------------------------------------------------------------
6431 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6434 NOTICE: The -wayland and -no-wayland flags are now obsolete
6436 All configuring of QtWayland plugin and QtCompositor happens in the module
6440 #-------------------------------------------------------------------------------
6441 # check if the user passed the obsoleted -arch or -host-arch options
6442 #-------------------------------------------------------------------------------
6443 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6446 NOTICE: The -arch and -host-arch options are obsolete.
6448 Qt now detects the target and host architectures based on compiler
6449 output. Qt will be built using $CFG_ARCH for the target architecture
6450 and $CFG_HOST_ARCH for the host architecture (note that these two
6451 will be the same unless you are cross-compiling).
6455 #-------------------------------------------------------------------------------
6456 # finally save the executed command to another script
6457 #-------------------------------------------------------------------------------
6458 if [ `basename $0` != "config.status" ]; then
6459 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6461 # add the system variables
6462 for varname in $SYSTEM_VARIABLES; do
6464 'if [ -n "\$'${varname}'" ]; then
6465 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6470 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6472 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6473 echo "#!/bin/sh" > "$outpath/config.status"
6474 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6475 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6476 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6477 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6478 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6479 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6480 echo "else" >> "$outpath/config.status"
6481 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6482 echo "fi" >> "$outpath/config.status"
6483 chmod +x "$outpath/config.status"
6486 if [ -n "$RPATH_MESSAGE" ]; then
6488 echo "$RPATH_MESSAGE"
6491 MAKE=`basename "$MAKE"`
6493 echo Qt is now configured for building. Just run \'$MAKE\'.
6494 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6495 echo Once everything is built, Qt is installed.
6496 echo You should not run \'$MAKE install\'.
6498 echo Once everything is built, you must run \'$MAKE install\'.
6499 echo Qt will be installed into $QT_INSTALL_PREFIX
6502 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.