2 #############################################################################
4 ## Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
5 ## Contact: http://www.qt-project.org/legal
7 ## This file is the build configuration utility of the Qt Toolkit.
9 ## $QT_BEGIN_LICENSE:LGPL$
10 ## Commercial License Usage
11 ## Licensees holding valid commercial Qt licenses may use this file in
12 ## accordance with the commercial license agreement provided with the
13 ## Software or, alternatively, in accordance with the terms contained in
14 ## a written agreement between you and Digia. For licensing terms and
15 ## conditions see http://qt.digia.com/licensing. For further information
16 ## use the contact form at http://qt.digia.com/contact-us.
18 ## GNU Lesser General Public License Usage
19 ## Alternatively, this file may be used under the terms of the GNU Lesser
20 ## General Public License version 2.1 as published by the Free Software
21 ## Foundation and appearing in the file LICENSE.LGPL included in the
22 ## packaging of this file. Please review the following information to
23 ## ensure the GNU Lesser General Public License version 2.1 requirements
24 ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
26 ## In addition, as a special exception, Digia gives you certain additional
27 ## rights. These rights are described in the Digia Qt LGPL Exception
28 ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
30 ## GNU General Public License Usage
31 ## Alternatively, this file may be used under the terms of the GNU
32 ## General Public License version 3.0 as published by the Free Software
33 ## Foundation and appearing in the file LICENSE.GPL included in the
34 ## packaging of this file. Please review the following information to
35 ## ensure the GNU General Public License version 3.0 requirements will be
36 ## met: http://www.gnu.org/copyleft/gpl.html.
41 #############################################################################
43 #-------------------------------------------------------------------------------
44 # script initialization
45 #-------------------------------------------------------------------------------
47 # the name of this script
49 # the directory of this script is the "source tree"
51 relpath=`(cd "$relpath"; /bin/pwd)`
52 # the current directory is the "build tree" or "object tree"
55 #license file location
56 LICENSE_FILE="$QT_LICENSE_FILE"
57 [ -z "$LICENSE_FILE" ] && LICENSE_FILE="$HOME/.qt-license"
58 if [ -f "$LICENSE_FILE" ]; then
59 tr -d '\r' <"$LICENSE_FILE" >"${LICENSE_FILE}.tmp"
60 diff "${LICENSE_FILE}.tmp" "${LICENSE_FILE}" >/dev/null 2>&1 || LICENSE_FILE="${LICENSE_FILE}.tmp"
63 # later cache the command line in config.status
64 OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
66 # initialize global variables
73 QMAKE_VARS_FILE=.qmake.vars
74 DEVICE_VARS_FILE=.device.vars
77 :> "$DEVICE_VARS_FILE"
79 #-------------------------------------------------------------------------------
81 #-------------------------------------------------------------------------------
85 echo "$@" | sed 's/ /\ /g'
88 # Adds a new qmake variable to the cache
89 # Usage: QMakeVar mode varname contents
90 # where mode is one of: set, add, del
104 echo >&2 "BUG: wrong command to QMakeVar: $1"
108 echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
111 shellArgumentListToQMakeListHelper()
114 for arg in "$@"; do retval="$retval \"$arg\""; done
118 # Convert a string usable on a shell command line into word-by-word quoted
120 shellArgumentListToQMakeList()
122 # eval is needed for the shell to interpret the backslash escape sequences
123 eval shellArgumentListToQMakeListHelper "$@"
126 # Helper function for getQMakeConf. It parses include statements in
127 # qmake.conf and prints out the expanded file
130 while read line; do case "$line" in
132 inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"`
133 current_dir=`dirname "$1"`
134 conf_file="$current_dir/$inc_file"
135 if [ ! -f "$conf_file" ]; then
136 echo "WARNING: Unable to find file $conf_file" >&2
139 getQMakeConf1 "$conf_file"
141 *load\(device_config\)*)
142 conf_file="$DEVICE_VARS_FILE"
143 if [ ! -f "$conf_file" ]; then
144 echo "WARNING: Unable to find file $conf_file" >&2
147 getQMakeConf1 "$conf_file"
159 values["LITERAL_WHITESPACE"] = " "
160 values["LITERAL_DOLLAR"] = "$"
162 /^[_A-Z0-9.]+[ \t]*\+?=/ {
163 valStart = index($0, "=") + 1
166 if (substr($0, valStart - 2, 1) == "+") {
170 variable = substr($0, 0, valStart - 2 - append)
171 value = substr($0, valStart)
172 gsub("[ \t]+", "", variable)
173 gsub("^[ \t]+", "", value)
174 gsub("[ \t]+$", "", value)
177 while (match(value, /\$\$(\{[_A-Z0-9.]+\}|[_A-Z0-9.]+)/)) {
178 ovalue = ovalue substr(value, 1, RSTART - 1)
179 var = substr(value, RSTART + 2, RLENGTH - 2)
180 value = substr(value, RSTART + RLENGTH)
182 var = substr(var, 2, length(var) - 2)
184 ovalue = ovalue values[var]
186 ovalue = ovalue value
188 combinedValue = values[variable]
189 if (append == 1 && length(combinedValue) > 0) {
190 combinedValue = combinedValue " " ovalue
192 combinedValue = ovalue
194 values[variable] = combinedValue
197 for (var in values) {
198 print var "=" values[var]
206 echo "$2" | $AWK "/^($1)=/ { print substr(\$0, index(\$0, \"=\") + 1) }"
209 # relies on $QMAKESPEC being set correctly. parses include statements in
210 # qmake.conf and prints out the expanded file
213 if [ -z "$specvals" ]; then
214 specvals=`getQMakeConf1 "$QMAKESPEC/qmake.conf" | getQMakeConf2`
216 getQMakeConf3 "$1" "$specvals"
221 if [ -z "$xspecvals" ]; then
222 xspecvals=`getQMakeConf1 "$XQMAKESPEC/qmake.conf" | getQMakeConf2`
224 getQMakeConf3 "$1" "$xspecvals"
227 compilerSupportsFlag()
229 cat >conftest.cpp <<EOF
230 int main() { return 0; }
232 "$@" -o conftest-out.o conftest.cpp
234 rm -f conftest.cpp conftest-out.o
245 safe_flag=`shellEscape "$flag"`
246 lflags=$lflags,$safe_flag
248 compilerSupportsFlag $compiler $lflags >/dev/null 2>&1
251 # $1: newline-separated list of default paths
253 # stdout: input path or nothing
258 echo "$1" | grep "^$path\$" > /dev/null || echo "$path"
263 filterDefaultPaths "$DEFAULT_INCDIRS"
268 filterDefaultPaths "$DEFAULT_LIBDIRS"
271 filterPathOptionsHelper()
273 local flag defpaths sep p path
279 if [ "x$path" != "x$p" ]; then
280 path=`echo "$path" | filterDefaultPaths "$defpaths"`
281 test -z "$path" && continue
283 # Re-quote for shell & qmake
284 p=`echo "$p" | sed 's,[^ ]* .*,"&",g'`
285 printf "%s%s" "$sep" "$p"
292 # $2: newline-separated list of default paths
293 # stdin: list of command line options
294 # sdout: stdin without the options naming default paths
297 # The eval does escape interpretation for us
298 eval filterPathOptionsHelper $1 "\"$2\"" "`cat`"
301 filterIncludeOptions()
303 filterPathOptions -I "$DEFAULT_INCDIRS"
306 filterLibraryOptions()
308 filterPathOptions -L "$DEFAULT_LIBDIRS"
311 #-------------------------------------------------------------------------------
313 #-------------------------------------------------------------------------------
321 echo >&2 "BUG: wrong command to QMakeVar: $1"
325 echo "$2" "$eq" "$3" >> "$DEVICE_VARS_FILE"
328 resolveDeviceMkspec()
330 result=$(find "$relpath/mkspecs/devices/" -type d -name "*$1*" | sed "s,^$relpath/mkspecs/,,")
331 match_count=$(echo "$result" | wc -w)
332 if [ "$match_count" -gt 1 ]; then
333 echo >&2 "Error: Multiple matches for device '$1'. Candidates are:"
334 tabbed_result=$(echo "$result" | sed "s,^, ,")
335 echo >&2 "$tabbed_result"
337 elif [ "$match_count" -eq 0 ]; then
338 echo >&2 "Error: No device matching '$1'"
345 #-------------------------------------------------------------------------------
346 # operating system detection
347 #-------------------------------------------------------------------------------
349 # need that throughout the script
350 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
351 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
352 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
353 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
355 # detect the "echo without newline" style. usage: echo $ECHO_N "<string>$ECHO_C"
356 if echo '\c' | grep '\c' >/dev/null; then
362 #-------------------------------------------------------------------------------
363 # window system detection
364 #-------------------------------------------------------------------------------
368 if [ -d /System/Library/Frameworks/Carbon.framework ]; then
373 #-----------------------------------------------------------------------------
374 # Qt version detection
375 #-----------------------------------------------------------------------------
376 QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
380 if [ -n "$QT_VERSION" ]; then
381 QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
382 MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
383 if [ -n "$MAJOR" ]; then
384 MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
385 PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
386 QT_MAJOR_VERSION="$MAJOR"
387 [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
388 [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
391 if [ -z "$QT_MAJOR_VERSION" ]; then
392 echo "Cannot process version from qglobal.h: $QT_VERSION"
393 echo "Cannot proceed."
397 #-------------------------------------------------------------------------------
399 #-------------------------------------------------------------------------------
403 EditionString=Commercial
407 # parse the arguments, setting things to "yes" or "no"
408 while [ "$#" -gt 0 ]; do
412 #Autoconf style options
414 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
418 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
422 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
423 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
426 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
429 -h|help|--help|-help)
430 if [ "$VAL" = "yes" ]; then
432 COMMERCIAL_USER="no" #doesn't matter we will display the help
435 COMMERCIAL_USER="no" #doesn't matter we will display the help
439 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
443 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
450 if [ "$UNKNOWN_ARG" = "yes" ]; then
462 COMMERCIAL_USER="yes"
476 if [ "$COMMERCIAL_USER" = "ask" ]; then
478 echo "Which edition of Qt do you want to use ?"
480 echo "Type 'c' if you want to use the Commercial Edition."
481 echo "Type 'o' if you want to use the Open Source Edition."
485 if [ "$commercial" = "c" ]; then
486 COMMERCIAL_USER="yes"
488 elif [ "$commercial" = "o" ]; then
495 if [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
496 # Commercial preview release
497 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
500 QT_EDITION="QT_EDITION_DESKTOP"
501 LicenseType="Technology Preview"
502 elif [ $COMMERCIAL_USER = "yes" ]; then
503 # one of commercial editions
504 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
506 # read in the license file
507 if [ -f "$LICENSE_FILE" ]; then
508 . "$LICENSE_FILE" >/dev/null 2>&1
509 if [ -z "$LicenseKeyExt" ]; then
511 echo "You are using an old license file."
513 echo "Please install the license file supplied by Digia,"
514 echo "or install the Qt Open Source Edition if you intend to"
515 echo "develop free software."
518 if [ -z "$Licensee" ]; then
520 echo "Invalid license key. Please check the license key."
524 if [ -z "$LicenseKeyExt" ]; then
526 echo $ECHO_N "Please enter your license key: $ECHO_C"
528 Licensee="Unknown user"
533 echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
534 && LicenseValid="yes" \
536 if [ "$LicenseValid" != "yes" ]; then
538 echo "Invalid license key. Please check the license key."
541 ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
542 PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d -`
543 LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
544 LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
546 # determine which edition we are licensed to use
547 case "$LicenseTypeCode" in
549 LicenseType="Commercial"
553 QT_EDITION="QT_EDITION_UNIVERSAL"
556 Edition="FullFramework"
557 EditionString="Full Framework"
558 QT_EDITION="QT_EDITION_DESKTOP"
561 Edition="GUIFramework"
562 EditionString="GUI Framework"
563 QT_EDITION="QT_EDITION_DESKTOPLIGHT"
568 LicenseType="Evaluation"
569 QMakeVar add DEFINES QT_EVAL
573 QT_EDITION="QT_EDITION_EVALUATION"
578 if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
580 echo "Invalid license key. Please check the license key."
584 # verify that we are licensed to use Qt on this platform
586 case "$PlatformCode" in
589 PlatformCode=`echo "$PlatformCode" | sed 'h;y/8NPQRTZ/UCWX9M7/;x;G;s/\(.\)....\(.\)./\1\2/'`
593 PlatformCode=`echo "$PlatformCode" | sed 's/.$//'`
596 ### EMBEDDED_QPA logic missing ###
597 case "$PlatformCode,$PLATFORM_MAC" in
598 X9,* | XC,* | XU,* | XW,* | XM,*)
600 LICENSE_EXTENSION="-ALLOS"
602 8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*)
603 # Qt for Embedded Linux
604 LICENSE_EXTENSION="-EMBEDDED"
606 6M,* | N7,* | N9,* | NX,*)
608 LICENSE_EXTENSION="-EMBEDDED"
610 FM,* | LM,yes | ZM,no)
612 LICENSE_EXTENSION="-DESKTOP"
616 [ "$PLATFORM_MAC" = "yes" ] && Platform='Mac OS X'
618 echo "You are not licensed for the $Platform platform."
620 echo "Please use the contact form at http://qt.digia.com/contact-us"
621 echo "to upgrade your license to include the $Platform platform, or install"
622 echo "the Qt Open Source Edition if you intend to develop free software."
627 if test -r "$relpath/.LICENSE"; then
628 # Generic, non-final license
630 line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
635 *TECHNOLOGY?PREVIEW*)
642 echo >&2 "Invalid license files; cannot continue"
647 EditionString="$Edition"
648 QT_EDITION="QT_EDITION_DESKTOP"
651 case "$LicenseFeatureCode" in
654 case "$LicenseType" in
656 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
659 cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
665 case "$LicenseType" in
667 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
670 cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
676 echo "Invalid license key. Please check the license key."
680 case "$LicenseFeatureCode" in
688 if [ '!' -f "$outpath/LICENSE" ]; then
689 echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
690 echo "this software has disappeared."
692 echo "Sorry, you are not licensed to use this software."
693 echo "Try re-installing."
697 elif [ $COMMERCIAL_USER = "no" ]; then
698 # Open Source edition - may only be used under the terms of the GPL or LGPL.
699 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
700 Licensee="Open Source"
702 EditionString="Open Source"
703 QT_EDITION="QT_EDITION_OPENSOURCE"
706 #-------------------------------------------------------------------------------
707 # initalize variables
708 #-------------------------------------------------------------------------------
710 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
711 for varname in $SYSTEM_VARIABLES; do
712 qmakevarname="${varname}"
713 # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
714 if [ "${varname}" = "LDFLAGS" ]; then
715 qmakevarname="LFLAGS"
716 elif [ "${varname}" = "LD" ]; then
720 'if [ -n "\$'${varname}'" ]; then
721 QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
725 # Use CC/CXX to run config.tests
726 mkdir -p "$outpath/config.tests"
727 rm -f "$outpath/config.tests/.qmake.cache"
728 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
730 QMakeVar add styles "mac fusion windows"
732 # QTDIR may be set and point to an old or system-wide Qt installation
735 # the minimum version of libdbus-1 that we require:
736 MIN_DBUS_1_VERSION=0.93
738 # initalize internal variables
739 CFG_CONFIGURE_EXIT_ON_ERROR=yes
742 CFG_GUI=auto # (yes|no|auto)
748 CFG_FORCEDEBUGINFO=no
769 CFG_OPENVG_LC_INCLUDES=no
770 CFG_OPENVG_SHIVA=auto
771 CFG_OPENVG_ON_OPENGL=auto
777 QT_DEFAULT_BUILD_PARTS="libs tools examples"
781 CFG_AUDIO_BACKEND=auto
784 CFG_JAVASCRIPTCORE_JIT=auto
786 CFG_STACK_PROTECTOR_STRONG=auto
788 CFG_SYSTEM_PROXIES=no
790 # Target architecture
793 # Host architecture, same as CFG_ARCH when not cross-compiling
795 CFG_HOST_CPUFEATURES=
796 # Set when the -arch or -host-arch arguments are used
797 OPT_OBSOLETE_HOST_ARG=no
812 CFG_OBSOLETE_WAYLAND=no
824 CFG_SEPARATE_DEBUG_INFO=no
825 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
826 CFG_REDUCE_EXPORTS=auto
834 CFG_REDUCE_RELOCATIONS=auto
835 CFG_ACCESSIBILITY=auto
840 CFG_CLOCK_GETTIME=auto
841 CFG_CLOCK_MONOTONIC=auto
850 CFG_PREFIX_INSTALL=yes
859 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
860 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
865 OPT_CONFIRM_LICENSE=no
878 QPA_PLATFORM_GUARD=yes
881 # initalize variables used for installation
890 QT_INSTALL_TRANSLATIONS=
895 CFG_GCC_SYSROOT="yes"
900 #flags for SQL drivers
908 QT_LFLAGS_ODBC="-lodbc"
911 # flags for libdbus-1
915 # flags for Glib (X11 only)
919 # flags for GStreamer (X11 only)
923 # default qpa platform
924 QT_QPA_DEFAULT_PLATFORM=
926 #-------------------------------------------------------------------------------
927 # check SQL drivers available in this package
928 #-------------------------------------------------------------------------------
930 # opensource version removes some drivers, so force them to be off
936 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
937 for a in "$relpath/src/plugins/sqldrivers/"*; do
939 base_a=`basename "$a"`
940 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
941 eval "CFG_SQL_${base_a}=auto"
946 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
947 if [ -d "$relpath/src/plugins/imageformats" ]; then
948 for a in "$relpath/src/plugins/imageformats/"*; do
950 base_a=`basename "$a"`
951 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
956 #-------------------------------------------------------------------------------
957 # parse command line arguments
958 #-------------------------------------------------------------------------------
960 # parse the arguments, setting things to "yes" or "no"
961 while [ "$#" -gt 0 ]; do
965 #Autoconf style options
967 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
971 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
975 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
976 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
979 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
983 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
987 -no-*-*|-plugin-*-*|-qt-*-*)
988 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
989 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
993 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
996 #Qt style options that pass an argument
997 -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)
998 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1002 #Qt style complex options in one command
1003 -enable-*|-disable-*)
1004 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1005 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1015 #Qt Builtin/System style options
1016 -no-*|-system-*|-qt-*)
1017 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1018 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1020 #Options that cannot be generalized
1027 # this option may or may not be followed by an argument
1028 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1037 # this option may or may not be followed by an argument
1038 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1046 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1047 # this option may or may not be followed by an argument
1048 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1067 if [ "$1" = "-D" ]; then
1071 VAL=`echo $1 | sed 's,-D,,'`
1076 # this option may or may not be followed by an argument
1077 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1086 if [ "$1" = "-I" ]; then
1090 VAL=`echo $1 | sed 's,-I,,'`
1095 if [ "$1" = "-L" ]; then
1099 VAL=`echo $1 | sed 's,-L,,'`
1104 if [ "$1" = "-R" ]; then
1108 VAL=`echo $1 | sed 's,-R,,'`
1113 if [ "$1" = "-l" ]; then
1117 VAL=`echo $1 | sed 's,-l,,'`
1122 if [ "$1" = "-F" ]; then
1126 VAL=`echo $1 | sed 's,-F,,'`
1131 if [ "$1" = "-fw" ]; then
1135 VAL=`echo $1 | sed 's,-fw,,'`
1142 #General options, including Qt style yes options
1144 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1151 if [ "$UNKNOWN_ARG" = "yes" ]; then
1152 echo "$1: unknown argument"
1163 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1164 CFG_ACCESSIBILITY="$VAL"
1173 CFG_USE_GNUMAKE="$VAL"
1176 CFG_MYSQL_CONFIG="$VAL"
1179 QT_INSTALL_PREFIX="$VAL"
1182 QT_HOST_PREFIX="$VAL"
1191 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1192 CFG_PKGCONFIG="$VAL"
1198 CFG_PKGCONFIG="force"
1201 QT_INSTALL_DOCS="$VAL"
1204 QT_INSTALL_HEADERS="$VAL"
1207 QT_INSTALL_PLUGINS="$VAL"
1210 QT_INSTALL_IMPORTS="$VAL"
1213 QT_INSTALL_DATA="$VAL"
1216 QT_INSTALL_LIBS="$VAL"
1225 QT_INSTALL_TRANSLATIONS="$VAL"
1227 sysconfdir|settingsdir)
1228 QT_INSTALL_SETTINGS="$VAL"
1231 QT_INSTALL_EXAMPLES="$VAL"
1234 QT_INSTALL_TESTS="$VAL"
1243 CFG_GCC_SYSROOT="$VAL"
1246 QT_INSTALL_BINS="$VAL"
1249 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1256 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1257 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1258 [ "$VAL" = "es2" ]; then
1265 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1272 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1275 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1278 if [ "$BUILD_ON_MAC" = "yes" ]; then
1285 OPT_OBSOLETE_HOST_ARG=yes
1288 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1289 CFG_MAC_HARFBUZZ="$VAL"
1296 if [ "$BUILD_ON_MAC" = "yes" ]; then
1297 CFG_FRAMEWORK="$VAL"
1303 if [ "$VAL" = "yes" ]; then
1305 QMakeVar add QMAKE_CFLAGS -pg
1306 QMakeVar add QMAKE_CXXFLAGS -pg
1307 QMakeVar add QMAKE_LFLAGS -pg
1308 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1314 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1321 if [ "$VAL" = "yes" ]; then
1322 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1327 # keep compatibility with old platform names
1333 PLATFORM=hpux-acc-o64
1336 PLATFORM=hpux-acc-64
1339 PLATFORM=hpux-acc-64
1351 PLATFORM=reliant-cds-64
1354 PLATFORM=solaris-cc-64
1357 PLATFORM=unixware-cc
1360 PLATFORM=unixware-g++
1363 PLATFORM=unixware-cc
1366 PLATFORM=unixware-g++
1372 i386) NATIVE_64_ARCH="x86_64" ;;
1373 powerpc) NATIVE_64_ARCH="ppc64" ;;
1374 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1376 if [ ! -z "$NATIVE_64_ARCH" ]; then
1377 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1384 case `basename "$XPLATFORM"` in win32-g++*)
1387 CFG_REDUCE_EXPORTS=no
1392 XPLATFORM=`resolveDeviceMkspec $VAL`
1393 [ "$XPLATFORM" = "undefined" ] && exit 101
1396 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1397 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1398 DeviceVar set $DEV_VAR $DEV_VAL
1401 QT_QPA_DEFAULT_PLATFORM="$VAL"
1404 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1405 CFG_DEBUG_RELEASE="$VAL"
1411 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1412 CFG_RELEASE_QMAKE="$VAL"
1418 if [ "$VAL" = "yes" ]; then
1420 elif [ "$VAL" = "no" ]; then
1427 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1428 CFG_PREFIX_INSTALL="$VAL"
1437 CFG_FORCEDEBUGINFO="$VAL"
1439 developer-build|commercial|opensource)
1440 # These switches have been dealt with already
1443 if [ "$VAL" = "yes" ]; then
1445 elif [ "$VAL" = "no" ]; then
1452 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1453 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1459 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1460 if [ "$VAL" = "no" ]; then
1461 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1462 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1463 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1469 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1476 if [ "$VAL" = "no" ]; then
1483 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1491 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1498 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1505 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1512 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1519 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1526 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1533 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1540 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1541 CFG_PRECOMPILE="$VAL"
1546 separate-debug-info)
1547 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1548 CFG_SEPARATE_DEBUG_INFO="$VAL"
1549 elif [ "$VAL" = "nocopy" ] ; then
1550 CFG_SEPARATE_DEBUG_INFO="yes"
1551 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1557 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1558 CFG_REDUCE_EXPORTS="$VAL"
1564 if [ "$VAL" = "no" ]; then
1571 if [ "$VAL" = "no" ]; then
1578 if [ "$VAL" = "no" ]; then
1585 if [ "$VAL" = "no" ]; then
1592 if [ "$VAL" = "no" ]; then
1599 if [ "$VAL" = "no" ]; then
1606 if [ "$VAL" = "no" ]; then
1616 if [ "$VAL" = "no" ]; then
1623 if [ "$VAL" = "no" ]; then
1630 if [ "$VAL" = "no" ]; then
1631 CFG_MIPS_DSPR2="$VAL"
1637 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1638 CFG_REDUCE_RELOCATIONS="$VAL"
1644 [ "$VAL" = "qt" ] && VAL=yes
1645 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1650 # No longer supported:
1651 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1654 if [ "$VAL" = "system" ]; then
1661 [ "$VAL" = "yes" ] && VAL=qt
1662 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1669 [ "$VAL" = "yes" ] && VAL=qt
1670 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1677 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1684 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1691 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1698 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1705 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1712 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1713 CFG_FONTCONFIG="$VAL"
1719 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1726 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1733 CFG_OBSOLETE_WAYLAND=yes
1736 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1743 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1750 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1757 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1764 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1771 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1778 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1785 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1792 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1799 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1806 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1807 CFG_GSTREAMER="$VAL"
1813 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1814 CFG_QGTKSTYLE="$VAL"
1820 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1823 if [ "$VAL" = "no" ]; then
1831 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1833 elif [ "$VAL" = "no" ]; then
1840 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1841 QPA_PLATFORM_GUARD="$VAL"
1847 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1849 elif [ "$VAL" = "runtime" ]; then
1856 if [ "$VAL" = "yes" ]; then
1863 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1870 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1871 CFG_LARGEFILE="$VAL"
1877 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1884 if [ "$VAL" = "yes" ]; then
1885 CFG_OPENSSL="linked"
1891 if [ "$VAL" = "yes" ]; then
1894 if [ "$VAL" = "no" ]; then
1902 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1903 CFG_JAVASCRIPTCORE_JIT="$VAL"
1909 if [ "$VAL" = "yes" ]; then
1910 OPT_CONFIRM_LICENSE="$VAL"
1916 if [ "$VAL" = "yes" ]; then
1922 sql-*|imageformat-*)
1923 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1924 # if autoconf style options were used, $VAL can be "yes" or "no"
1925 [ "$VAL" = "yes" ] && VAL=qt
1926 # now $VAL should be "no", "qt", or "plugin"... double-check
1927 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1930 # now $VAL is "no", "qt", or "plugin"
1932 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1933 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1935 # Grab the available values
1938 avail="$CFG_SQL_AVAILABLE"
1941 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1942 if [ "$OPT" != "plugin" ]; then
1943 # png is always built in
1949 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1953 # Check that that user's value is available.
1956 if [ "$VAL" = "$d" ]; then
1961 [ "$found" = yes ] || ERROR=yes
1963 if [ "$VAR" = "sql" ]; then
1964 # set the CFG_SQL_driver
1965 eval "CFG_SQL_$VAL=\$OPT"
1967 elif [ "$VAR" = "imageformat" ]; then
1968 [ "$OPT" = "qt" ] && OPT=yes
1969 VAL="`echo $VAL |tr a-z A-Z`"
1970 eval "CFG_$VAL=$OPT"
1974 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1975 if [ "$OPT" = "plugin" ]; then
1978 QMakeVar add "${VAR}s" "${VAL}"
1979 elif [ "$OPT" = "no" ]; then
1980 PLUG_VAR="${VAR}-plugin"
1982 QMakeVar del "${IN_VAR}s" "$VAL"
1983 QMakeVar del "${PLUG_VAR}s" "$VAL"
1985 if [ "$ERROR" = "yes" ]; then
1986 echo "$CURRENT_OPT: unknown argument"
1991 if [ "$VAL" = "yes" ]; then
1992 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1993 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1997 elif [ "$VAL" = "no" ]; then
1998 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1999 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
2008 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2015 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2022 DEFINES="$DEFINES \"$VAL\""
2023 D_FLAGS="$D_FLAGS -D\"$VAL\""
2026 I_FLAGS="$I_FLAGS -I\"${VAL}\""
2029 L_FLAGS="$L_FLAGS -L\"${VAL}\""
2032 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2035 L_FLAGS="$L_FLAGS -l\"${VAL}\""
2038 if [ "$BUILD_ON_MAC" = "yes" ]; then
2039 L_FLAGS="$L_FLAGS -F\"${VAL}\""
2040 I_FLAGS="$I_FLAGS -F\"${VAL}\""
2046 if [ "$BUILD_ON_MAC" = "yes" ]; then
2047 L_FLAGS="$L_FLAGS -framework \"${VAL}\""
2053 W_FLAGS="$W_FLAGS \"${VAL}\""
2068 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2069 CFG_AUDIO_BACKEND="$VAL"
2075 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2082 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2083 CFG_FORCE_ASSERTS="$VAL"
2089 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2096 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2103 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2104 CFG_SYSTEM_PROXIES="$VAL"
2113 if [ "$UNKNOWN_OPT" = "yes" ]; then
2114 echo "${CURRENT_OPT}: invalid command-line switch"
2120 # update QT_CONFIG to show our current predefined configuration
2121 case "$CFG_QCONFIG" in
2122 minimal|small|medium|large|full)
2123 # these are a sequence of increasing functionality
2124 for c in minimal small medium large full; do
2125 QT_CONFIG="$QT_CONFIG $c-config"
2126 [ "$CFG_QCONFIG" = $c ] && break
2130 # not known to be sufficient for anything
2131 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2132 echo >&2 "Error: configuration file not found:"
2133 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2135 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2140 #-------------------------------------------------------------------------------
2141 # build tree initialization
2142 #-------------------------------------------------------------------------------
2144 # where to find which..
2145 unixtests="$relpath/config.tests/unix"
2146 mactests="$relpath/config.tests/mac"
2147 WHICH="$unixtests/which.test"
2149 PERL=`$WHICH perl 2>/dev/null`
2151 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2153 for e in gawk nawk awk; do
2154 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2161 PERL="/usr/bin/perl"
2162 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2166 ### skip this if the user just needs help...
2167 if [ "$OPT_HELP" != "yes" ]; then
2169 # is this a shadow build?
2170 if [ "$OPT_SHADOW" = "maybe" ]; then
2172 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2173 if [ -h "$outpath" ]; then
2174 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2180 if [ "$OPT_SHADOW" = "yes" ]; then
2181 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2182 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2183 echo >&2 "Cannot proceed."
2186 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2189 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2191 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2192 echo "Qt can be built in release mode with separate debug information, so"
2193 echo "-debug-and-release is not necessary anymore"
2197 if [ "$CFG_SILENT" = "yes" ]; then
2198 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2201 # if the source tree is different from the build tree,
2202 # symlink or copy part of the sources
2203 if [ "$OPT_SHADOW" = "yes" ]; then
2204 echo "Preparing build tree..."
2206 if [ -z "$PERL" ]; then
2208 echo "You need perl in your PATH to make a shadow build."
2209 echo "Cannot proceed."
2213 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2215 # make a syncqt script that can be used in the shadow
2216 rm -f "$outpath/bin/syncqt"
2217 if [ -x "$relpath/bin/syncqt" ]; then
2218 mkdir -p "$outpath/bin"
2219 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2220 echo "perl \"$relpath/bin/syncqt\" -mkspecsdir \"$outpath/mkspecs\" \"\$@\"" >>"$outpath/bin/syncqt"
2221 chmod 755 "$outpath/bin/syncqt"
2224 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2225 rm -f "$outpath/bin/$i"
2226 if [ -x "$relpath/bin/$i" ]; then
2227 mkdir -p "$outpath/bin"
2228 echo "#!/bin/sh" >"$outpath/bin/$i"
2229 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2230 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2231 chmod 755 "$outpath/bin/$i"
2235 # save a pre-existing mkspecs/modules dir
2236 test -d "$outpath/mkspecs/modules" && \
2237 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2238 # ditto for mkspecs/modules-inst
2239 test -d "$outpath/mkspecs/modules-inst" && \
2240 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2242 # symlink the mkspecs directory
2243 mkdir -p "$outpath/mkspecs"
2244 rm -rf "$outpath"/mkspecs/*
2245 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2249 rm -rf "$outpath/mkspecs/$1"
2250 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2251 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2254 # Special case for mkspecs/features directory.
2255 # To be able to place .prf files into a shadow build directory,
2256 # we're creating links for files only. The directory structure is reproduced.
2257 ShadowMkspecs features
2259 # The modules dir is special, too.
2260 if test -d "$outpath/mkspecs-modules"; then
2261 rm -rf "$outpath/mkspecs/modules"
2262 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2264 ShadowMkspecs modules
2267 # The modules-inst dir is not quite as special, but still.
2268 if test -d "$outpath/mkspecs-modules-inst"; then
2269 rm -rf "$outpath/mkspecs/modules-inst"
2270 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2273 # Prepare doc directory
2274 mkdir -p "$outpath/doc"
2275 ln -f -s "$relpath"/doc/global "$outpath/doc"
2278 # symlink fonts to be able to run application from build directory
2279 if [ ! -d "${outpath}/lib/fonts" ]; then
2280 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2281 mkdir -p "${outpath}/lib"
2282 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2286 if [ "$OPT_FAST" = "auto" ]; then
2287 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2294 # find a make command
2295 if [ -z "$MAKE" ]; then
2297 for mk in gmake make; do
2298 if "$WHICH" $mk >/dev/null 2>&1; then
2303 if [ -z "$MAKE" ]; then
2304 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2305 echo >&2 "Cannot proceed."
2308 # export MAKE, we need it later in the config.tests
2314 #-------------------------------------------------------------------------------
2315 # auto-detect all that hasn't been specified in the arguments
2316 #-------------------------------------------------------------------------------
2318 if [ -z "$PLATFORM" ]; then
2320 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2322 OSX_VERSION=`uname -r | cut -d. -f1`
2323 # Select compiler. Use g++ unless we find a usable Clang version
2325 if [ "$OSX_VERSION" -ge 12 ]; then
2326 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2328 elif [ "$OSX_VERSION" -eq 11 ]; then
2329 # We're on Lion. Check if we have a supported Clang version
2330 if [ "$(clang -v 2>&1 | grep -Po '(?<=version )[\d]')" -ge 3 ]; then
2332 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2338 #PLATFORM=aix-g++-64
2340 #PLATFORM=aix-xlc-64
2342 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2352 # PLATFORM=dynix-g++
2358 PLATFORM=freebsd-g++
2360 - Also available for FreeBSD: freebsd-icc
2364 PLATFORM=openbsd-g++
2375 #PLATFORM=irix-cc-64
2377 - Also available for IRIX: irix-g++ irix-cc-64
2381 case "$UNAME_MACHINE" in
2383 #PLATFORM=hpuxi-acc-32
2384 PLATFORM=hpuxi-acc-64
2386 - Also available for HP-UXi: hpuxi-acc-32
2392 #PLATFORM=hpux-acc-64
2394 #PLATFORM=hpux-acc-o64
2396 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2405 - Also available for Tru64: tru64-g++
2409 case "$UNAME_MACHINE" in
2411 PLATFORM=linux-g++-64
2418 - Also available for Linux: linux-kcc linux-icc linux-cxx
2422 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2423 PLATFORM="solaris-g++"
2425 #PLATFORM=solaris-g++
2427 #PLATFORM=solaris-cc64
2430 - Also available for Solaris: solaris-g++ solaris-cc-64
2433 ReliantUNIX-*:*|SINIX-*:*)
2434 PLATFORM=reliant-cds
2435 #PLATFORM=reliant-cds-64
2437 - Also available for Reliant UNIX: reliant-cds-64
2447 #PLATFORM=unixware-g++
2448 PLATFORM=unixware-cc
2450 - Also available for OpenUNIX: unixware-g++
2454 #PLATFORM=unixware-g++
2455 PLATFORM=unixware-cc
2457 - Also available for UnixWare: unixware-g++
2464 - Also available for SCO OpenServer: sco-g++
2468 PLATFORM=unixware-g++
2471 PLATFORM=unsupported/qnx-g++
2474 if [ "$OPT_HELP" != "yes" ]; then
2476 echo " The build script does not currently recognize all" >&2
2477 echo " platforms supported by Qt." >&2
2478 echo " Rerun this script with a -platform option listed to" >&2
2479 echo " set the system/compiler combination you use." >&2
2486 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2488 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2489 case "$XPLATFORM" in *-maemo*) XPLATFORM_MAEMO=yes;; esac
2490 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2492 if [ -d "$PLATFORM" ]; then
2493 QMAKESPEC="$PLATFORM"
2495 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2497 if [ -d "$XPLATFORM" ]; then
2498 XQMAKESPEC="$XPLATFORM"
2500 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2502 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2503 QT_CROSS_COMPILE=yes
2504 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2505 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2508 if [ "$BUILD_ON_MAC" = "yes" ]; then
2509 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2511 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2512 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2513 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2514 echo " built with 'macx-g++'" >&2
2520 # check specified platforms are supported
2521 if [ '!' -d "$QMAKESPEC" ]; then
2523 echo " The specified system/compiler is not supported:"
2527 echo " Please see the README file for a complete list."
2531 if [ '!' -d "$XQMAKESPEC" ]; then
2533 echo " The specified system/compiler is not supported:"
2537 echo " Please see the README file for a complete list."
2541 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2543 echo " The specified system/compiler port is not complete:"
2545 echo " $XQMAKESPEC/qplatformdefs.h"
2547 echo " Please use the contact form at http://qt.digia.com/contact-us"
2552 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2553 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2554 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2555 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2556 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2560 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2561 case `basename "$XPLATFORM"` in
2564 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2566 echo "Please use the contact form at http://qt.digia.com/contact-us"
2567 echo "to upgrade your license to include this platform, or install"
2568 echo "the Qt Open Source Edition if you intend to develop free software."
2574 #-------------------------------------------------------------------------------
2575 # tests that don't need qmake (must be run before displaying help)
2576 #-------------------------------------------------------------------------------
2578 # detect build style
2579 if [ "$CFG_DEBUG" = "auto" ]; then
2580 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2581 CFG_DEBUG_RELEASE=yes
2583 elif [ "$CFG_DEV" = "yes" ]; then
2584 CFG_DEBUG_RELEASE=no
2587 CFG_DEBUG_RELEASE=no
2591 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2592 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2595 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2596 QT_CONFIG="$QT_CONFIG force_debug_info"
2599 # pass on $CFG_SDK to the arch/configure tests.
2600 if [ -n "$CFG_SDK" ]; then
2601 MAC_SDK_FLAG="-sdk $CFG_SDK"
2606 # find the default framework value
2607 if [ "$BUILD_ON_MAC" = "yes" ]; then
2608 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2609 CFG_FRAMEWORK="$CFG_SHARED"
2610 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2612 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2620 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2622 TEST_COMPILER=$QMAKE_CONF_COMPILER
2623 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2624 if [ -z "$TEST_COMPILER" ]; then
2625 echo "ERROR: Cannot set the compiler for the configuration tests"
2629 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2632 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2633 if [ -n "$GCC_MACHINE_DUMP" ]; then
2634 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2637 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2638 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2642 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2644 # auto-detect precompiled header support
2645 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2646 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2653 # auto-detect support for separate debug info in objcopy
2654 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2655 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2656 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2657 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2658 CFG_SEPARATE_DEBUG_INFO=no
2662 # binutils on HP-UX is buggy; default to no.
2663 CFG_SEPARATE_DEBUG_INFO=no
2666 CFG_SEPARATE_DEBUG_INFO=yes
2672 # auto-detect -fvisibility support
2673 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2674 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2675 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2676 echo "-reduce-exports was requested but this compiler does not support it"
2677 echo "Re-run configure with -v for more information"
2680 CFG_REDUCE_EXPORTS=no
2682 CFG_REDUCE_EXPORTS=yes
2686 # auto-detect -fstack-protector-strong support (for QNX only currently)
2687 if [ "$XPLATFORM_QNX" = "yes" ]; then
2688 if compilerSupportsFlag $TEST_COMPILER -fstack-protector-strong; then
2689 CFG_STACK_PROTECTOR_STRONG=yes
2691 CFG_STACK_PROTECTOR_STRONG=no
2694 CFG_STACK_PROTECTOR_STRONG=no
2697 # detect the availability of the -Bsymbolic-functions linker optimization
2698 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2699 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2700 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2701 echo "-reduce-relocations was requested but this compiler does not support it"
2702 echo "Re-run configure with -v for more information"
2705 CFG_REDUCE_RELOCATIONS=no
2707 CFG_REDUCE_RELOCATIONS=yes
2711 # auto-detect GNU make support
2712 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2716 # find the default framework value
2717 if [ "$BUILD_ON_MAC" = "yes" ]; then
2718 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2719 CFG_FRAMEWORK="$CFG_SHARED"
2720 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2722 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2730 # auto-detect default include and library search paths
2731 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2732 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2733 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2734 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2735 /^End of search/ { yup=0 }
2736 yup { print substr($0, 2) }
2737 /^\#include </ { yup=1 }
2739 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2741 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2744 #setup the build parts
2745 if [ -z "$CFG_BUILD_PARTS" ]; then
2746 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2748 # build tests by default, if a developer build
2749 if [ "$CFG_DEV" = "yes" ]; then
2750 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2753 # don't build tools by default when cross-compiling
2754 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2755 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2758 for nobuild in $CFG_NOBUILD_PARTS; do
2759 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2761 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2763 # echo "WARNING: libs is a required part of the build."
2765 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2768 #-------------------------------------------------------------------------------
2769 # post process QT_INSTALL_* variables
2770 #-------------------------------------------------------------------------------
2772 if [ -z "$QT_INSTALL_PREFIX" ]; then
2773 if [ "$CFG_DEV" = "yes" ]; then
2774 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2776 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2779 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2781 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2782 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2783 if [ "$BUILD_ON_MAC" = "yes" ]; then
2784 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2787 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2790 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2792 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2793 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2794 if [ "$BUILD_ON_MAC" = "yes" ]; then
2795 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2800 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2803 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2805 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2806 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2807 if [ "$BUILD_ON_MAC" = "yes" ]; then
2808 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2809 QT_INSTALL_LIBS="/Library/Frameworks"
2813 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2815 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2817 if [ -z "$QT_INSTALL_BINS" ]; then #default
2818 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2819 if [ "$BUILD_ON_MAC" = "yes" ]; then
2820 QT_INSTALL_BINS="/Developer/Applications/Qt"
2823 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2825 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2827 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2828 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2829 if [ "$BUILD_ON_MAC" = "yes" ]; then
2830 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2833 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2835 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2837 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2838 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2839 if [ "$BUILD_ON_MAC" = "yes" ]; then
2840 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2843 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2845 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2847 if [ -z "$QT_INSTALL_DATA" ]; then #default
2848 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2850 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2852 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2853 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2855 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2857 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2858 if [ "$BUILD_ON_MAC" = "yes" ]; then
2859 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2861 QT_INSTALL_SETTINGS=/etc/xdg
2864 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2866 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2867 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2868 if [ "$BUILD_ON_MAC" = "yes" ]; then
2869 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2872 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2874 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2877 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2878 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2879 if [ "$BUILD_ON_MAC" = "yes" ]; then
2880 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2883 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2885 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2887 #------- host paths --------
2889 if [ -z "$QT_HOST_PREFIX" ]; then
2890 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2893 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2897 if [ -z "$QT_HOST_BINS" ]; then #default
2899 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2900 if [ "$BUILD_ON_MAC" = "yes" ]; then
2901 QT_HOST_BINS="/Developer/Applications/Qt"
2904 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2906 QT_HOST_BINS="$QT_INSTALL_BINS"
2909 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2911 if [ -z "$QT_HOST_DATA" ]; then #default
2913 QT_HOST_DATA="$QT_HOST_PREFIX"
2915 QT_HOST_DATA="$QT_INSTALL_DATA"
2918 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2921 #-------------------------------------------------------------------------------
2922 # help - interactive parts of the script _after_ this section please
2923 #-------------------------------------------------------------------------------
2925 # next, emit a usage message if something failed.
2926 if [ "$OPT_HELP" = "yes" ]; then
2927 [ "x$ERROR" = "xyes" ] && echo
2928 if [ "$CFG_NIS" = "no" ]; then
2935 if [ "$CFG_CUPS" = "no" ]; then
2942 if [ "$CFG_ICONV" = "no" ]; then
2949 if [ "$CFG_LARGEFILE" = "no" ]; then
2956 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2964 if [ "$CFG_XCB" = "no" ]; then
2972 if [ "$CFG_EGLFS" = "no" ]; then
2980 if [ "$CFG_DIRECTFB" = "no" ]; then
2988 if [ "$CFG_LINUXFB" = "no" ]; then
2996 if [ "$CFG_KMS" = "no" ]; then
3004 if [ "$CFG_XINPUT2" = "no" ]; then
3012 if [ "$CFG_DBUS" = "no" ]; then
3020 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
3028 if [ "$CFG_GLIB" = "no" ]; then
3037 Usage: $relconf [options]
3039 Installation options:
3041 These are optional, but you may specify install directories.
3043 -prefix <dir> ...... This will install everything relative to <dir>
3044 (default $QT_INSTALL_PREFIX)
3046 -hostprefix [dir] .. Tools and libraries needed when developing
3047 applications are installed in [dir]. If [dir] is
3048 not given, the current build directory will be used.
3051 * -prefix-install .... Force a sandboxed "local" installation of
3052 Qt. This will install into
3053 $QT_INSTALL_PREFIX, if this option is
3054 disabled then some platforms will attempt a
3055 "system" install by placing default values
3056 in a system location other than PREFIX.
3058 You may use these to separate different parts of the install:
3060 -bindir <dir> ......... Executables will be installed to <dir>
3061 (default PREFIX/bin)
3062 -libdir <dir> ......... Libraries will be installed to <dir>
3063 (default PREFIX/lib)
3064 -docdir <dir> ......... Documentation will be installed to <dir>
3065 (default PREFIX/doc)
3066 -headerdir <dir> ...... Headers will be installed to <dir>
3067 (default PREFIX/include)
3068 -plugindir <dir> ...... Plugins will be installed to <dir>
3069 (default PREFIX/plugins)
3070 -importdir <dir> ...... Imports for QML will be installed to <dir>
3071 (default PREFIX/imports)
3072 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3074 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3075 (default PREFIX/translations)
3076 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3077 (default PREFIX/etc/settings)
3078 -examplesdir <dir> .... Examples will be installed to <dir>
3079 (default PREFIX/examples)
3080 -testsdir <dir> ....... Tests will be installed to <dir>
3081 (default PREFIX/tests)
3083 -hostbindir <dir> .. Host executables will be installed to <dir>
3084 (default HOSTPREFIX/bin)
3085 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3086 (default HOSTPREFIX)
3090 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3091 that needs to be evaluated. If the evaluation succeeds, the feature is
3092 included. Here is a short explanation of each option:
3094 * -release ........... Compile and link Qt with debugging turned off.
3095 -debug ............. Compile and link Qt with debugging turned on.
3096 -debug-and-release . Compile and link two versions of Qt, with and without
3097 debugging turned on (Mac only).
3099 -force-debug-info .. Create symbol files for release builds.
3101 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3103 -opensource ........ Compile and link the Open-Source Edition of Qt.
3104 -commercial ........ Compile and link the Commercial Edition of Qt.
3106 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3107 + -c++11 ............. Compile Qt with C++11 support enabled.
3109 * -shared ............ Create and use shared Qt libraries.
3110 -static ............ Create and use static Qt libraries.
3112 * -process ........... Generate only a top-level Makefile.
3113 -fully-process ..... Generate Makefiles for the entire Qt tree.
3114 -dont-process ...... Do not generate any Makefiles.
3116 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3118 -fast .............. Configure Qt quickly by generating Makefiles only for
3119 library and subdirectory targets. All other Makefiles
3120 are created as wrappers, which will in turn run qmake.
3122 -no-largefile ...... Disables large file support.
3123 + -largefile ......... Enables Qt to access files larger than 4 GB.
3125 -no-accessibility .. Do not compile Accessibility support.
3126 + -accessibility ..... Compile Accessibility support.
3128 -no-sql-<driver> ... Disable SQL <driver> entirely.
3129 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3131 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3134 Possible values for <driver>:
3135 [ $CFG_SQL_AVAILABLE ]
3137 -system-sqlite ..... Use sqlite from the operating system.
3139 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3140 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3142 -no-qml-debug ...... Do not build the in-process QML debugging support.
3143 + -qml-debug ......... Build the QML debugging support.
3145 -platform target ... The operating system and compiler you are building
3148 See the README file for a list of supported
3149 operating systems and compilers.
3151 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3152 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3153 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3154 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3155 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3156 -no-avx ............ Do not compile with use of AVX instructions.
3157 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3158 -no-neon ........... Do not compile with use of NEON instructions.
3159 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3160 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3162 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3163 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3165 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3167 -D <string> ........ Add an explicit define to the preprocessor.
3168 -I <string> ........ Add an explicit include path.
3169 -L <string> ........ Add an explicit library path.
3171 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3172 configure determines whether to use pkg-config or not with
3173 some heuristics such as checking the environment variables.
3174 -no-pkg-config ..... Disable use of pkg-config.
3175 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3176 detection heuristic).
3178 -help, -h .......... Display this information.
3180 Third Party Libraries:
3182 -qt-zlib ........... Use the zlib bundled with Qt.
3183 + -system-zlib ....... Use zlib from the operating system.
3184 See http://www.gzip.org/zlib
3186 -no-gif ............ Do not compile GIF reading support.
3188 -no-libpng ......... Do not compile PNG support.
3189 -qt-libpng ......... Use the libpng bundled with Qt.
3190 + -system-libpng ..... Use libpng from the operating system.
3191 See http://www.libpng.org/pub/png
3193 -no-libjpeg ........ Do not compile JPEG support.
3194 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3195 + -system-libjpeg .... Use libjpeg from the operating system.
3196 See http://www.ijg.org
3198 -no-openssl ........ Do not compile support for OpenSSL.
3199 + -openssl ........... Enable run-time OpenSSL support.
3200 -openssl-linked .... Enabled linked OpenSSL support.
3202 -qt-pcre ........... Use the PCRE library bundled with Qt.
3203 + -system-pcre ....... Use the PCRE library from the operating system.
3207 -make <part> ....... Add part to the list of parts to be built at make time.
3208 ($QT_DEFAULT_BUILD_PARTS)
3209 -nomake <part> ..... Exclude part from the list of parts to be built.
3211 -no-gui ............ Don't build the QtGui library and dependencies.
3212 + -gui ............... Build the QtGui library and dependencies.
3214 -no-widgets ........ Don't build the QtWidgets library and dependencies.
3215 + -widgets ........... Build the QtWidgets library and dependencies.
3217 -R <string> ........ Add an explicit runtime library path to the Qt
3219 -l <string> ........ Add an explicit library.
3221 -no-rpath .......... Do not use the library install path as a runtime
3223 + -rpath ............. Link Qt libraries and executables using the library
3224 install path as a runtime library path. Equivalent
3225 to -R install_libpath
3227 -continue .......... Continue as far as possible if an error occurs.
3229 -verbose, -v ....... Print verbose information about each step of the
3232 -silent ............ Reduce the build output so that warnings and errors
3233 can be seen more easily.
3235 * -no-optimized-qmake ... Do not build qmake optimized.
3236 -optimized-qmake ...... Build qmake optimized.
3238 $NSN -no-nis ............ Do not compile NIS support.
3239 $NSY -nis ............... Compile NIS support.
3241 $CUN -no-cups ........... Do not compile CUPS support.
3242 $CUY -cups .............. Compile CUPS support.
3243 Requires cups/cups.h and libcups.so.2.
3245 $CIN -no-iconv .......... Do not compile support for iconv(3).
3246 $CIY -iconv ............. Compile support for iconv(3).
3248 -no-icu ............ Do not compile support for ICU libraries.
3249 + -icu ............... Compile support for ICU libraries.
3251 -no-strip .......... Do not strip binaries and libraries of unneeded symbols.
3252 * -strip ............. Strip binaries and libraries of unneeded symbols when installing.
3254 $PHN -no-pch ............ Do not use precompiled header support.
3255 $PHY -pch ............... Use precompiled header support.
3257 $DBN -no-dbus ........... Do not compile the QtDBus module.
3258 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3259 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3261 -reduce-relocations ..... Reduce relocations in the libraries through extra
3262 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3263 experimental; needs GNU ld >= 2.18).
3265 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3267 -device <name> ............... Cross-compile for device <name> (experimental)
3268 -device-option <key=value> ... Add device specific options for the device mkspec
3271 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3272 $SBY -separate-debug-info .... Strip debug information into a separate file.
3274 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3275 $XCBY -xcb ............... Compile Xcb support.
3277 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3278 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3280 $DFBN -no-directfb ....... Do not compile DirectFB support.
3281 $DFBY -directfb .......... Compile DirectFB support.
3283 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3284 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3286 $KMSN -no-kms ............ Do not compile KMS support.
3287 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3289 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3291 -xplatform target ... The target platform when cross-compiling.
3293 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3294 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3296 -no-feature-<feature> Do not compile in <feature>.
3297 -feature-<feature> .. Compile in <feature>. The available features
3298 are described in src/corelib/global/qfeatures.txt
3300 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3301 default ($CFG_QCONFIG).
3303 -no-opengl .......... Do not support OpenGL.
3304 -opengl <api> ....... Enable OpenGL support
3305 With no parameter, this will attempt to auto-detect
3306 OpenGL ES 2, or regular desktop OpenGL.
3307 Use es2 for <api> to override auto-detection.
3309 * -no-system-proxies .. Do not use system network proxies by default.
3310 -system-proxies ..... Use system network proxies by default.
3312 $GBN -no-glib ........... Do not compile Glib support.
3313 $GBY -glib .............. Compile Glib support.
3316 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3319 $X2N -no-xinput2......... Do not compile XInput2 support.
3320 $X2Y -xinput2............ Compile XInput2 support.
3326 if [ "$XPLATFORM_QNX" = "yes" ]; then
3329 -no-slog2 .......... Do not compile with slog2 support.
3330 -slog2 ............. Compile with slog2 support.
3336 if [ "$BUILD_ON_MAC" = "yes" ]; then
3341 -Fstring ........... Add an explicit framework path.
3342 -fw string ......... Add an explicit framework.
3344 * -framework ......... Build Qt as a series of frameworks and
3345 link tools against those frameworks.
3346 -no-framework ...... Do not build Qt as a series of frameworks.
3348 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3349 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3351 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3352 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3353 QT_ENABLE_HARFBUZZ environment variable.
3358 [ "x$ERROR" = "xyes" ] && exit 1
3363 # -----------------------------------------------------------------------------
3364 # LICENSING, INTERACTIVE PART
3365 # -----------------------------------------------------------------------------
3368 echo "This is the Qt ${EditionString} Edition."
3371 if [ "$Edition" = "OpenSource" ]; then
3373 echo "You are licensed to use this software under the terms of"
3374 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3375 if [ -f "$relpath/LICENSE.GPL3" ]; then
3376 echo "You are also licensed to use this software under the terms of"
3377 echo "the GNU General Public License (GPL) versions 3."
3383 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3384 echo "You have already accepted the terms of the $LicenseType license."
3387 if [ -f "$relpath/LICENSE.GPL3" ]; then
3388 echo "Type '3' to view the GNU General Public License version 3."
3390 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3391 echo "Type 'yes' to accept this license offer."
3392 echo "Type 'no' to decline this license offer."
3394 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3398 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3400 elif [ "$acceptance" = "no" ]; then
3401 echo "You are not licensed to use this software."
3404 elif [ "$acceptance" = "3" ]; then
3405 more "$relpath/LICENSE.GPL3"
3406 elif [ "$acceptance" = "L" ]; then
3407 more "$relpath/LICENSE.LGPL"
3410 elif [ "$Edition" = "Preview" ]; then
3411 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3414 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3415 echo "You have already accepted the terms of the $LicenseType license."
3418 echo "You are licensed to use this software under the terms of"
3419 echo "the $TheLicense"
3421 echo "Type '?' to read the Preview License."
3422 echo "Type 'yes' to accept this license offer."
3423 echo "Type 'no' to decline this license offer."
3425 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3429 if [ "$acceptance" = "yes" ]; then
3431 elif [ "$acceptance" = "no" ] ;then
3432 echo "You are not licensed to use this software."
3435 elif [ "$acceptance" = "?" ]; then
3436 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3439 elif [ "$Edition" != "OpenSource" ]; then
3440 if [ -n "$ExpiryDate" ]; then
3441 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3442 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3443 Today=`date +%Y%m%d`
3444 if [ "$Today" -gt "$ExpiryDate" ]; then
3445 case "$LicenseType" in
3446 Commercial|Academic|Educational)
3448 echo "WARNING WARNING WARNING WARNING"
3450 echo " Your support and upgrade period has expired."
3452 echo " You may continue to use your last licensed release"
3453 echo " of Qt under the terms of your existing license"
3454 echo " agreement. But you are not entitled to technical"
3455 echo " support, nor are you entitled to use any more recent"
3456 echo " Qt releases."
3458 echo " Please use the contact form at http://qt.digia.com/contact-us"
3459 echo " to renew your support and upgrades for this license."
3461 echo "WARNING WARNING WARNING WARNING"
3467 echo "NOTICE NOTICE NOTICE NOTICE"
3469 echo " Your Evaluation license has expired."
3471 echo " You are no longer licensed to use this software. Please"
3472 echo " use the contact form at http://qt.digia.com/contact-us to"
3473 echo " purchase license, or install the Qt Open Source Edition"
3474 echo " if you intend to develop free software."
3476 echo "NOTICE NOTICE NOTICE NOTICE"
3483 TheLicense=`head -n 1 "$outpath/LICENSE"`
3485 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3486 echo "You have already accepted the terms of the $TheLicense."
3489 echo "You are licensed to use this software under the terms of"
3490 echo "the $TheLicense."
3492 echo "Type '?' to view the $TheLicense."
3493 echo "Type 'yes' to accept this license offer."
3494 echo "Type 'no' to decline this license offer."
3496 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3500 if [ "$acceptance" = "yes" ]; then
3502 elif [ "$acceptance" = "no" ]; then
3503 echo "You are not licensed to use this software."
3506 else [ "$acceptance" = "?" ]
3507 more "$outpath/LICENSE"
3512 # this should be moved somewhere else
3515 AIX_VERSION=`uname -v`
3516 if [ "$AIX_VERSION" -lt "5" ]; then
3517 QMakeVar add QMAKE_LIBS_X11 -lbind
3524 #-------------------------------------------------------------------------------
3525 # generate qconfig.cpp
3526 #-------------------------------------------------------------------------------
3527 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3529 shortxspec=`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
3530 shortspec=`echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
3532 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3534 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3535 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3537 /* Installation date */
3538 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3540 /* Installation Info */
3541 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3542 "qt_prfxpath=$QT_INSTALL_PREFIX",
3543 "qt_docspath=$QT_INSTALL_DOCS",
3544 "qt_hdrspath=$QT_INSTALL_HEADERS",
3545 "qt_libspath=$QT_INSTALL_LIBS",
3546 "qt_binspath=$QT_INSTALL_BINS",
3547 "qt_plugpath=$QT_INSTALL_PLUGINS",
3548 "qt_impspath=$QT_INSTALL_IMPORTS",
3549 "qt_datapath=$QT_INSTALL_DATA",
3550 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3551 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3552 "qt_tstspath=$QT_INSTALL_TESTS",
3553 #ifdef QT_BUILD_QMAKE
3554 "qt_ssrtpath=$CFG_SYSROOT",
3555 "qt_hpfxpath=$QT_HOST_PREFIX",
3556 "qt_hbinpath=$QT_HOST_BINS",
3557 "qt_hdatpath=$QT_HOST_DATA",
3558 "qt_targspec=$shortxspec",
3559 "qt_hostspec=$shortspec",
3562 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3565 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3567 /* strlen( "qt_lcnsxxxx" ) == 12 */
3568 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3569 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3571 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3574 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3575 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3576 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3578 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3579 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3580 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3583 # -----------------------------------------------------------------------------
3584 if [ "$LicenseType" = "Evaluation" ]; then
3585 EVALKEY=qt_qevalkey=$LicenseKeyExt
3586 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3587 EVALKEY=qt_qevalkey=
3590 if [ -n "$EVALKEY" ]; then
3591 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3592 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3593 /* Evaluation license key */
3594 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3596 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3600 # -----------------------------------------------------------------------------
3602 # -----------------------------------------------------------------------------
3605 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3606 "$outpath/bin/syncqt" -minimal -module QtCore "$relpath" || exit 1
3609 # $1: input variable name (awk regexp)
3610 # $2: optional output variable name
3611 # $3: optional value transformation (sed command)
3612 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3613 # is where the resulting variable is written to
3614 setBootstrapVariable()
3616 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3620 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3621 echo "Creating qmake. Please wait..."
3623 mkdir -p "$outpath/qmake" || exit
3625 for mkfile in GNUmakefile Makefile; do
3628 in_mkfile="${mkfile}.in"
3629 if [ "$mkfile" = "Makefile" ]; then
3630 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3631 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3633 in_mkfile="${mkfile}.unix"
3635 in_mkfile="$relpath/qmake/$in_mkfile"
3636 mkfile="$outpath/qmake/$mkfile"
3637 if [ -f "$mkfile" ]; then
3638 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3641 [ -f "$in_mkfile" ] || continue
3643 echo "########################################################################" > "$mkfile"
3644 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3645 echo "########################################################################" >> "$mkfile"
3648 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3649 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3650 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3652 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3653 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3656 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3657 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3658 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3659 setBootstrapVariable QMAKE_CFLAGS
3660 setBootstrapVariable QMAKE_CXXFLAGS
3661 setBootstrapVariable QMAKE_LFLAGS
3663 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3664 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3665 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3667 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3668 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3669 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3670 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3671 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3672 elif [ "$CFG_DEBUG" = "yes" ]; then
3673 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3674 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3675 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3676 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3679 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3680 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3681 for rpath in $RPATH_FLAGS; do
3682 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3685 if [ "$BUILD_ON_MAC" = "yes" ]; then
3686 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3687 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3688 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3689 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3690 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3691 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3692 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3693 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3694 if [ '!' -z "$CFG_SDK" ]; then
3695 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3696 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3697 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3698 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3699 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3702 if [ '!' -z "$D_FLAGS" ]; then
3703 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3705 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3706 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3707 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3708 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3710 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3711 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3712 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3713 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3714 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3715 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3716 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3717 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3718 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3719 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3721 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3722 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3723 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3724 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3729 (cd "$outpath/qmake"; "$MAKE") || exit 2
3732 #-------------------------------------------------------------------------------
3733 # create a qt.conf for the Qt build tree itself
3734 #-------------------------------------------------------------------------------
3736 QTCONFFILE="$outpath/bin/qt.conf"
3737 cat > "$QTCONFFILE" <<EOF
3742 #-------------------------------------------------------------------------------
3743 # write out device config before we run the test.
3744 #-------------------------------------------------------------------------------
3745 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3746 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3747 rm -f "$DEVICE_VARS_FILE"
3749 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3750 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3753 #-------------------------------------------------------------------------------
3755 #-------------------------------------------------------------------------------
3756 if [ -z "$PKG_CONFIG" ]; then
3757 # See if PKG_CONFIG is set in the mkspec:
3758 PKG_CONFIG="`"$outpath/bin/qmake" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" /dev/null 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`"
3760 if [ -z "$PKG_CONFIG" ]; then
3761 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3764 if [ "$CFG_PKGCONFIG" = "no" ]; then
3766 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3768 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3769 echo >&2 "a correctly setup pkg-config environment!"
3771 elif [ -n "$PKG_CONFIG" ]; then
3772 # found a pkg-config
3773 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3774 # when xcompiling, check environment to see if it's actually usable
3775 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3776 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3777 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3778 if [ -n "$GCC_MACHINE_DUMP" ]; then
3779 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3781 export PKG_CONFIG_LIBDIR
3782 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3783 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3784 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3785 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3786 echo >&2 "Set this variable to the directory that contains target .pc files"
3787 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3788 echo >&2 "use -force-pkg-config to override this test."
3792 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3795 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3796 if [ -n "$CFG_SYSROOT" ]; then
3797 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3798 export PKG_CONFIG_SYSROOT_DIR
3799 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3800 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3801 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3802 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3803 echo >&2 "or use -force-pkg-config to override this test."
3807 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3811 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3812 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3816 if [ -z "$PKG_CONFIG" ]; then
3817 QT_CONFIG="$QT_CONFIG no-pkg-config"
3820 #-------------------------------------------------------------------------------
3821 # tests that need qmake
3822 #-------------------------------------------------------------------------------
3824 # parameters: path, name, extra args
3827 path=config.tests/$1
3830 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_SDK_FLAG "$@"
3833 #-------------------------------------------------------------------------------
3834 # determine the target and host architectures
3835 #-------------------------------------------------------------------------------
3837 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3838 OUTFILE=$outpath/arch.result
3839 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_SDK_FLAG
3840 if [ $? -eq 0 ]; then
3841 eval `cat "$OUTFILE"`
3844 echo "Could not determine the target architecture!"
3845 echo "Turn on verbose messaging (-v) to see the final report."
3847 rm -f "$OUTFILE" 2>/dev/null
3848 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3850 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3851 # Do the same test again, using the host compiler
3852 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_SDK_FLAG
3853 if [ $? -eq 0 ]; then
3854 eval `cat "$OUTFILE"`
3857 echo "Could not determine the host architecture!"
3858 echo "Turn on verbose messaging (-v) to see the final report."
3860 rm -f "$OUTFILE" 2>/dev/null
3861 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3863 # not cross compiling, host == target
3864 CFG_HOST_ARCH="$CFG_ARCH"
3865 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3869 if [ "$OPT_VERBOSE" = "yes" ]; then
3870 echo "System architecture: '$CFG_ARCH'"
3871 echo "Host architecture: '$CFG_HOST_ARCH'"
3874 #-------------------------------------------------------------------------------
3875 # functionality tests
3876 #-------------------------------------------------------------------------------
3878 # Detect C++11 support
3879 if [ "$CFG_CXX11" != "no" ]; then
3880 if compileTest common/c++11 "C++11"; then
3882 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3883 echo "C++11 support cannot be enabled due to functionality tests!"
3884 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3885 echo " If you believe this message is in error you may use the continue"
3886 echo " switch (-continue) to $0 to continue."
3893 # detect availability of float math.h functions
3894 if compileTest unix/floatmath "floatmath"; then
3895 CFG_USE_FLOATMATH=yes
3897 CFG_USE_FLOATMATH=no
3900 # detect sse2 support
3901 if [ "${CFG_SSE2}" = "auto" ]; then
3902 if compileTest common/sse2 "sse2"; then
3909 # detect sse3 support
3910 if [ "${CFG_SSE3}" = "auto" ]; then
3911 if compileTest common/sse3 "sse3"; then
3918 # detect ssse3 support
3919 if [ "${CFG_SSSE3}" = "auto" ]; then
3920 if compileTest common/ssse3 "ssse3"; then
3927 # detect sse4.1 support
3928 if [ "${CFG_SSE4_1}" = "auto" ]; then
3929 if compileTest common/sse4_1 "sse4_1"; then
3936 # detect sse4.2 support
3937 if [ "${CFG_SSE4_2}" = "auto" ]; then
3938 if compileTest common/sse4_2 "sse4_2"; then
3945 # detect avx support
3946 if [ "${CFG_AVX}" = "auto" ]; then
3947 if compileTest common/avx "avx"; then
3948 case "$XQMAKESPEC" in
3950 # Some clang versions produce internal compiler errors compiling Qt AVX code
3951 case `$TEST_COMPILER --version` in
3952 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3954 if [ "$OPT_VERBOSE" = "yes" ]; then
3955 echo 'AVX support disabled for blacklisted clang compiler'
3972 # detect avx2 support
3973 if [ "${CFG_AVX}" = "no" ]; then
3976 if [ "${CFG_AVX2}" = "auto" ]; then
3977 if compileTest common/avx2 "avx2"; then
3984 # check iWMMXt support
3985 if [ "$CFG_IWMMXT" = "yes" ]; then
3986 compileTest unix/iwmmxt "iwmmxt"
3987 if [ $? != "0" ]; then
3988 echo "The iWMMXt functionality test failed!"
3989 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3994 # detect neon support
3995 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3996 if compileTest unix/neon "neon"; then
4001 elif [ "$CFG_ARCH" != "arm" ]; then
4005 # detect mips_dsp support
4006 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
4007 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mips_dsp "mips_dsp" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4012 elif [ "$CFG_ARCH" != "mips" ]; then
4016 # detect mips_dspr2 support
4017 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
4018 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mips_dspr2 "mips_dspr2" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4023 elif [ "$CFG_ARCH" != "mips" ]; then
4027 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
4030 if [ "$CFG_ZLIB" = "no" ]; then
4031 # Note: Qt no longer support builds without zlib
4032 # So we force a "no" to be "auto" here.
4033 # If you REALLY really need no zlib support, you can still disable
4034 # it by doing the following:
4035 # add "no-zlib" to mkspecs/qconfig.pri
4036 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4038 # There's no guarantee that Qt will build under those conditions
4044 if [ "$XPLATFORM_QNX" = "yes" ]; then
4045 if [ "$CFG_SLOG2" != "no" ]; then
4046 if compileTest unix/slog2 "slog2"; then
4048 QMAKE_CONFIG="$QMAKE_CONFIG slog2"
4055 if [ "$CFG_ZLIB" = "auto" ]; then
4056 if compileTest unix/zlib "zlib"; then
4063 if [ "$CFG_LARGEFILE" = "auto" ]; then
4064 #Large files should be enabled for all Linux systems
4068 if [ "$CFG_GUI" = "no" ]; then
4069 QPA_PLATFORM_GUARD=no
4072 # detect how jpeg should be built
4073 if [ "$CFG_JPEG" = "auto" ]; then
4074 if [ "$CFG_SHARED" = "yes" ]; then
4081 if [ "$CFG_LIBJPEG" = "auto" ]; then
4082 if compileTest unix/libjpeg "libjpeg"; then
4089 # detect how gif should be built
4090 if [ "$CFG_GIF" = "auto" ]; then
4091 if [ "$CFG_SHARED" = "yes" ]; then
4099 if [ "$CFG_LIBPNG" = "auto" ]; then
4100 if compileTest unix/libpng "libpng"; then
4107 if [ "$CFG_EGLFS" = "yes" ]; then
4108 if [ "$CFG_EGL" = "no" ]; then
4109 echo "The EGLFS plugin requires EGL support and cannot be built"
4112 if [ "$CFG_OPENGL" != "es2" ]; then
4113 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4120 if [ "$CFG_KMS" = "yes" ]; then
4121 if [ "$CFG_EGL" = "no" ]; then
4122 echo "The KMS plugin requires EGL support and cannot be built"
4125 if [ "$CFG_OPENGL" != "es2" ]; then
4126 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4131 # auto-detect SQL-modules support
4132 for _SQLDR in $CFG_SQL_AVAILABLE; do
4135 if [ "$CFG_SQL_mysql" != "no" ]; then
4136 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4137 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4138 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4139 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4140 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4141 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4142 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4144 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4145 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4146 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4147 echo " You need MySql 4 or higher."
4148 echo " If you believe this message is in error you may use the continue"
4149 echo " switch (-continue) to $0 to continue."
4154 QT_LFLAGS_MYSQL_R=""
4158 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4159 QMakeVar add CONFIG use_libmysqlclient_r
4160 if [ "$CFG_SQL_mysql" = "auto" ]; then
4161 CFG_SQL_mysql=plugin
4163 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4164 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4165 if [ "$CFG_SQL_mysql" = "auto" ]; then
4166 CFG_SQL_mysql=plugin
4169 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4170 echo "MySQL support cannot be enabled due to functionality tests!"
4171 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4172 echo " If you believe this message is in error you may use the continue"
4173 echo " switch (-continue) to $0 to continue."
4178 QT_LFLAGS_MYSQL_R=""
4186 if [ "$CFG_SQL_psql" != "no" ]; then
4187 # Be careful not to use native pg_config when cross building.
4188 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4189 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4190 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4192 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4193 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4194 # But, respect PSQL_LIBS if set
4195 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4196 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4197 if [ "$CFG_SQL_psql" = "auto" ]; then
4201 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4202 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4203 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4204 echo " If you believe this message is in error you may use the continue"
4205 echo " switch (-continue) to $0 to continue."
4216 if [ "$CFG_SQL_odbc" != "no" ]; then
4217 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4218 if [ "$CFG_SQL_odbc" = "auto" ]; then
4222 if compileTest unix/iodbc "iODBC"; then
4223 QT_LFLAGS_ODBC="-liodbc"
4224 if [ "$CFG_SQL_odbc" = "auto" ]; then
4228 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4229 echo "ODBC support cannot be enabled due to functionality tests!"
4230 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4231 echo " If you believe this message is in error you may use the continue"
4232 echo " switch (-continue) to $0 to continue."
4242 if [ "$CFG_SQL_oci" != "no" ]; then
4243 if compileTest unix/oci "OCI"; then
4244 if [ "$CFG_SQL_oci" = "auto" ]; then
4248 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4249 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4250 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4251 echo " If you believe this message is in error you may use the continue"
4252 echo " switch (-continue) to $0 to continue."
4261 if [ "$CFG_SQL_tds" != "no" ]; then
4262 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4263 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4264 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4265 if [ "$CFG_SQL_tds" = "auto" ]; then
4269 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4270 echo "TDS support cannot be enabled due to functionality tests!"
4271 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4272 echo " If you believe this message is in error you may use the continue"
4273 echo " switch (-continue) to $0 to continue."
4282 if [ "$CFG_SQL_db2" != "no" ]; then
4283 if compileTest unix/db2 "DB2"; then
4284 if [ "$CFG_SQL_db2" = "auto" ]; then
4288 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4289 echo "ODBC support cannot be enabled due to functionality tests!"
4290 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4291 echo " If you believe this message is in error you may use the continue"
4292 echo " switch (-continue) to $0 to continue."
4301 if [ "$CFG_SQL_ibase" != "no" ]; then
4302 if compileTest unix/ibase "InterBase"; then
4303 if [ "$CFG_SQL_ibase" = "auto" ]; then
4304 CFG_SQL_ibase=plugin
4307 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4308 echo "InterBase support cannot be enabled due to functionality tests!"
4309 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4310 echo " If you believe this message is in error you may use the continue"
4311 echo " switch (-continue) to $0 to continue."
4320 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4321 if compileTest unix/sqlite2 "SQLite2"; then
4322 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4323 CFG_SQL_sqlite2=plugin
4326 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4327 echo "SQLite2 support cannot be enabled due to functionality tests!"
4328 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4329 echo " If you believe this message is in error you may use the continue"
4330 echo " switch (-continue) to $0 to continue."
4339 if [ "$CFG_SQL_sqlite" != "no" ]; then
4340 SQLITE_AUTODETECT_FAILED="no"
4341 if [ "$CFG_SQLITE" = "system" ]; then
4342 if [ -n "$PKG_CONFIG" ]; then
4343 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4344 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4347 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4349 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4350 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4351 CFG_SQL_sqlite=plugin
4353 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4355 SQLITE_AUTODETECT_FAILED="yes"
4358 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4359 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4360 CFG_SQL_sqlite=plugin
4363 SQLITE_AUTODETECT_FAILED="yes"
4367 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4368 echo "SQLite support cannot be enabled due to functionality tests!"
4369 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4370 echo " If you believe this message is in error you may use the continue"
4371 echo " switch (-continue) to $0 to continue."
4377 if [ "$OPT_VERBOSE" = "yes" ]; then
4378 echo "unknown SQL driver: $_SQLDR"
4384 # auto-detect NIS support
4385 if [ "$CFG_NIS" != "no" ]; then
4386 if compileTest unix/nis "NIS"; then
4389 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4390 echo "NIS support cannot be enabled due to functionality tests!"
4391 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4392 echo " If you believe this message is in error you may use the continue"
4393 echo " switch (-continue) to $0 to continue."
4401 # auto-detect CUPS support
4402 if [ "$CFG_CUPS" != "no" ]; then
4403 if compileTest unix/cups "Cups"; then
4406 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4407 echo "Cups support cannot be enabled due to functionality tests!"
4408 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4409 echo " If you believe this message is in error you may use the continue"
4410 echo " switch (-continue) to $0 to continue."
4418 # auto-detect iconv(3) support
4419 if [ "$CFG_ICONV" != "no" ]; then
4420 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4422 elif compileTest unix/iconv "POSIX iconv"; then
4424 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4426 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4429 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4430 echo "Iconv support cannot be enabled due to functionality tests!"
4431 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4432 echo " If you believe this message is in error you may use the continue"
4433 echo " switch (-continue) to $0 to continue."
4441 # auto-detect libdbus-1 support
4442 if [ "$CFG_DBUS" != "no" ]; then
4443 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4444 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4445 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4447 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4448 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4449 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4450 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4452 if [ "$CFG_DBUS" = "auto" ]; then
4454 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4455 # CFG_DBUS is "yes" or "linked" here
4457 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4458 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4459 echo " If you believe this message is in error you may use the continue"
4460 echo " switch (-continue) to $0 to continue."
4466 # auto-detect Glib support
4467 if [ "$CFG_GLIB" != "no" ]; then
4468 if [ -n "$PKG_CONFIG" ]; then
4469 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4470 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4472 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4474 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4475 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4477 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4478 echo "Glib support cannot be enabled due to functionality tests!"
4479 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4480 echo " If you believe this message is in error you may use the continue"
4481 echo " switch (-continue) to $0 to continue."
4489 # auto-detect GTK style support
4490 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4491 if [ -n "$PKG_CONFIG" ]; then
4492 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.18 atk 2>/dev/null`
4493 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4495 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4497 QT_CONFIG="$QT_CONFIG gtkstyle"
4498 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4499 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4501 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4502 echo "Gtk theme support cannot be enabled due to functionality tests!"
4503 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4504 echo " If you believe this message is in error you may use the continue"
4505 echo " switch (-continue) to $0 to continue."
4511 elif [ "$CFG_GLIB" = "no" ]; then
4516 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4517 if [ -n "$PKG_CONFIG" ]; then
4518 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4519 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4521 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4523 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4524 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4526 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4527 echo "Gstreamer support cannot be enabled due to functionality tests!"
4528 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4529 echo " If you believe this message is in error you may use the continue"
4530 echo " switch (-continue) to $0 to continue."
4536 elif [ "$CFG_GLIB" = "no" ]; then
4540 # auto-detect libicu support
4541 if [ "$CFG_ICU" != "no" ]; then
4542 if compileTest unix/icu "ICU"; then
4543 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4545 if [ "$CFG_ICU" = "auto" ]; then
4547 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4550 echo "The ICU library support cannot be enabled."
4551 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4552 echo " If you believe this message is in error you may use the continue"
4553 echo " switch (-continue) to $0 to continue."
4559 # Auto-detect PulseAudio support
4560 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4561 if [ -n "$PKG_CONFIG" ]; then
4562 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4563 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4565 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4567 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4568 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4570 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4571 echo "PulseAudio support cannot be enabled due to functionality tests!"
4572 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4573 echo " If you believe this message is in error you may use the continue"
4574 echo " switch (-continue) to $0 to continue."
4583 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4584 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4585 if [ "$CFG_GUI" = "no" ]; then
4586 if [ "$CFG_OPENGL" = "auto" ]; then
4589 if [ "$CFG_OPENGL" != "no" ]; then
4590 echo "OpenGL enabled, but GUI disabled."
4591 echo " You might need to either enable the GUI or disable OpenGL"
4595 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4596 if compileTest x11/opengl "OpenGL"; then
4598 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4601 if [ "$CFG_OPENGL" = "yes" ]; then
4602 echo "All the OpenGL functionality tests failed!"
4603 echo " You might need to modify the include and library search paths by editing"
4604 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4605 echo " ${XQMAKESPEC}."
4612 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4613 if [ "$CFG_OPENGL" = "desktop" ]; then
4614 compileTest x11/glxfbconfig "OpenGL"
4615 if [ $? != "0" ]; then
4616 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4623 elif [ "$CFG_OPENGL" = "es2" ]; then
4625 compileTest unix/opengles2 "OpenGL ES 2.x"
4626 if [ $? != "0" ]; then
4627 echo "The OpenGL ES 2.0 functionality test failed!"
4628 echo " You might need to modify the include and library search paths by editing"
4629 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4630 echo " ${XQMAKESPEC}."
4633 elif [ "$CFG_OPENGL" = "desktop" ]; then
4634 # Desktop OpenGL support
4635 compileTest x11/opengl "OpenGL"
4636 if [ $? != "0" ]; then
4637 echo "The OpenGL functionality test failed!"
4638 echo " You might need to modify the include and library search paths by editing"
4639 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4640 echo " ${XQMAKESPEC}."
4645 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4646 compileTest x11/glxfbconfig "OpenGL"
4647 if [ $? != "0" ]; then
4648 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4655 fi # X11/MINGW OpenGL
4657 if [ "$BUILD_ON_MAC" = "yes" ]; then
4658 if [ "$CFG_COREWLAN" = "auto" ]; then
4659 if compileTest mac/corewlan "CoreWlan"; then
4667 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4668 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4669 if compileTest unix/opengldesktop "OpenGL"; then
4671 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4674 if [ "$CFG_OPENGL" = "yes" ]; then
4675 echo "All the OpenGL functionality tests failed!"
4676 echo " You might need to modify the include and library search paths by editing"
4677 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4678 echo " ${XQMAKESPEC}."
4683 elif [ "$CFG_OPENGL" = "es2" ]; then
4685 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4686 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4687 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4688 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4689 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4690 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4691 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4692 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4695 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4696 if [ $? != "0" ]; then
4697 echo "The OpenGL ES 2.0 functionality test failed!"
4698 echo " You might need to modify the include and library search paths by editing"
4699 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4700 echo " ${XQMAKESPEC}."
4703 elif [ "$CFG_OPENGL" = "desktop" ]; then
4704 # Desktop OpenGL support
4705 compileTest unix/opengldesktop "OpenGL"
4706 if [ $? != "0" ]; then
4707 echo "The OpenGL functionality test failed!"
4708 echo " You might need to modify the include and library search paths by editing"
4709 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4710 echo " ${XQMAKESPEC}."
4715 # auto-detect FontConfig support
4716 if [ "$CFG_FONTCONFIG" != "no" ]; then
4717 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4718 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4719 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4721 QT_CFLAGS_FONTCONFIG=
4722 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4724 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4725 QT_CONFIG="$QT_CONFIG fontconfig"
4726 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4727 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4729 CFG_LIBFREETYPE=system
4736 # Save these for a check later
4737 ORIG_CFG_XCB="$CFG_XCB"
4738 ORIG_CFG_EGLFS="$CFG_EGLFS"
4739 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4740 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4741 ORIG_CFG_KMS="$CFG_KMS"
4743 if [ "$CFG_LIBUDEV" != "no" ]; then
4744 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4745 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4746 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4747 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4748 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4750 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4752 QT_CONFIG="$QT_CONFIG libudev"
4753 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4754 echo "The libudev functionality test failed!"
4760 if [ "$CFG_LIBUDEV" = "no" ]; then
4761 QMakeVar add DEFINES QT_NO_LIBUDEV
4764 if [ "$CFG_EVDEV" != "no" ]; then
4765 if compileTest unix/evdev "evdev"; then
4767 QT_CONFIG="$QT_CONFIG evdev"
4768 elif [ "$CFG_EVDEV" = "yes" ]; then
4769 echo "The evdev functionality test failed!"
4775 if [ "$CFG_EVDEV" = "no" ]; then
4776 QMakeVar add DEFINES QT_NO_EVDEV
4779 # Check we actually have X11 :-)
4780 if compileTest x11/xlib "XLib"; then
4781 QT_CONFIG="$QT_CONFIG xlib"
4784 # auto-detect Xrender support
4785 if [ "$CFG_XRENDER" != "no" ]; then
4786 if compileTest x11/xrender "Xrender"; then
4788 QT_CONFIG="$QT_CONFIG xrender"
4790 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4791 echo "Xrender support cannot be enabled due to functionality tests!"
4792 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4793 echo " If you believe this message is in error you may use the continue"
4794 echo " switch (-continue) to $0 to continue."
4802 if [ "$CFG_XCB" != "no" ]; then
4803 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4804 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4805 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4807 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4809 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4810 QT_CONFIG="$QT_CONFIG xcb-render"
4813 if compileTest qpa/xcb-glx "xcb-glx" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4815 QT_CONFIG="$QT_CONFIG xcb-glx"
4818 if compileTest qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4820 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4823 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4824 QT_CONFIG="$QT_CONFIG xcb-xlib"
4827 # auto-detect XInput2 support. Needed by xcb too.
4828 if [ "$CFG_XINPUT2" != "no" ]; then
4829 if compileTest x11/xinput2 "XInput2"; then
4833 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4834 echo "XInput2 support cannot be enabled due to functionality tests!"
4835 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4836 echo " If you believe this message is in error you may use the continue"
4837 echo " switch (-continue) to $0 to continue."
4845 if [ "$CFG_XCB" = "yes" ]; then
4846 echo "The XCB test failed!"
4847 echo " You might need to install dependency packages."
4848 echo " See src/plugins/platforms/xcb/README."
4854 if [ "$CFG_XCB" = "no" ]; then
4855 QMakeVar add DEFINES QT_NO_XCB
4858 if [ "$CFG_DIRECTFB" != "no" ]; then
4859 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4860 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4861 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4862 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4864 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4865 echo " DirectFB support cannot be enabled due to functionality tests!"
4866 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4867 echo " If you believe this message is in error you may use the continue"
4868 echo " switch (-continue) to $0 to continue."
4878 if [ "$CFG_LINUXFB" != "no" ]; then
4879 if compileTest qpa/linuxfb "LinuxFB"; then
4881 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4882 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4883 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4884 echo " If you believe this message is in error you may use the continue"
4885 echo " switch (-continue) to $0 to continue."
4892 if [ "$CFG_KMS" != "no" ]; then
4893 if compileTest qpa/kms "KMS"; then
4895 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4896 echo " KMS support cannot be enabled due to functionality tests!"
4897 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4898 echo " If you believe this message is in error you may use the continue"
4899 echo " switch (-continue) to $0 to continue."
4906 # Detect libxkbcommon
4907 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4908 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4909 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4910 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4911 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4913 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4917 if [ "$CFG_EGL" != "no" ]; then
4918 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4919 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4920 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4921 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4922 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4923 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4924 fi # detect EGL support
4925 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4927 elif [ "$CFG_EGL" = "yes" ]; then
4928 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4929 echo " You might need to modify the include and library search paths by editing"
4930 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4935 elif [ "$CFG_OPENGL" = "desktop" ]; then
4936 if [ "$CFG_EGL" = "yes" ]; then
4937 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4938 echo "Either disable EGL support or enable OpenGL ES support."
4944 if [ "$CFG_EGLFS" != "no" ]; then
4945 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4946 CFG_EGLFS="$CFG_EGL"
4952 if [ "$CFG_KMS" = "yes" ]; then
4953 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4960 # Detect accessibility support
4961 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4962 if [ "$CFG_XCB" = "no" ]; then
4963 CFG_ACCESSIBILITY=yes
4965 # linux/xcb accessibility needs dbus and atspi-2
4966 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "atspi-2" 2>/dev/null; then
4967 CFG_ACCESSIBILITY=yes
4969 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4970 CFG_ACCESSIBILITY=no
4972 echo "Accessibility support needs pkg-config and libatspi2."
4979 # Determine the default QPA platform
4980 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4982 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4983 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4984 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4985 QT_QPA_DEFAULT_PLATFORM="windows"
4986 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4987 QT_QPA_DEFAULT_PLATFORM="cocoa"
4988 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4989 QT_QPA_DEFAULT_PLATFORM="qnx"
4991 QT_QPA_DEFAULT_PLATFORM="xcb"
4996 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4997 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4998 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4999 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
5001 if [ "$CFG_DIRECTFB" = "yes" ]; then
5002 QT_CONFIG="$QT_CONFIG directfb"
5003 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
5004 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
5006 if [ "$CFG_LINUXFB" = "yes" ]; then
5007 QT_CONFIG="$QT_CONFIG linuxfb"
5009 if [ "$CFG_KMS" = "yes" ]; then
5010 QT_CONFIG="$QT_CONFIG kms"
5013 if [ "$BUILD_ON_MAC" = "yes" ]; then
5014 if compileTest mac/coreservices "CoreServices"; then
5015 QT_CONFIG="$QT_CONFIG coreservices"
5017 QMakeVar add DEFINES QT_NO_CORESERVICES
5021 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
5022 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
5023 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
5024 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
5025 echo "No QPA platform plugin enabled!"
5026 echo " If you really want to build without a QPA platform plugin you must pass"
5027 echo " -no-qpa-platform-guard to configure. Doing this will"
5028 echo " produce a Qt that can not run GUI applications."
5029 echo " The dependencies needed for xcb to build are listed in"
5030 echo " src/plugins/platforms/xcb/README"
5037 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
5038 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
5039 if compileTest unix/freetype "FreeType"; then
5040 CFG_LIBFREETYPE=system
5046 if ! compileTest unix/stl "STL" &&
5047 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5048 echo "STL functionality check failed! Cannot build Qt with this STL library."
5049 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5054 # detect POSIX clock_gettime()
5055 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5056 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
5057 CFG_CLOCK_GETTIME=yes
5059 CFG_CLOCK_GETTIME=no
5063 # detect POSIX monotonic clocks
5064 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5065 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5066 CFG_CLOCK_MONOTONIC=yes
5068 CFG_CLOCK_MONOTONIC=no
5070 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5071 CFG_CLOCK_MONOTONIC=no
5075 if [ "$CFG_MREMAP" = "auto" ]; then
5076 if compileTest unix/mremap "mremap"; then
5083 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5084 if [ "$CFG_GETADDRINFO" != "no" ]; then
5085 if compileTest unix/getaddrinfo "getaddrinfo"; then
5088 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5089 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5090 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5091 echo " If you believe this message is in error you may use the continue"
5092 echo " switch (-continue) to $0 to continue."
5100 # find if the platform provides inotify
5101 if [ "$CFG_INOTIFY" != "no" ]; then
5102 if compileTest unix/inotify "inotify"; then
5105 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5106 echo "inotify support cannot be enabled due to functionality tests!"
5107 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5108 echo " If you believe this message is in error you may use the continue"
5109 echo " switch (-continue) to $0 to continue."
5117 # find if the platform provides if_nametoindex (ipv6 interface name support)
5118 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5119 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5122 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5123 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5124 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5125 echo " If you believe this message is in error you may use the continue"
5126 echo " switch (-continue) to $0 to continue."
5134 # find if the platform provides getifaddrs (network interface enumeration)
5135 if [ "$CFG_GETIFADDRS" != "no" ]; then
5136 if compileTest unix/getifaddrs "getifaddrs"; then
5139 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5140 echo "getifaddrs support cannot be enabled due to functionality tests!"
5141 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5142 echo " If you believe this message is in error you may use the continue"
5143 echo " switch (-continue) to $0 to continue."
5152 if [ "$CFG_OPENSSL" != "no" ]; then
5153 if compileTest unix/openssl "OpenSSL"; then
5154 if [ "$CFG_OPENSSL" = "auto" ]; then
5158 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5159 echo "OpenSSL support cannot be enabled due to functionality tests!"
5160 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5161 echo " If you believe this message is in error you may use the continue"
5162 echo " switch (-continue) to $0 to continue."
5171 if [ "$CFG_PCRE" != "qt" ]; then
5172 if compileTest unix/pcre "PCRE"; then
5175 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5176 echo "PCRE support cannot be enabled due to functionality tests!"
5177 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5178 echo " If you believe this message is in error you may use the continue"
5179 echo " switch (-continue) to $0 to continue."
5187 # detect OpenVG support
5188 if [ "$CFG_OPENVG" != "no" ]; then
5189 if compileTest unix/openvg "OpenVG"; then
5190 if [ "$CFG_OPENVG" = "auto" ]; then
5193 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5194 if [ "$CFG_OPENVG" = "auto" ]; then
5197 CFG_OPENVG_ON_OPENGL=yes
5198 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5199 if [ "$CFG_OPENVG" = "auto" ]; then
5202 CFG_OPENVG_LC_INCLUDES=yes
5203 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5204 if [ "$CFG_OPENVG" = "auto" ]; then
5207 CFG_OPENVG_LC_INCLUDES=yes
5208 CFG_OPENVG_ON_OPENGL=yes
5210 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5211 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5212 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5213 echo " If you believe this message is in error you may use the continue"
5214 echo " switch (-continue) to $0 to continue."
5220 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5221 CFG_OPENVG_SHIVA=yes
5225 if [ "$CFG_ALSA" = "auto" ]; then
5226 if compileTest unix/alsa "alsa"; then
5233 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5234 if [ "$CFG_ARCH" = "arm" ]; then
5235 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5236 if [ $? != "0" ]; then
5237 CFG_JAVASCRIPTCORE_JIT=no
5240 case "$XPLATFORM" in
5242 CFG_JAVASCRIPTCORE_JIT=no
5248 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5249 QMakeVar set JAVASCRIPTCORE_JIT yes
5250 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5251 QMakeVar set JAVASCRIPTCORE_JIT no
5254 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5255 CFG_AUDIO_BACKEND=yes
5258 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5259 echo "Warning: largefile support cannot be disabled for win32."
5263 #-------------------------------------------------------------------------------
5264 # ask for all that hasn't been auto-detected or specified in the arguments
5265 #-------------------------------------------------------------------------------
5267 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5269 # disable accessibility
5270 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5271 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5273 QT_CONFIG="$QT_CONFIG accessibility"
5277 if [ "$CFG_EGL" = "yes" ]; then
5278 QT_CONFIG="$QT_CONFIG egl"
5280 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5284 if [ "$CFG_EGLFS" = "yes" ]; then
5285 QT_CONFIG="$QT_CONFIG eglfs"
5287 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5291 if [ "$CFG_OPENVG" = "no" ]; then
5292 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5294 QT_CONFIG="$QT_CONFIG openvg"
5295 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5296 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5298 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5299 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5301 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5302 QT_CONFIG="$QT_CONFIG shivavg"
5303 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5308 if [ "$CFG_OPENGL" = "no" ]; then
5309 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5311 QT_CONFIG="$QT_CONFIG opengl"
5314 if [ "$CFG_OPENGL" = "es2" ]; then
5315 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5318 if [ "$CFG_OPENGL" = "es2" ]; then
5319 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5320 QT_CONFIG="$QT_CONFIG opengles2"
5323 # build up the variables for output
5324 if [ "$CFG_DEBUG" = "yes" ]; then
5325 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5326 elif [ "$CFG_DEBUG" = "no" ]; then
5327 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5329 if [ "$CFG_SHARED" = "yes" ]; then
5330 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5331 QT_CONFIG="$QT_CONFIG shared"
5332 elif [ "$CFG_SHARED" = "no" ]; then
5333 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5334 QT_CONFIG="$QT_CONFIG static"
5337 #FIXME: qpa is implicit this should all be removed
5338 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5339 QT_CONFIG="$QT_CONFIG qpa"
5340 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5341 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5343 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5344 # Do not set this here for Windows. Let qmake do it so
5345 # debug and release precompiled headers are kept separate.
5346 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5348 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5349 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5350 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5351 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5352 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5353 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5355 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5356 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5358 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5359 [ "$CFG_STACK_PROTECTOR_STRONG" = "yes" ] && QT_CONFIG="$QT_CONFIG stack-protector-strong"
5360 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5361 [ "$CFG_STRIP" = "no" ] && QMAKE_CONFIG="$QMAKE_CONFIG nostrip"
5362 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5363 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5364 QMakeVar add QMAKE_CFLAGS -g
5365 QMakeVar add QMAKE_CXXFLAGS -g
5366 QT_CONFIG="$QT_CONFIG separate_debug_info"
5368 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5369 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5371 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5372 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5373 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5374 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5375 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5376 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5377 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5378 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5379 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5380 if [ "$CFG_ARCH" = "mips" ]; then
5381 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5382 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5384 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5385 QT_CONFIG="$QT_CONFIG clock-gettime"
5387 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5388 QT_CONFIG="$QT_CONFIG clock-monotonic"
5390 if [ "$CFG_MREMAP" = "yes" ]; then
5391 QT_CONFIG="$QT_CONFIG mremap"
5393 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5394 QT_CONFIG="$QT_CONFIG getaddrinfo"
5396 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5397 QT_CONFIG="$QT_CONFIG ipv6ifname"
5399 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5400 QT_CONFIG="$QT_CONFIG getifaddrs"
5402 if [ "$CFG_INOTIFY" = "yes" ]; then
5403 QT_CONFIG="$QT_CONFIG inotify"
5405 if [ "$CFG_LIBJPEG" = "no" ]; then
5407 elif [ "$CFG_LIBJPEG" = "system" ]; then
5408 QT_CONFIG="$QT_CONFIG system-jpeg"
5410 if [ "$CFG_JPEG" = "no" ]; then
5411 QT_CONFIG="$QT_CONFIG no-jpeg"
5412 elif [ "$CFG_JPEG" = "yes" ]; then
5413 QT_CONFIG="$QT_CONFIG jpeg"
5415 if [ "$CFG_LIBPNG" = "no" ]; then
5418 if [ "$CFG_LIBPNG" = "system" ]; then
5419 QT_CONFIG="$QT_CONFIG system-png"
5421 if [ "$CFG_PNG" = "no" ]; then
5422 QT_CONFIG="$QT_CONFIG no-png"
5423 elif [ "$CFG_PNG" = "yes" ]; then
5424 QT_CONFIG="$QT_CONFIG png"
5426 if [ "$CFG_GIF" = "no" ]; then
5427 QT_CONFIG="$QT_CONFIG no-gif"
5428 elif [ "$CFG_GIF" = "yes" ]; then
5429 QT_CONFIG="$QT_CONFIG gif"
5431 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5432 QT_CONFIG="$QT_CONFIG no-freetype"
5433 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5434 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5435 QT_CONFIG="$QT_CONFIG system-freetype"
5437 QT_CONFIG="$QT_CONFIG freetype"
5439 if [ "$CFG_GUI" = "auto" ]; then
5442 if [ "$CFG_GUI" = "no" ]; then
5443 QT_CONFIG="$QT_CONFIG no-gui"
5446 if [ "$CFG_WIDGETS" = "no" ]; then
5447 QT_CONFIG="$QT_CONFIG no-widgets"
5448 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5451 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5452 #On Mac we implicitly link against libz, so we
5453 #never use the 3rdparty stuff.
5454 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5456 if [ "$CFG_ZLIB" = "yes" ]; then
5457 QT_CONFIG="$QT_CONFIG zlib"
5458 elif [ "$CFG_ZLIB" = "system" ]; then
5459 QT_CONFIG="$QT_CONFIG system-zlib"
5462 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5463 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5464 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5465 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5466 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5467 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5468 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5469 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5470 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5471 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5472 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5473 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5474 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5475 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5476 [ "$CFG_SYSTEM_PROXIES" = "yes" ] && QT_CONFIG="$QT_CONFIG system-proxies"
5478 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5479 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5481 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5482 if [ "$CFG_RPATH" = "yes" ]; then
5483 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5485 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5486 if [ -n "$RPATH_FLAGS" ]; then
5488 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5492 elif [ "$CFG_RPATH" = "yes" ]; then
5493 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5497 if [ -n "$RPATH_FLAGS" ]; then
5498 # add the user defined rpaths
5499 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5502 if [ "$CFG_RPATH" = "yes" ]; then
5503 QT_CONFIG="$QT_CONFIG rpath"
5506 if [ '!' -z "$I_FLAGS" ]; then
5507 # add the user define include paths
5508 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5509 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5512 if [ '!' -z "$W_FLAGS" ]; then
5513 # add the user defined warning flags
5514 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5515 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5516 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5519 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5520 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5521 # Follow default behavior of configure.exe by overriding with "rtti".
5522 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5525 if [ "$CFG_ALSA" = "yes" ]; then
5526 QT_CONFIG="$QT_CONFIG alsa"
5529 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5530 QT_CONFIG="$QT_CONFIG pulseaudio"
5533 if [ "$CFG_COREWLAN" = "yes" ]; then
5534 QT_CONFIG="$QT_CONFIG corewlan"
5537 if [ "$CFG_ICU" = "yes" ]; then
5538 QT_CONFIG="$QT_CONFIG icu"
5541 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5542 QT_CONFIG="$QT_CONFIG force_asserts"
5545 if [ "$CFG_PCRE" = "qt" ]; then
5546 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5550 # Some Qt modules are too advanced in C++ for some old compilers
5551 # Detect here the platforms where they are known to work.
5553 # See Qt documentation for more information on which features are
5554 # supported and on which compilers.
5556 canBuildQtConcurrent="yes"
5557 canUseV8Snapshot="yes"
5559 case "$XPLATFORM" in
5561 # PA-RISC's assembly is too limited
5562 # gcc 3.4 on that platform can't build QtXmlPatterns
5563 # the assembly it generates cannot be compiled
5565 # Check gcc's version
5566 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5570 canBuildQtXmlPatterns="no"
5574 canBuildQtXmlPatterns="no"
5578 unsupported/vxworks-*-g++*)
5581 unsupported/vxworks-*-dcc*)
5583 canBuildQtXmlPatterns="no"
5586 # Check gcc's version
5587 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5595 canBuildQtXmlPatterns="no"
5600 # Check the compiler version
5601 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5604 canBuildQtXmlPatterns="no"
5605 canBuildQtConcurrent="no"
5609 canBuildQtConcurrent="no"
5615 canBuildQtXmlPatterns="no"
5616 canBuildQtConcurrent="no"
5622 # Get the xlC version
5623 cat > xlcver.c <<EOF
5627 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5632 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5633 xlcver=`./xlcver 2>/dev/null`
5636 if [ "$OPT_VERBOSE" = "yes" ]; then
5637 if [ -n "$xlcver" ]; then
5638 echo Found IBM xlC version: $xlcver.
5640 echo Could not determine IBM xlC version, assuming oldest supported.
5647 canBuildQtXmlPatterns="no"
5648 canBuildQtConcurrent="no"
5652 canBuildQtConcurrent="no"
5658 canBuildQtConcurrent="no"
5662 if [ "$CFG_GUI" = "no" ]; then
5663 # WebKit requires QtGui
5667 if [ "$CFG_SHARED" = "no" ]; then
5669 echo "WARNING: Using static linking will disable the WebKit module."
5674 CFG_CONCURRENT="yes"
5675 if [ "$canBuildQtConcurrent" = "no" ]; then
5676 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5679 QT_CONFIG="$QT_CONFIG concurrent"
5683 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5684 QT_CONFIG="$QT_CONFIG audio-backend"
5688 if [ "$CFG_WEBKIT" = "debug" ]; then
5689 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5693 QT_CONFIG="$QT_CONFIG v8"
5694 # Detect snapshot support
5695 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5696 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5699 *) canUseV8Snapshot="no"
5703 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5704 # QEMU crashes when building inside Scratchbox with an ARM target
5705 canUseV8Snapshot="no"
5708 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5709 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5711 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5712 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5715 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5716 QT_CONFIG="$QT_CONFIG v8snapshot"
5720 if [ "$CFG_QML_DEBUG" = "no" ]; then
5721 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5724 case "$QMAKE_CONF_COMPILER" in
5727 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5729 case "$COMPILER_VERSION" in
5731 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5732 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5733 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5736 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5737 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5738 QT_GCC_PATCH_VERSION=0
5748 #-------------------------------------------------------------------------------
5749 # part of configuration information goes into qconfig.h
5750 #-------------------------------------------------------------------------------
5752 case "$CFG_QCONFIG" in
5754 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5757 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5758 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5759 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5760 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5761 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5762 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5764 echo "#endif" >>"$tmpconfig"
5768 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5772 # define QT_EDITION $QT_EDITION
5776 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5777 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5779 if [ "$CFG_SHARED" = "no" ]; then
5780 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5781 /* Qt was configured for a static build */
5782 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5789 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5790 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5793 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5794 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5797 if [ "$BUILD_ON_MAC" = "yes" ]; then
5798 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5799 #if defined(__LP64__)
5800 # define QT_POINTER_SIZE 8
5802 # define QT_POINTER_SIZE 4
5806 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5807 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5810 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5811 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5812 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5815 # Add compiler sub-architecture support
5816 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5817 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5818 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5820 MIPS_DSP MIPS_DSPR2; do
5821 eval "VAL=\$CFG_$SUBARCH"
5824 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5825 >>"$outpath/src/corelib/global/qconfig.h.new"
5830 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5832 if [ "$CFG_DEV" = "yes" ]; then
5833 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5836 # Add QPA to config.h
5837 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5839 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5840 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5843 # Add turned on SQL drivers
5844 for DRIVER in $CFG_SQL_AVAILABLE; do
5845 eval "VAL=\$CFG_SQL_$DRIVER"
5848 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5849 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5850 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5853 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5858 QMakeVar set sql-drivers "$SQL_DRIVERS"
5859 QMakeVar set sql-plugins "$SQL_PLUGINS"
5861 # Add other configuration options to the qconfig.h file
5862 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5863 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5864 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5865 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5866 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5868 # X11/Unix/Mac only configs
5869 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5870 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5871 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5872 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5873 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5874 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5875 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5876 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5877 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5878 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5879 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5880 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5881 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5882 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5884 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5885 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5886 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5887 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5888 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5889 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5890 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5891 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5892 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5893 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5894 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5895 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5896 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5898 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5899 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5900 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5901 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5902 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5903 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5904 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5905 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5907 # sort QCONFIG_FLAGS for neatness if we can
5908 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5909 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5911 if [ -n "$QCONFIG_FLAGS" ]; then
5912 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5913 #ifndef QT_BOOTSTRAPPED
5916 for cfg in $QCONFIG_FLAGS; do
5917 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5918 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5919 # figure out define logic, so we can output the correct
5920 # ifdefs to override the global defines in a project
5922 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5923 # QT_NO_option can be forcefully turned on by QT_option
5924 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5925 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5926 # QT_option can be forcefully turned off by QT_NO_option
5927 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5930 if [ -z $cfgdNeg ]; then
5931 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5938 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5939 #if defined($cfgd) && defined($cfgdNeg)
5941 #elif !defined($cfgd) && !defined($cfgdNeg)
5948 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5949 #endif // QT_BOOTSTRAPPED
5954 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5955 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5956 #define QT_VISIBILITY_AVAILABLE
5961 if [ -n "$QT_LIBINFIX" ]; then
5962 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5963 #define QT_LIBINFIX "$QT_LIBINFIX"
5968 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5970 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5971 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5972 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5974 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5975 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5976 chmod -w "$outpath/src/corelib/global/qconfig.h"
5977 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5978 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5982 #-------------------------------------------------------------------------------
5983 # save configuration into qconfig.pri
5984 #-------------------------------------------------------------------------------
5985 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5986 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5987 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5988 if [ "$CFG_DEBUG" = "yes" ]; then
5989 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5990 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5991 QT_CONFIG="$QT_CONFIG release"
5993 QT_CONFIG="$QT_CONFIG debug"
5994 elif [ "$CFG_DEBUG" = "no" ]; then
5995 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5996 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5997 QT_CONFIG="$QT_CONFIG debug"
5999 QT_CONFIG="$QT_CONFIG release"
6001 if [ "$CFG_FRAMEWORK" = "no" ]; then
6002 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
6004 QT_CONFIG="$QT_CONFIG qt_framework"
6005 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
6007 if [ "$CFG_DEV" = "yes" ]; then
6008 QT_CONFIG="$QT_CONFIG private_tests"
6011 cat >>"$QTCONFIG.tmp" <<EOF
6013 CONFIG += $QTCONFIG_CONFIG
6015 QT_HOST_ARCH = $CFG_HOST_ARCH
6016 QT_CPU_FEATURES = $CFG_CPUFEATURES
6017 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
6018 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
6019 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
6020 QT_EDITION = $Edition
6021 QT_CONFIG += $QT_CONFIG
6024 QT_VERSION = $QT_VERSION
6025 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
6026 QT_MINOR_VERSION = $QT_MINOR_VERSION
6027 QT_PATCH_VERSION = $QT_PATCH_VERSION
6030 QT_LIBINFIX = $QT_LIBINFIX
6031 QT_NAMESPACE = $QT_NAMESPACE
6035 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
6036 echo "# pkgconfig" >> "$QTCONFIG.tmp"
6037 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
6038 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
6039 echo >> "$QTCONFIG.tmp"
6042 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
6043 echo "# sysroot" >>"$QTCONFIG.tmp"
6044 echo "!host_build {" >>"$QTCONFIG.tmp"
6045 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6046 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6047 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6048 echo "}" >> "$QTCONFIG.tmp"
6049 echo >> "$QTCONFIG.tmp"
6051 if [ -n "$RPATH_FLAGS" ]; then
6052 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
6054 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6055 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6056 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6057 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6060 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6061 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6062 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6065 # replace qconfig.pri if it differs from the newly created temp file
6066 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6067 rm -f "$QTCONFIG.tmp"
6069 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6072 #-------------------------------------------------------------------------------
6073 # save configuration into qmodule.pri
6074 #-------------------------------------------------------------------------------
6075 QTMODULE="$outpath/mkspecs/qmodule.pri"
6077 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl fix_output_dirs no_private_qt_headers_warning QTDIR_build" >> "$QTMODULE.tmp"
6078 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6080 if [ -n "$QT_CFLAGS_PSQL" ]; then
6081 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6083 if [ -n "$QT_LFLAGS_PSQL" ]; then
6084 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6086 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6087 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6089 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6090 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6092 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6093 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6095 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6096 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6098 if [ -n "$QT_LFLAGS_ODBC" ]; then
6099 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6101 if [ -n "$QT_LFLAGS_TDS" ]; then
6102 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6105 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6106 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6109 #dump in the OPENSSL_LIBS info
6110 if [ '!' -z "$OPENSSL_LIBS" ]; then
6111 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6112 elif [ "$CFG_OPENSSL" = "linked" ]; then
6113 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6116 #dump in the SDK info
6117 if [ '!' -z "$CFG_SDK" ]; then
6118 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6122 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6123 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6125 # replace qmodule.pri if it differs from the newly created temp file
6126 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6127 rm -f "$QTMODULE.tmp"
6129 mv -f "$QTMODULE.tmp" "$QTMODULE"
6132 #-------------------------------------------------------------------------------
6133 # save configuration into .qmake.cache
6134 #-------------------------------------------------------------------------------
6136 CACHEFILE="$outpath/.qmake.cache"
6137 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6138 cat >>"$CACHEFILE.tmp" <<EOF
6140 QT_SOURCE_TREE = \$\$quote($relpath)
6141 QT_BUILD_TREE = \$\$quote($outpath)
6144 # replace .qmake.cache if it differs from the newly created temp file
6145 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6146 rm -f "$CACHEFILE.tmp"
6148 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6151 #-------------------------------------------------------------------------------
6152 # give feedback on configuration
6153 #-------------------------------------------------------------------------------
6154 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6157 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6158 echo "Build type: $PLATFORM"
6160 echo "Building on: $PLATFORM"
6161 echo "Building for: $XPLATFORM"
6164 # the missing space before $CFG_FEATURES is intentional
6165 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6166 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6168 if [ -n "$PLATFORM_NOTES" ]; then
6169 echo "Platform notes:"
6170 echo "$PLATFORM_NOTES"
6175 if [ "$OPT_VERBOSE" = "yes" ]; then
6176 echo $ECHO_N "qmake vars .......... $ECHO_C"
6177 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6178 echo "qmake switches ......... $QMAKE_SWITCHES"
6181 echo "Build .................. $CFG_BUILD_PARTS"
6182 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6183 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6184 echo "Debug .................. yes (combined)"
6185 if [ "$CFG_DEBUG" = "yes" ]; then
6186 echo "Default Link ........... debug"
6188 echo "Default Link ........... release"
6191 echo "Debug .................. $CFG_DEBUG"
6193 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6194 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6196 echo "C++11 support .......... $CFG_CXX11"
6197 if [ -n "$PKG_CONFIG" ]; then
6198 echo "pkg-config ............. yes"
6200 echo "pkg-config ............. no"
6202 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6203 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6204 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6205 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6206 echo "QtGui module ........... $CFG_GUI"
6207 echo "QtWidgets module ....... $CFG_WIDGETS"
6208 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6209 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6211 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6213 echo "QML debugging .......... $CFG_QML_DEBUG"
6214 echo "PCH support ............ $CFG_PRECOMPILE"
6215 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6216 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6217 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6218 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6219 elif [ "$CFG_ARCH" = "arm" ]; then
6220 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6221 echo "NEON support ........... ${CFG_NEON}"
6223 if [ "$CFG_ARCH" = "mips" ]; then
6224 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6226 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6227 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6228 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6229 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6230 echo "NIS support ............ $CFG_NIS"
6231 echo "CUPS support ........... $CFG_CUPS"
6232 echo "Iconv support .......... $CFG_ICONV"
6233 echo "Glib support ........... $CFG_GLIB"
6234 echo "GStreamer support ...... $CFG_GSTREAMER"
6235 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6236 echo "Large File support ..... $CFG_LARGEFILE"
6237 echo "GIF support ............ $CFG_GIF"
6238 if [ "$CFG_JPEG" = "no" ]; then
6239 echo "JPEG support ........... $CFG_JPEG"
6241 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6243 if [ "$CFG_PNG" = "no" ]; then
6244 echo "PNG support ............ $CFG_PNG"
6246 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6248 echo "zlib support ........... $CFG_ZLIB"
6249 echo "Session management ..... $CFG_SM"
6250 echo "libudev support ........ $CFG_LIBUDEV"
6252 if [ "$XPLATFORM_QNX" = "yes" ]; then
6253 echo "SLOG2 support .......... $CFG_SLOG2"
6255 echo "Use system proxies ..... $CFG_SYSTEM_PROXIES"
6257 if [ "$CFG_OPENGL" = "desktop" ]; then
6258 echo "OpenGL support ......... yes (Desktop OpenGL)"
6259 elif [ "$CFG_OPENGL" = "es2" ]; then
6260 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6262 echo "OpenGL support ......... no"
6265 if [ "$CFG_OPENVG" ]; then
6266 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6267 echo "OpenVG support ......... ShivaVG"
6269 echo "OpenVG support ......... $CFG_OPENVG"
6273 echo "XShape support ......... $CFG_XSHAPE"
6274 echo "XVideo support ......... $CFG_XVIDEO"
6275 echo "XSync support .......... $CFG_XSYNC"
6276 echo "Xinerama support ....... $CFG_XINERAMA"
6277 echo "Xcursor support ........ $CFG_XCURSOR"
6278 echo "Xfixes support ......... $CFG_XFIXES"
6279 echo "Xrandr support ......... $CFG_XRANDR"
6280 echo "Xi support ............. $CFG_XINPUT"
6281 echo "Xi2 support ............ $CFG_XINPUT2"
6282 echo "MIT-SHM support ........ $CFG_MITSHM"
6283 echo "FontConfig support ..... $CFG_FONTCONFIG"
6284 echo "XKB Support ............ $CFG_XKB"
6285 echo "immodule support ....... $CFG_IM"
6286 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6288 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6289 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6290 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6291 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6292 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6293 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6294 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6295 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6296 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6299 if [ "$CFG_OPENSSL" = "yes" ]; then
6300 OPENSSL_LINKAGE="(run-time)"
6301 elif [ "$CFG_OPENSSL" = "linked" ]; then
6302 OPENSSL_LINKAGE="(linked)"
6304 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6305 echo "Alsa support ........... $CFG_ALSA"
6306 if [ "$BUILD_ON_MAC" = "yes" ]; then
6307 echo "CoreWlan support ....... $CFG_COREWLAN"
6309 echo "libICU support ......... $CFG_ICU"
6310 echo "PCRE support ........... $CFG_PCRE"
6311 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6312 echo "Xcb support ............ limited (old version)"
6314 echo "Xcb support ............ $CFG_XCB"
6316 echo "Xrender support ........ $CFG_XRENDER"
6317 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6318 echo "XInput2 support ........ $CFG_XINPUT2"
6320 echo "EGLFS support .......... $CFG_EGLFS"
6321 echo "DirectFB support ....... $CFG_DIRECTFB"
6322 echo "LinuxFB support ........ $CFG_LINUXFB"
6323 echo "KMS support ............ $CFG_KMS"
6326 # complain about not being able to use dynamic plugins if we are using a static build
6327 if [ "$CFG_SHARED" = "no" ]; then
6329 echo "WARNING: Using static linking will disable the use of dynamically"
6330 echo "loaded plugins. Make sure to import all needed static plugins,"
6331 echo "or compile needed modules into the library."
6334 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6336 echo "NOTE: When linking against OpenSSL, you can override the default"
6337 echo "library names through OPENSSL_LIBS."
6339 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6343 exec 1>&3 3>&- # restore stdout
6344 cat $outpath/config.summary # display config feedback to user
6346 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6348 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6349 echo "if you want a pure debug build."
6354 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6359 #-------------------------------------------------------------------------------
6360 # build makefiles based on the configuration
6361 #-------------------------------------------------------------------------------
6363 if [ "$CFG_PROCESS" != "no" ]; then
6365 if [ "$CFG_PROCESS" = "full" ]; then
6366 echo "Creating makefiles. Please wait..."
6367 "$outpath/bin/qmake" -r "$relpath"
6370 "$outpath/bin/qmake" "$relpath"
6373 if [ "$OPT_FAST" = "yes" ]; then
6375 for part in $CFG_BUILD_PARTS; do
6377 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6380 if [ "x$PART_ROOTS" != "x" ]; then
6382 echo "Creating stub makefiles. Please wait..."
6383 QMAKE="$outpath/bin/qmake"
6384 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6385 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6387 test -f "$outpath/$d/Makefile" && continue
6388 echo " for $relpath/$p"
6390 mkdir -p "$outpath/$d" || exit
6391 cat > "$outpath/$d/Makefile" <<EOF || exit
6392 # $outpath/$d/Makefile: generated by configure
6394 # WARNING: This makefile will be replaced with a real makefile.
6395 # All changes made to this file will be lost.
6400 all clean install qmake first Makefile: FORCE
6401 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6411 #-------------------------------------------------------------------------------
6412 # check for platforms that we don't yet know about
6413 #-------------------------------------------------------------------------------
6414 if [ "$CFG_ARCH" = "unknown" ]; then
6417 NOTICE: configure was unable to determine the architecture
6418 for the $XQMAKESPEC target.
6420 Qt will not use a specialized implementation for any atomic
6421 operations. Instead a generic implemention based on either GCC
6422 intrinsics or C++11 std::atomic<T> will be used (when
6423 available). The generic implementations are generally as fast
6424 as and always as safe as a specialized implementation.
6426 If no generic implementation is available, Qt will use a
6427 fallback UNIX implementation which uses a single
6428 pthread_mutex_t to protect all atomic operations. This
6429 implementation is the slow (but safe) fallback implementation
6430 for architectures Qt does not yet support.
6434 #-------------------------------------------------------------------------------
6435 # check if the user passed the -no-zlib option, which is no longer supported
6436 #-------------------------------------------------------------------------------
6437 if [ -n "$ZLIB_FORCED" ]; then
6438 which_zlib="supplied"
6439 if [ "$CFG_ZLIB" = "system" ]; then
6445 NOTICE: The -no-zlib option was supplied but is no longer
6448 Qt now requires zlib support in all builds, so the -no-zlib
6449 option was ignored. Qt will be built using the $which_zlib
6454 #-------------------------------------------------------------------------------
6455 # check if the user passed the obsoleted -wayland or -no-wayland flag
6456 #-------------------------------------------------------------------------------
6457 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6460 NOTICE: The -wayland and -no-wayland flags are now obsolete
6462 All configuring of QtWayland plugin and QtCompositor happens in the module
6466 #-------------------------------------------------------------------------------
6467 # check if the user passed the obsoleted -arch or -host-arch options
6468 #-------------------------------------------------------------------------------
6469 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6472 NOTICE: The -arch and -host-arch options are obsolete.
6474 Qt now detects the target and host architectures based on compiler
6475 output. Qt will be built using $CFG_ARCH for the target architecture
6476 and $CFG_HOST_ARCH for the host architecture (note that these two
6477 will be the same unless you are cross-compiling).
6481 #-------------------------------------------------------------------------------
6482 # finally save the executed command to another script
6483 #-------------------------------------------------------------------------------
6484 if [ `basename $0` != "config.status" ]; then
6485 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6487 # add the system variables
6488 for varname in $SYSTEM_VARIABLES; do
6490 'if [ -n "\$'${varname}'" ]; then
6491 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6496 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6498 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6499 echo "#!/bin/sh" > "$outpath/config.status"
6500 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6501 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6502 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6503 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6504 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6505 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6506 echo "else" >> "$outpath/config.status"
6507 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6508 echo "fi" >> "$outpath/config.status"
6509 chmod +x "$outpath/config.status"
6512 if [ -n "$RPATH_MESSAGE" ]; then
6514 echo "$RPATH_MESSAGE"
6517 MAKE=`basename "$MAKE"`
6519 echo Qt is now configured for building. Just run \'$MAKE\'.
6520 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6521 echo Once everything is built, Qt is installed.
6522 echo You should not run \'$MAKE install\'.
6524 echo Once everything is built, you must run \'$MAKE install\'.
6525 echo Qt will be installed into $QT_INSTALL_PREFIX
6528 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.