2 #############################################################################
4 ## Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
5 ## Contact: http://www.qt-project.org/legal
7 ## This file is the build configuration utility of the Qt Toolkit.
9 ## $QT_BEGIN_LICENSE:LGPL$
10 ## Commercial License Usage
11 ## Licensees holding valid commercial Qt licenses may use this file in
12 ## accordance with the commercial license agreement provided with the
13 ## Software or, alternatively, in accordance with the terms contained in
14 ## a written agreement between you and Digia. For licensing terms and
15 ## conditions see http://qt.digia.com/licensing. For further information
16 ## use the contact form at http://qt.digia.com/contact-us.
18 ## GNU Lesser General Public License Usage
19 ## Alternatively, this file may be used under the terms of the GNU Lesser
20 ## General Public License version 2.1 as published by the Free Software
21 ## Foundation and appearing in the file LICENSE.LGPL included in the
22 ## packaging of this file. Please review the following information to
23 ## ensure the GNU Lesser General Public License version 2.1 requirements
24 ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
26 ## In addition, as a special exception, Digia gives you certain additional
27 ## rights. These rights are described in the Digia Qt LGPL Exception
28 ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
30 ## GNU General Public License Usage
31 ## Alternatively, this file may be used under the terms of the GNU
32 ## General Public License version 3.0 as published by the Free Software
33 ## Foundation and appearing in the file LICENSE.GPL included in the
34 ## packaging of this file. Please review the following information to
35 ## ensure the GNU General Public License version 3.0 requirements will be
36 ## met: http://www.gnu.org/copyleft/gpl.html.
41 #############################################################################
43 #-------------------------------------------------------------------------------
44 # script initialization
45 #-------------------------------------------------------------------------------
47 # the name of this script
49 # the directory of this script is the "source tree"
51 relpath=`(cd "$relpath"; /bin/pwd)`
52 # the current directory is the "build tree" or "object tree"
55 #license file location
56 LICENSE_FILE="$QT_LICENSE_FILE"
57 [ -z "$LICENSE_FILE" ] && LICENSE_FILE="$HOME/.qt-license"
58 if [ -f "$LICENSE_FILE" ]; then
59 tr -d '\r' <"$LICENSE_FILE" >"${LICENSE_FILE}.tmp"
60 diff "${LICENSE_FILE}.tmp" "${LICENSE_FILE}" >/dev/null 2>&1 || LICENSE_FILE="${LICENSE_FILE}.tmp"
63 # later cache the command line in config.status
64 OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
66 # initialize global variables
73 QMAKE_VARS_FILE=.qmake.vars
74 DEVICE_VARS_FILE=.device.vars
77 :> "$DEVICE_VARS_FILE"
79 #-------------------------------------------------------------------------------
81 #-------------------------------------------------------------------------------
85 echo "$@" | sed 's/ /\ /g'
88 # Adds a new qmake variable to the cache
89 # Usage: QMakeVar mode varname contents
90 # where mode is one of: set, add, del
104 echo >&2 "BUG: wrong command to QMakeVar: $1"
108 echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
111 shellArgumentListToQMakeListHelper()
114 for arg in "$@"; do retval="$retval \"$arg\""; done
118 # Convert a string usable on a shell command line into word-by-word quoted
120 shellArgumentListToQMakeList()
122 # eval is needed for the shell to interpret the backslash escape sequences
123 eval shellArgumentListToQMakeListHelper "$@"
126 # Helper function for getQMakeConf. It parses include statements in
127 # qmake.conf and prints out the expanded file
130 while read line; do case "$line" in
132 inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"`
133 current_dir=`dirname "$1"`
134 conf_file="$current_dir/$inc_file"
135 if [ ! -f "$conf_file" ]; then
136 echo "WARNING: Unable to find file $conf_file" >&2
139 getQMakeConf1 "$conf_file"
141 *load\(device_config\)*)
142 conf_file="$DEVICE_VARS_FILE"
143 if [ ! -f "$conf_file" ]; then
144 echo "WARNING: Unable to find file $conf_file" >&2
147 getQMakeConf1 "$conf_file"
159 values["LITERAL_WHITESPACE"] = " "
160 values["LITERAL_DOLLAR"] = "$"
162 /^[_A-Z0-9.]+[ \t]*\+?=/ {
163 valStart = index($0, "=") + 1
166 if (substr($0, valStart - 2, 1) == "+") {
170 variable = substr($0, 0, valStart - 2 - append)
171 value = substr($0, valStart)
172 gsub("[ \t]+", "", variable)
173 gsub("^[ \t]+", "", value)
174 gsub("[ \t]+$", "", value)
177 while (match(value, /\$\$(\{[_A-Z0-9.]+\}|[_A-Z0-9.]+)/)) {
178 ovalue = ovalue substr(value, 1, RSTART - 1)
179 var = substr(value, RSTART + 2, RLENGTH - 2)
180 value = substr(value, RSTART + RLENGTH)
182 var = substr(var, 2, length(var) - 2)
184 ovalue = ovalue values[var]
186 ovalue = ovalue value
188 combinedValue = values[variable]
189 if (append == 1 && length(combinedValue) > 0) {
190 combinedValue = combinedValue " " ovalue
192 combinedValue = ovalue
194 values[variable] = combinedValue
197 for (var in values) {
198 print var "=" values[var]
206 echo "$2" | $AWK "/^($1)=/ { print substr(\$0, index(\$0, \"=\") + 1) }"
209 # relies on $QMAKESPEC being set correctly. parses include statements in
210 # qmake.conf and prints out the expanded file
213 if [ -z "$specvals" ]; then
214 specvals=`getQMakeConf1 "$QMAKESPEC/qmake.conf" | getQMakeConf2`
216 getQMakeConf3 "$1" "$specvals"
221 if [ -z "$xspecvals" ]; then
222 xspecvals=`getQMakeConf1 "$XQMAKESPEC/qmake.conf" | getQMakeConf2`
224 getQMakeConf3 "$1" "$xspecvals"
227 # relies on $TEST_COMPILER being set correctly
228 compilerSupportsFlag()
230 cat >conftest.cpp <<EOF
231 int main() { return 0; }
233 $TEST_COMPILER "$@" -o conftest-out.o conftest.cpp
235 rm -f conftest.cpp conftest-out.o
239 # relies on $TEST_COMPILER being set correctly
245 safe_flag=`shellEscape "$flag"`
246 lflags=$lflags,$safe_flag
248 compilerSupportsFlag "$lflags" >/dev/null 2>&1
251 # $1: newline-separated list of default paths
253 # stdout: input path or nothing
258 echo "$1" | grep "^$path\$" > /dev/null || echo "$path"
263 filterDefaultPaths "$DEFAULT_INCDIRS"
268 filterDefaultPaths "$DEFAULT_LIBDIRS"
271 filterPathOptionsHelper()
273 local flag defpaths sep p path
279 if [ "x$path" != "x$p" ]; then
280 path=`echo "$path" | filterDefaultPaths "$defpaths"`
281 test -z "$path" && continue
283 # Re-quote for shell & qmake
284 p=`echo "$p" | sed 's,[^ ]* .*,"&",g'`
285 printf "%s%s" "$sep" "$p"
292 # $2: newline-separated list of default paths
293 # stdin: list of command line options
294 # sdout: stdin without the options naming default paths
297 # The eval does escape interpretation for us
298 eval filterPathOptionsHelper $1 "\"$2\"" "`cat`"
301 filterIncludeOptions()
303 filterPathOptions -I "$DEFAULT_INCDIRS"
306 filterLibraryOptions()
308 filterPathOptions -L "$DEFAULT_LIBDIRS"
311 #-------------------------------------------------------------------------------
313 #-------------------------------------------------------------------------------
321 echo >&2 "BUG: wrong command to QMakeVar: $1"
325 echo "$2" "$eq" "$3" >> "$DEVICE_VARS_FILE"
328 resolveDeviceMkspec()
330 result=$(find "$relpath/mkspecs/devices/" -type d -name "*$1*" | sed "s,^$relpath/mkspecs/,,")
331 match_count=$(echo "$result" | wc -w)
332 if [ "$match_count" -gt 1 ]; then
333 echo >&2 "Error: Multiple matches for device '$1'. Candidates are:"
334 tabbed_result=$(echo "$result" | sed "s,^, ,")
335 echo >&2 "$tabbed_result"
337 elif [ "$match_count" -eq 0 ]; then
338 echo >&2 "Error: No device matching '$1'"
345 #-------------------------------------------------------------------------------
346 # operating system detection
347 #-------------------------------------------------------------------------------
349 # need that throughout the script
350 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
351 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
352 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
353 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
355 # detect the "echo without newline" style. usage: echo $ECHO_N "<string>$ECHO_C"
356 if echo '\c' | grep '\c' >/dev/null; then
362 #-------------------------------------------------------------------------------
363 # window system detection
364 #-------------------------------------------------------------------------------
368 if [ -d /System/Library/Frameworks/Carbon.framework ]; then
373 #-----------------------------------------------------------------------------
374 # Qt version detection
375 #-----------------------------------------------------------------------------
376 QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
380 if [ -n "$QT_VERSION" ]; then
381 QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
382 MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
383 if [ -n "$MAJOR" ]; then
384 MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
385 PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
386 QT_MAJOR_VERSION="$MAJOR"
387 [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
388 [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
391 if [ -z "$QT_MAJOR_VERSION" ]; then
392 echo "Cannot process version from qglobal.h: $QT_VERSION"
393 echo "Cannot proceed."
397 #-------------------------------------------------------------------------------
399 #-------------------------------------------------------------------------------
403 EditionString=Commercial
407 # parse the arguments, setting things to "yes" or "no"
408 while [ "$#" -gt 0 ]; do
412 #Autoconf style options
414 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
418 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
422 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
423 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
426 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
429 -h|help|--help|-help)
430 if [ "$VAL" = "yes" ]; then
432 COMMERCIAL_USER="no" #doesn't matter we will display the help
435 COMMERCIAL_USER="no" #doesn't matter we will display the help
439 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
443 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
450 if [ "$UNKNOWN_ARG" = "yes" ]; then
462 COMMERCIAL_USER="yes"
476 if [ "$COMMERCIAL_USER" = "ask" ]; then
478 echo "Which edition of Qt do you want to use ?"
480 echo "Type 'c' if you want to use the Commercial Edition."
481 echo "Type 'o' if you want to use the Open Source Edition."
485 if [ "$commercial" = "c" ]; then
486 COMMERCIAL_USER="yes"
488 elif [ "$commercial" = "o" ]; then
495 if [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
496 # Commercial preview release
497 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
500 QT_EDITION="QT_EDITION_DESKTOP"
501 LicenseType="Technology Preview"
502 elif [ $COMMERCIAL_USER = "yes" ]; then
503 # one of commercial editions
504 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
506 # read in the license file
507 if [ -f "$LICENSE_FILE" ]; then
508 . "$LICENSE_FILE" >/dev/null 2>&1
509 if [ -z "$LicenseKeyExt" ]; then
511 echo "You are using an old license file."
513 echo "Please install the license file supplied by Digia,"
514 echo "or install the Qt Open Source Edition if you intend to"
515 echo "develop free software."
518 if [ -z "$Licensee" ]; then
520 echo "Invalid license key. Please check the license key."
524 if [ -z "$LicenseKeyExt" ]; then
526 echo $ECHO_N "Please enter your license key: $ECHO_C"
528 Licensee="Unknown user"
533 echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
534 && LicenseValid="yes" \
536 if [ "$LicenseValid" != "yes" ]; then
538 echo "Invalid license key. Please check the license key."
541 ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
542 PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d -`
543 LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
544 LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
546 # determine which edition we are licensed to use
547 case "$LicenseTypeCode" in
549 LicenseType="Commercial"
553 QT_EDITION="QT_EDITION_UNIVERSAL"
556 Edition="FullFramework"
557 EditionString="Full Framework"
558 QT_EDITION="QT_EDITION_DESKTOP"
561 Edition="GUIFramework"
562 EditionString="GUI Framework"
563 QT_EDITION="QT_EDITION_DESKTOPLIGHT"
568 LicenseType="Evaluation"
569 QMakeVar add DEFINES QT_EVAL
573 QT_EDITION="QT_EDITION_EVALUATION"
578 if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
580 echo "Invalid license key. Please check the license key."
584 # verify that we are licensed to use Qt on this platform
586 case "$PlatformCode" in
589 PlatformCode=`echo "$PlatformCode" | sed 'h;y/8NPQRTZ/UCWX9M7/;x;G;s/\(.\)....\(.\)./\1\2/'`
593 PlatformCode=`echo "$PlatformCode" | sed 's/.$//'`
596 ### EMBEDDED_QPA logic missing ###
597 case "$PlatformCode,$PLATFORM_MAC" in
598 X9,* | XC,* | XU,* | XW,* | XM,*)
600 LICENSE_EXTENSION="-ALLOS"
602 8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*)
603 # Qt for Embedded Linux
604 LICENSE_EXTENSION="-EMBEDDED"
606 6M,* | N7,* | N9,* | NX,*)
608 LICENSE_EXTENSION="-EMBEDDED"
610 FM,* | LM,yes | ZM,no)
612 LICENSE_EXTENSION="-DESKTOP"
616 [ "$PLATFORM_MAC" = "yes" ] && Platform='Mac OS X'
618 echo "You are not licensed for the $Platform platform."
620 echo "Please use the contact form at http://qt.digia.com/contact-us"
621 echo "to upgrade your license to include the $Platform platform, or install"
622 echo "the Qt Open Source Edition if you intend to develop free software."
627 if test -r "$relpath/.LICENSE"; then
628 # Generic, non-final license
630 line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
635 *TECHNOLOGY?PREVIEW*)
642 echo >&2 "Invalid license files; cannot continue"
647 EditionString="$Edition"
648 QT_EDITION="QT_EDITION_DESKTOP"
651 case "$LicenseFeatureCode" in
654 case "$LicenseType" in
656 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
659 cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
665 case "$LicenseType" in
667 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
670 cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
676 echo "Invalid license key. Please check the license key."
680 case "$LicenseFeatureCode" in
688 if [ '!' -f "$outpath/LICENSE" ]; then
689 echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
690 echo "this software has disappeared."
692 echo "Sorry, you are not licensed to use this software."
693 echo "Try re-installing."
697 elif [ $COMMERCIAL_USER = "no" ]; then
698 # Open Source edition - may only be used under the terms of the GPL or LGPL.
699 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
700 Licensee="Open Source"
702 EditionString="Open Source"
703 QT_EDITION="QT_EDITION_OPENSOURCE"
706 #-------------------------------------------------------------------------------
707 # initalize variables
708 #-------------------------------------------------------------------------------
710 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
711 for varname in $SYSTEM_VARIABLES; do
712 qmakevarname="${varname}"
713 # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
714 if [ "${varname}" = "LDFLAGS" ]; then
715 qmakevarname="LFLAGS"
716 elif [ "${varname}" = "LD" ]; then
720 'if [ -n "\$'${varname}'" ]; then
721 QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
725 # Use CC/CXX to run config.tests
726 mkdir -p "$outpath/config.tests"
727 rm -f "$outpath/config.tests/.qmake.cache"
728 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
730 QMakeVar add styles "cde mac motif plastique cleanlooks windows"
732 # QTDIR may be set and point to an old or system-wide Qt installation
735 # the minimum version of libdbus-1 that we require:
736 MIN_DBUS_1_VERSION=0.93
738 # initalize internal variables
739 CFG_CONFIGURE_EXIT_ON_ERROR=yes
742 CFG_GUI=auto # (yes|no|auto)
748 CFG_FORCEDEBUGINFO=no
769 CFG_OPENVG_LC_INCLUDES=no
770 CFG_OPENVG_SHIVA=auto
771 CFG_OPENVG_ON_OPENGL=auto
777 QT_DEFAULT_BUILD_PARTS="libs tools examples"
781 CFG_AUDIO_BACKEND=auto
784 CFG_JAVASCRIPTCORE_JIT=auto
786 CFG_STACK_PROTECTOR_STRONG=auto
789 # Target architecture
792 # Host architecture, same as CFG_ARCH when not cross-compiling
794 CFG_HOST_CPUFEATURES=
795 # Set when the -arch or -host-arch arguments are used
796 OPT_OBSOLETE_HOST_ARG=no
810 CFG_OBSOLETE_WAYLAND=no
822 CFG_SEPARATE_DEBUG_INFO=no
823 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
824 CFG_REDUCE_EXPORTS=auto
832 CFG_REDUCE_RELOCATIONS=auto
833 CFG_ACCESSIBILITY=auto
838 CFG_CLOCK_GETTIME=auto
839 CFG_CLOCK_MONOTONIC=auto
848 CFG_PREFIX_INSTALL=yes
857 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
858 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
863 OPT_CONFIRM_LICENSE=no
876 QPA_PLATFORM_GUARD=yes
879 # initalize variables used for installation
888 QT_INSTALL_TRANSLATIONS=
893 CFG_GCC_SYSROOT="yes"
898 #flags for SQL drivers
906 QT_LFLAGS_ODBC="-lodbc"
909 # flags for libdbus-1
913 # flags for Glib (X11 only)
917 # flags for GStreamer (X11 only)
921 # default qpa platform
922 QT_QPA_DEFAULT_PLATFORM=
924 #-------------------------------------------------------------------------------
925 # check SQL drivers available in this package
926 #-------------------------------------------------------------------------------
928 # opensource version removes some drivers, so force them to be off
934 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
935 for a in "$relpath/src/plugins/sqldrivers/"*; do
937 base_a=`basename "$a"`
938 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
939 eval "CFG_SQL_${base_a}=auto"
944 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
945 if [ -d "$relpath/src/plugins/imageformats" ]; then
946 for a in "$relpath/src/plugins/imageformats/"*; do
948 base_a=`basename "$a"`
949 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
954 #-------------------------------------------------------------------------------
955 # parse command line arguments
956 #-------------------------------------------------------------------------------
958 # parse the arguments, setting things to "yes" or "no"
959 while [ "$#" -gt 0 ]; do
963 #Autoconf style options
965 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
969 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
973 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
974 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
977 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
981 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
985 -no-*-*|-plugin-*-*|-qt-*-*)
986 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
987 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
991 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
994 #Qt style options that pass an argument
995 -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)
996 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1000 #Qt style complex options in one command
1001 -enable-*|-disable-*)
1002 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1003 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1005 #Qt Builtin/System style options
1006 -no-*|-system-*|-qt-*)
1007 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1008 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1010 #Options that cannot be generalized
1017 # this option may or may not be followed by an argument
1018 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1027 # this option may or may not be followed by an argument
1028 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1036 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1037 # this option may or may not be followed by an argument
1038 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1057 if [ "$1" = "-D" ]; then
1061 VAL=`echo $1 | sed 's,-D,,'`
1066 # this option may or may not be followed by an argument
1067 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1076 if [ "$1" = "-I" ]; then
1080 VAL=`echo $1 | sed 's,-I,,'`
1085 if [ "$1" = "-L" ]; then
1089 VAL=`echo $1 | sed 's,-L,,'`
1094 if [ "$1" = "-R" ]; then
1098 VAL=`echo $1 | sed 's,-R,,'`
1103 if [ "$1" = "-l" ]; then
1107 VAL=`echo $1 | sed 's,-l,,'`
1112 if [ "$1" = "-F" ]; then
1116 VAL=`echo $1 | sed 's,-F,,'`
1121 if [ "$1" = "-fw" ]; then
1125 VAL=`echo $1 | sed 's,-fw,,'`
1132 #General options, including Qt style yes options
1134 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1141 if [ "$UNKNOWN_ARG" = "yes" ]; then
1142 echo "$1: unknown argument"
1153 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1154 CFG_ACCESSIBILITY="$VAL"
1163 CFG_USE_GNUMAKE="$VAL"
1166 CFG_MYSQL_CONFIG="$VAL"
1169 QT_INSTALL_PREFIX="$VAL"
1172 QT_HOST_PREFIX="$VAL"
1181 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1182 CFG_PKGCONFIG="$VAL"
1188 CFG_PKGCONFIG="force"
1191 QT_INSTALL_DOCS="$VAL"
1194 QT_INSTALL_HEADERS="$VAL"
1197 QT_INSTALL_PLUGINS="$VAL"
1200 QT_INSTALL_IMPORTS="$VAL"
1203 QT_INSTALL_DATA="$VAL"
1206 QT_INSTALL_LIBS="$VAL"
1215 QT_INSTALL_TRANSLATIONS="$VAL"
1217 sysconfdir|settingsdir)
1218 QT_INSTALL_SETTINGS="$VAL"
1221 QT_INSTALL_EXAMPLES="$VAL"
1224 QT_INSTALL_TESTS="$VAL"
1233 CFG_GCC_SYSROOT="$VAL"
1236 QT_INSTALL_BINS="$VAL"
1239 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1246 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1247 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1248 [ "$VAL" = "es2" ]; then
1255 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1262 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1265 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1268 if [ "$BUILD_ON_MAC" = "yes" ]; then
1275 OPT_OBSOLETE_HOST_ARG=yes
1278 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1279 CFG_MAC_HARFBUZZ="$VAL"
1286 if [ "$BUILD_ON_MAC" = "yes" ]; then
1287 CFG_FRAMEWORK="$VAL"
1293 if [ "$VAL" = "yes" ]; then
1295 QMakeVar add QMAKE_CFLAGS -pg
1296 QMakeVar add QMAKE_CXXFLAGS -pg
1297 QMakeVar add QMAKE_LFLAGS -pg
1298 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1304 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1311 if [ "$VAL" = "yes" ]; then
1312 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1317 # keep compatibility with old platform names
1323 PLATFORM=hpux-acc-o64
1326 PLATFORM=hpux-acc-64
1329 PLATFORM=hpux-acc-64
1341 PLATFORM=reliant-cds-64
1344 PLATFORM=solaris-cc-64
1347 PLATFORM=unixware-cc
1350 PLATFORM=unixware-g++
1353 PLATFORM=unixware-cc
1356 PLATFORM=unixware-g++
1362 i386) NATIVE_64_ARCH="x86_64" ;;
1363 powerpc) NATIVE_64_ARCH="ppc64" ;;
1364 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1366 if [ ! -z "$NATIVE_64_ARCH" ]; then
1367 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1374 case `basename "$XPLATFORM"` in win32-g++*)
1377 CFG_REDUCE_EXPORTS=no
1382 XPLATFORM=`resolveDeviceMkspec $VAL`
1383 [ "$XPLATFORM" = "undefined" ] && exit 101
1386 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1387 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1388 DeviceVar set $DEV_VAR $DEV_VAL
1391 QT_QPA_DEFAULT_PLATFORM="$VAL"
1394 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1395 CFG_DEBUG_RELEASE="$VAL"
1401 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1402 CFG_RELEASE_QMAKE="$VAL"
1408 if [ "$VAL" = "yes" ]; then
1410 elif [ "$VAL" = "no" ]; then
1417 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1418 CFG_PREFIX_INSTALL="$VAL"
1427 CFG_FORCEDEBUGINFO="$VAL"
1429 developer-build|commercial|opensource)
1430 # These switches have been dealt with already
1433 if [ "$VAL" = "yes" ]; then
1435 elif [ "$VAL" = "no" ]; then
1442 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1443 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1449 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1450 if [ "$VAL" = "no" ]; then
1451 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1452 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1453 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1459 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1466 if [ "$VAL" = "no" ]; then
1473 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1481 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1488 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1495 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1502 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1509 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1516 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1523 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1530 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1531 CFG_PRECOMPILE="$VAL"
1536 separate-debug-info)
1537 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1538 CFG_SEPARATE_DEBUG_INFO="$VAL"
1539 elif [ "$VAL" = "nocopy" ] ; then
1540 CFG_SEPARATE_DEBUG_INFO="yes"
1541 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1547 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1548 CFG_REDUCE_EXPORTS="$VAL"
1554 if [ "$VAL" = "no" ]; then
1561 if [ "$VAL" = "no" ]; then
1568 if [ "$VAL" = "no" ]; then
1575 if [ "$VAL" = "no" ]; then
1582 if [ "$VAL" = "no" ]; then
1589 if [ "$VAL" = "no" ]; then
1596 if [ "$VAL" = "no" ]; then
1606 if [ "$VAL" = "no" ]; then
1613 if [ "$VAL" = "no" ]; then
1620 if [ "$VAL" = "no" ]; then
1621 CFG_MIPS_DSPR2="$VAL"
1627 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1628 CFG_REDUCE_RELOCATIONS="$VAL"
1634 [ "$VAL" = "qt" ] && VAL=yes
1635 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1640 # No longer supported:
1641 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1644 if [ "$VAL" = "system" ]; then
1651 [ "$VAL" = "yes" ] && VAL=qt
1652 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1659 [ "$VAL" = "yes" ] && VAL=qt
1660 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1667 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1674 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1681 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1688 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1695 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1702 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1703 CFG_FONTCONFIG="$VAL"
1709 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1716 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1723 CFG_OBSOLETE_WAYLAND=yes
1726 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1733 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1740 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1747 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1754 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1761 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1768 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1775 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1782 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1789 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1796 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1797 CFG_GSTREAMER="$VAL"
1803 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1804 CFG_QGTKSTYLE="$VAL"
1810 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1813 if [ "$VAL" = "no" ]; then
1821 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1823 elif [ "$VAL" = "no" ]; then
1830 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1831 QPA_PLATFORM_GUARD="$VAL"
1837 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1839 elif [ "$VAL" = "runtime" ]; then
1846 if [ "$VAL" = "yes" ]; then
1853 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1860 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1861 CFG_LARGEFILE="$VAL"
1867 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1874 if [ "$VAL" = "yes" ]; then
1875 CFG_OPENSSL="linked"
1881 if [ "$VAL" = "yes" ]; then
1884 if [ "$VAL" = "no" ]; then
1892 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1893 CFG_JAVASCRIPTCORE_JIT="$VAL"
1899 if [ "$VAL" = "yes" ]; then
1900 OPT_CONFIRM_LICENSE="$VAL"
1906 if [ "$VAL" = "yes" ]; then
1912 sql-*|imageformat-*)
1913 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1914 # if autoconf style options were used, $VAL can be "yes" or "no"
1915 [ "$VAL" = "yes" ] && VAL=qt
1916 # now $VAL should be "no", "qt", or "plugin"... double-check
1917 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1920 # now $VAL is "no", "qt", or "plugin"
1922 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1923 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1925 # Grab the available values
1928 avail="$CFG_SQL_AVAILABLE"
1931 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1932 if [ "$OPT" != "plugin" ]; then
1933 # png is always built in
1939 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1943 # Check that that user's value is available.
1946 if [ "$VAL" = "$d" ]; then
1951 [ "$found" = yes ] || ERROR=yes
1953 if [ "$VAR" = "sql" ]; then
1954 # set the CFG_SQL_driver
1955 eval "CFG_SQL_$VAL=\$OPT"
1957 elif [ "$VAR" = "imageformat" ]; then
1958 [ "$OPT" = "qt" ] && OPT=yes
1959 VAL="`echo $VAL |tr a-z A-Z`"
1960 eval "CFG_$VAL=$OPT"
1964 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1965 if [ "$OPT" = "plugin" ]; then
1968 QMakeVar add "${VAR}s" "${VAL}"
1969 elif [ "$OPT" = "no" ]; then
1970 PLUG_VAR="${VAR}-plugin"
1972 QMakeVar del "${IN_VAR}s" "$VAL"
1973 QMakeVar del "${PLUG_VAR}s" "$VAL"
1975 if [ "$ERROR" = "yes" ]; then
1976 echo "$CURRENT_OPT: unknown argument"
1981 if [ "$VAL" = "yes" ]; then
1982 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1983 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1987 elif [ "$VAL" = "no" ]; then
1988 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1989 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1998 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2005 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2012 DEFINES="$DEFINES \"$VAL\""
2013 D_FLAGS="$D_FLAGS -D\"$VAL\""
2016 I_FLAGS="$I_FLAGS -I\"${VAL}\""
2019 L_FLAGS="$L_FLAGS -L\"${VAL}\""
2022 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2025 L_FLAGS="$L_FLAGS -l\"${VAL}\""
2028 if [ "$BUILD_ON_MAC" = "yes" ]; then
2029 L_FLAGS="$L_FLAGS -F\"${VAL}\""
2030 I_FLAGS="$I_FLAGS -F\"${VAL}\""
2036 if [ "$BUILD_ON_MAC" = "yes" ]; then
2037 L_FLAGS="$L_FLAGS -framework \"${VAL}\""
2043 W_FLAGS="$W_FLAGS \"${VAL}\""
2058 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2059 CFG_AUDIO_BACKEND="$VAL"
2065 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2072 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2073 CFG_FORCE_ASSERTS="$VAL"
2079 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2086 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2096 if [ "$UNKNOWN_OPT" = "yes" ]; then
2097 echo "${CURRENT_OPT}: invalid command-line switch"
2103 # update QT_CONFIG to show our current predefined configuration
2104 case "$CFG_QCONFIG" in
2105 minimal|small|medium|large|full)
2106 # these are a sequence of increasing functionality
2107 for c in minimal small medium large full; do
2108 QT_CONFIG="$QT_CONFIG $c-config"
2109 [ "$CFG_QCONFIG" = $c ] && break
2113 # not known to be sufficient for anything
2114 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2115 echo >&2 "Error: configuration file not found:"
2116 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2118 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2123 #-------------------------------------------------------------------------------
2124 # build tree initialization
2125 #-------------------------------------------------------------------------------
2127 # where to find which..
2128 unixtests="$relpath/config.tests/unix"
2129 mactests="$relpath/config.tests/mac"
2130 WHICH="$unixtests/which.test"
2132 PERL=`$WHICH perl 2>/dev/null`
2134 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2136 for e in gawk nawk awk; do
2137 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2144 PERL="/usr/bin/perl"
2145 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2149 ### skip this if the user just needs help...
2150 if [ "$OPT_HELP" != "yes" ]; then
2152 # is this a shadow build?
2153 if [ "$OPT_SHADOW" = "maybe" ]; then
2155 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2156 if [ -h "$outpath" ]; then
2157 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2163 if [ "$OPT_SHADOW" = "yes" ]; then
2164 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2165 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2166 echo >&2 "Cannot proceed."
2169 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2172 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2174 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2175 echo "Qt can be built in release mode with separate debug information, so"
2176 echo "-debug-and-release is not necessary anymore"
2180 if [ "$CFG_SILENT" = "yes" ]; then
2181 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2184 # if the source tree is different from the build tree,
2185 # symlink or copy part of the sources
2186 if [ "$OPT_SHADOW" = "yes" ]; then
2187 echo "Preparing build tree..."
2189 if [ -z "$PERL" ]; then
2191 echo "You need perl in your PATH to make a shadow build."
2192 echo "Cannot proceed."
2196 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2198 # make a syncqt script that can be used in the shadow
2199 rm -f "$outpath/bin/syncqt"
2200 if [ -x "$relpath/bin/syncqt" ]; then
2201 mkdir -p "$outpath/bin"
2202 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2203 echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2204 chmod 755 "$outpath/bin/syncqt"
2207 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2208 rm -f "$outpath/bin/$i"
2209 if [ -x "$relpath/bin/$i" ]; then
2210 mkdir -p "$outpath/bin"
2211 echo "#!/bin/sh" >"$outpath/bin/$i"
2212 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2213 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2214 chmod 755 "$outpath/bin/$i"
2218 # save a pre-existing mkspecs/modules dir
2219 test -d "$outpath/mkspecs/modules" && \
2220 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2221 # ditto for mkspecs/modules-inst
2222 test -d "$outpath/mkspecs/modules-inst" && \
2223 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2225 # symlink the mkspecs directory
2226 mkdir -p "$outpath/mkspecs"
2227 rm -rf "$outpath"/mkspecs/*
2228 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2229 rm -f "$outpath/mkspecs/default"
2233 rm -rf "$outpath/mkspecs/$1"
2234 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2235 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2238 # Special case for mkspecs/features directory.
2239 # To be able to place .prf files into a shadow build directory,
2240 # we're creating links for files only. The directory structure is reproduced.
2241 ShadowMkspecs features
2243 # The modules dir is special, too.
2244 if test -d "$outpath/mkspecs-modules"; then
2245 rm -rf "$outpath/mkspecs/modules"
2246 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2248 ShadowMkspecs modules
2251 # The modules-inst dir is not quite as special, but still.
2252 if test -d "$outpath/mkspecs-modules-inst"; then
2253 rm -rf "$outpath/mkspecs/modules-inst"
2254 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2257 # Prepare doc directory
2258 mkdir -p "$outpath/doc"
2259 ln -s "$relpath"/doc/global "$outpath/doc"
2262 # symlink fonts to be able to run application from build directory
2263 if [ ! -d "${outpath}/lib/fonts" ]; then
2264 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2265 mkdir -p "${outpath}/lib"
2266 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2270 if [ "$OPT_FAST" = "auto" ]; then
2271 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2278 # find a make command
2279 if [ -z "$MAKE" ]; then
2281 for mk in gmake make; do
2282 if "$WHICH" $mk >/dev/null 2>&1; then
2287 if [ -z "$MAKE" ]; then
2288 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2289 echo >&2 "Cannot proceed."
2292 # export MAKE, we need it later in the config.tests
2298 #-------------------------------------------------------------------------------
2299 # auto-detect all that hasn't been specified in the arguments
2300 #-------------------------------------------------------------------------------
2302 if [ -z "$PLATFORM" ]; then
2304 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2306 OSX_VERSION=`uname -r | cut -d. -f1`
2307 # Select compiler. Use g++ unless we find a usable Clang version
2309 if [ "$OSX_VERSION" -ge 12 ]; then
2310 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2312 elif [ "$OSX_VERSION" -eq 11 ]; then
2313 # We're on Lion. Check if we have a supported Clang version
2314 if [ "$(clang -v 2>&1 | grep -Po '(?<=version )[\d]')" -ge 3 ]; then
2316 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2322 #PLATFORM=aix-g++-64
2324 #PLATFORM=aix-xlc-64
2326 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2336 # PLATFORM=dynix-g++
2342 PLATFORM=freebsd-g++
2344 - Also available for FreeBSD: freebsd-icc
2348 PLATFORM=openbsd-g++
2359 #PLATFORM=irix-cc-64
2361 - Also available for IRIX: irix-g++ irix-cc-64
2365 case "$UNAME_MACHINE" in
2367 #PLATFORM=hpuxi-acc-32
2368 PLATFORM=hpuxi-acc-64
2370 - Also available for HP-UXi: hpuxi-acc-32
2376 #PLATFORM=hpux-acc-64
2378 #PLATFORM=hpux-acc-o64
2380 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2389 - Also available for Tru64: tru64-g++
2393 case "$UNAME_MACHINE" in
2395 PLATFORM=linux-g++-64
2402 - Also available for Linux: linux-kcc linux-icc linux-cxx
2406 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2407 PLATFORM="solaris-g++"
2409 #PLATFORM=solaris-g++
2411 #PLATFORM=solaris-cc64
2414 - Also available for Solaris: solaris-g++ solaris-cc-64
2417 ReliantUNIX-*:*|SINIX-*:*)
2418 PLATFORM=reliant-cds
2419 #PLATFORM=reliant-cds-64
2421 - Also available for Reliant UNIX: reliant-cds-64
2431 #PLATFORM=unixware-g++
2432 PLATFORM=unixware-cc
2434 - Also available for OpenUNIX: unixware-g++
2438 #PLATFORM=unixware-g++
2439 PLATFORM=unixware-cc
2441 - Also available for UnixWare: unixware-g++
2448 - Also available for SCO OpenServer: sco-g++
2452 PLATFORM=unixware-g++
2455 PLATFORM=unsupported/qnx-g++
2458 if [ "$OPT_HELP" != "yes" ]; then
2460 echo " The build script does not currently recognize all" >&2
2461 echo " platforms supported by Qt." >&2
2462 echo " Rerun this script with a -platform option listed to" >&2
2463 echo " set the system/compiler combination you use." >&2
2470 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2472 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2473 case "$XPLATFORM" in *-maemo*) XPLATFORM_MAEMO=yes;; esac
2474 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2476 if [ -d "$PLATFORM" ]; then
2477 QMAKESPEC="$PLATFORM"
2479 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2481 if [ -d "$XPLATFORM" ]; then
2482 XQMAKESPEC="$XPLATFORM"
2484 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2486 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2487 QT_CROSS_COMPILE=yes
2488 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2489 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2492 if [ "$BUILD_ON_MAC" = "yes" ]; then
2493 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2495 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2496 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2497 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2498 echo " built with 'macx-g++'" >&2
2504 # check specified platforms are supported
2505 if [ '!' -d "$QMAKESPEC" ]; then
2507 echo " The specified system/compiler is not supported:"
2511 echo " Please see the README file for a complete list."
2515 if [ '!' -d "$XQMAKESPEC" ]; then
2517 echo " The specified system/compiler is not supported:"
2521 echo " Please see the README file for a complete list."
2525 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2527 echo " The specified system/compiler port is not complete:"
2529 echo " $XQMAKESPEC/qplatformdefs.h"
2531 echo " Please use the contact form at http://qt.digia.com/contact-us"
2536 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2537 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2538 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2539 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2540 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2544 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2545 case `basename "$XPLATFORM"` in
2548 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2550 echo "Please use the contact form at http://qt.digia.com/contact-us"
2551 echo "to upgrade your license to include this platform, or install"
2552 echo "the Qt Open Source Edition if you intend to develop free software."
2558 #-------------------------------------------------------------------------------
2559 # tests that don't need qmake (must be run before displaying help)
2560 #-------------------------------------------------------------------------------
2562 # detect build style
2563 if [ "$CFG_DEBUG" = "auto" ]; then
2564 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2565 CFG_DEBUG_RELEASE=yes
2567 elif [ "$CFG_DEV" = "yes" ]; then
2568 CFG_DEBUG_RELEASE=no
2571 CFG_DEBUG_RELEASE=no
2575 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2576 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2579 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2580 QT_CONFIG="$QT_CONFIG force_debug_info"
2583 # pass on $CFG_SDK to the arch/configure tests.
2584 if [ -n "$CFG_SDK" ]; then
2585 MAC_SDK_FLAG="-sdk $CFG_SDK"
2590 # find the default framework value
2591 if [ "$BUILD_ON_MAC" = "yes" ]; then
2592 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2593 CFG_FRAMEWORK="$CFG_SHARED"
2594 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2596 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2604 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2606 TEST_COMPILER=$QMAKE_CONF_COMPILER
2607 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2608 if [ -z "$TEST_COMPILER" ]; then
2609 echo "ERROR: Cannot set the compiler for the configuration tests"
2613 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2616 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2617 if [ -n "$GCC_MACHINE_DUMP" ]; then
2618 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2621 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2622 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2626 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2628 # auto-detect precompiled header support
2629 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2630 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2637 # auto-detect support for separate debug info in objcopy
2638 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2639 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2640 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2641 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2642 CFG_SEPARATE_DEBUG_INFO=no
2646 # binutils on HP-UX is buggy; default to no.
2647 CFG_SEPARATE_DEBUG_INFO=no
2650 CFG_SEPARATE_DEBUG_INFO=yes
2656 # auto-detect -fvisibility support
2657 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2658 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2659 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2660 echo "-reduce-exports was requested but this compiler does not support it"
2661 echo "Re-run configure with -v for more information"
2664 CFG_REDUCE_EXPORTS=no
2666 CFG_REDUCE_EXPORTS=yes
2670 # auto-detect -fstack-protector-strong support (for QNX only currently)
2671 if [ "$XPLATFORM_QNX" = "yes" ]; then
2672 if compilerSupportsFlag -fstack-protector-strong; then
2673 CFG_STACK_PROTECTOR_STRONG=yes
2675 CFG_STACK_PROTECTOR_STRONG=no
2678 CFG_STACK_PROTECTOR_STRONG=no
2681 # detect the availability of the -Bsymbolic-functions linker optimization
2682 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2683 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2684 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2685 echo "-reduce-relocations was requested but this compiler does not support it"
2686 echo "Re-run configure with -v for more information"
2689 CFG_REDUCE_RELOCATIONS=no
2691 CFG_REDUCE_RELOCATIONS=yes
2695 # auto-detect GNU make support
2696 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2700 # find the default framework value
2701 if [ "$BUILD_ON_MAC" = "yes" ]; then
2702 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2703 CFG_FRAMEWORK="$CFG_SHARED"
2704 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2706 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2714 # auto-detect default include and library search paths
2715 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2716 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2717 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2718 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2719 /^End of search/ { yup=0 }
2720 yup { print substr($0, 2) }
2721 /^\#include </ { yup=1 }
2723 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2725 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2728 #setup the build parts
2729 if [ -z "$CFG_BUILD_PARTS" ]; then
2730 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2732 # build tests by default, if a developer build
2733 if [ "$CFG_DEV" = "yes" ]; then
2734 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2737 # don't build tools by default when cross-compiling
2738 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2739 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2742 for nobuild in $CFG_NOBUILD_PARTS; do
2743 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2745 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2747 # echo "WARNING: libs is a required part of the build."
2749 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2752 #-------------------------------------------------------------------------------
2753 # post process QT_INSTALL_* variables
2754 #-------------------------------------------------------------------------------
2756 if [ -z "$QT_INSTALL_PREFIX" ]; then
2757 if [ "$CFG_DEV" = "yes" ]; then
2758 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2760 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2763 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2765 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2766 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2767 if [ "$BUILD_ON_MAC" = "yes" ]; then
2768 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2771 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2774 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2776 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2777 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2778 if [ "$BUILD_ON_MAC" = "yes" ]; then
2779 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2784 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2787 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2789 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2790 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2791 if [ "$BUILD_ON_MAC" = "yes" ]; then
2792 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2793 QT_INSTALL_LIBS="/Library/Frameworks"
2797 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2799 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2801 if [ -z "$QT_INSTALL_BINS" ]; then #default
2802 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2803 if [ "$BUILD_ON_MAC" = "yes" ]; then
2804 QT_INSTALL_BINS="/Developer/Applications/Qt"
2807 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2809 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2811 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2812 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2813 if [ "$BUILD_ON_MAC" = "yes" ]; then
2814 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2817 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2819 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2821 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2822 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2823 if [ "$BUILD_ON_MAC" = "yes" ]; then
2824 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2827 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2829 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2831 if [ -z "$QT_INSTALL_DATA" ]; then #default
2832 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2834 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2836 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2837 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2839 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2841 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2842 if [ "$BUILD_ON_MAC" = "yes" ]; then
2843 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2845 QT_INSTALL_SETTINGS=/etc/xdg
2848 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2850 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2851 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2852 if [ "$BUILD_ON_MAC" = "yes" ]; then
2853 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2856 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2858 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2861 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2862 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2863 if [ "$BUILD_ON_MAC" = "yes" ]; then
2864 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2867 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2869 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2871 #------- host paths --------
2873 if [ -z "$QT_HOST_PREFIX" ]; then
2874 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2877 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2881 if [ -z "$QT_HOST_BINS" ]; then #default
2883 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2884 if [ "$BUILD_ON_MAC" = "yes" ]; then
2885 QT_HOST_BINS="/Developer/Applications/Qt"
2888 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2890 QT_HOST_BINS="$QT_INSTALL_BINS"
2893 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2895 if [ -z "$QT_HOST_DATA" ]; then #default
2897 QT_HOST_DATA="$QT_HOST_PREFIX"
2899 QT_HOST_DATA="$QT_INSTALL_DATA"
2902 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2905 #-------------------------------------------------------------------------------
2906 # help - interactive parts of the script _after_ this section please
2907 #-------------------------------------------------------------------------------
2909 # next, emit a usage message if something failed.
2910 if [ "$OPT_HELP" = "yes" ]; then
2911 [ "x$ERROR" = "xyes" ] && echo
2912 if [ "$CFG_NIS" = "no" ]; then
2919 if [ "$CFG_CUPS" = "no" ]; then
2926 if [ "$CFG_ICONV" = "no" ]; then
2933 if [ "$CFG_LARGEFILE" = "no" ]; then
2940 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2948 if [ "$CFG_XCB" = "no" ]; then
2956 if [ "$CFG_EGLFS" = "no" ]; then
2964 if [ "$CFG_DIRECTFB" = "no" ]; then
2972 if [ "$CFG_LINUXFB" = "no" ]; then
2980 if [ "$CFG_KMS" = "no" ]; then
2988 if [ "$CFG_XINPUT2" = "no" ]; then
2996 if [ "$CFG_DBUS" = "no" ]; then
3004 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
3012 if [ "$CFG_GLIB" = "no" ]; then
3021 Usage: $relconf [options]
3023 Installation options:
3025 These are optional, but you may specify install directories.
3027 -prefix <dir> ...... This will install everything relative to <dir>
3028 (default $QT_INSTALL_PREFIX)
3030 -hostprefix [dir] .. Tools and libraries needed when developing
3031 applications are installed in [dir]. If [dir] is
3032 not given, the current build directory will be used.
3035 * -prefix-install .... Force a sandboxed "local" installation of
3036 Qt. This will install into
3037 $QT_INSTALL_PREFIX, if this option is
3038 disabled then some platforms will attempt a
3039 "system" install by placing default values
3040 in a system location other than PREFIX.
3042 You may use these to separate different parts of the install:
3044 -bindir <dir> ......... Executables will be installed to <dir>
3045 (default PREFIX/bin)
3046 -libdir <dir> ......... Libraries will be installed to <dir>
3047 (default PREFIX/lib)
3048 -docdir <dir> ......... Documentation will be installed to <dir>
3049 (default PREFIX/doc)
3050 -headerdir <dir> ...... Headers will be installed to <dir>
3051 (default PREFIX/include)
3052 -plugindir <dir> ...... Plugins will be installed to <dir>
3053 (default PREFIX/plugins)
3054 -importdir <dir> ...... Imports for QML will be installed to <dir>
3055 (default PREFIX/imports)
3056 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3058 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3059 (default PREFIX/translations)
3060 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3061 (default PREFIX/etc/settings)
3062 -examplesdir <dir> .... Examples will be installed to <dir>
3063 (default PREFIX/examples)
3064 -testsdir <dir> ....... Tests will be installed to <dir>
3065 (default PREFIX/tests)
3067 -hostbindir <dir> .. Host executables will be installed to <dir>
3068 (default HOSTPREFIX/bin)
3069 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3070 (default HOSTPREFIX)
3074 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3075 that needs to be evaluated. If the evaluation succeeds, the feature is
3076 included. Here is a short explanation of each option:
3078 * -release ........... Compile and link Qt with debugging turned off.
3079 -debug ............. Compile and link Qt with debugging turned on.
3080 -debug-and-release . Compile and link two versions of Qt, with and without
3081 debugging turned on (Mac only).
3083 -force-debug-info .. Create symbol files for release builds.
3085 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3087 -opensource ........ Compile and link the Open-Source Edition of Qt.
3088 -commercial ........ Compile and link the Commercial Edition of Qt.
3090 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3091 + -c++11 ............. Compile Qt with C++11 support enabled.
3093 * -shared ............ Create and use shared Qt libraries.
3094 -static ............ Create and use static Qt libraries.
3096 * -process ........... Generate only a top-level Makefile.
3097 -fully-process ..... Generate Makefiles for the entire Qt tree.
3098 -dont-process ...... Do not generate any Makefiles.
3100 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3102 -fast .............. Configure Qt quickly by generating Makefiles only for
3103 library and subdirectory targets. All other Makefiles
3104 are created as wrappers, which will in turn run qmake.
3106 -no-largefile ...... Disables large file support.
3107 + -largefile ......... Enables Qt to access files larger than 4 GB.
3109 -no-accessibility .. Do not compile Accessibility support.
3110 + -accessibility ..... Compile Accessibility support.
3112 -no-sql-<driver> ... Disable SQL <driver> entirely.
3113 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3115 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3118 Possible values for <driver>:
3119 [ $CFG_SQL_AVAILABLE ]
3121 -system-sqlite ..... Use sqlite from the operating system.
3123 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3124 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3126 -no-qml-debug ...... Do not build the in-process QML debugging support.
3127 + -qml-debug ......... Build the QML debugging support.
3129 -platform target ... The operating system and compiler you are building
3132 See the README file for a list of supported
3133 operating systems and compilers.
3135 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3136 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3137 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3138 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3139 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3140 -no-avx ............ Do not compile with use of AVX instructions.
3141 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3142 -no-neon ........... Do not compile with use of NEON instructions.
3143 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3144 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3146 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3147 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3149 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3151 -D <string> ........ Add an explicit define to the preprocessor.
3152 -I <string> ........ Add an explicit include path.
3153 -L <string> ........ Add an explicit library path.
3155 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3156 configure determines whether to use pkg-config or not with
3157 some heuristics such as checking the environment variables.
3158 -no-pkg-config ..... Disable use of pkg-config.
3159 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3160 detection heuristic).
3162 -help, -h .......... Display this information.
3164 Third Party Libraries:
3166 -qt-zlib ........... Use the zlib bundled with Qt.
3167 + -system-zlib ....... Use zlib from the operating system.
3168 See http://www.gzip.org/zlib
3170 -no-gif ............ Do not compile GIF reading support.
3172 -no-libpng ......... Do not compile PNG support.
3173 -qt-libpng ......... Use the libpng bundled with Qt.
3174 + -system-libpng ..... Use libpng from the operating system.
3175 See http://www.libpng.org/pub/png
3177 -no-libjpeg ........ Do not compile JPEG support.
3178 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3179 + -system-libjpeg .... Use libjpeg from the operating system.
3180 See http://www.ijg.org
3182 -no-openssl ........ Do not compile support for OpenSSL.
3183 + -openssl ........... Enable run-time OpenSSL support.
3184 -openssl-linked .... Enabled linked OpenSSL support.
3186 -qt-pcre ........... Use the PCRE library bundled with Qt.
3187 + -system-pcre ....... Use the PCRE library from the operating system.
3191 -make <part> ....... Add part to the list of parts to be built at make time.
3192 ($QT_DEFAULT_BUILD_PARTS)
3193 -nomake <part> ..... Exclude part from the list of parts to be built.
3195 -no-gui ............ Don't build the QtGui library and dependencies.
3196 + -gui ............... Build the QtGui library and dependencies.
3198 -no-widgets ........ Don't build the QtWidgets library and dependencies.
3199 + -widgets ........... Build the QtWidgets library and dependencies.
3201 -R <string> ........ Add an explicit runtime library path to the Qt
3203 -l <string> ........ Add an explicit library.
3205 -no-rpath .......... Do not use the library install path as a runtime
3207 + -rpath ............. Link Qt libraries and executables using the library
3208 install path as a runtime library path. Equivalent
3209 to -R install_libpath
3211 -continue .......... Continue as far as possible if an error occurs.
3213 -verbose, -v ....... Print verbose information about each step of the
3216 -silent ............ Reduce the build output so that warnings and errors
3217 can be seen more easily.
3219 * -no-optimized-qmake ... Do not build qmake optimized.
3220 -optimized-qmake ...... Build qmake optimized.
3222 $NSN -no-nis ............ Do not compile NIS support.
3223 $NSY -nis ............... Compile NIS support.
3225 $CUN -no-cups ........... Do not compile CUPS support.
3226 $CUY -cups .............. Compile CUPS support.
3227 Requires cups/cups.h and libcups.so.2.
3229 $CIN -no-iconv .......... Do not compile support for iconv(3).
3230 $CIY -iconv ............. Compile support for iconv(3).
3232 -no-icu ............ Do not compile support for ICU libraries.
3233 + -icu ............... Compile support for ICU libraries.
3235 -no-strip .......... Do not strip binaries and libraries of unneeded symbols.
3236 * -strip ............. Strip binaries and libraries of unneeded symbols when installing.
3238 $PHN -no-pch ............ Do not use precompiled header support.
3239 $PHY -pch ............... Use precompiled header support.
3241 $DBN -no-dbus ........... Do not compile the QtDBus module.
3242 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3243 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3245 -reduce-relocations ..... Reduce relocations in the libraries through extra
3246 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3247 experimental; needs GNU ld >= 2.18).
3249 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3251 -device <name> ............... Cross-compile for device <name> (experimental)
3252 -device-option <key=value> ... Add device specific options for the device mkspec
3255 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3256 $SBY -separate-debug-info .... Strip debug information into a separate file.
3258 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3259 $XCBY -xcb ............... Compile Xcb support.
3261 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3262 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3264 $DFBN -no-directfb ....... Do not compile DirectFB support.
3265 $DFBY -directfb .......... Compile DirectFB support.
3267 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3268 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3270 $KMSN -no-kms ............ Do not compile KMS support.
3271 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3273 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3275 -xplatform target ... The target platform when cross-compiling.
3277 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3278 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3280 -no-feature-<feature> Do not compile in <feature>.
3281 -feature-<feature> .. Compile in <feature>. The available features
3282 are described in src/corelib/global/qfeatures.txt
3284 -no-freetype ........ Do not compile in Freetype2 support.
3285 -qt-freetype ........ Use the libfreetype bundled with Qt.
3286 * -system-freetype .... Use libfreetype from the operating system.
3287 See http://www.freetype.org/
3289 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3290 default ($CFG_QCONFIG).
3292 -no-opengl .......... Do not support OpenGL.
3293 -opengl <api> ....... Enable OpenGL support
3294 With no parameter, this will attempt to auto-detect
3295 OpenGL ES 2, or regular desktop OpenGL.
3296 Use es2 for <api> to override auto-detection.
3298 $GBN -no-glib ........... Do not compile Glib support.
3299 $GBY -glib .............. Compile Glib support.
3302 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3305 $X2N -no-xinput2......... Do not compile XInput2 support.
3306 $X2Y -xinput2............ Compile XInput2 support.
3312 if [ "$XPLATFORM_QNX" = "yes" ]; then
3315 -no-slog2 .......... Do not compile with slog2 support.
3316 -slog2 ............. Compile with slog2 support.
3322 if [ "$BUILD_ON_MAC" = "yes" ]; then
3327 -Fstring ........... Add an explicit framework path.
3328 -fw string ......... Add an explicit framework.
3330 * -framework ......... Build Qt as a series of frameworks and
3331 link tools against those frameworks.
3332 -no-framework ...... Do not build Qt as a series of frameworks.
3334 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3335 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3337 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3338 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3339 QT_ENABLE_HARFBUZZ environment variable.
3344 [ "x$ERROR" = "xyes" ] && exit 1
3349 # -----------------------------------------------------------------------------
3350 # LICENSING, INTERACTIVE PART
3351 # -----------------------------------------------------------------------------
3354 echo "This is the Qt ${EditionString} Edition."
3357 if [ "$Edition" = "OpenSource" ]; then
3359 echo "You are licensed to use this software under the terms of"
3360 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3361 if [ -f "$relpath/LICENSE.GPL3" ]; then
3362 echo "You are also licensed to use this software under the terms of"
3363 echo "the GNU General Public License (GPL) versions 3."
3369 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3370 echo "You have already accepted the terms of the $LicenseType license."
3373 if [ -f "$relpath/LICENSE.GPL3" ]; then
3374 echo "Type '3' to view the GNU General Public License version 3."
3376 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3377 echo "Type 'yes' to accept this license offer."
3378 echo "Type 'no' to decline this license offer."
3380 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3384 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3386 elif [ "$acceptance" = "no" ]; then
3387 echo "You are not licensed to use this software."
3390 elif [ "$acceptance" = "3" ]; then
3391 more "$relpath/LICENSE.GPL3"
3392 elif [ "$acceptance" = "L" ]; then
3393 more "$relpath/LICENSE.LGPL"
3396 elif [ "$Edition" = "Preview" ]; then
3397 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3400 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3401 echo "You have already accepted the terms of the $LicenseType license."
3404 echo "You are licensed to use this software under the terms of"
3405 echo "the $TheLicense"
3407 echo "Type '?' to read the Preview License."
3408 echo "Type 'yes' to accept this license offer."
3409 echo "Type 'no' to decline this license offer."
3411 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3415 if [ "$acceptance" = "yes" ]; then
3417 elif [ "$acceptance" = "no" ] ;then
3418 echo "You are not licensed to use this software."
3421 elif [ "$acceptance" = "?" ]; then
3422 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3425 elif [ "$Edition" != "OpenSource" ]; then
3426 if [ -n "$ExpiryDate" ]; then
3427 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3428 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3429 Today=`date +%Y%m%d`
3430 if [ "$Today" -gt "$ExpiryDate" ]; then
3431 case "$LicenseType" in
3432 Commercial|Academic|Educational)
3434 echo "WARNING WARNING WARNING WARNING"
3436 echo " Your support and upgrade period has expired."
3438 echo " You may continue to use your last licensed release"
3439 echo " of Qt under the terms of your existing license"
3440 echo " agreement. But you are not entitled to technical"
3441 echo " support, nor are you entitled to use any more recent"
3442 echo " Qt releases."
3444 echo " Please use the contact form at http://qt.digia.com/contact-us"
3445 echo " to renew your support and upgrades for this license."
3447 echo "WARNING WARNING WARNING WARNING"
3453 echo "NOTICE NOTICE NOTICE NOTICE"
3455 echo " Your Evaluation license has expired."
3457 echo " You are no longer licensed to use this software. Please"
3458 echo " use the contact form at http://qt.digia.com/contact-us to"
3459 echo " purchase license, or install the Qt Open Source Edition"
3460 echo " if you intend to develop free software."
3462 echo "NOTICE NOTICE NOTICE NOTICE"
3469 TheLicense=`head -n 1 "$outpath/LICENSE"`
3471 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3472 echo "You have already accepted the terms of the $TheLicense."
3475 echo "You are licensed to use this software under the terms of"
3476 echo "the $TheLicense."
3478 echo "Type '?' to view the $TheLicense."
3479 echo "Type 'yes' to accept this license offer."
3480 echo "Type 'no' to decline this license offer."
3482 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3486 if [ "$acceptance" = "yes" ]; then
3488 elif [ "$acceptance" = "no" ]; then
3489 echo "You are not licensed to use this software."
3492 else [ "$acceptance" = "?" ]
3493 more "$outpath/LICENSE"
3498 # this should be moved somewhere else
3501 AIX_VERSION=`uname -v`
3502 if [ "$AIX_VERSION" -lt "5" ]; then
3503 QMakeVar add QMAKE_LIBS_X11 -lbind
3510 #-------------------------------------------------------------------------------
3511 # generate qconfig.cpp
3512 #-------------------------------------------------------------------------------
3513 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3515 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3517 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3518 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3520 /* Installation date */
3521 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3523 /* Installation Info */
3524 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3525 "qt_prfxpath=$QT_INSTALL_PREFIX",
3526 "qt_docspath=$QT_INSTALL_DOCS",
3527 "qt_hdrspath=$QT_INSTALL_HEADERS",
3528 "qt_libspath=$QT_INSTALL_LIBS",
3529 "qt_binspath=$QT_INSTALL_BINS",
3530 "qt_plugpath=$QT_INSTALL_PLUGINS",
3531 "qt_impspath=$QT_INSTALL_IMPORTS",
3532 "qt_datapath=$QT_INSTALL_DATA",
3533 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3534 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3535 "qt_tstspath=$QT_INSTALL_TESTS",
3536 #ifdef QT_BUILD_QMAKE
3537 "qt_ssrtpath=$CFG_SYSROOT",
3538 "qt_hpfxpath=$QT_HOST_PREFIX",
3539 "qt_hbinpath=$QT_HOST_BINS",
3540 "qt_hdatpath=$QT_HOST_DATA",
3543 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3546 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3548 /* strlen( "qt_lcnsxxxx" ) == 12 */
3549 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3550 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3552 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3555 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3556 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3557 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3559 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3560 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3561 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3564 # -----------------------------------------------------------------------------
3565 if [ "$LicenseType" = "Evaluation" ]; then
3566 EVALKEY=qt_qevalkey=$LicenseKeyExt
3567 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3568 EVALKEY=qt_qevalkey=
3571 if [ -n "$EVALKEY" ]; then
3572 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3573 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3574 /* Evaluation license key */
3575 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3577 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3581 # -----------------------------------------------------------------------------
3583 # -----------------------------------------------------------------------------
3586 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3587 "$outpath/bin/syncqt" -minimal -module QtCore "$relpath" || exit 1
3590 # $1: input variable name (awk regexp)
3591 # $2: optional output variable name
3592 # $3: optional value transformation (sed command)
3593 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3594 # is where the resulting variable is written to
3595 setBootstrapVariable()
3597 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3601 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3602 echo "Creating qmake. Please wait..."
3604 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3605 rm -rf mkspecs/default mkspecs/default-host
3606 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3607 ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3608 mkdir -p "$outpath/qmake" || exit
3610 for mkfile in GNUmakefile Makefile; do
3613 in_mkfile="${mkfile}.in"
3614 if [ "$mkfile" = "Makefile" ]; then
3615 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3616 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3618 in_mkfile="${mkfile}.unix"
3620 in_mkfile="$relpath/qmake/$in_mkfile"
3621 mkfile="$outpath/qmake/$mkfile"
3622 if [ -f "$mkfile" ]; then
3623 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3626 [ -f "$in_mkfile" ] || continue
3628 echo "########################################################################" > "$mkfile"
3629 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3630 echo "########################################################################" >> "$mkfile"
3633 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3634 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3635 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3637 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3638 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3641 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3642 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3643 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3644 setBootstrapVariable QMAKE_CFLAGS
3645 setBootstrapVariable QMAKE_CXXFLAGS
3646 setBootstrapVariable QMAKE_LFLAGS
3648 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3649 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3650 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3652 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3653 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3654 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3655 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3656 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3657 elif [ "$CFG_DEBUG" = "yes" ]; then
3658 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3659 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3660 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3661 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3664 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3665 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3666 for rpath in $RPATH_FLAGS; do
3667 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3670 if [ "$BUILD_ON_MAC" = "yes" ]; then
3671 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3672 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3673 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3674 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3675 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3676 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3677 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3678 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3679 if [ '!' -z "$CFG_SDK" ]; then
3680 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3681 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3682 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3683 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3684 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3687 if [ '!' -z "$D_FLAGS" ]; then
3688 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3690 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3691 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3692 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3693 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3695 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3696 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3697 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3698 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3699 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3700 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3701 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3702 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3703 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3704 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3706 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3707 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3708 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3709 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3714 (cd "$outpath/qmake"; "$MAKE") || exit 2
3717 #-------------------------------------------------------------------------------
3718 # create a qt.conf for the Qt build tree itself
3719 #-------------------------------------------------------------------------------
3721 QTCONFFILE="$outpath/bin/qt.conf"
3722 cat > "$QTCONFFILE" <<EOF
3727 #-------------------------------------------------------------------------------
3728 # write out device config before we run the test.
3729 #-------------------------------------------------------------------------------
3730 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3731 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3732 rm -f "$DEVICE_VARS_FILE"
3734 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3735 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3738 #-------------------------------------------------------------------------------
3740 #-------------------------------------------------------------------------------
3741 if [ -z "$PKG_CONFIG" ]; then
3742 # See if PKG_CONFIG is set in the mkspec:
3743 PKG_CONFIG="`"$outpath/bin/qmake" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" /dev/null 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`"
3745 if [ -z "$PKG_CONFIG" ]; then
3746 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3749 if [ "$CFG_PKGCONFIG" = "no" ]; then
3751 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3753 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3754 echo >&2 "a correctly setup pkg-config environment!"
3756 elif [ -n "$PKG_CONFIG" ]; then
3757 # found a pkg-config
3758 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3759 # when xcompiling, check environment to see if it's actually usable
3760 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3761 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3762 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3763 if [ -n "$GCC_MACHINE_DUMP" ]; then
3764 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3766 export PKG_CONFIG_LIBDIR
3767 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3768 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3769 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3770 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3771 echo >&2 "Set this variable to the directory that contains target .pc files"
3772 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3773 echo >&2 "use -force-pkg-config to override this test."
3777 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3780 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3781 if [ -n "$CFG_SYSROOT" ]; then
3782 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3783 export PKG_CONFIG_SYSROOT_DIR
3784 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3785 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3786 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3787 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3788 echo >&2 "or use -force-pkg-config to override this test."
3792 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3796 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3797 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3801 if [ -z "$PKG_CONFIG" ]; then
3802 QT_CONFIG="$QT_CONFIG no-pkg-config"
3805 #-------------------------------------------------------------------------------
3806 # tests that need qmake
3807 #-------------------------------------------------------------------------------
3809 # parameters: path, name, extra args
3812 path=config.tests/$1
3815 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_SDK_FLAG "$@"
3818 #-------------------------------------------------------------------------------
3819 # determine the target and host architectures
3820 #-------------------------------------------------------------------------------
3822 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3823 OUTFILE=$outpath/arch.result
3824 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_SDK_FLAG
3825 if [ $? -eq 0 ]; then
3826 eval `cat "$OUTFILE"`
3829 echo "Could not determine the target architecture!"
3830 echo "Turn on verbose messaging (-v) to see the final report."
3832 rm -f "$OUTFILE" 2>/dev/null
3833 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3835 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3836 # Do the same test again, using the host compiler
3837 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_SDK_FLAG
3838 if [ $? -eq 0 ]; then
3839 eval `cat "$OUTFILE"`
3842 echo "Could not determine the host architecture!"
3843 echo "Turn on verbose messaging (-v) to see the final report."
3845 rm -f "$OUTFILE" 2>/dev/null
3846 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3848 # not cross compiling, host == target
3849 CFG_HOST_ARCH="$CFG_ARCH"
3850 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3854 if [ "$OPT_VERBOSE" = "yes" ]; then
3855 echo "System architecture: '$CFG_ARCH'"
3856 echo "Host architecture: '$CFG_HOST_ARCH'"
3859 #-------------------------------------------------------------------------------
3860 # functionality tests
3861 #-------------------------------------------------------------------------------
3863 # Detect C++11 support
3864 if [ "$CFG_CXX11" != "no" ]; then
3865 if compileTest common/c++11 "C++11"; then
3867 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3868 echo "C++11 support cannot be enabled due to functionality tests!"
3869 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3870 echo " If you believe this message is in error you may use the continue"
3871 echo " switch (-continue) to $0 to continue."
3878 # detect availability of float math.h functions
3879 if compileTest unix/floatmath "floatmath"; then
3880 CFG_USE_FLOATMATH=yes
3882 CFG_USE_FLOATMATH=no
3885 # detect sse2 support
3886 if [ "${CFG_SSE2}" = "auto" ]; then
3887 if compileTest common/sse2 "sse2"; then
3894 # detect sse3 support
3895 if [ "${CFG_SSE3}" = "auto" ]; then
3896 if compileTest common/sse3 "sse3"; then
3903 # detect ssse3 support
3904 if [ "${CFG_SSSE3}" = "auto" ]; then
3905 if compileTest common/ssse3 "ssse3"; then
3912 # detect sse4.1 support
3913 if [ "${CFG_SSE4_1}" = "auto" ]; then
3914 if compileTest common/sse4_1 "sse4_1"; then
3921 # detect sse4.2 support
3922 if [ "${CFG_SSE4_2}" = "auto" ]; then
3923 if compileTest common/sse4_2 "sse4_2"; then
3930 # detect avx support
3931 if [ "${CFG_AVX}" = "auto" ]; then
3932 if compileTest common/avx "avx"; then
3933 case "$XQMAKESPEC" in
3935 # Some clang versions produce internal compiler errors compiling Qt AVX code
3936 case `$TEST_COMPILER --version` in
3937 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3939 if [ "$OPT_VERBOSE" = "yes" ]; then
3940 echo 'AVX support disabled for blacklisted clang compiler'
3957 # detect avx2 support
3958 if [ "${CFG_AVX}" = "no" ]; then
3961 if [ "${CFG_AVX2}" = "auto" ]; then
3962 if compileTest common/avx2 "avx2"; then
3969 # check iWMMXt support
3970 if [ "$CFG_IWMMXT" = "yes" ]; then
3971 compileTest unix/iwmmxt "iwmmxt"
3972 if [ $? != "0" ]; then
3973 echo "The iWMMXt functionality test failed!"
3974 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3979 # detect neon support
3980 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3981 if compileTest unix/neon "neon"; then
3986 elif [ "$CFG_ARCH" != "arm" ]; then
3990 # detect mips_dsp support
3991 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
3992 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
3997 elif [ "$CFG_ARCH" != "mips" ]; then
4001 # detect mips_dspr2 support
4002 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
4003 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
4008 elif [ "$CFG_ARCH" != "mips" ]; then
4012 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
4015 if [ "$CFG_ZLIB" = "no" ]; then
4016 # Note: Qt no longer support builds without zlib
4017 # So we force a "no" to be "auto" here.
4018 # If you REALLY really need no zlib support, you can still disable
4019 # it by doing the following:
4020 # add "no-zlib" to mkspecs/qconfig.pri
4021 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4023 # There's no guarantee that Qt will build under those conditions
4029 if [ "$XPLATFORM_QNX" = "yes" ]; then
4030 if [ "$CFG_SLOG2" != "no" ]; then
4031 if compileTest unix/slog2 "slog2"; then
4033 QMAKE_CONFIG="$QMAKE_CONFIG slog2"
4040 if [ "$CFG_ZLIB" = "auto" ]; then
4041 if compileTest unix/zlib "zlib"; then
4048 if [ "$CFG_LARGEFILE" = "auto" ]; then
4049 #Large files should be enabled for all Linux systems
4053 if [ "$CFG_GUI" = "no" ]; then
4054 QPA_PLATFORM_GUARD=no
4057 # detect how jpeg should be built
4058 if [ "$CFG_JPEG" = "auto" ]; then
4059 if [ "$CFG_SHARED" = "yes" ]; then
4066 if [ "$CFG_LIBJPEG" = "auto" ]; then
4067 if compileTest unix/libjpeg "libjpeg"; then
4074 # detect how gif should be built
4075 if [ "$CFG_GIF" = "auto" ]; then
4076 if [ "$CFG_SHARED" = "yes" ]; then
4084 if [ "$CFG_LIBPNG" = "auto" ]; then
4085 if compileTest unix/libpng "libpng"; then
4092 if [ "$CFG_EGLFS" = "yes" ]; then
4093 if [ "$CFG_EGL" = "no" ]; then
4094 echo "The EGLFS plugin requires EGL support and cannot be built"
4097 if [ "$CFG_OPENGL" != "es2" ]; then
4098 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4105 if [ "$CFG_KMS" = "yes" ]; then
4106 if [ "$CFG_EGL" = "no" ]; then
4107 echo "The KMS plugin requires EGL support and cannot be built"
4110 if [ "$CFG_OPENGL" != "es2" ]; then
4111 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4116 # auto-detect SQL-modules support
4117 for _SQLDR in $CFG_SQL_AVAILABLE; do
4120 if [ "$CFG_SQL_mysql" != "no" ]; then
4121 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4122 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4123 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4124 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4125 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4126 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4127 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4129 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4130 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4131 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4132 echo " You need MySql 4 or higher."
4133 echo " If you believe this message is in error you may use the continue"
4134 echo " switch (-continue) to $0 to continue."
4139 QT_LFLAGS_MYSQL_R=""
4143 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4144 QMakeVar add CONFIG use_libmysqlclient_r
4145 if [ "$CFG_SQL_mysql" = "auto" ]; then
4146 CFG_SQL_mysql=plugin
4148 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4149 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4150 if [ "$CFG_SQL_mysql" = "auto" ]; then
4151 CFG_SQL_mysql=plugin
4154 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4155 echo "MySQL support cannot be enabled due to functionality tests!"
4156 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4157 echo " If you believe this message is in error you may use the continue"
4158 echo " switch (-continue) to $0 to continue."
4163 QT_LFLAGS_MYSQL_R=""
4171 if [ "$CFG_SQL_psql" != "no" ]; then
4172 # Be careful not to use native pg_config when cross building.
4173 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4174 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4175 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4177 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4178 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4179 # But, respect PSQL_LIBS if set
4180 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4181 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4182 if [ "$CFG_SQL_psql" = "auto" ]; then
4186 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4187 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4188 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4189 echo " If you believe this message is in error you may use the continue"
4190 echo " switch (-continue) to $0 to continue."
4201 if [ "$CFG_SQL_odbc" != "no" ]; then
4202 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4203 if [ "$CFG_SQL_odbc" = "auto" ]; then
4207 if compileTest unix/iodbc "iODBC"; then
4208 QT_LFLAGS_ODBC="-liodbc"
4209 if [ "$CFG_SQL_odbc" = "auto" ]; then
4213 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4214 echo "ODBC support cannot be enabled due to functionality tests!"
4215 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4216 echo " If you believe this message is in error you may use the continue"
4217 echo " switch (-continue) to $0 to continue."
4227 if [ "$CFG_SQL_oci" != "no" ]; then
4228 if compileTest unix/oci "OCI"; then
4229 if [ "$CFG_SQL_oci" = "auto" ]; then
4233 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4234 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4235 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4236 echo " If you believe this message is in error you may use the continue"
4237 echo " switch (-continue) to $0 to continue."
4246 if [ "$CFG_SQL_tds" != "no" ]; then
4247 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4248 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4249 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4250 if [ "$CFG_SQL_tds" = "auto" ]; then
4254 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4255 echo "TDS support cannot be enabled due to functionality tests!"
4256 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4257 echo " If you believe this message is in error you may use the continue"
4258 echo " switch (-continue) to $0 to continue."
4267 if [ "$CFG_SQL_db2" != "no" ]; then
4268 if compileTest unix/db2 "DB2"; then
4269 if [ "$CFG_SQL_db2" = "auto" ]; then
4273 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4274 echo "ODBC support cannot be enabled due to functionality tests!"
4275 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4276 echo " If you believe this message is in error you may use the continue"
4277 echo " switch (-continue) to $0 to continue."
4286 if [ "$CFG_SQL_ibase" != "no" ]; then
4287 if compileTest unix/ibase "InterBase"; then
4288 if [ "$CFG_SQL_ibase" = "auto" ]; then
4289 CFG_SQL_ibase=plugin
4292 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4293 echo "InterBase support cannot be enabled due to functionality tests!"
4294 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4295 echo " If you believe this message is in error you may use the continue"
4296 echo " switch (-continue) to $0 to continue."
4305 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4306 if compileTest unix/sqlite2 "SQLite2"; then
4307 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4308 CFG_SQL_sqlite2=plugin
4311 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4312 echo "SQLite2 support cannot be enabled due to functionality tests!"
4313 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4314 echo " If you believe this message is in error you may use the continue"
4315 echo " switch (-continue) to $0 to continue."
4324 if [ "$CFG_SQL_sqlite" != "no" ]; then
4325 SQLITE_AUTODETECT_FAILED="no"
4326 if [ "$CFG_SQLITE" = "system" ]; then
4327 if [ -n "$PKG_CONFIG" ]; then
4328 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4329 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4332 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4334 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4335 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4336 CFG_SQL_sqlite=plugin
4338 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4340 SQLITE_AUTODETECT_FAILED="yes"
4343 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4344 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4345 CFG_SQL_sqlite=plugin
4348 SQLITE_AUTODETECT_FAILED="yes"
4352 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4353 echo "SQLite support cannot be enabled due to functionality tests!"
4354 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4355 echo " If you believe this message is in error you may use the continue"
4356 echo " switch (-continue) to $0 to continue."
4362 if [ "$OPT_VERBOSE" = "yes" ]; then
4363 echo "unknown SQL driver: $_SQLDR"
4369 # auto-detect NIS support
4370 if [ "$CFG_NIS" != "no" ]; then
4371 if compileTest unix/nis "NIS"; then
4374 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4375 echo "NIS support cannot be enabled due to functionality tests!"
4376 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4377 echo " If you believe this message is in error you may use the continue"
4378 echo " switch (-continue) to $0 to continue."
4386 # auto-detect CUPS support
4387 if [ "$CFG_CUPS" != "no" ]; then
4388 if compileTest unix/cups "Cups"; then
4391 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4392 echo "Cups support cannot be enabled due to functionality tests!"
4393 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4394 echo " If you believe this message is in error you may use the continue"
4395 echo " switch (-continue) to $0 to continue."
4403 # auto-detect iconv(3) support
4404 if [ "$CFG_ICONV" != "no" ]; then
4405 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4407 elif compileTest unix/iconv "POSIX iconv"; then
4409 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4411 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4414 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4415 echo "Iconv support cannot be enabled due to functionality tests!"
4416 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4417 echo " If you believe this message is in error you may use the continue"
4418 echo " switch (-continue) to $0 to continue."
4426 # auto-detect libdbus-1 support
4427 if [ "$CFG_DBUS" != "no" ]; then
4428 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4429 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4430 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4432 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4433 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4434 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4435 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4437 if [ "$CFG_DBUS" = "auto" ]; then
4439 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4440 # CFG_DBUS is "yes" or "linked" here
4442 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4443 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4444 echo " If you believe this message is in error you may use the continue"
4445 echo " switch (-continue) to $0 to continue."
4451 # auto-detect Glib support
4452 if [ "$CFG_GLIB" != "no" ]; then
4453 if [ -n "$PKG_CONFIG" ]; then
4454 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4455 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4457 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4459 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4460 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4462 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4463 echo "Glib support cannot be enabled due to functionality tests!"
4464 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4465 echo " If you believe this message is in error you may use the continue"
4466 echo " switch (-continue) to $0 to continue."
4474 # auto-detect GTK style support
4475 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4476 if [ -n "$PKG_CONFIG" ]; then
4477 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.18 atk 2>/dev/null`
4478 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4480 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4482 QT_CONFIG="$QT_CONFIG gtkstyle"
4483 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4484 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4486 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4487 echo "Gtk theme support cannot be enabled due to functionality tests!"
4488 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4489 echo " If you believe this message is in error you may use the continue"
4490 echo " switch (-continue) to $0 to continue."
4496 elif [ "$CFG_GLIB" = "no" ]; then
4501 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4502 if [ -n "$PKG_CONFIG" ]; then
4503 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4504 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4506 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4508 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4509 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4511 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4512 echo "Gstreamer support cannot be enabled due to functionality tests!"
4513 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4514 echo " If you believe this message is in error you may use the continue"
4515 echo " switch (-continue) to $0 to continue."
4521 elif [ "$CFG_GLIB" = "no" ]; then
4525 # auto-detect libicu support
4526 if [ "$CFG_ICU" != "no" ]; then
4527 if compileTest unix/icu "ICU"; then
4528 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4530 if [ "$CFG_ICU" = "auto" ]; then
4532 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4535 echo "The ICU library support cannot be enabled."
4536 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4537 echo " If you believe this message is in error you may use the continue"
4538 echo " switch (-continue) to $0 to continue."
4544 # Auto-detect PulseAudio support
4545 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4546 if [ -n "$PKG_CONFIG" ]; then
4547 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4548 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4550 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4552 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4553 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4555 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4556 echo "PulseAudio support cannot be enabled due to functionality tests!"
4557 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4558 echo " If you believe this message is in error you may use the continue"
4559 echo " switch (-continue) to $0 to continue."
4568 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4569 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4570 if [ "$CFG_GUI" = "no" ]; then
4571 if [ "$CFG_OPENGL" = "auto" ]; then
4574 if [ "$CFG_OPENGL" != "no" ]; then
4575 echo "OpenGL enabled, but GUI disabled."
4576 echo " You might need to either enable the GUI or disable OpenGL"
4580 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4581 if compileTest x11/opengl "OpenGL"; then
4583 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4586 if [ "$CFG_OPENGL" = "yes" ]; then
4587 echo "All the OpenGL functionality tests failed!"
4588 echo " You might need to modify the include and library search paths by editing"
4589 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4590 echo " ${XQMAKESPEC}."
4597 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4598 if [ "$CFG_OPENGL" = "desktop" ]; then
4599 compileTest x11/glxfbconfig "OpenGL"
4600 if [ $? != "0" ]; then
4601 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4608 elif [ "$CFG_OPENGL" = "es2" ]; then
4610 compileTest unix/opengles2 "OpenGL ES 2.x"
4611 if [ $? != "0" ]; then
4612 echo "The OpenGL ES 2.0 functionality test failed!"
4613 echo " You might need to modify the include and library search paths by editing"
4614 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4615 echo " ${XQMAKESPEC}."
4618 elif [ "$CFG_OPENGL" = "desktop" ]; then
4619 # Desktop OpenGL support
4620 compileTest x11/opengl "OpenGL"
4621 if [ $? != "0" ]; then
4622 echo "The OpenGL functionality test failed!"
4623 echo " You might need to modify the include and library search paths by editing"
4624 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4625 echo " ${XQMAKESPEC}."
4630 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4631 compileTest x11/glxfbconfig "OpenGL"
4632 if [ $? != "0" ]; then
4633 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4640 fi # X11/MINGW OpenGL
4642 if [ "$BUILD_ON_MAC" = "yes" ]; then
4643 if [ "$CFG_COREWLAN" = "auto" ]; then
4644 if compileTest mac/corewlan "CoreWlan"; then
4652 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4653 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4654 if compileTest unix/opengldesktop "OpenGL"; then
4656 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4659 if [ "$CFG_OPENGL" = "yes" ]; then
4660 echo "All the OpenGL functionality tests failed!"
4661 echo " You might need to modify the include and library search paths by editing"
4662 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4663 echo " ${XQMAKESPEC}."
4668 elif [ "$CFG_OPENGL" = "es2" ]; then
4670 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4671 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4672 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4673 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4674 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4675 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4676 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4677 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4680 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4681 if [ $? != "0" ]; then
4682 echo "The OpenGL ES 2.0 functionality test failed!"
4683 echo " You might need to modify the include and library search paths by editing"
4684 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4685 echo " ${XQMAKESPEC}."
4688 elif [ "$CFG_OPENGL" = "desktop" ]; then
4689 # Desktop OpenGL support
4690 compileTest unix/opengldesktop "OpenGL"
4691 if [ $? != "0" ]; then
4692 echo "The OpenGL functionality test failed!"
4693 echo " You might need to modify the include and library search paths by editing"
4694 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4695 echo " ${XQMAKESPEC}."
4700 # auto-detect FontConfig support
4701 if [ "$CFG_FONTCONFIG" != "no" ]; then
4702 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4703 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4704 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4706 QT_CFLAGS_FONTCONFIG=
4707 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4709 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4710 QT_CONFIG="$QT_CONFIG fontconfig"
4711 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4712 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4714 CFG_LIBFREETYPE=system
4721 # Save these for a check later
4722 ORIG_CFG_XCB="$CFG_XCB"
4723 ORIG_CFG_EGLFS="$CFG_EGLFS"
4724 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4725 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4726 ORIG_CFG_KMS="$CFG_KMS"
4728 if [ "$CFG_LIBUDEV" != "no" ]; then
4729 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4730 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4731 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4732 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4733 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4735 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4737 QT_CONFIG="$QT_CONFIG libudev"
4738 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4739 echo "The libudev functionality test failed!"
4745 if [ "$CFG_LIBUDEV" = "no" ]; then
4746 QMakeVar add DEFINES QT_NO_LIBUDEV
4749 if [ "$CFG_EVDEV" != "no" ]; then
4750 if compileTest unix/evdev "evdev"; then
4752 QT_CONFIG="$QT_CONFIG evdev"
4753 elif [ "$CFG_EVDEV" = "yes" ]; then
4754 echo "The evdev functionality test failed!"
4760 if [ "$CFG_EVDEV" = "no" ]; then
4761 QMakeVar add DEFINES QT_NO_EVDEV
4764 # Check we actually have X11 :-)
4765 if compileTest x11/xlib "XLib"; then
4766 QT_CONFIG="$QT_CONFIG xlib"
4769 # auto-detect Xrender support
4770 if [ "$CFG_XRENDER" != "no" ]; then
4771 if compileTest x11/xrender "Xrender"; then
4773 QT_CONFIG="$QT_CONFIG xrender"
4775 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4776 echo "Xrender support cannot be enabled due to functionality tests!"
4777 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4778 echo " If you believe this message is in error you may use the continue"
4779 echo " switch (-continue) to $0 to continue."
4787 if [ "$CFG_XCB" != "no" ]; then
4788 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4789 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4790 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4792 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4794 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4795 QT_CONFIG="$QT_CONFIG xcb-render"
4798 if compileTest qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4800 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4803 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4804 QT_CONFIG="$QT_CONFIG xcb-xlib"
4807 # auto-detect XInput2 support. Needed by xcb too.
4808 if [ "$CFG_XINPUT2" != "no" ]; then
4809 if compileTest x11/xinput2 "XInput2"; then
4813 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4814 echo "XInput2 support cannot be enabled due to functionality tests!"
4815 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4816 echo " If you believe this message is in error you may use the continue"
4817 echo " switch (-continue) to $0 to continue."
4825 if [ "$CFG_XCB" = "yes" ]; then
4826 echo "The XCB test failed!"
4827 echo " You might need to install dependency packages."
4828 echo " See src/plugins/platforms/xcb/README."
4834 if [ "$CFG_XCB" = "no" ]; then
4835 QMakeVar add DEFINES QT_NO_XCB
4838 if [ "$CFG_DIRECTFB" != "no" ]; then
4839 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4840 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4841 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4842 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4844 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4845 echo " DirectFB support cannot be enabled due to functionality tests!"
4846 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4847 echo " If you believe this message is in error you may use the continue"
4848 echo " switch (-continue) to $0 to continue."
4858 if [ "$CFG_LINUXFB" != "no" ]; then
4859 if compileTest qpa/linuxfb "LinuxFB"; then
4861 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4862 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4863 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4864 echo " If you believe this message is in error you may use the continue"
4865 echo " switch (-continue) to $0 to continue."
4872 if [ "$CFG_KMS" != "no" ]; then
4873 if compileTest qpa/kms "KMS"; then
4875 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4876 echo " KMS support cannot be enabled due to functionality tests!"
4877 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4878 echo " If you believe this message is in error you may use the continue"
4879 echo " switch (-continue) to $0 to continue."
4886 # Detect libxkbcommon
4887 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4888 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4889 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4890 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4891 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4893 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4897 if [ "$CFG_EGL" != "no" ]; then
4898 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4899 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4900 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4901 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4902 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4903 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4904 fi # detect EGL support
4905 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4907 elif [ "$CFG_EGL" = "yes" ]; then
4908 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4909 echo " You might need to modify the include and library search paths by editing"
4910 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4915 elif [ "$CFG_OPENGL" = "desktop" ]; then
4916 if [ "$CFG_EGL" = "yes" ]; then
4917 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4918 echo "Either disable EGL support or enable OpenGL ES support."
4924 if [ "$CFG_EGLFS" != "no" ]; then
4925 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4926 CFG_EGLFS="$CFG_EGL"
4932 if [ "$CFG_KMS" = "yes" ]; then
4933 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4940 # Detect accessibility support
4941 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4942 if [ "$CFG_XCB" = "no" ]; then
4943 CFG_ACCESSIBILITY=yes
4945 # linux/xcb accessibility needs dbus and atspi-2
4946 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "atspi-2" 2>/dev/null; then
4947 CFG_ACCESSIBILITY=yes
4949 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4950 CFG_ACCESSIBILITY=no
4952 echo "Accessibility support needs pkg-config and libatspi2."
4959 # Determine the default QPA platform
4960 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4962 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4963 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4964 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4965 QT_QPA_DEFAULT_PLATFORM="windows"
4966 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4967 QT_QPA_DEFAULT_PLATFORM="cocoa"
4968 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4969 QT_QPA_DEFAULT_PLATFORM="qnx"
4971 QT_QPA_DEFAULT_PLATFORM="xcb"
4976 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4977 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4978 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4979 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4981 if [ "$CFG_DIRECTFB" = "yes" ]; then
4982 QT_CONFIG="$QT_CONFIG directfb"
4983 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4984 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4986 if [ "$CFG_LINUXFB" = "yes" ]; then
4987 QT_CONFIG="$QT_CONFIG linuxfb"
4989 if [ "$CFG_KMS" = "yes" ]; then
4990 QT_CONFIG="$QT_CONFIG kms"
4993 if [ "$BUILD_ON_MAC" = "yes" ]; then
4994 if compileTest mac/coreservices "CoreServices"; then
4995 QT_CONFIG="$QT_CONFIG coreservices"
4997 QMakeVar add DEFINES QT_NO_CORESERVICES
5001 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
5002 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
5003 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
5004 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
5005 echo "No QPA platform plugin enabled!"
5006 echo " If you really want to build without a QPA platform plugin you must pass"
5007 echo " -no-qpa-platform-guard to configure. Doing this will"
5008 echo " produce a Qt that can not run GUI applications."
5009 echo " The dependencies needed for xcb to build are listed in"
5010 echo " src/plugins/platforms/xcb/README"
5017 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
5018 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
5019 if compileTest unix/freetype "FreeType"; then
5020 CFG_LIBFREETYPE=system
5026 if ! compileTest unix/stl "STL" &&
5027 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5028 echo "STL functionality check failed! Cannot build Qt with this STL library."
5029 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5034 # detect POSIX clock_gettime()
5035 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5036 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
5037 CFG_CLOCK_GETTIME=yes
5039 CFG_CLOCK_GETTIME=no
5043 # detect POSIX monotonic clocks
5044 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5045 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5046 CFG_CLOCK_MONOTONIC=yes
5048 CFG_CLOCK_MONOTONIC=no
5050 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5051 CFG_CLOCK_MONOTONIC=no
5055 if [ "$CFG_MREMAP" = "auto" ]; then
5056 if compileTest unix/mremap "mremap"; then
5063 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5064 if [ "$CFG_GETADDRINFO" != "no" ]; then
5065 if compileTest unix/getaddrinfo "getaddrinfo"; then
5068 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5069 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5070 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5071 echo " If you believe this message is in error you may use the continue"
5072 echo " switch (-continue) to $0 to continue."
5080 # find if the platform provides inotify
5081 if [ "$CFG_INOTIFY" != "no" ]; then
5082 if compileTest unix/inotify "inotify"; then
5085 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5086 echo "inotify support cannot be enabled due to functionality tests!"
5087 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5088 echo " If you believe this message is in error you may use the continue"
5089 echo " switch (-continue) to $0 to continue."
5097 # find if the platform provides if_nametoindex (ipv6 interface name support)
5098 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5099 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5102 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5103 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5104 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5105 echo " If you believe this message is in error you may use the continue"
5106 echo " switch (-continue) to $0 to continue."
5114 # find if the platform provides getifaddrs (network interface enumeration)
5115 if [ "$CFG_GETIFADDRS" != "no" ]; then
5116 if compileTest unix/getifaddrs "getifaddrs"; then
5119 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5120 echo "getifaddrs support cannot be enabled due to functionality tests!"
5121 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5122 echo " If you believe this message is in error you may use the continue"
5123 echo " switch (-continue) to $0 to continue."
5132 if [ "$CFG_OPENSSL" != "no" ]; then
5133 if compileTest unix/openssl "OpenSSL"; then
5134 if [ "$CFG_OPENSSL" = "auto" ]; then
5138 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5139 echo "OpenSSL support cannot be enabled due to functionality tests!"
5140 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5141 echo " If you believe this message is in error you may use the continue"
5142 echo " switch (-continue) to $0 to continue."
5151 if [ "$CFG_PCRE" != "qt" ]; then
5152 if compileTest unix/pcre "PCRE"; then
5155 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5156 echo "PCRE support cannot be enabled due to functionality tests!"
5157 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5158 echo " If you believe this message is in error you may use the continue"
5159 echo " switch (-continue) to $0 to continue."
5167 # detect OpenVG support
5168 if [ "$CFG_OPENVG" != "no" ]; then
5169 if compileTest unix/openvg "OpenVG"; then
5170 if [ "$CFG_OPENVG" = "auto" ]; then
5173 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5174 if [ "$CFG_OPENVG" = "auto" ]; then
5177 CFG_OPENVG_ON_OPENGL=yes
5178 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5179 if [ "$CFG_OPENVG" = "auto" ]; then
5182 CFG_OPENVG_LC_INCLUDES=yes
5183 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5184 if [ "$CFG_OPENVG" = "auto" ]; then
5187 CFG_OPENVG_LC_INCLUDES=yes
5188 CFG_OPENVG_ON_OPENGL=yes
5190 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5191 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5192 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5193 echo " If you believe this message is in error you may use the continue"
5194 echo " switch (-continue) to $0 to continue."
5200 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5201 CFG_OPENVG_SHIVA=yes
5205 if [ "$CFG_ALSA" = "auto" ]; then
5206 if compileTest unix/alsa "alsa"; then
5213 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5214 if [ "$CFG_ARCH" = "arm" ]; then
5215 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5216 if [ $? != "0" ]; then
5217 CFG_JAVASCRIPTCORE_JIT=no
5220 case "$XPLATFORM" in
5222 CFG_JAVASCRIPTCORE_JIT=no
5228 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5229 QMakeVar set JAVASCRIPTCORE_JIT yes
5230 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5231 QMakeVar set JAVASCRIPTCORE_JIT no
5234 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5235 CFG_AUDIO_BACKEND=yes
5238 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5239 echo "Warning: largefile support cannot be disabled for win32."
5243 #-------------------------------------------------------------------------------
5244 # ask for all that hasn't been auto-detected or specified in the arguments
5245 #-------------------------------------------------------------------------------
5247 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5249 # disable accessibility
5250 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5251 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5253 QT_CONFIG="$QT_CONFIG accessibility"
5257 if [ "$CFG_EGL" = "yes" ]; then
5258 QT_CONFIG="$QT_CONFIG egl"
5260 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5264 if [ "$CFG_EGLFS" = "yes" ]; then
5265 QT_CONFIG="$QT_CONFIG eglfs"
5267 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5271 if [ "$CFG_OPENVG" = "no" ]; then
5272 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5274 QT_CONFIG="$QT_CONFIG openvg"
5275 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5276 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5278 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5279 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5281 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5282 QT_CONFIG="$QT_CONFIG shivavg"
5283 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5288 if [ "$CFG_OPENGL" = "no" ]; then
5289 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5291 QT_CONFIG="$QT_CONFIG opengl"
5294 if [ "$CFG_OPENGL" = "es2" ]; then
5295 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5298 if [ "$CFG_OPENGL" = "es2" ]; then
5299 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5300 QT_CONFIG="$QT_CONFIG opengles2"
5303 # build up the variables for output
5304 if [ "$CFG_DEBUG" = "yes" ]; then
5305 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5306 elif [ "$CFG_DEBUG" = "no" ]; then
5307 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5309 if [ "$CFG_SHARED" = "yes" ]; then
5310 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5311 QT_CONFIG="$QT_CONFIG shared"
5312 elif [ "$CFG_SHARED" = "no" ]; then
5313 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5314 QT_CONFIG="$QT_CONFIG static"
5317 #FIXME: qpa is implicit this should all be removed
5318 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5319 QT_CONFIG="$QT_CONFIG qpa"
5320 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5321 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5323 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5324 # Do not set this here for Windows. Let qmake do it so
5325 # debug and release precompiled headers are kept separate.
5326 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5328 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5329 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5330 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5331 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5332 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5333 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5335 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5336 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5338 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5339 [ "$CFG_STACK_PROTECTOR_STRONG" = "yes" ] && QT_CONFIG="$QT_CONFIG stack-protector-strong"
5340 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5341 [ "$CFG_STRIP" = "no" ] && QMAKE_CONFIG="$QMAKE_CONFIG nostrip"
5342 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5343 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5344 QMakeVar add QMAKE_CFLAGS -g
5345 QMakeVar add QMAKE_CXXFLAGS -g
5346 QT_CONFIG="$QT_CONFIG separate_debug_info"
5348 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5349 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5351 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5352 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5353 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5354 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5355 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5356 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5357 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5358 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5359 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5360 if [ "$CFG_ARCH" = "mips" ]; then
5361 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5362 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5364 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5365 QT_CONFIG="$QT_CONFIG clock-gettime"
5367 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5368 QT_CONFIG="$QT_CONFIG clock-monotonic"
5370 if [ "$CFG_MREMAP" = "yes" ]; then
5371 QT_CONFIG="$QT_CONFIG mremap"
5373 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5374 QT_CONFIG="$QT_CONFIG getaddrinfo"
5376 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5377 QT_CONFIG="$QT_CONFIG ipv6ifname"
5379 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5380 QT_CONFIG="$QT_CONFIG getifaddrs"
5382 if [ "$CFG_INOTIFY" = "yes" ]; then
5383 QT_CONFIG="$QT_CONFIG inotify"
5385 if [ "$CFG_LIBJPEG" = "no" ]; then
5387 elif [ "$CFG_LIBJPEG" = "system" ]; then
5388 QT_CONFIG="$QT_CONFIG system-jpeg"
5390 if [ "$CFG_JPEG" = "no" ]; then
5391 QT_CONFIG="$QT_CONFIG no-jpeg"
5392 elif [ "$CFG_JPEG" = "yes" ]; then
5393 QT_CONFIG="$QT_CONFIG jpeg"
5395 if [ "$CFG_LIBPNG" = "no" ]; then
5398 if [ "$CFG_LIBPNG" = "system" ]; then
5399 QT_CONFIG="$QT_CONFIG system-png"
5401 if [ "$CFG_PNG" = "no" ]; then
5402 QT_CONFIG="$QT_CONFIG no-png"
5403 elif [ "$CFG_PNG" = "yes" ]; then
5404 QT_CONFIG="$QT_CONFIG png"
5406 if [ "$CFG_GIF" = "no" ]; then
5407 QT_CONFIG="$QT_CONFIG no-gif"
5408 elif [ "$CFG_GIF" = "yes" ]; then
5409 QT_CONFIG="$QT_CONFIG gif"
5411 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5412 QT_CONFIG="$QT_CONFIG no-freetype"
5413 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5414 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5415 QT_CONFIG="$QT_CONFIG system-freetype"
5417 QT_CONFIG="$QT_CONFIG freetype"
5419 if [ "$CFG_GUI" = "auto" ]; then
5422 if [ "$CFG_GUI" = "no" ]; then
5423 QT_CONFIG="$QT_CONFIG no-gui"
5426 if [ "$CFG_WIDGETS" = "no" ]; then
5427 QT_CONFIG="$QT_CONFIG no-widgets"
5428 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5431 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5432 #On Mac we implicitly link against libz, so we
5433 #never use the 3rdparty stuff.
5434 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5436 if [ "$CFG_ZLIB" = "yes" ]; then
5437 QT_CONFIG="$QT_CONFIG zlib"
5438 elif [ "$CFG_ZLIB" = "system" ]; then
5439 QT_CONFIG="$QT_CONFIG system-zlib"
5442 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5443 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5444 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5445 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5446 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5447 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5448 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5449 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5450 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5451 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5452 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5453 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5454 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5455 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5457 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5458 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5460 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5461 if [ "$CFG_RPATH" = "yes" ]; then
5462 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5464 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5465 if [ -n "$RPATH_FLAGS" ]; then
5467 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5471 elif [ "$CFG_RPATH" = "yes" ]; then
5472 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5476 if [ -n "$RPATH_FLAGS" ]; then
5477 # add the user defined rpaths
5478 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5481 if [ "$CFG_RPATH" = "yes" ]; then
5482 QT_CONFIG="$QT_CONFIG rpath"
5485 if [ '!' -z "$I_FLAGS" ]; then
5486 # add the user define include paths
5487 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5488 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5491 if [ '!' -z "$W_FLAGS" ]; then
5492 # add the user defined warning flags
5493 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5494 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5495 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5498 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5499 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5500 # Follow default behavior of configure.exe by overriding with "rtti".
5501 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5504 if [ "$CFG_ALSA" = "yes" ]; then
5505 QT_CONFIG="$QT_CONFIG alsa"
5508 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5509 QT_CONFIG="$QT_CONFIG pulseaudio"
5512 if [ "$CFG_COREWLAN" = "yes" ]; then
5513 QT_CONFIG="$QT_CONFIG corewlan"
5516 if [ "$CFG_ICU" = "yes" ]; then
5517 QT_CONFIG="$QT_CONFIG icu"
5520 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5521 QT_CONFIG="$QT_CONFIG force_asserts"
5524 if [ "$CFG_PCRE" = "qt" ]; then
5525 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5529 # Some Qt modules are too advanced in C++ for some old compilers
5530 # Detect here the platforms where they are known to work.
5532 # See Qt documentation for more information on which features are
5533 # supported and on which compilers.
5535 canBuildQtConcurrent="yes"
5536 canUseV8Snapshot="yes"
5538 case "$XPLATFORM" in
5540 # PA-RISC's assembly is too limited
5541 # gcc 3.4 on that platform can't build QtXmlPatterns
5542 # the assembly it generates cannot be compiled
5544 # Check gcc's version
5545 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5549 canBuildQtXmlPatterns="no"
5553 canBuildQtXmlPatterns="no"
5557 unsupported/vxworks-*-g++*)
5560 unsupported/vxworks-*-dcc*)
5562 canBuildQtXmlPatterns="no"
5565 # Check gcc's version
5566 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5574 canBuildQtXmlPatterns="no"
5579 # Check the compiler version
5580 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5583 canBuildQtXmlPatterns="no"
5584 canBuildQtConcurrent="no"
5588 canBuildQtConcurrent="no"
5594 canBuildQtXmlPatterns="no"
5595 canBuildQtConcurrent="no"
5601 # Get the xlC version
5602 cat > xlcver.c <<EOF
5606 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5611 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5612 xlcver=`./xlcver 2>/dev/null`
5615 if [ "$OPT_VERBOSE" = "yes" ]; then
5616 if [ -n "$xlcver" ]; then
5617 echo Found IBM xlC version: $xlcver.
5619 echo Could not determine IBM xlC version, assuming oldest supported.
5626 canBuildQtXmlPatterns="no"
5627 canBuildQtConcurrent="no"
5631 canBuildQtConcurrent="no"
5637 canBuildQtConcurrent="no"
5641 if [ "$CFG_GUI" = "no" ]; then
5642 # WebKit requires QtGui
5646 if [ "$CFG_SHARED" = "no" ]; then
5648 echo "WARNING: Using static linking will disable the WebKit module."
5653 CFG_CONCURRENT="yes"
5654 if [ "$canBuildQtConcurrent" = "no" ]; then
5655 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5658 QT_CONFIG="$QT_CONFIG concurrent"
5662 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5663 QT_CONFIG="$QT_CONFIG audio-backend"
5667 if [ "$CFG_WEBKIT" = "debug" ]; then
5668 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5672 QT_CONFIG="$QT_CONFIG v8"
5673 # Detect snapshot support
5674 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5675 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5678 *) canUseV8Snapshot="no"
5682 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5683 # QEMU crashes when building inside Scratchbox with an ARM target
5684 canUseV8Snapshot="no"
5687 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5688 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5690 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5691 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5694 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5695 QT_CONFIG="$QT_CONFIG v8snapshot"
5699 if [ "$CFG_QML_DEBUG" = "no" ]; then
5700 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5703 case "$QMAKE_CONF_COMPILER" in
5706 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5708 case "$COMPILER_VERSION" in
5710 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5711 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5712 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5715 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5716 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5717 QT_GCC_PATCH_VERSION=0
5727 #-------------------------------------------------------------------------------
5728 # part of configuration information goes into qconfig.h
5729 #-------------------------------------------------------------------------------
5731 case "$CFG_QCONFIG" in
5733 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5736 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5737 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5738 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5739 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5740 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5741 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5743 echo "#endif" >>"$tmpconfig"
5747 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5751 # define QT_EDITION $QT_EDITION
5755 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5756 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5758 if [ "$CFG_SHARED" = "no" ]; then
5759 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5760 /* Qt was configured for a static build */
5761 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5768 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5769 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5772 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5773 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5776 if [ "$BUILD_ON_MAC" = "yes" ]; then
5777 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5778 #if defined(__LP64__)
5779 # define QT_POINTER_SIZE 8
5781 # define QT_POINTER_SIZE 4
5785 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5786 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5789 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5790 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5791 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5794 # Add compiler sub-architecture support
5795 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5796 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5797 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5799 MIPS_DSP MIPS_DSPR2; do
5800 eval "VAL=\$CFG_$SUBARCH"
5803 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5804 >>"$outpath/src/corelib/global/qconfig.h.new"
5809 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5811 if [ "$CFG_DEV" = "yes" ]; then
5812 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5815 # Add QPA to config.h
5816 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5818 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5819 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5822 # Add turned on SQL drivers
5823 for DRIVER in $CFG_SQL_AVAILABLE; do
5824 eval "VAL=\$CFG_SQL_$DRIVER"
5827 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5828 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5829 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5832 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5837 QMakeVar set sql-drivers "$SQL_DRIVERS"
5838 QMakeVar set sql-plugins "$SQL_PLUGINS"
5840 # Add other configuration options to the qconfig.h file
5841 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5842 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5843 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5844 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5845 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5847 # X11/Unix/Mac only configs
5848 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5849 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5850 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5851 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5852 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5853 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5854 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5855 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5856 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5857 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5858 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5859 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5860 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5861 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5863 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5864 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5865 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5866 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5867 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5868 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5869 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5870 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5871 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5872 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5873 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5874 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5875 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5877 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5878 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5879 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5880 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5881 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5882 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5883 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5884 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5886 # sort QCONFIG_FLAGS for neatness if we can
5887 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5888 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5890 if [ -n "$QCONFIG_FLAGS" ]; then
5891 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5892 #ifndef QT_BOOTSTRAPPED
5895 for cfg in $QCONFIG_FLAGS; do
5896 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5897 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5898 # figure out define logic, so we can output the correct
5899 # ifdefs to override the global defines in a project
5901 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5902 # QT_NO_option can be forcefully turned on by QT_option
5903 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5904 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5905 # QT_option can be forcefully turned off by QT_NO_option
5906 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5909 if [ -z $cfgdNeg ]; then
5910 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5917 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5918 #if defined($cfgd) && defined($cfgdNeg)
5920 #elif !defined($cfgd) && !defined($cfgdNeg)
5927 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5928 #endif // QT_BOOTSTRAPPED
5933 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5934 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5935 #define QT_VISIBILITY_AVAILABLE
5940 if [ -n "$QT_LIBINFIX" ]; then
5941 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5942 #define QT_LIBINFIX "$QT_LIBINFIX"
5947 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5949 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5950 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5951 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5953 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5954 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5955 chmod -w "$outpath/src/corelib/global/qconfig.h"
5956 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5957 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5961 #-------------------------------------------------------------------------------
5962 # save configuration into qconfig.pri
5963 #-------------------------------------------------------------------------------
5964 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5965 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5966 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5967 if [ "$CFG_DEBUG" = "yes" ]; then
5968 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5969 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5970 QT_CONFIG="$QT_CONFIG release"
5972 QT_CONFIG="$QT_CONFIG debug"
5973 elif [ "$CFG_DEBUG" = "no" ]; then
5974 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5975 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5976 QT_CONFIG="$QT_CONFIG debug"
5978 QT_CONFIG="$QT_CONFIG release"
5980 if [ "$CFG_FRAMEWORK" = "no" ]; then
5981 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5983 QT_CONFIG="$QT_CONFIG qt_framework"
5984 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5986 if [ "$CFG_DEV" = "yes" ]; then
5987 QT_CONFIG="$QT_CONFIG private_tests"
5990 cat >>"$QTCONFIG.tmp" <<EOF
5992 CONFIG += $QTCONFIG_CONFIG
5994 QT_HOST_ARCH = $CFG_HOST_ARCH
5995 QT_CPU_FEATURES = $CFG_CPUFEATURES
5996 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5997 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5998 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5999 QT_EDITION = $Edition
6000 QT_CONFIG += $QT_CONFIG
6003 QT_VERSION = $QT_VERSION
6004 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
6005 QT_MINOR_VERSION = $QT_MINOR_VERSION
6006 QT_PATCH_VERSION = $QT_PATCH_VERSION
6009 QT_LIBINFIX = $QT_LIBINFIX
6010 QT_NAMESPACE = $QT_NAMESPACE
6014 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
6015 echo "# pkgconfig" >> "$QTCONFIG.tmp"
6016 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
6017 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
6018 echo >> "$QTCONFIG.tmp"
6021 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
6022 echo "# sysroot" >>"$QTCONFIG.tmp"
6023 echo "!host_build {" >>"$QTCONFIG.tmp"
6024 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6025 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6026 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6027 echo "}" >> "$QTCONFIG.tmp"
6028 echo >> "$QTCONFIG.tmp"
6030 if [ -n "$RPATH_FLAGS" ]; then
6031 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
6033 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6034 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6035 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6036 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6039 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6040 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6041 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6044 # replace qconfig.pri if it differs from the newly created temp file
6045 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6046 rm -f "$QTCONFIG.tmp"
6048 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6051 #-------------------------------------------------------------------------------
6052 # save configuration into qmodule.pri
6053 #-------------------------------------------------------------------------------
6054 QTMODULE="$outpath/mkspecs/qmodule.pri"
6056 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
6057 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6059 if [ -n "$QT_CFLAGS_PSQL" ]; then
6060 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6062 if [ -n "$QT_LFLAGS_PSQL" ]; then
6063 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6065 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6066 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6068 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6069 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6071 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6072 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6074 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6075 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6077 if [ -n "$QT_LFLAGS_ODBC" ]; then
6078 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6080 if [ -n "$QT_LFLAGS_TDS" ]; then
6081 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6084 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6085 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6088 #dump in the OPENSSL_LIBS info
6089 if [ '!' -z "$OPENSSL_LIBS" ]; then
6090 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6091 elif [ "$CFG_OPENSSL" = "linked" ]; then
6092 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6095 #dump in the SDK info
6096 if [ '!' -z "$CFG_SDK" ]; then
6097 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6101 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6102 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6104 # replace qmodule.pri if it differs from the newly created temp file
6105 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6106 rm -f "$QTMODULE.tmp"
6108 mv -f "$QTMODULE.tmp" "$QTMODULE"
6111 #-------------------------------------------------------------------------------
6112 # save configuration into .qmake.cache
6113 #-------------------------------------------------------------------------------
6115 CACHEFILE="$outpath/.qmake.cache"
6116 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6117 cat >>"$CACHEFILE.tmp" <<EOF
6119 QT_SOURCE_TREE = \$\$quote($relpath)
6120 QT_BUILD_TREE = \$\$quote($outpath)
6122 include(\$\$PWD/mkspecs/qmodule.pri)
6123 CONFIG += fix_output_dirs no_private_qt_headers_warning QTDIR_build
6127 # replace .qmake.cache if it differs from the newly created temp file
6128 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6129 rm -f "$CACHEFILE.tmp"
6131 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6134 #-------------------------------------------------------------------------------
6135 # give feedback on configuration
6136 #-------------------------------------------------------------------------------
6137 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6140 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6141 echo "Build type: $PLATFORM"
6143 echo "Building on: $PLATFORM"
6144 echo "Building for: $XPLATFORM"
6147 # the missing space before $CFG_FEATURES is intentional
6148 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6149 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6151 if [ -n "$PLATFORM_NOTES" ]; then
6152 echo "Platform notes:"
6153 echo "$PLATFORM_NOTES"
6158 if [ "$OPT_VERBOSE" = "yes" ]; then
6159 echo $ECHO_N "qmake vars .......... $ECHO_C"
6160 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6161 echo "qmake switches ......... $QMAKE_SWITCHES"
6164 echo "Build .................. $CFG_BUILD_PARTS"
6165 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6166 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6167 echo "Debug .................. yes (combined)"
6168 if [ "$CFG_DEBUG" = "yes" ]; then
6169 echo "Default Link ........... debug"
6171 echo "Default Link ........... release"
6174 echo "Debug .................. $CFG_DEBUG"
6176 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6177 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6179 echo "C++11 support .......... $CFG_CXX11"
6180 if [ -n "$PKG_CONFIG" ]; then
6181 echo "pkg-config ............. yes"
6183 echo "pkg-config ............. no"
6185 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6186 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6187 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6188 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6189 echo "QtGui module ........... $CFG_GUI"
6190 echo "QtWidgets module ....... $CFG_WIDGETS"
6191 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6192 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6194 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6196 echo "QML debugging .......... $CFG_QML_DEBUG"
6197 echo "PCH support ............ $CFG_PRECOMPILE"
6198 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6199 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6200 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6201 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6202 elif [ "$CFG_ARCH" = "arm" ]; then
6203 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6204 echo "NEON support ........... ${CFG_NEON}"
6206 if [ "$CFG_ARCH" = "mips" ]; then
6207 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6209 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6210 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6211 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6212 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6213 echo "NIS support ............ $CFG_NIS"
6214 echo "CUPS support ........... $CFG_CUPS"
6215 echo "Iconv support .......... $CFG_ICONV"
6216 echo "Glib support ........... $CFG_GLIB"
6217 echo "GStreamer support ...... $CFG_GSTREAMER"
6218 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6219 echo "Large File support ..... $CFG_LARGEFILE"
6220 echo "GIF support ............ $CFG_GIF"
6221 if [ "$CFG_JPEG" = "no" ]; then
6222 echo "JPEG support ........... $CFG_JPEG"
6224 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6226 if [ "$CFG_PNG" = "no" ]; then
6227 echo "PNG support ............ $CFG_PNG"
6229 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6231 echo "zlib support ........... $CFG_ZLIB"
6232 echo "Session management ..... $CFG_SM"
6233 echo "libudev support ........ $CFG_LIBUDEV"
6235 if [ "$XPLATFORM_QNX" = "yes" ]; then
6236 echo "SLOG2 support .......... $CFG_SLOG2"
6239 if [ "$CFG_OPENGL" = "desktop" ]; then
6240 echo "OpenGL support ......... yes (Desktop OpenGL)"
6241 elif [ "$CFG_OPENGL" = "es2" ]; then
6242 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6244 echo "OpenGL support ......... no"
6247 if [ "$CFG_OPENVG" ]; then
6248 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6249 echo "OpenVG support ......... ShivaVG"
6251 echo "OpenVG support ......... $CFG_OPENVG"
6255 echo "XShape support ......... $CFG_XSHAPE"
6256 echo "XVideo support ......... $CFG_XVIDEO"
6257 echo "XSync support .......... $CFG_XSYNC"
6258 echo "Xinerama support ....... $CFG_XINERAMA"
6259 echo "Xcursor support ........ $CFG_XCURSOR"
6260 echo "Xfixes support ......... $CFG_XFIXES"
6261 echo "Xrandr support ......... $CFG_XRANDR"
6262 echo "Xi support ............. $CFG_XINPUT"
6263 echo "Xi2 support ............ $CFG_XINPUT2"
6264 echo "MIT-SHM support ........ $CFG_MITSHM"
6265 echo "FontConfig support ..... $CFG_FONTCONFIG"
6266 echo "XKB Support ............ $CFG_XKB"
6267 echo "immodule support ....... $CFG_IM"
6268 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6270 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6271 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6272 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6273 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6274 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6275 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6276 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6277 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6278 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6281 if [ "$CFG_OPENSSL" = "yes" ]; then
6282 OPENSSL_LINKAGE="(run-time)"
6283 elif [ "$CFG_OPENSSL" = "linked" ]; then
6284 OPENSSL_LINKAGE="(linked)"
6286 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6287 echo "Alsa support ........... $CFG_ALSA"
6288 if [ "$BUILD_ON_MAC" = "yes" ]; then
6289 echo "CoreWlan support ....... $CFG_COREWLAN"
6291 echo "libICU support ......... $CFG_ICU"
6292 echo "PCRE support ........... $CFG_PCRE"
6293 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6294 echo "Xcb support ............ limited (old version)"
6296 echo "Xcb support ............ $CFG_XCB"
6298 echo "Xrender support ........ $CFG_XRENDER"
6299 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6300 echo "XInput2 support ........ $CFG_XINPUT2"
6302 echo "EGLFS support .......... $CFG_EGLFS"
6303 echo "DirectFB support ....... $CFG_DIRECTFB"
6304 echo "LinuxFB support ........ $CFG_LINUXFB"
6305 echo "KMS support ............ $CFG_KMS"
6308 # complain about not being able to use dynamic plugins if we are using a static build
6309 if [ "$CFG_SHARED" = "no" ]; then
6311 echo "WARNING: Using static linking will disable the use of dynamically"
6312 echo "loaded plugins. Make sure to import all needed static plugins,"
6313 echo "or compile needed modules into the library."
6316 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6318 echo "NOTE: When linking against OpenSSL, you can override the default"
6319 echo "library names through OPENSSL_LIBS."
6321 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6325 exec 1>&3 3>&- # restore stdout
6326 cat $outpath/config.summary # display config feedback to user
6328 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6330 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6331 echo "if you want a pure debug build."
6336 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6341 #-------------------------------------------------------------------------------
6342 # build makefiles based on the configuration
6343 #-------------------------------------------------------------------------------
6345 if [ "$CFG_PROCESS" != "no" ]; then
6347 if [ "$CFG_PROCESS" = "full" ]; then
6348 echo "Creating makefiles. Please wait..."
6349 "$outpath/bin/qmake" -r "$relpath"
6352 "$outpath/bin/qmake" "$relpath"
6355 if [ "$OPT_FAST" = "yes" ]; then
6357 for part in $CFG_BUILD_PARTS; do
6359 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6362 if [ "x$PART_ROOTS" != "x" ]; then
6364 echo "Creating stub makefiles. Please wait..."
6365 QMAKE="$outpath/bin/qmake"
6366 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6367 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6369 test -f "$outpath/$d/Makefile" && continue
6370 echo " for $relpath/$p"
6372 mkdir -p "$outpath/$d" || exit
6373 cat > "$outpath/$d/Makefile" <<EOF || exit
6374 # $outpath/$d/Makefile: generated by configure
6376 # WARNING: This makefile will be replaced with a real makefile.
6377 # All changes made to this file will be lost.
6382 all clean install qmake first Makefile: FORCE
6383 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6393 #-------------------------------------------------------------------------------
6394 # check for platforms that we don't yet know about
6395 #-------------------------------------------------------------------------------
6396 if [ "$CFG_ARCH" = "unknown" ]; then
6399 NOTICE: configure was unable to determine the architecture
6400 for the $XQMAKESPEC target.
6402 Qt will not use a specialized implementation for any atomic
6403 operations. Instead a generic implemention based on either GCC
6404 intrinsics or C++11 std::atomic<T> will be used (when
6405 available). The generic implementations are generally as fast
6406 as and always as safe as a specialized implementation.
6408 If no generic implementation is available, Qt will use a
6409 fallback UNIX implementation which uses a single
6410 pthread_mutex_t to protect all atomic operations. This
6411 implementation is the slow (but safe) fallback implementation
6412 for architectures Qt does not yet support.
6416 #-------------------------------------------------------------------------------
6417 # check if the user passed the -no-zlib option, which is no longer supported
6418 #-------------------------------------------------------------------------------
6419 if [ -n "$ZLIB_FORCED" ]; then
6420 which_zlib="supplied"
6421 if [ "$CFG_ZLIB" = "system" ]; then
6427 NOTICE: The -no-zlib option was supplied but is no longer
6430 Qt now requires zlib support in all builds, so the -no-zlib
6431 option was ignored. Qt will be built using the $which_zlib
6436 #-------------------------------------------------------------------------------
6437 # check if the user passed the obsoleted -wayland or -no-wayland flag
6438 #-------------------------------------------------------------------------------
6439 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6442 NOTICE: The -wayland and -no-wayland flags are now obsolete
6444 All configuring of QtWayland plugin and QtCompositor happens in the module
6448 #-------------------------------------------------------------------------------
6449 # check if the user passed the obsoleted -arch or -host-arch options
6450 #-------------------------------------------------------------------------------
6451 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6454 NOTICE: The -arch and -host-arch options are obsolete.
6456 Qt now detects the target and host architectures based on compiler
6457 output. Qt will be built using $CFG_ARCH for the target architecture
6458 and $CFG_HOST_ARCH for the host architecture (note that these two
6459 will be the same unless you are cross-compiling).
6463 #-------------------------------------------------------------------------------
6464 # finally save the executed command to another script
6465 #-------------------------------------------------------------------------------
6466 if [ `basename $0` != "config.status" ]; then
6467 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6469 # add the system variables
6470 for varname in $SYSTEM_VARIABLES; do
6472 'if [ -n "\$'${varname}'" ]; then
6473 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6478 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6480 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6481 echo "#!/bin/sh" > "$outpath/config.status"
6482 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6483 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6484 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6485 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6486 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6487 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6488 echo "else" >> "$outpath/config.status"
6489 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6490 echo "fi" >> "$outpath/config.status"
6491 chmod +x "$outpath/config.status"
6494 if [ -n "$RPATH_MESSAGE" ]; then
6496 echo "$RPATH_MESSAGE"
6499 MAKE=`basename "$MAKE"`
6501 echo Qt is now configured for building. Just run \'$MAKE\'.
6502 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6503 echo Once everything is built, Qt is installed.
6504 echo You should not run \'$MAKE install\'.
6506 echo Once everything is built, you must run \'$MAKE install\'.
6507 echo Qt will be installed into $QT_INSTALL_PREFIX
6510 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.