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 # symlink the doc directory
2258 rm -rf "$outpath/doc"
2259 ln -s "$relpath/doc" "$outpath/doc"
2262 # symlink fonts to be able to run application from build directory
2263 if [ ! -d "${outpath}/lib/fonts" ]; then
2264 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2265 mkdir -p "${outpath}/lib"
2266 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2270 if [ "$OPT_FAST" = "auto" ]; then
2271 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2278 # find a make command
2279 if [ -z "$MAKE" ]; then
2281 for mk in gmake make; do
2282 if "$WHICH" $mk >/dev/null 2>&1; then
2287 if [ -z "$MAKE" ]; then
2288 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2289 echo >&2 "Cannot proceed."
2292 # export MAKE, we need it later in the config.tests
2298 #-------------------------------------------------------------------------------
2299 # auto-detect all that hasn't been specified in the arguments
2300 #-------------------------------------------------------------------------------
2302 if [ -z "$PLATFORM" ]; then
2304 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2306 OSX_VERSION=`uname -r | cut -d. -f1`
2307 # Select compiler. Use g++ unless we find a usable Clang version
2309 if [ "$OSX_VERSION" -ge 12 ]; then
2310 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2312 elif [ "$OSX_VERSION" -eq 11 ]; then
2313 # We're on Lion. Check if we have a supported Clang version
2314 case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2317 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2324 #PLATFORM=aix-g++-64
2326 #PLATFORM=aix-xlc-64
2328 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2338 # PLATFORM=dynix-g++
2344 PLATFORM=freebsd-g++
2346 - Also available for FreeBSD: freebsd-icc
2350 PLATFORM=openbsd-g++
2361 #PLATFORM=irix-cc-64
2363 - Also available for IRIX: irix-g++ irix-cc-64
2367 case "$UNAME_MACHINE" in
2369 #PLATFORM=hpuxi-acc-32
2370 PLATFORM=hpuxi-acc-64
2372 - Also available for HP-UXi: hpuxi-acc-32
2378 #PLATFORM=hpux-acc-64
2380 #PLATFORM=hpux-acc-o64
2382 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2391 - Also available for Tru64: tru64-g++
2395 case "$UNAME_MACHINE" in
2397 PLATFORM=linux-g++-64
2404 - Also available for Linux: linux-kcc linux-icc linux-cxx
2408 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2409 PLATFORM="solaris-g++"
2411 #PLATFORM=solaris-g++
2413 #PLATFORM=solaris-cc64
2416 - Also available for Solaris: solaris-g++ solaris-cc-64
2419 ReliantUNIX-*:*|SINIX-*:*)
2420 PLATFORM=reliant-cds
2421 #PLATFORM=reliant-cds-64
2423 - Also available for Reliant UNIX: reliant-cds-64
2433 #PLATFORM=unixware-g++
2434 PLATFORM=unixware-cc
2436 - Also available for OpenUNIX: unixware-g++
2440 #PLATFORM=unixware-g++
2441 PLATFORM=unixware-cc
2443 - Also available for UnixWare: unixware-g++
2450 - Also available for SCO OpenServer: sco-g++
2454 PLATFORM=unixware-g++
2457 PLATFORM=unsupported/qnx-g++
2460 if [ "$OPT_HELP" != "yes" ]; then
2462 echo " The build script does not currently recognize all" >&2
2463 echo " platforms supported by Qt." >&2
2464 echo " Rerun this script with a -platform option listed to" >&2
2465 echo " set the system/compiler combination you use." >&2
2472 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2474 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2475 case "$XPLATFORM" in *-maemo*) XPLATFORM_MAEMO=yes;; esac
2476 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2478 if [ -d "$PLATFORM" ]; then
2479 QMAKESPEC="$PLATFORM"
2481 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2483 if [ -d "$XPLATFORM" ]; then
2484 XQMAKESPEC="$XPLATFORM"
2486 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2488 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2489 QT_CROSS_COMPILE=yes
2490 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2491 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2494 if [ "$BUILD_ON_MAC" = "yes" ]; then
2495 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2497 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2498 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2499 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2500 echo " built with 'macx-g++'" >&2
2506 # check specified platforms are supported
2507 if [ '!' -d "$QMAKESPEC" ]; then
2509 echo " The specified system/compiler is not supported:"
2513 echo " Please see the README file for a complete list."
2517 if [ '!' -d "$XQMAKESPEC" ]; then
2519 echo " The specified system/compiler is not supported:"
2523 echo " Please see the README file for a complete list."
2527 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2529 echo " The specified system/compiler port is not complete:"
2531 echo " $XQMAKESPEC/qplatformdefs.h"
2533 echo " Please use the contact form at http://qt.digia.com/contact-us"
2538 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2539 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2540 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2541 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2542 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2546 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2547 case `basename "$XPLATFORM"` in
2550 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2552 echo "Please use the contact form at http://qt.digia.com/contact-us"
2553 echo "to upgrade your license to include this platform, or install"
2554 echo "the Qt Open Source Edition if you intend to develop free software."
2560 #-------------------------------------------------------------------------------
2561 # tests that don't need qmake (must be run before displaying help)
2562 #-------------------------------------------------------------------------------
2564 # detect build style
2565 if [ "$CFG_DEBUG" = "auto" ]; then
2566 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2567 CFG_DEBUG_RELEASE=yes
2569 elif [ "$CFG_DEV" = "yes" ]; then
2570 CFG_DEBUG_RELEASE=no
2573 CFG_DEBUG_RELEASE=no
2577 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2578 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2581 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2582 QT_CONFIG="$QT_CONFIG force_debug_info"
2585 # pass on $CFG_SDK to the arch/configure tests.
2586 if [ -n "$CFG_SDK" ]; then
2587 MAC_SDK_FLAG="-sdk $CFG_SDK"
2592 # find the default framework value
2593 if [ "$BUILD_ON_MAC" = "yes" ]; then
2594 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2595 CFG_FRAMEWORK="$CFG_SHARED"
2596 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2598 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2606 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2608 TEST_COMPILER=$QMAKE_CONF_COMPILER
2609 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2610 if [ -z "$TEST_COMPILER" ]; then
2611 echo "ERROR: Cannot set the compiler for the configuration tests"
2615 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2618 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2619 if [ -n "$GCC_MACHINE_DUMP" ]; then
2620 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2623 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2624 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2628 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2630 # auto-detect precompiled header support
2631 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2632 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2639 # auto-detect support for separate debug info in objcopy
2640 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2641 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2642 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2643 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2644 CFG_SEPARATE_DEBUG_INFO=no
2648 # binutils on HP-UX is buggy; default to no.
2649 CFG_SEPARATE_DEBUG_INFO=no
2652 CFG_SEPARATE_DEBUG_INFO=yes
2658 # auto-detect -fvisibility support
2659 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2660 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2661 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2662 echo "-reduce-exports was requested but this compiler does not support it"
2663 echo "Re-run configure with -v for more information"
2666 CFG_REDUCE_EXPORTS=no
2668 CFG_REDUCE_EXPORTS=yes
2672 # auto-detect -fstack-protector-strong support (for QNX only currently)
2673 if [ "$XPLATFORM_QNX" = "yes" ]; then
2674 if compilerSupportsFlag -fstack-protector-strong; then
2675 CFG_STACK_PROTECTOR_STRONG=yes
2677 CFG_STACK_PROTECTOR_STRONG=no
2680 CFG_STACK_PROTECTOR_STRONG=no
2683 # detect the availability of the -Bsymbolic-functions linker optimization
2684 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2685 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2686 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2687 echo "-reduce-relocations was requested but this compiler does not support it"
2688 echo "Re-run configure with -v for more information"
2691 CFG_REDUCE_RELOCATIONS=no
2693 CFG_REDUCE_RELOCATIONS=yes
2697 # auto-detect GNU make support
2698 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2702 # find the default framework value
2703 if [ "$BUILD_ON_MAC" = "yes" ]; then
2704 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2705 CFG_FRAMEWORK="$CFG_SHARED"
2706 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2708 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2716 # auto-detect default include and library search paths
2717 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2718 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2719 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2720 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2721 /^End of search/ { yup=0 }
2722 yup { print substr($0, 2) }
2723 /^\#include </ { yup=1 }
2725 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2727 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2730 #setup the build parts
2731 if [ -z "$CFG_BUILD_PARTS" ]; then
2732 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2734 # build tests by default, if a developer build
2735 if [ "$CFG_DEV" = "yes" ]; then
2736 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2739 # don't build tools by default when cross-compiling
2740 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2741 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2744 for nobuild in $CFG_NOBUILD_PARTS; do
2745 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2747 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2749 # echo "WARNING: libs is a required part of the build."
2751 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2754 #-------------------------------------------------------------------------------
2755 # post process QT_INSTALL_* variables
2756 #-------------------------------------------------------------------------------
2758 if [ -z "$QT_INSTALL_PREFIX" ]; then
2759 if [ "$CFG_DEV" = "yes" ]; then
2760 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2762 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2765 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2767 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2768 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2769 if [ "$BUILD_ON_MAC" = "yes" ]; then
2770 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2773 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2776 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2778 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2779 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2780 if [ "$BUILD_ON_MAC" = "yes" ]; then
2781 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2786 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2789 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2791 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2792 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2793 if [ "$BUILD_ON_MAC" = "yes" ]; then
2794 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2795 QT_INSTALL_LIBS="/Library/Frameworks"
2799 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2801 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2803 if [ -z "$QT_INSTALL_BINS" ]; then #default
2804 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2805 if [ "$BUILD_ON_MAC" = "yes" ]; then
2806 QT_INSTALL_BINS="/Developer/Applications/Qt"
2809 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2811 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2813 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2814 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2815 if [ "$BUILD_ON_MAC" = "yes" ]; then
2816 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2819 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2821 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2823 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2824 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2825 if [ "$BUILD_ON_MAC" = "yes" ]; then
2826 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2829 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2831 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2833 if [ -z "$QT_INSTALL_DATA" ]; then #default
2834 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2836 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2838 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2839 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2841 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2843 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2844 if [ "$BUILD_ON_MAC" = "yes" ]; then
2845 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2847 QT_INSTALL_SETTINGS=/etc/xdg
2850 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2852 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2853 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2854 if [ "$BUILD_ON_MAC" = "yes" ]; then
2855 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2858 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2860 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2863 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2864 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2865 if [ "$BUILD_ON_MAC" = "yes" ]; then
2866 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2869 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2871 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2873 #------- host paths --------
2875 if [ -z "$QT_HOST_PREFIX" ]; then
2876 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2879 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2883 if [ -z "$QT_HOST_BINS" ]; then #default
2885 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2886 if [ "$BUILD_ON_MAC" = "yes" ]; then
2887 QT_HOST_BINS="/Developer/Applications/Qt"
2890 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2892 QT_HOST_BINS="$QT_INSTALL_BINS"
2895 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2897 if [ -z "$QT_HOST_DATA" ]; then #default
2899 QT_HOST_DATA="$QT_HOST_PREFIX"
2901 QT_HOST_DATA="$QT_INSTALL_DATA"
2904 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2907 #-------------------------------------------------------------------------------
2908 # help - interactive parts of the script _after_ this section please
2909 #-------------------------------------------------------------------------------
2911 # next, emit a usage message if something failed.
2912 if [ "$OPT_HELP" = "yes" ]; then
2913 [ "x$ERROR" = "xyes" ] && echo
2914 if [ "$CFG_NIS" = "no" ]; then
2921 if [ "$CFG_CUPS" = "no" ]; then
2928 if [ "$CFG_ICONV" = "no" ]; then
2935 if [ "$CFG_LARGEFILE" = "no" ]; then
2942 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2950 if [ "$CFG_XCB" = "no" ]; then
2958 if [ "$CFG_EGLFS" = "no" ]; then
2966 if [ "$CFG_DIRECTFB" = "no" ]; then
2974 if [ "$CFG_LINUXFB" = "no" ]; then
2982 if [ "$CFG_KMS" = "no" ]; then
2990 if [ "$CFG_XINPUT2" = "no" ]; then
2998 if [ "$CFG_DBUS" = "no" ]; then
3006 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
3014 if [ "$CFG_GLIB" = "no" ]; then
3023 Usage: $relconf [options]
3025 Installation options:
3027 These are optional, but you may specify install directories.
3029 -prefix <dir> ...... This will install everything relative to <dir>
3030 (default $QT_INSTALL_PREFIX)
3032 -hostprefix [dir] .. Tools and libraries needed when developing
3033 applications are installed in [dir]. If [dir] is
3034 not given, the current build directory will be used.
3037 * -prefix-install .... Force a sandboxed "local" installation of
3038 Qt. This will install into
3039 $QT_INSTALL_PREFIX, if this option is
3040 disabled then some platforms will attempt a
3041 "system" install by placing default values
3042 in a system location other than PREFIX.
3044 You may use these to separate different parts of the install:
3046 -bindir <dir> ......... Executables will be installed to <dir>
3047 (default PREFIX/bin)
3048 -libdir <dir> ......... Libraries will be installed to <dir>
3049 (default PREFIX/lib)
3050 -docdir <dir> ......... Documentation will be installed to <dir>
3051 (default PREFIX/doc)
3052 -headerdir <dir> ...... Headers will be installed to <dir>
3053 (default PREFIX/include)
3054 -plugindir <dir> ...... Plugins will be installed to <dir>
3055 (default PREFIX/plugins)
3056 -importdir <dir> ...... Imports for QML will be installed to <dir>
3057 (default PREFIX/imports)
3058 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3060 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3061 (default PREFIX/translations)
3062 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3063 (default PREFIX/etc/settings)
3064 -examplesdir <dir> .... Examples will be installed to <dir>
3065 (default PREFIX/examples)
3066 -testsdir <dir> ....... Tests will be installed to <dir>
3067 (default PREFIX/tests)
3069 -hostbindir <dir> .. Host executables will be installed to <dir>
3070 (default HOSTPREFIX/bin)
3071 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3072 (default HOSTPREFIX)
3076 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3077 that needs to be evaluated. If the evaluation succeeds, the feature is
3078 included. Here is a short explanation of each option:
3080 * -release ........... Compile and link Qt with debugging turned off.
3081 -debug ............. Compile and link Qt with debugging turned on.
3082 -debug-and-release . Compile and link two versions of Qt, with and without
3083 debugging turned on (Mac only).
3085 -force-debug-info .. Create symbol files for release builds.
3087 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3089 -opensource ........ Compile and link the Open-Source Edition of Qt.
3090 -commercial ........ Compile and link the Commercial Edition of Qt.
3092 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3093 + -c++11 ............. Compile Qt with C++11 support enabled.
3095 * -shared ............ Create and use shared Qt libraries.
3096 -static ............ Create and use static Qt libraries.
3098 * -process ........... Generate only a top-level Makefile.
3099 -fully-process ..... Generate Makefiles for the entire Qt tree.
3100 -dont-process ...... Do not generate any Makefiles.
3102 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3104 -fast .............. Configure Qt quickly by generating Makefiles only for
3105 library and subdirectory targets. All other Makefiles
3106 are created as wrappers, which will in turn run qmake.
3108 -no-largefile ...... Disables large file support.
3109 + -largefile ......... Enables Qt to access files larger than 4 GB.
3111 -no-accessibility .. Do not compile Accessibility support.
3112 + -accessibility ..... Compile Accessibility support.
3114 -no-sql-<driver> ... Disable SQL <driver> entirely.
3115 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3117 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3120 Possible values for <driver>:
3121 [ $CFG_SQL_AVAILABLE ]
3123 -system-sqlite ..... Use sqlite from the operating system.
3125 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3126 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3128 -no-qml-debug ...... Do not build the in-process QML debugging support.
3129 + -qml-debug ......... Build the QML debugging support.
3131 -platform target ... The operating system and compiler you are building
3134 See the README file for a list of supported
3135 operating systems and compilers.
3137 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3138 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3139 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3140 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3141 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3142 -no-avx ............ Do not compile with use of AVX instructions.
3143 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3144 -no-neon ........... Do not compile with use of NEON instructions.
3145 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3146 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3148 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3149 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3151 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3153 -D <string> ........ Add an explicit define to the preprocessor.
3154 -I <string> ........ Add an explicit include path.
3155 -L <string> ........ Add an explicit library path.
3157 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3158 configure determines whether to use pkg-config or not with
3159 some heuristics such as checking the environment variables.
3160 -no-pkg-config ..... Disable use of pkg-config.
3161 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3162 detection heuristic).
3164 -help, -h .......... Display this information.
3166 Third Party Libraries:
3168 -qt-zlib ........... Use the zlib bundled with Qt.
3169 + -system-zlib ....... Use zlib from the operating system.
3170 See http://www.gzip.org/zlib
3172 -no-gif ............ Do not compile GIF reading support.
3174 -no-libpng ......... Do not compile PNG support.
3175 -qt-libpng ......... Use the libpng bundled with Qt.
3176 + -system-libpng ..... Use libpng from the operating system.
3177 See http://www.libpng.org/pub/png
3179 -no-libjpeg ........ Do not compile JPEG support.
3180 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3181 + -system-libjpeg .... Use libjpeg from the operating system.
3182 See http://www.ijg.org
3184 -no-openssl ........ Do not compile support for OpenSSL.
3185 + -openssl ........... Enable run-time OpenSSL support.
3186 -openssl-linked .... Enabled linked OpenSSL support.
3188 -qt-pcre ........... Use the PCRE library bundled with Qt.
3189 + -system-pcre ....... Use the PCRE library from the operating system.
3193 -make <part> ....... Add part to the list of parts to be built at make time.
3194 ($QT_DEFAULT_BUILD_PARTS)
3195 -nomake <part> ..... Exclude part from the list of parts to be built.
3197 -no-gui ............ Don't build the QtGui library and dependencies.
3198 + -gui ............... Build the QtGui library and dependencies.
3200 -no-widgets ........ Don't build the QtWidgets library and dependencies.
3201 + -widgets ........... Build the QtWidgets library and dependencies.
3203 -R <string> ........ Add an explicit runtime library path to the Qt
3205 -l <string> ........ Add an explicit library.
3207 -no-rpath .......... Do not use the library install path as a runtime
3209 + -rpath ............. Link Qt libraries and executables using the library
3210 install path as a runtime library path. Equivalent
3211 to -R install_libpath
3213 -continue .......... Continue as far as possible if an error occurs.
3215 -verbose, -v ....... Print verbose information about each step of the
3218 -silent ............ Reduce the build output so that warnings and errors
3219 can be seen more easily.
3221 * -no-optimized-qmake ... Do not build qmake optimized.
3222 -optimized-qmake ...... Build qmake optimized.
3224 $NSN -no-nis ............ Do not compile NIS support.
3225 $NSY -nis ............... Compile NIS support.
3227 $CUN -no-cups ........... Do not compile CUPS support.
3228 $CUY -cups .............. Compile CUPS support.
3229 Requires cups/cups.h and libcups.so.2.
3231 $CIN -no-iconv .......... Do not compile support for iconv(3).
3232 $CIY -iconv ............. Compile support for iconv(3).
3234 -no-icu ............ Do not compile support for ICU libraries.
3235 + -icu ............... Compile support for ICU libraries.
3237 -no-strip .......... Do not strip binaries and libraries of unneeded symbols.
3238 * -strip ............. Strip binaries and libraries of unneeded symbols when installing.
3240 $PHN -no-pch ............ Do not use precompiled header support.
3241 $PHY -pch ............... Use precompiled header support.
3243 $DBN -no-dbus ........... Do not compile the QtDBus module.
3244 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3245 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3247 -reduce-relocations ..... Reduce relocations in the libraries through extra
3248 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3249 experimental; needs GNU ld >= 2.18).
3251 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3253 -device <name> ............... Cross-compile for device <name> (experimental)
3254 -device-option <key=value> ... Add device specific options for the device mkspec
3257 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3258 $SBY -separate-debug-info .... Strip debug information into a separate file.
3260 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3261 $XCBY -xcb ............... Compile Xcb support.
3263 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3264 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3266 $DFBN -no-directfb ....... Do not compile DirectFB support.
3267 $DFBY -directfb .......... Compile DirectFB support.
3269 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3270 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3272 $KMSN -no-kms ............ Do not compile KMS support.
3273 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3275 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3277 -xplatform target ... The target platform when cross-compiling.
3279 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3280 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3282 -no-feature-<feature> Do not compile in <feature>.
3283 -feature-<feature> .. Compile in <feature>. The available features
3284 are described in src/corelib/global/qfeatures.txt
3286 -no-freetype ........ Do not compile in Freetype2 support.
3287 -qt-freetype ........ Use the libfreetype bundled with Qt.
3288 * -system-freetype .... Use libfreetype from the operating system.
3289 See http://www.freetype.org/
3291 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3292 default ($CFG_QCONFIG).
3294 -no-opengl .......... Do not support OpenGL.
3295 -opengl <api> ....... Enable OpenGL support
3296 With no parameter, this will attempt to auto-detect
3297 OpenGL ES 2, or regular desktop OpenGL.
3298 Use es2 for <api> to override auto-detection.
3300 $GBN -no-glib ........... Do not compile Glib support.
3301 $GBY -glib .............. Compile Glib support.
3304 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3307 $X2N -no-xinput2......... Do not compile XInput2 support.
3308 $X2Y -xinput2............ Compile XInput2 support.
3314 if [ "$XPLATFORM_QNX" = "yes" ]; then
3317 -no-slog2 .......... Do not compile with slog2 support.
3318 -slog2 ............. Compile with slog2 support.
3324 if [ "$BUILD_ON_MAC" = "yes" ]; then
3329 -Fstring ........... Add an explicit framework path.
3330 -fw string ......... Add an explicit framework.
3332 * -framework ......... Build Qt as a series of frameworks and
3333 link tools against those frameworks.
3334 -no-framework ...... Do not build Qt as a series of frameworks.
3336 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3337 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3339 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3340 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3341 QT_ENABLE_HARFBUZZ environment variable.
3346 [ "x$ERROR" = "xyes" ] && exit 1
3351 # -----------------------------------------------------------------------------
3352 # LICENSING, INTERACTIVE PART
3353 # -----------------------------------------------------------------------------
3356 echo "This is the Qt ${EditionString} Edition."
3359 if [ "$Edition" = "OpenSource" ]; then
3361 echo "You are licensed to use this software under the terms of"
3362 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3363 if [ -f "$relpath/LICENSE.GPL3" ]; then
3364 echo "You are also licensed to use this software under the terms of"
3365 echo "the GNU General Public License (GPL) versions 3."
3371 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3372 echo "You have already accepted the terms of the $LicenseType license."
3375 if [ -f "$relpath/LICENSE.GPL3" ]; then
3376 echo "Type '3' to view the GNU General Public License version 3."
3378 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3379 echo "Type 'yes' to accept this license offer."
3380 echo "Type 'no' to decline this license offer."
3382 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3386 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3388 elif [ "$acceptance" = "no" ]; then
3389 echo "You are not licensed to use this software."
3392 elif [ "$acceptance" = "3" ]; then
3393 more "$relpath/LICENSE.GPL3"
3394 elif [ "$acceptance" = "L" ]; then
3395 more "$relpath/LICENSE.LGPL"
3398 elif [ "$Edition" = "Preview" ]; then
3399 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3402 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3403 echo "You have already accepted the terms of the $LicenseType license."
3406 echo "You are licensed to use this software under the terms of"
3407 echo "the $TheLicense"
3409 echo "Type '?' to read the Preview License."
3410 echo "Type 'yes' to accept this license offer."
3411 echo "Type 'no' to decline this license offer."
3413 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3417 if [ "$acceptance" = "yes" ]; then
3419 elif [ "$acceptance" = "no" ] ;then
3420 echo "You are not licensed to use this software."
3423 elif [ "$acceptance" = "?" ]; then
3424 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3427 elif [ "$Edition" != "OpenSource" ]; then
3428 if [ -n "$ExpiryDate" ]; then
3429 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3430 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3431 Today=`date +%Y%m%d`
3432 if [ "$Today" -gt "$ExpiryDate" ]; then
3433 case "$LicenseType" in
3434 Commercial|Academic|Educational)
3436 echo "WARNING WARNING WARNING WARNING"
3438 echo " Your support and upgrade period has expired."
3440 echo " You may continue to use your last licensed release"
3441 echo " of Qt under the terms of your existing license"
3442 echo " agreement. But you are not entitled to technical"
3443 echo " support, nor are you entitled to use any more recent"
3444 echo " Qt releases."
3446 echo " Please use the contact form at http://qt.digia.com/contact-us"
3447 echo " to renew your support and upgrades for this license."
3449 echo "WARNING WARNING WARNING WARNING"
3455 echo "NOTICE NOTICE NOTICE NOTICE"
3457 echo " Your Evaluation license has expired."
3459 echo " You are no longer licensed to use this software. Please"
3460 echo " use the contact form at http://qt.digia.com/contact-us to"
3461 echo " purchase license, or install the Qt Open Source Edition"
3462 echo " if you intend to develop free software."
3464 echo "NOTICE NOTICE NOTICE NOTICE"
3471 TheLicense=`head -n 1 "$outpath/LICENSE"`
3473 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3474 echo "You have already accepted the terms of the $TheLicense."
3477 echo "You are licensed to use this software under the terms of"
3478 echo "the $TheLicense."
3480 echo "Type '?' to view the $TheLicense."
3481 echo "Type 'yes' to accept this license offer."
3482 echo "Type 'no' to decline this license offer."
3484 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3488 if [ "$acceptance" = "yes" ]; then
3490 elif [ "$acceptance" = "no" ]; then
3491 echo "You are not licensed to use this software."
3494 else [ "$acceptance" = "?" ]
3495 more "$outpath/LICENSE"
3500 # this should be moved somewhere else
3503 AIX_VERSION=`uname -v`
3504 if [ "$AIX_VERSION" -lt "5" ]; then
3505 QMakeVar add QMAKE_LIBS_X11 -lbind
3512 #-------------------------------------------------------------------------------
3513 # generate qconfig.cpp
3514 #-------------------------------------------------------------------------------
3515 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3517 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3519 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3520 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3522 /* Installation date */
3523 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3525 /* Installation Info */
3526 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3527 "qt_prfxpath=$QT_INSTALL_PREFIX",
3528 "qt_docspath=$QT_INSTALL_DOCS",
3529 "qt_hdrspath=$QT_INSTALL_HEADERS",
3530 "qt_libspath=$QT_INSTALL_LIBS",
3531 "qt_binspath=$QT_INSTALL_BINS",
3532 "qt_plugpath=$QT_INSTALL_PLUGINS",
3533 "qt_impspath=$QT_INSTALL_IMPORTS",
3534 "qt_datapath=$QT_INSTALL_DATA",
3535 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3536 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3537 "qt_tstspath=$QT_INSTALL_TESTS",
3538 #ifdef QT_BUILD_QMAKE
3539 "qt_ssrtpath=$CFG_SYSROOT",
3540 "qt_hpfxpath=$QT_HOST_PREFIX",
3541 "qt_hbinpath=$QT_HOST_BINS",
3542 "qt_hdatpath=$QT_HOST_DATA",
3545 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3548 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3550 /* strlen( "qt_lcnsxxxx" ) == 12 */
3551 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3552 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3554 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3557 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3558 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3559 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3561 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3562 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3563 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3566 # -----------------------------------------------------------------------------
3567 if [ "$LicenseType" = "Evaluation" ]; then
3568 EVALKEY=qt_qevalkey=$LicenseKeyExt
3569 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3570 EVALKEY=qt_qevalkey=
3573 if [ -n "$EVALKEY" ]; then
3574 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3575 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3576 /* Evaluation license key */
3577 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3579 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3583 # -----------------------------------------------------------------------------
3585 # -----------------------------------------------------------------------------
3588 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3589 "$outpath/bin/syncqt" -minimal -module QtCore "$relpath" || exit 1
3592 # $1: input variable name (awk regexp)
3593 # $2: optional output variable name
3594 # $3: optional value transformation (sed command)
3595 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3596 # is where the resulting variable is written to
3597 setBootstrapVariable()
3599 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3603 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3604 echo "Creating qmake. Please wait..."
3606 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3607 rm -rf mkspecs/default mkspecs/default-host
3608 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3609 ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3610 mkdir -p "$outpath/qmake" || exit
3612 for mkfile in GNUmakefile Makefile; do
3615 in_mkfile="${mkfile}.in"
3616 if [ "$mkfile" = "Makefile" ]; then
3617 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3618 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3620 in_mkfile="${mkfile}.unix"
3622 in_mkfile="$relpath/qmake/$in_mkfile"
3623 mkfile="$outpath/qmake/$mkfile"
3624 if [ -f "$mkfile" ]; then
3625 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3628 [ -f "$in_mkfile" ] || continue
3630 echo "########################################################################" > "$mkfile"
3631 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3632 echo "########################################################################" >> "$mkfile"
3635 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3636 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3637 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3639 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3640 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3643 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3644 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3645 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3646 setBootstrapVariable QMAKE_CFLAGS
3647 setBootstrapVariable QMAKE_CXXFLAGS
3648 setBootstrapVariable QMAKE_LFLAGS
3650 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3651 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3652 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3654 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3655 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3656 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3657 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3658 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3659 elif [ "$CFG_DEBUG" = "yes" ]; then
3660 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3661 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3662 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3663 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3666 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3667 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3668 for rpath in $RPATH_FLAGS; do
3669 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3672 if [ "$BUILD_ON_MAC" = "yes" ]; then
3673 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3674 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3675 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3676 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3677 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3678 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3679 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3680 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3681 if [ '!' -z "$CFG_SDK" ]; then
3682 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3683 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3684 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3685 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3686 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3689 if [ '!' -z "$D_FLAGS" ]; then
3690 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3692 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3693 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3694 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3695 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3697 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3698 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3699 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3700 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3701 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3702 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3703 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3704 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3705 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3706 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3708 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3709 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3710 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3711 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3716 (cd "$outpath/qmake"; "$MAKE") || exit 2
3719 #-------------------------------------------------------------------------------
3720 # create a qt.conf for the Qt build tree itself
3721 #-------------------------------------------------------------------------------
3723 QTCONFFILE="$outpath/bin/qt.conf"
3724 cat > "$QTCONFFILE" <<EOF
3729 #-------------------------------------------------------------------------------
3730 # write out device config before we run the test.
3731 #-------------------------------------------------------------------------------
3732 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3733 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3734 rm -f "$DEVICE_VARS_FILE"
3736 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3737 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3740 #-------------------------------------------------------------------------------
3742 #-------------------------------------------------------------------------------
3743 if [ -z "$PKG_CONFIG" ]; then
3744 # See if PKG_CONFIG is set in the mkspec:
3745 PKG_CONFIG="`"$outpath/bin/qmake" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" /dev/null 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`"
3747 if [ -z "$PKG_CONFIG" ]; then
3748 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3751 if [ "$CFG_PKGCONFIG" = "no" ]; then
3753 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3755 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3756 echo >&2 "a correctly setup pkg-config environment!"
3758 elif [ -n "$PKG_CONFIG" ]; then
3759 # found a pkg-config
3760 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3761 # when xcompiling, check environment to see if it's actually usable
3762 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3763 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3764 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3765 if [ -n "$GCC_MACHINE_DUMP" ]; then
3766 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3768 export PKG_CONFIG_LIBDIR
3769 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3770 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3771 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3772 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3773 echo >&2 "Set this variable to the directory that contains target .pc files"
3774 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3775 echo >&2 "use -force-pkg-config to override this test."
3779 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3782 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3783 if [ -n "$CFG_SYSROOT" ]; then
3784 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3785 export PKG_CONFIG_SYSROOT_DIR
3786 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3787 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3788 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3789 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3790 echo >&2 "or use -force-pkg-config to override this test."
3794 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3798 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3799 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3803 if [ -z "$PKG_CONFIG" ]; then
3804 QT_CONFIG="$QT_CONFIG no-pkg-config"
3807 #-------------------------------------------------------------------------------
3808 # tests that need qmake
3809 #-------------------------------------------------------------------------------
3811 # parameters: path, name, extra args
3814 path=config.tests/$1
3817 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_SDK_FLAG "$@"
3820 #-------------------------------------------------------------------------------
3821 # determine the target and host architectures
3822 #-------------------------------------------------------------------------------
3824 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3825 OUTFILE=$outpath/arch.result
3826 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_SDK_FLAG
3827 if [ $? -eq 0 ]; then
3828 eval `cat "$OUTFILE"`
3831 echo "Could not determine the target architecture!"
3832 echo "Turn on verbose messaging (-v) to see the final report."
3834 rm -f "$OUTFILE" 2>/dev/null
3835 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3837 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3838 # Do the same test again, using the host compiler
3839 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_SDK_FLAG
3840 if [ $? -eq 0 ]; then
3841 eval `cat "$OUTFILE"`
3844 echo "Could not determine the host architecture!"
3845 echo "Turn on verbose messaging (-v) to see the final report."
3847 rm -f "$OUTFILE" 2>/dev/null
3848 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3850 # not cross compiling, host == target
3851 CFG_HOST_ARCH="$CFG_ARCH"
3852 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3856 if [ "$OPT_VERBOSE" = "yes" ]; then
3857 echo "System architecture: '$CFG_ARCH'"
3858 echo "Host architecture: '$CFG_HOST_ARCH'"
3861 #-------------------------------------------------------------------------------
3862 # functionality tests
3863 #-------------------------------------------------------------------------------
3865 # Detect C++11 support
3866 if [ "$CFG_CXX11" != "no" ]; then
3867 if compileTest common/c++11 "C++11"; then
3869 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3870 echo "C++11 support cannot be enabled due to functionality tests!"
3871 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3872 echo " If you believe this message is in error you may use the continue"
3873 echo " switch (-continue) to $0 to continue."
3880 # detect availability of float math.h functions
3881 if compileTest unix/floatmath "floatmath"; then
3882 CFG_USE_FLOATMATH=yes
3884 CFG_USE_FLOATMATH=no
3887 # detect sse2 support
3888 if [ "${CFG_SSE2}" = "auto" ]; then
3889 if compileTest common/sse2 "sse2"; then
3896 # detect sse3 support
3897 if [ "${CFG_SSE3}" = "auto" ]; then
3898 if compileTest common/sse3 "sse3"; then
3905 # detect ssse3 support
3906 if [ "${CFG_SSSE3}" = "auto" ]; then
3907 if compileTest common/ssse3 "ssse3"; then
3914 # detect sse4.1 support
3915 if [ "${CFG_SSE4_1}" = "auto" ]; then
3916 if compileTest common/sse4_1 "sse4_1"; then
3923 # detect sse4.2 support
3924 if [ "${CFG_SSE4_2}" = "auto" ]; then
3925 if compileTest common/sse4_2 "sse4_2"; then
3932 # detect avx support
3933 if [ "${CFG_AVX}" = "auto" ]; then
3934 if compileTest common/avx "avx"; then
3935 case "$XQMAKESPEC" in
3937 # Some clang versions produce internal compiler errors compiling Qt AVX code
3938 case `$TEST_COMPILER --version` in
3939 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3941 if [ "$OPT_VERBOSE" = "yes" ]; then
3942 echo 'AVX support disabled for blacklisted clang compiler'
3959 # detect avx2 support
3960 if [ "${CFG_AVX}" = "no" ]; then
3963 if [ "${CFG_AVX2}" = "auto" ]; then
3964 if compileTest common/avx2 "avx2"; then
3971 # check iWMMXt support
3972 if [ "$CFG_IWMMXT" = "yes" ]; then
3973 compileTest unix/iwmmxt "iwmmxt"
3974 if [ $? != "0" ]; then
3975 echo "The iWMMXt functionality test failed!"
3976 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3981 # detect neon support
3982 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3983 if compileTest unix/neon "neon"; then
3988 elif [ "$CFG_ARCH" != "arm" ]; then
3992 # detect mips_dsp support
3993 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
3994 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
3999 elif [ "$CFG_ARCH" != "mips" ]; then
4003 # detect mips_dspr2 support
4004 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
4005 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
4010 elif [ "$CFG_ARCH" != "mips" ]; then
4014 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
4017 if [ "$CFG_ZLIB" = "no" ]; then
4018 # Note: Qt no longer support builds without zlib
4019 # So we force a "no" to be "auto" here.
4020 # If you REALLY really need no zlib support, you can still disable
4021 # it by doing the following:
4022 # add "no-zlib" to mkspecs/qconfig.pri
4023 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4025 # There's no guarantee that Qt will build under those conditions
4031 if [ "$XPLATFORM_QNX" = "yes" ]; then
4032 if [ "$CFG_SLOG2" != "no" ]; then
4033 if compileTest unix/slog2 "slog2"; then
4035 QMAKE_CONFIG="$QMAKE_CONFIG slog2"
4042 if [ "$CFG_ZLIB" = "auto" ]; then
4043 if compileTest unix/zlib "zlib"; then
4050 if [ "$CFG_LARGEFILE" = "auto" ]; then
4051 #Large files should be enabled for all Linux systems
4055 if [ "$CFG_GUI" = "no" ]; then
4056 QPA_PLATFORM_GUARD=no
4059 # detect how jpeg should be built
4060 if [ "$CFG_JPEG" = "auto" ]; then
4061 if [ "$CFG_SHARED" = "yes" ]; then
4068 if [ "$CFG_LIBJPEG" = "auto" ]; then
4069 if compileTest unix/libjpeg "libjpeg"; then
4076 # detect how gif should be built
4077 if [ "$CFG_GIF" = "auto" ]; then
4078 if [ "$CFG_SHARED" = "yes" ]; then
4086 if [ "$CFG_LIBPNG" = "auto" ]; then
4087 if compileTest unix/libpng "libpng"; then
4094 if [ "$CFG_EGLFS" = "yes" ]; then
4095 if [ "$CFG_EGL" = "no" ]; then
4096 echo "The EGLFS plugin requires EGL support and cannot be built"
4099 if [ "$CFG_OPENGL" != "es2" ]; then
4100 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4107 if [ "$CFG_KMS" = "yes" ]; then
4108 if [ "$CFG_EGL" = "no" ]; then
4109 echo "The KMS plugin requires EGL support and cannot be built"
4112 if [ "$CFG_OPENGL" != "es2" ]; then
4113 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4118 # auto-detect SQL-modules support
4119 for _SQLDR in $CFG_SQL_AVAILABLE; do
4122 if [ "$CFG_SQL_mysql" != "no" ]; then
4123 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4124 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4125 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4126 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4127 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4128 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4129 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4131 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4132 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4133 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4134 echo " You need MySql 4 or higher."
4135 echo " If you believe this message is in error you may use the continue"
4136 echo " switch (-continue) to $0 to continue."
4141 QT_LFLAGS_MYSQL_R=""
4145 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4146 QMakeVar add CONFIG use_libmysqlclient_r
4147 if [ "$CFG_SQL_mysql" = "auto" ]; then
4148 CFG_SQL_mysql=plugin
4150 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4151 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4152 if [ "$CFG_SQL_mysql" = "auto" ]; then
4153 CFG_SQL_mysql=plugin
4156 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4157 echo "MySQL support cannot be enabled due to functionality tests!"
4158 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4159 echo " If you believe this message is in error you may use the continue"
4160 echo " switch (-continue) to $0 to continue."
4165 QT_LFLAGS_MYSQL_R=""
4173 if [ "$CFG_SQL_psql" != "no" ]; then
4174 # Be careful not to use native pg_config when cross building.
4175 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4176 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4177 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4179 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4180 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4181 # But, respect PSQL_LIBS if set
4182 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4183 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4184 if [ "$CFG_SQL_psql" = "auto" ]; then
4188 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4189 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4190 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4191 echo " If you believe this message is in error you may use the continue"
4192 echo " switch (-continue) to $0 to continue."
4203 if [ "$CFG_SQL_odbc" != "no" ]; then
4204 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4205 if [ "$CFG_SQL_odbc" = "auto" ]; then
4209 if compileTest unix/iodbc "iODBC"; then
4210 QT_LFLAGS_ODBC="-liodbc"
4211 if [ "$CFG_SQL_odbc" = "auto" ]; then
4215 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4216 echo "ODBC support cannot be enabled due to functionality tests!"
4217 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4218 echo " If you believe this message is in error you may use the continue"
4219 echo " switch (-continue) to $0 to continue."
4229 if [ "$CFG_SQL_oci" != "no" ]; then
4230 if compileTest unix/oci "OCI"; then
4231 if [ "$CFG_SQL_oci" = "auto" ]; then
4235 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4236 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4237 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4238 echo " If you believe this message is in error you may use the continue"
4239 echo " switch (-continue) to $0 to continue."
4248 if [ "$CFG_SQL_tds" != "no" ]; then
4249 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4250 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4251 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4252 if [ "$CFG_SQL_tds" = "auto" ]; then
4256 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4257 echo "TDS support cannot be enabled due to functionality tests!"
4258 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4259 echo " If you believe this message is in error you may use the continue"
4260 echo " switch (-continue) to $0 to continue."
4269 if [ "$CFG_SQL_db2" != "no" ]; then
4270 if compileTest unix/db2 "DB2"; then
4271 if [ "$CFG_SQL_db2" = "auto" ]; then
4275 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4276 echo "ODBC support cannot be enabled due to functionality tests!"
4277 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4278 echo " If you believe this message is in error you may use the continue"
4279 echo " switch (-continue) to $0 to continue."
4288 if [ "$CFG_SQL_ibase" != "no" ]; then
4289 if compileTest unix/ibase "InterBase"; then
4290 if [ "$CFG_SQL_ibase" = "auto" ]; then
4291 CFG_SQL_ibase=plugin
4294 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4295 echo "InterBase support cannot be enabled due to functionality tests!"
4296 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4297 echo " If you believe this message is in error you may use the continue"
4298 echo " switch (-continue) to $0 to continue."
4307 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4308 if compileTest unix/sqlite2 "SQLite2"; then
4309 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4310 CFG_SQL_sqlite2=plugin
4313 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4314 echo "SQLite2 support cannot be enabled due to functionality tests!"
4315 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4316 echo " If you believe this message is in error you may use the continue"
4317 echo " switch (-continue) to $0 to continue."
4326 if [ "$CFG_SQL_sqlite" != "no" ]; then
4327 SQLITE_AUTODETECT_FAILED="no"
4328 if [ "$CFG_SQLITE" = "system" ]; then
4329 if [ -n "$PKG_CONFIG" ]; then
4330 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4331 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4334 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4336 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4337 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4338 CFG_SQL_sqlite=plugin
4340 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4342 SQLITE_AUTODETECT_FAILED="yes"
4345 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4346 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4347 CFG_SQL_sqlite=plugin
4350 SQLITE_AUTODETECT_FAILED="yes"
4354 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4355 echo "SQLite support cannot be enabled due to functionality tests!"
4356 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4357 echo " If you believe this message is in error you may use the continue"
4358 echo " switch (-continue) to $0 to continue."
4364 if [ "$OPT_VERBOSE" = "yes" ]; then
4365 echo "unknown SQL driver: $_SQLDR"
4371 # auto-detect NIS support
4372 if [ "$CFG_NIS" != "no" ]; then
4373 if compileTest unix/nis "NIS"; then
4376 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4377 echo "NIS support cannot be enabled due to functionality tests!"
4378 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4379 echo " If you believe this message is in error you may use the continue"
4380 echo " switch (-continue) to $0 to continue."
4388 # auto-detect CUPS support
4389 if [ "$CFG_CUPS" != "no" ]; then
4390 if compileTest unix/cups "Cups"; then
4393 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4394 echo "Cups support cannot be enabled due to functionality tests!"
4395 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4396 echo " If you believe this message is in error you may use the continue"
4397 echo " switch (-continue) to $0 to continue."
4405 # auto-detect iconv(3) support
4406 if [ "$CFG_ICONV" != "no" ]; then
4407 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4409 elif compileTest unix/iconv "POSIX iconv"; then
4411 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4413 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4416 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4417 echo "Iconv support cannot be enabled due to functionality tests!"
4418 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4419 echo " If you believe this message is in error you may use the continue"
4420 echo " switch (-continue) to $0 to continue."
4428 # auto-detect libdbus-1 support
4429 if [ "$CFG_DBUS" != "no" ]; then
4430 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4431 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4432 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4434 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4435 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4436 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4437 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4439 if [ "$CFG_DBUS" = "auto" ]; then
4441 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4442 # CFG_DBUS is "yes" or "linked" here
4444 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4445 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4446 echo " If you believe this message is in error you may use the continue"
4447 echo " switch (-continue) to $0 to continue."
4453 # auto-detect Glib support
4454 if [ "$CFG_GLIB" != "no" ]; then
4455 if [ -n "$PKG_CONFIG" ]; then
4456 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4457 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4459 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4461 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4462 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4464 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4465 echo "Glib support cannot be enabled due to functionality tests!"
4466 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4467 echo " If you believe this message is in error you may use the continue"
4468 echo " switch (-continue) to $0 to continue."
4476 # auto-detect GTK style support
4477 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4478 if [ -n "$PKG_CONFIG" ]; then
4479 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.18 atk 2>/dev/null`
4480 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4482 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4484 QT_CONFIG="$QT_CONFIG gtkstyle"
4485 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4486 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4488 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4489 echo "Gtk theme support cannot be enabled due to functionality tests!"
4490 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4491 echo " If you believe this message is in error you may use the continue"
4492 echo " switch (-continue) to $0 to continue."
4498 elif [ "$CFG_GLIB" = "no" ]; then
4503 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4504 if [ -n "$PKG_CONFIG" ]; then
4505 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4506 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4508 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4510 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4511 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4513 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4514 echo "Gstreamer support cannot be enabled due to functionality tests!"
4515 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4516 echo " If you believe this message is in error you may use the continue"
4517 echo " switch (-continue) to $0 to continue."
4523 elif [ "$CFG_GLIB" = "no" ]; then
4527 # auto-detect libicu support
4528 if [ "$CFG_ICU" != "no" ]; then
4529 if compileTest unix/icu "ICU"; then
4530 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4532 if [ "$CFG_ICU" = "auto" ]; then
4534 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4537 echo "The ICU library support cannot be enabled."
4538 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4539 echo " If you believe this message is in error you may use the continue"
4540 echo " switch (-continue) to $0 to continue."
4546 # Auto-detect PulseAudio support
4547 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4548 if [ -n "$PKG_CONFIG" ]; then
4549 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4550 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4552 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4554 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4555 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4557 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4558 echo "PulseAudio support cannot be enabled due to functionality tests!"
4559 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4560 echo " If you believe this message is in error you may use the continue"
4561 echo " switch (-continue) to $0 to continue."
4570 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4571 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4572 if [ "$CFG_GUI" = "no" ]; then
4573 if [ "$CFG_OPENGL" = "auto" ]; then
4576 if [ "$CFG_OPENGL" != "no" ]; then
4577 echo "OpenGL enabled, but GUI disabled."
4578 echo " You might need to either enable the GUI or disable OpenGL"
4582 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4583 if compileTest x11/opengl "OpenGL"; then
4585 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4588 if [ "$CFG_OPENGL" = "yes" ]; then
4589 echo "All the OpenGL functionality tests failed!"
4590 echo " You might need to modify the include and library search paths by editing"
4591 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4592 echo " ${XQMAKESPEC}."
4599 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4600 if [ "$CFG_OPENGL" = "desktop" ]; then
4601 compileTest x11/glxfbconfig "OpenGL"
4602 if [ $? != "0" ]; then
4603 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4610 elif [ "$CFG_OPENGL" = "es2" ]; then
4612 compileTest unix/opengles2 "OpenGL ES 2.x"
4613 if [ $? != "0" ]; then
4614 echo "The OpenGL ES 2.0 functionality test failed!"
4615 echo " You might need to modify the include and library search paths by editing"
4616 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4617 echo " ${XQMAKESPEC}."
4620 elif [ "$CFG_OPENGL" = "desktop" ]; then
4621 # Desktop OpenGL support
4622 compileTest x11/opengl "OpenGL"
4623 if [ $? != "0" ]; then
4624 echo "The OpenGL functionality test failed!"
4625 echo " You might need to modify the include and library search paths by editing"
4626 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4627 echo " ${XQMAKESPEC}."
4632 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4633 compileTest x11/glxfbconfig "OpenGL"
4634 if [ $? != "0" ]; then
4635 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4642 fi # X11/MINGW OpenGL
4644 if [ "$BUILD_ON_MAC" = "yes" ]; then
4645 if [ "$CFG_COREWLAN" = "auto" ]; then
4646 if compileTest mac/corewlan "CoreWlan"; then
4654 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4655 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4656 if compileTest unix/opengldesktop "OpenGL"; then
4658 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4661 if [ "$CFG_OPENGL" = "yes" ]; then
4662 echo "All the OpenGL functionality tests failed!"
4663 echo " You might need to modify the include and library search paths by editing"
4664 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4665 echo " ${XQMAKESPEC}."
4670 elif [ "$CFG_OPENGL" = "es2" ]; then
4672 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4673 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4674 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4675 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4676 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4677 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4678 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4679 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4682 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4683 if [ $? != "0" ]; then
4684 echo "The OpenGL ES 2.0 functionality test failed!"
4685 echo " You might need to modify the include and library search paths by editing"
4686 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4687 echo " ${XQMAKESPEC}."
4690 elif [ "$CFG_OPENGL" = "desktop" ]; then
4691 # Desktop OpenGL support
4692 compileTest unix/opengldesktop "OpenGL"
4693 if [ $? != "0" ]; then
4694 echo "The OpenGL functionality test failed!"
4695 echo " You might need to modify the include and library search paths by editing"
4696 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4697 echo " ${XQMAKESPEC}."
4702 # auto-detect FontConfig support
4703 if [ "$CFG_FONTCONFIG" != "no" ]; then
4704 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4705 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4706 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4708 QT_CFLAGS_FONTCONFIG=
4709 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4711 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4712 QT_CONFIG="$QT_CONFIG fontconfig"
4713 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4714 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4716 CFG_LIBFREETYPE=system
4723 # Save these for a check later
4724 ORIG_CFG_XCB="$CFG_XCB"
4725 ORIG_CFG_EGLFS="$CFG_EGLFS"
4726 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4727 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4728 ORIG_CFG_KMS="$CFG_KMS"
4730 if [ "$CFG_LIBUDEV" != "no" ]; then
4731 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4732 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4733 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4734 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4735 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4737 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4739 QT_CONFIG="$QT_CONFIG libudev"
4740 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4741 echo "The libudev functionality test failed!"
4747 if [ "$CFG_LIBUDEV" = "no" ]; then
4748 QMakeVar add DEFINES QT_NO_LIBUDEV
4751 if [ "$CFG_EVDEV" != "no" ]; then
4752 if compileTest unix/evdev "evdev"; then
4754 QT_CONFIG="$QT_CONFIG evdev"
4755 elif [ "$CFG_EVDEV" = "yes" ]; then
4756 echo "The evdev functionality test failed!"
4762 if [ "$CFG_EVDEV" = "no" ]; then
4763 QMakeVar add DEFINES QT_NO_EVDEV
4766 # Check we actually have X11 :-)
4767 if compileTest x11/xlib "XLib"; then
4768 QT_CONFIG="$QT_CONFIG xlib"
4771 # auto-detect Xrender support
4772 if [ "$CFG_XRENDER" != "no" ]; then
4773 if compileTest x11/xrender "Xrender"; then
4775 QT_CONFIG="$QT_CONFIG xrender"
4777 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4778 echo "Xrender support cannot be enabled due to functionality tests!"
4779 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4780 echo " If you believe this message is in error you may use the continue"
4781 echo " switch (-continue) to $0 to continue."
4789 if [ "$CFG_XCB" != "no" ]; then
4790 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4791 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4792 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4794 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4796 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4797 QT_CONFIG="$QT_CONFIG xcb-render"
4800 if compileTest qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4802 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4805 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4806 QT_CONFIG="$QT_CONFIG xcb-xlib"
4809 # auto-detect XInput2 support. Needed by xcb too.
4810 if [ "$CFG_XINPUT2" != "no" ]; then
4811 if compileTest x11/xinput2 "XInput2"; then
4815 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4816 echo "XInput2 support cannot be enabled due to functionality tests!"
4817 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4818 echo " If you believe this message is in error you may use the continue"
4819 echo " switch (-continue) to $0 to continue."
4827 if [ "$CFG_XCB" = "yes" ]; then
4828 echo "The XCB test failed!"
4829 echo " You might need to install dependency packages."
4830 echo " See src/plugins/platforms/xcb/README."
4836 if [ "$CFG_XCB" = "no" ]; then
4837 QMakeVar add DEFINES QT_NO_XCB
4840 if [ "$CFG_DIRECTFB" != "no" ]; then
4841 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4842 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4843 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4844 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4846 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4847 echo " DirectFB support cannot be enabled due to functionality tests!"
4848 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4849 echo " If you believe this message is in error you may use the continue"
4850 echo " switch (-continue) to $0 to continue."
4860 if [ "$CFG_LINUXFB" != "no" ]; then
4861 if compileTest qpa/linuxfb "LinuxFB"; then
4863 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4864 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4865 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4866 echo " If you believe this message is in error you may use the continue"
4867 echo " switch (-continue) to $0 to continue."
4874 if [ "$CFG_KMS" != "no" ]; then
4875 if compileTest qpa/kms "KMS"; then
4877 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4878 echo " KMS support cannot be enabled due to functionality tests!"
4879 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4880 echo " If you believe this message is in error you may use the continue"
4881 echo " switch (-continue) to $0 to continue."
4888 # Detect libxkbcommon
4889 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4890 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4891 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4892 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4893 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4895 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4899 if [ "$CFG_EGL" != "no" ]; then
4900 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4901 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4902 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4903 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4904 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4905 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4906 fi # detect EGL support
4907 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4909 elif [ "$CFG_EGL" = "yes" ]; then
4910 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4911 echo " You might need to modify the include and library search paths by editing"
4912 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4917 elif [ "$CFG_OPENGL" = "desktop" ]; then
4918 if [ "$CFG_EGL" = "yes" ]; then
4919 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4920 echo "Either disable EGL support or enable OpenGL ES support."
4926 if [ "$CFG_EGLFS" != "no" ]; then
4927 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4928 CFG_EGLFS="$CFG_EGL"
4934 if [ "$CFG_KMS" = "yes" ]; then
4935 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4942 # Detect accessibility support
4943 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4944 if [ "$CFG_XCB" = "no" ]; then
4945 CFG_ACCESSIBILITY=yes
4947 # linux/xcb accessibility needs dbus and atspi-2
4948 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "atspi-2" 2>/dev/null; then
4949 CFG_ACCESSIBILITY=yes
4951 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4952 CFG_ACCESSIBILITY=no
4954 echo "Accessibility support needs pkg-config and libatspi2."
4961 # Determine the default QPA platform
4962 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4964 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4965 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4966 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4967 QT_QPA_DEFAULT_PLATFORM="windows"
4968 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4969 QT_QPA_DEFAULT_PLATFORM="cocoa"
4970 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4971 QT_QPA_DEFAULT_PLATFORM="qnx"
4973 QT_QPA_DEFAULT_PLATFORM="xcb"
4978 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4979 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4980 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4981 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4983 if [ "$CFG_DIRECTFB" = "yes" ]; then
4984 QT_CONFIG="$QT_CONFIG directfb"
4985 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4986 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4988 if [ "$CFG_LINUXFB" = "yes" ]; then
4989 QT_CONFIG="$QT_CONFIG linuxfb"
4991 if [ "$CFG_KMS" = "yes" ]; then
4992 QT_CONFIG="$QT_CONFIG kms"
4995 if [ "$BUILD_ON_MAC" = "yes" ]; then
4996 if compileTest mac/coreservices "CoreServices"; then
4997 QT_CONFIG="$QT_CONFIG coreservices"
4999 QMakeVar add DEFINES QT_NO_CORESERVICES
5003 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
5004 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
5005 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
5006 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
5007 echo "No QPA platform plugin enabled!"
5008 echo " If you really want to build without a QPA platform plugin you must pass"
5009 echo " -no-qpa-platform-guard to configure. Doing this will"
5010 echo " produce a Qt that can not run GUI applications."
5011 echo " The dependencies needed for xcb to build are listed in"
5012 echo " src/plugins/platforms/xcb/README"
5019 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
5020 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
5021 if compileTest unix/freetype "FreeType"; then
5022 CFG_LIBFREETYPE=system
5028 if ! compileTest unix/stl "STL" &&
5029 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5030 echo "STL functionality check failed! Cannot build Qt with this STL library."
5031 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5036 # detect POSIX clock_gettime()
5037 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5038 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
5039 CFG_CLOCK_GETTIME=yes
5041 CFG_CLOCK_GETTIME=no
5045 # detect POSIX monotonic clocks
5046 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5047 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5048 CFG_CLOCK_MONOTONIC=yes
5050 CFG_CLOCK_MONOTONIC=no
5052 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5053 CFG_CLOCK_MONOTONIC=no
5057 if [ "$CFG_MREMAP" = "auto" ]; then
5058 if compileTest unix/mremap "mremap"; then
5065 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5066 if [ "$CFG_GETADDRINFO" != "no" ]; then
5067 if compileTest unix/getaddrinfo "getaddrinfo"; then
5070 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5071 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5072 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5073 echo " If you believe this message is in error you may use the continue"
5074 echo " switch (-continue) to $0 to continue."
5082 # find if the platform provides inotify
5083 if [ "$CFG_INOTIFY" != "no" ]; then
5084 if compileTest unix/inotify "inotify"; then
5087 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5088 echo "inotify support cannot be enabled due to functionality tests!"
5089 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5090 echo " If you believe this message is in error you may use the continue"
5091 echo " switch (-continue) to $0 to continue."
5099 # find if the platform provides if_nametoindex (ipv6 interface name support)
5100 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5101 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5104 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5105 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5106 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5107 echo " If you believe this message is in error you may use the continue"
5108 echo " switch (-continue) to $0 to continue."
5116 # find if the platform provides getifaddrs (network interface enumeration)
5117 if [ "$CFG_GETIFADDRS" != "no" ]; then
5118 if compileTest unix/getifaddrs "getifaddrs"; then
5121 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5122 echo "getifaddrs support cannot be enabled due to functionality tests!"
5123 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5124 echo " If you believe this message is in error you may use the continue"
5125 echo " switch (-continue) to $0 to continue."
5134 if [ "$CFG_OPENSSL" != "no" ]; then
5135 if compileTest unix/openssl "OpenSSL"; then
5136 if [ "$CFG_OPENSSL" = "auto" ]; then
5140 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5141 echo "OpenSSL support cannot be enabled due to functionality tests!"
5142 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5143 echo " If you believe this message is in error you may use the continue"
5144 echo " switch (-continue) to $0 to continue."
5153 if [ "$CFG_PCRE" != "qt" ]; then
5154 if compileTest unix/pcre "PCRE"; then
5157 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5158 echo "PCRE support cannot be enabled due to functionality tests!"
5159 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5160 echo " If you believe this message is in error you may use the continue"
5161 echo " switch (-continue) to $0 to continue."
5169 # detect OpenVG support
5170 if [ "$CFG_OPENVG" != "no" ]; then
5171 if compileTest unix/openvg "OpenVG"; then
5172 if [ "$CFG_OPENVG" = "auto" ]; then
5175 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5176 if [ "$CFG_OPENVG" = "auto" ]; then
5179 CFG_OPENVG_ON_OPENGL=yes
5180 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5181 if [ "$CFG_OPENVG" = "auto" ]; then
5184 CFG_OPENVG_LC_INCLUDES=yes
5185 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5186 if [ "$CFG_OPENVG" = "auto" ]; then
5189 CFG_OPENVG_LC_INCLUDES=yes
5190 CFG_OPENVG_ON_OPENGL=yes
5192 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5193 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5194 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5195 echo " If you believe this message is in error you may use the continue"
5196 echo " switch (-continue) to $0 to continue."
5202 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5203 CFG_OPENVG_SHIVA=yes
5207 if [ "$CFG_ALSA" = "auto" ]; then
5208 if compileTest unix/alsa "alsa"; then
5215 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5216 if [ "$CFG_ARCH" = "arm" ]; then
5217 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5218 if [ $? != "0" ]; then
5219 CFG_JAVASCRIPTCORE_JIT=no
5222 case "$XPLATFORM" in
5224 CFG_JAVASCRIPTCORE_JIT=no
5230 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5231 QMakeVar set JAVASCRIPTCORE_JIT yes
5232 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5233 QMakeVar set JAVASCRIPTCORE_JIT no
5236 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5237 CFG_AUDIO_BACKEND=yes
5240 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5241 echo "Warning: largefile support cannot be disabled for win32."
5245 #-------------------------------------------------------------------------------
5246 # ask for all that hasn't been auto-detected or specified in the arguments
5247 #-------------------------------------------------------------------------------
5249 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5251 # disable accessibility
5252 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5253 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5255 QT_CONFIG="$QT_CONFIG accessibility"
5259 if [ "$CFG_EGL" = "yes" ]; then
5260 QT_CONFIG="$QT_CONFIG egl"
5262 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5266 if [ "$CFG_EGLFS" = "yes" ]; then
5267 QT_CONFIG="$QT_CONFIG eglfs"
5269 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5273 if [ "$CFG_OPENVG" = "no" ]; then
5274 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5276 QT_CONFIG="$QT_CONFIG openvg"
5277 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5278 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5280 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5281 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5283 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5284 QT_CONFIG="$QT_CONFIG shivavg"
5285 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5290 if [ "$CFG_OPENGL" = "no" ]; then
5291 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5293 QT_CONFIG="$QT_CONFIG opengl"
5296 if [ "$CFG_OPENGL" = "es2" ]; then
5297 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5300 if [ "$CFG_OPENGL" = "es2" ]; then
5301 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5302 QT_CONFIG="$QT_CONFIG opengles2"
5305 # build up the variables for output
5306 if [ "$CFG_DEBUG" = "yes" ]; then
5307 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5308 elif [ "$CFG_DEBUG" = "no" ]; then
5309 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5311 if [ "$CFG_SHARED" = "yes" ]; then
5312 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5313 QT_CONFIG="$QT_CONFIG shared"
5314 elif [ "$CFG_SHARED" = "no" ]; then
5315 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5316 QT_CONFIG="$QT_CONFIG static"
5319 #FIXME: qpa is implicit this should all be removed
5320 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5321 QT_CONFIG="$QT_CONFIG qpa"
5322 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5323 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5325 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5326 # Do not set this here for Windows. Let qmake do it so
5327 # debug and release precompiled headers are kept separate.
5328 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5330 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5331 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5332 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5333 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5334 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5335 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5337 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5338 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5340 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5341 [ "$CFG_STACK_PROTECTOR_STRONG" = "yes" ] && QT_CONFIG="$QT_CONFIG stack-protector-strong"
5342 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5343 [ "$CFG_STRIP" = "no" ] && QMAKE_CONFIG="$QMAKE_CONFIG nostrip"
5344 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5345 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5346 QMakeVar add QMAKE_CFLAGS -g
5347 QMakeVar add QMAKE_CXXFLAGS -g
5348 QT_CONFIG="$QT_CONFIG separate_debug_info"
5350 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5351 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5353 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5354 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5355 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5356 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5357 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5358 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5359 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5360 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5361 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5362 if [ "$CFG_ARCH" = "mips" ]; then
5363 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5364 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5366 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5367 QT_CONFIG="$QT_CONFIG clock-gettime"
5369 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5370 QT_CONFIG="$QT_CONFIG clock-monotonic"
5372 if [ "$CFG_MREMAP" = "yes" ]; then
5373 QT_CONFIG="$QT_CONFIG mremap"
5375 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5376 QT_CONFIG="$QT_CONFIG getaddrinfo"
5378 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5379 QT_CONFIG="$QT_CONFIG ipv6ifname"
5381 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5382 QT_CONFIG="$QT_CONFIG getifaddrs"
5384 if [ "$CFG_INOTIFY" = "yes" ]; then
5385 QT_CONFIG="$QT_CONFIG inotify"
5387 if [ "$CFG_LIBJPEG" = "no" ]; then
5389 elif [ "$CFG_LIBJPEG" = "system" ]; then
5390 QT_CONFIG="$QT_CONFIG system-jpeg"
5392 if [ "$CFG_JPEG" = "no" ]; then
5393 QT_CONFIG="$QT_CONFIG no-jpeg"
5394 elif [ "$CFG_JPEG" = "yes" ]; then
5395 QT_CONFIG="$QT_CONFIG jpeg"
5397 if [ "$CFG_LIBPNG" = "no" ]; then
5400 if [ "$CFG_LIBPNG" = "system" ]; then
5401 QT_CONFIG="$QT_CONFIG system-png"
5403 if [ "$CFG_PNG" = "no" ]; then
5404 QT_CONFIG="$QT_CONFIG no-png"
5405 elif [ "$CFG_PNG" = "yes" ]; then
5406 QT_CONFIG="$QT_CONFIG png"
5408 if [ "$CFG_GIF" = "no" ]; then
5409 QT_CONFIG="$QT_CONFIG no-gif"
5410 elif [ "$CFG_GIF" = "yes" ]; then
5411 QT_CONFIG="$QT_CONFIG gif"
5413 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5414 QT_CONFIG="$QT_CONFIG no-freetype"
5415 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5416 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5417 QT_CONFIG="$QT_CONFIG system-freetype"
5419 QT_CONFIG="$QT_CONFIG freetype"
5421 if [ "$CFG_GUI" = "auto" ]; then
5424 if [ "$CFG_GUI" = "no" ]; then
5425 QT_CONFIG="$QT_CONFIG no-gui"
5428 if [ "$CFG_WIDGETS" = "no" ]; then
5429 QT_CONFIG="$QT_CONFIG no-widgets"
5430 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5433 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5434 #On Mac we implicitly link against libz, so we
5435 #never use the 3rdparty stuff.
5436 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5438 if [ "$CFG_ZLIB" = "yes" ]; then
5439 QT_CONFIG="$QT_CONFIG zlib"
5440 elif [ "$CFG_ZLIB" = "system" ]; then
5441 QT_CONFIG="$QT_CONFIG system-zlib"
5444 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5445 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5446 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5447 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5448 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5449 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5450 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5451 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5452 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5453 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5454 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5455 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5456 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5457 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5459 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5460 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5462 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5463 if [ "$CFG_RPATH" = "yes" ]; then
5464 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5466 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5467 if [ -n "$RPATH_FLAGS" ]; then
5469 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5473 elif [ "$CFG_RPATH" = "yes" ]; then
5474 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5478 if [ -n "$RPATH_FLAGS" ]; then
5479 # add the user defined rpaths
5480 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5483 if [ "$CFG_RPATH" = "yes" ]; then
5484 QT_CONFIG="$QT_CONFIG rpath"
5487 if [ '!' -z "$I_FLAGS" ]; then
5488 # add the user define include paths
5489 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5490 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5493 if [ '!' -z "$W_FLAGS" ]; then
5494 # add the user defined warning flags
5495 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5496 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5497 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5500 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5501 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5502 # Follow default behavior of configure.exe by overriding with "rtti".
5503 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5506 if [ "$CFG_ALSA" = "yes" ]; then
5507 QT_CONFIG="$QT_CONFIG alsa"
5510 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5511 QT_CONFIG="$QT_CONFIG pulseaudio"
5514 if [ "$CFG_COREWLAN" = "yes" ]; then
5515 QT_CONFIG="$QT_CONFIG corewlan"
5518 if [ "$CFG_ICU" = "yes" ]; then
5519 QT_CONFIG="$QT_CONFIG icu"
5522 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5523 QT_CONFIG="$QT_CONFIG force_asserts"
5526 if [ "$CFG_PCRE" = "qt" ]; then
5527 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5531 # Some Qt modules are too advanced in C++ for some old compilers
5532 # Detect here the platforms where they are known to work.
5534 # See Qt documentation for more information on which features are
5535 # supported and on which compilers.
5537 canBuildQtConcurrent="yes"
5538 canUseV8Snapshot="yes"
5540 case "$XPLATFORM" in
5542 # PA-RISC's assembly is too limited
5543 # gcc 3.4 on that platform can't build QtXmlPatterns
5544 # the assembly it generates cannot be compiled
5546 # Check gcc's version
5547 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5551 canBuildQtXmlPatterns="no"
5555 canBuildQtXmlPatterns="no"
5559 unsupported/vxworks-*-g++*)
5562 unsupported/vxworks-*-dcc*)
5564 canBuildQtXmlPatterns="no"
5567 # Check gcc's version
5568 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5576 canBuildQtXmlPatterns="no"
5581 # Check the compiler version
5582 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5585 canBuildQtXmlPatterns="no"
5586 canBuildQtConcurrent="no"
5590 canBuildQtConcurrent="no"
5596 canBuildQtXmlPatterns="no"
5597 canBuildQtConcurrent="no"
5603 # Get the xlC version
5604 cat > xlcver.c <<EOF
5608 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5613 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5614 xlcver=`./xlcver 2>/dev/null`
5617 if [ "$OPT_VERBOSE" = "yes" ]; then
5618 if [ -n "$xlcver" ]; then
5619 echo Found IBM xlC version: $xlcver.
5621 echo Could not determine IBM xlC version, assuming oldest supported.
5628 canBuildQtXmlPatterns="no"
5629 canBuildQtConcurrent="no"
5633 canBuildQtConcurrent="no"
5639 canBuildQtConcurrent="no"
5643 if [ "$CFG_GUI" = "no" ]; then
5644 # WebKit requires QtGui
5648 if [ "$CFG_SHARED" = "no" ]; then
5650 echo "WARNING: Using static linking will disable the WebKit module."
5655 CFG_CONCURRENT="yes"
5656 if [ "$canBuildQtConcurrent" = "no" ]; then
5657 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5660 QT_CONFIG="$QT_CONFIG concurrent"
5664 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5665 QT_CONFIG="$QT_CONFIG audio-backend"
5669 if [ "$CFG_WEBKIT" = "debug" ]; then
5670 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5674 QT_CONFIG="$QT_CONFIG v8"
5675 # Detect snapshot support
5676 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5677 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5680 *) canUseV8Snapshot="no"
5684 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5685 # QEMU crashes when building inside Scratchbox with an ARM target
5686 canUseV8Snapshot="no"
5689 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5690 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5692 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5693 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5696 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5697 QT_CONFIG="$QT_CONFIG v8snapshot"
5701 if [ "$CFG_QML_DEBUG" = "no" ]; then
5702 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5705 case "$QMAKE_CONF_COMPILER" in
5708 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5710 case "$COMPILER_VERSION" in
5712 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5713 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5714 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5717 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5718 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5719 QT_GCC_PATCH_VERSION=0
5729 #-------------------------------------------------------------------------------
5730 # part of configuration information goes into qconfig.h
5731 #-------------------------------------------------------------------------------
5733 case "$CFG_QCONFIG" in
5735 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5738 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5739 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5740 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5741 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5742 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5743 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5745 echo "#endif" >>"$tmpconfig"
5749 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5753 # define QT_EDITION $QT_EDITION
5757 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5758 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5760 if [ "$CFG_SHARED" = "no" ]; then
5761 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5762 /* Qt was configured for a static build */
5763 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5770 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5771 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5774 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5775 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5778 if [ "$BUILD_ON_MAC" = "yes" ]; then
5779 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5780 #if defined(__LP64__)
5781 # define QT_POINTER_SIZE 8
5783 # define QT_POINTER_SIZE 4
5787 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5788 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5791 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5792 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5793 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5796 # Add compiler sub-architecture support
5797 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5798 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5799 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5801 MIPS_DSP MIPS_DSPR2; do
5802 eval "VAL=\$CFG_$SUBARCH"
5805 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5806 >>"$outpath/src/corelib/global/qconfig.h.new"
5811 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5813 if [ "$CFG_DEV" = "yes" ]; then
5814 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5817 # Add QPA to config.h
5818 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5820 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5821 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5824 # Add turned on SQL drivers
5825 for DRIVER in $CFG_SQL_AVAILABLE; do
5826 eval "VAL=\$CFG_SQL_$DRIVER"
5829 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5830 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5831 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5834 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5839 QMakeVar set sql-drivers "$SQL_DRIVERS"
5840 QMakeVar set sql-plugins "$SQL_PLUGINS"
5842 # Add other configuration options to the qconfig.h file
5843 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5844 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5845 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5846 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5847 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5849 # X11/Unix/Mac only configs
5850 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5851 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5852 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5853 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5854 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5855 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5856 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5857 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5858 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5859 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5860 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5861 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5862 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5863 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5865 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5866 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5867 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5868 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5869 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5870 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5871 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5872 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5873 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5874 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5875 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5876 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5877 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5879 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5880 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5881 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5882 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5883 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5884 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5885 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5886 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5888 # sort QCONFIG_FLAGS for neatness if we can
5889 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5890 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5892 if [ -n "$QCONFIG_FLAGS" ]; then
5893 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5894 #ifndef QT_BOOTSTRAPPED
5897 for cfg in $QCONFIG_FLAGS; do
5898 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5899 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5900 # figure out define logic, so we can output the correct
5901 # ifdefs to override the global defines in a project
5903 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5904 # QT_NO_option can be forcefully turned on by QT_option
5905 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5906 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5907 # QT_option can be forcefully turned off by QT_NO_option
5908 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5911 if [ -z $cfgdNeg ]; then
5912 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5919 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5920 #if defined($cfgd) && defined($cfgdNeg)
5922 #elif !defined($cfgd) && !defined($cfgdNeg)
5929 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5930 #endif // QT_BOOTSTRAPPED
5935 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5936 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5937 #define QT_VISIBILITY_AVAILABLE
5942 if [ -n "$QT_LIBINFIX" ]; then
5943 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5944 #define QT_LIBINFIX "$QT_LIBINFIX"
5949 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5951 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5952 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5953 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5955 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5956 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5957 chmod -w "$outpath/src/corelib/global/qconfig.h"
5958 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5959 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5963 #-------------------------------------------------------------------------------
5964 # save configuration into qconfig.pri
5965 #-------------------------------------------------------------------------------
5966 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5967 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5968 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5969 if [ "$CFG_DEBUG" = "yes" ]; then
5970 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5971 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5972 QT_CONFIG="$QT_CONFIG release"
5974 QT_CONFIG="$QT_CONFIG debug"
5975 elif [ "$CFG_DEBUG" = "no" ]; then
5976 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5977 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5978 QT_CONFIG="$QT_CONFIG debug"
5980 QT_CONFIG="$QT_CONFIG release"
5982 if [ "$CFG_FRAMEWORK" = "no" ]; then
5983 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5985 QT_CONFIG="$QT_CONFIG qt_framework"
5986 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5988 if [ "$CFG_DEV" = "yes" ]; then
5989 QT_CONFIG="$QT_CONFIG private_tests"
5992 cat >>"$QTCONFIG.tmp" <<EOF
5994 CONFIG += $QTCONFIG_CONFIG
5996 QT_HOST_ARCH = $CFG_HOST_ARCH
5997 QT_CPU_FEATURES = $CFG_CPUFEATURES
5998 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5999 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
6000 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
6001 QT_EDITION = $Edition
6002 QT_CONFIG += $QT_CONFIG
6005 QT_VERSION = $QT_VERSION
6006 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
6007 QT_MINOR_VERSION = $QT_MINOR_VERSION
6008 QT_PATCH_VERSION = $QT_PATCH_VERSION
6011 QT_LIBINFIX = $QT_LIBINFIX
6012 QT_NAMESPACE = $QT_NAMESPACE
6016 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
6017 echo "# pkgconfig" >> "$QTCONFIG.tmp"
6018 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
6019 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
6020 echo >> "$QTCONFIG.tmp"
6023 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
6024 echo "# sysroot" >>"$QTCONFIG.tmp"
6025 echo "!host_build {" >>"$QTCONFIG.tmp"
6026 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6027 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6028 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6029 echo "}" >> "$QTCONFIG.tmp"
6030 echo >> "$QTCONFIG.tmp"
6032 if [ -n "$RPATH_FLAGS" ]; then
6033 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
6035 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6036 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6037 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6038 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6041 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6042 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6043 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6046 # replace qconfig.pri if it differs from the newly created temp file
6047 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6048 rm -f "$QTCONFIG.tmp"
6050 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6053 #-------------------------------------------------------------------------------
6054 # save configuration into qmodule.pri
6055 #-------------------------------------------------------------------------------
6056 QTMODULE="$outpath/mkspecs/qmodule.pri"
6058 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
6059 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6061 if [ -n "$QT_CFLAGS_PSQL" ]; then
6062 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6064 if [ -n "$QT_LFLAGS_PSQL" ]; then
6065 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6067 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6068 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6070 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6071 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6073 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6074 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6076 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6077 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6079 if [ -n "$QT_LFLAGS_ODBC" ]; then
6080 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6082 if [ -n "$QT_LFLAGS_TDS" ]; then
6083 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6086 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6087 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6090 #dump in the OPENSSL_LIBS info
6091 if [ '!' -z "$OPENSSL_LIBS" ]; then
6092 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6093 elif [ "$CFG_OPENSSL" = "linked" ]; then
6094 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6097 #dump in the SDK info
6098 if [ '!' -z "$CFG_SDK" ]; then
6099 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6103 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6104 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6106 # replace qmodule.pri if it differs from the newly created temp file
6107 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6108 rm -f "$QTMODULE.tmp"
6110 mv -f "$QTMODULE.tmp" "$QTMODULE"
6113 #-------------------------------------------------------------------------------
6114 # save configuration into .qmake.cache
6115 #-------------------------------------------------------------------------------
6117 CACHEFILE="$outpath/.qmake.cache"
6118 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6119 cat >>"$CACHEFILE.tmp" <<EOF
6121 QT_SOURCE_TREE = \$\$quote($relpath)
6122 QT_BUILD_TREE = \$\$quote($outpath)
6124 include(\$\$PWD/mkspecs/qmodule.pri)
6125 CONFIG += dylib fix_output_dirs no_private_qt_headers_warning QTDIR_build
6129 # replace .qmake.cache if it differs from the newly created temp file
6130 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6131 rm -f "$CACHEFILE.tmp"
6133 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6136 #-------------------------------------------------------------------------------
6137 # give feedback on configuration
6138 #-------------------------------------------------------------------------------
6139 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6142 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6143 echo "Build type: $PLATFORM"
6145 echo "Building on: $PLATFORM"
6146 echo "Building for: $XPLATFORM"
6149 # the missing space before $CFG_FEATURES is intentional
6150 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6151 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6153 if [ -n "$PLATFORM_NOTES" ]; then
6154 echo "Platform notes:"
6155 echo "$PLATFORM_NOTES"
6160 if [ "$OPT_VERBOSE" = "yes" ]; then
6161 echo $ECHO_N "qmake vars .......... $ECHO_C"
6162 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6163 echo "qmake switches ......... $QMAKE_SWITCHES"
6166 echo "Build .................. $CFG_BUILD_PARTS"
6167 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6168 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6169 echo "Debug .................. yes (combined)"
6170 if [ "$CFG_DEBUG" = "yes" ]; then
6171 echo "Default Link ........... debug"
6173 echo "Default Link ........... release"
6176 echo "Debug .................. $CFG_DEBUG"
6178 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6179 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6181 echo "C++11 support .......... $CFG_CXX11"
6182 if [ -n "$PKG_CONFIG" ]; then
6183 echo "pkg-config ............. yes"
6185 echo "pkg-config ............. no"
6187 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6188 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6189 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6190 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6191 echo "QtGui module ........... $CFG_GUI"
6192 echo "QtWidgets module ....... $CFG_WIDGETS"
6193 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6194 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6196 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6198 echo "QML debugging .......... $CFG_QML_DEBUG"
6199 echo "PCH support ............ $CFG_PRECOMPILE"
6200 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6201 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6202 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6203 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6204 elif [ "$CFG_ARCH" = "arm" ]; then
6205 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6206 echo "NEON support ........... ${CFG_NEON}"
6208 if [ "$CFG_ARCH" = "mips" ]; then
6209 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6211 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6212 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6213 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6214 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6215 echo "NIS support ............ $CFG_NIS"
6216 echo "CUPS support ........... $CFG_CUPS"
6217 echo "Iconv support .......... $CFG_ICONV"
6218 echo "Glib support ........... $CFG_GLIB"
6219 echo "GStreamer support ...... $CFG_GSTREAMER"
6220 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6221 echo "Large File support ..... $CFG_LARGEFILE"
6222 echo "GIF support ............ $CFG_GIF"
6223 if [ "$CFG_JPEG" = "no" ]; then
6224 echo "JPEG support ........... $CFG_JPEG"
6226 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6228 if [ "$CFG_PNG" = "no" ]; then
6229 echo "PNG support ............ $CFG_PNG"
6231 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6233 echo "zlib support ........... $CFG_ZLIB"
6234 echo "Session management ..... $CFG_SM"
6235 echo "libudev support ........ $CFG_LIBUDEV"
6237 if [ "$XPLATFORM_QNX" = "yes" ]; then
6238 echo "SLOG2 support .......... $CFG_SLOG2"
6241 if [ "$CFG_OPENGL" = "desktop" ]; then
6242 echo "OpenGL support ......... yes (Desktop OpenGL)"
6243 elif [ "$CFG_OPENGL" = "es2" ]; then
6244 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6246 echo "OpenGL support ......... no"
6249 if [ "$CFG_OPENVG" ]; then
6250 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6251 echo "OpenVG support ......... ShivaVG"
6253 echo "OpenVG support ......... $CFG_OPENVG"
6257 echo "XShape support ......... $CFG_XSHAPE"
6258 echo "XVideo support ......... $CFG_XVIDEO"
6259 echo "XSync support .......... $CFG_XSYNC"
6260 echo "Xinerama support ....... $CFG_XINERAMA"
6261 echo "Xcursor support ........ $CFG_XCURSOR"
6262 echo "Xfixes support ......... $CFG_XFIXES"
6263 echo "Xrandr support ......... $CFG_XRANDR"
6264 echo "Xi support ............. $CFG_XINPUT"
6265 echo "Xi2 support ............ $CFG_XINPUT2"
6266 echo "MIT-SHM support ........ $CFG_MITSHM"
6267 echo "FontConfig support ..... $CFG_FONTCONFIG"
6268 echo "XKB Support ............ $CFG_XKB"
6269 echo "immodule support ....... $CFG_IM"
6270 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6272 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6273 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6274 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6275 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6276 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6277 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6278 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6279 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6280 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6283 if [ "$CFG_OPENSSL" = "yes" ]; then
6284 OPENSSL_LINKAGE="(run-time)"
6285 elif [ "$CFG_OPENSSL" = "linked" ]; then
6286 OPENSSL_LINKAGE="(linked)"
6288 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6289 echo "Alsa support ........... $CFG_ALSA"
6290 if [ "$BUILD_ON_MAC" = "yes" ]; then
6291 echo "CoreWlan support ....... $CFG_COREWLAN"
6293 echo "libICU support ......... $CFG_ICU"
6294 echo "PCRE support ........... $CFG_PCRE"
6295 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6296 echo "Xcb support ............ limited (old version)"
6298 echo "Xcb support ............ $CFG_XCB"
6300 echo "Xrender support ........ $CFG_XRENDER"
6301 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6302 echo "XInput2 support ........ $CFG_XINPUT2"
6304 echo "EGLFS support .......... $CFG_EGLFS"
6305 echo "DirectFB support ....... $CFG_DIRECTFB"
6306 echo "LinuxFB support ........ $CFG_LINUXFB"
6307 echo "KMS support ............ $CFG_KMS"
6310 # complain about not being able to use dynamic plugins if we are using a static build
6311 if [ "$CFG_SHARED" = "no" ]; then
6313 echo "WARNING: Using static linking will disable the use of dynamically"
6314 echo "loaded plugins. Make sure to import all needed static plugins,"
6315 echo "or compile needed modules into the library."
6318 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6320 echo "NOTE: When linking against OpenSSL, you can override the default"
6321 echo "library names through OPENSSL_LIBS."
6323 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6327 exec 1>&3 3>&- # restore stdout
6328 cat $outpath/config.summary # display config feedback to user
6330 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6332 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6333 echo "if you want a pure debug build."
6338 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6343 #-------------------------------------------------------------------------------
6344 # build makefiles based on the configuration
6345 #-------------------------------------------------------------------------------
6347 if [ "$CFG_PROCESS" != "no" ]; then
6349 if [ "$CFG_PROCESS" = "full" ]; then
6350 echo "Creating makefiles. Please wait..."
6351 "$outpath/bin/qmake" -r "$relpath"
6354 "$outpath/bin/qmake" "$relpath"
6357 if [ "$OPT_FAST" = "yes" ]; then
6359 for part in $CFG_BUILD_PARTS; do
6361 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6364 if [ "x$PART_ROOTS" != "x" ]; then
6366 echo "Creating stub makefiles. Please wait..."
6367 QMAKE="$outpath/bin/qmake"
6368 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6369 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6371 test -f "$outpath/$d/Makefile" && continue
6372 echo " for $relpath/$p"
6374 mkdir -p "$outpath/$d" || exit
6375 cat > "$outpath/$d/Makefile" <<EOF || exit
6376 # $outpath/$d/Makefile: generated by configure
6378 # WARNING: This makefile will be replaced with a real makefile.
6379 # All changes made to this file will be lost.
6384 all clean install qmake first Makefile: FORCE
6385 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6395 #-------------------------------------------------------------------------------
6396 # check for platforms that we don't yet know about
6397 #-------------------------------------------------------------------------------
6398 if [ "$CFG_ARCH" = "unknown" ]; then
6401 NOTICE: configure was unable to determine the architecture
6402 for the $XQMAKESPEC target.
6404 Qt will not use a specialized implementation for any atomic
6405 operations. Instead a generic implemention based on either GCC
6406 intrinsics or C++11 std::atomic<T> will be used (when
6407 available). The generic implementations are generally as fast
6408 as and always as safe as a specialized implementation.
6410 If no generic implementation is available, Qt will use a
6411 fallback UNIX implementation which uses a single
6412 pthread_mutex_t to protect all atomic operations. This
6413 implementation is the slow (but safe) fallback implementation
6414 for architectures Qt does not yet support.
6418 #-------------------------------------------------------------------------------
6419 # check if the user passed the -no-zlib option, which is no longer supported
6420 #-------------------------------------------------------------------------------
6421 if [ -n "$ZLIB_FORCED" ]; then
6422 which_zlib="supplied"
6423 if [ "$CFG_ZLIB" = "system" ]; then
6429 NOTICE: The -no-zlib option was supplied but is no longer
6432 Qt now requires zlib support in all builds, so the -no-zlib
6433 option was ignored. Qt will be built using the $which_zlib
6438 #-------------------------------------------------------------------------------
6439 # check if the user passed the obsoleted -wayland or -no-wayland flag
6440 #-------------------------------------------------------------------------------
6441 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6444 NOTICE: The -wayland and -no-wayland flags are now obsolete
6446 All configuring of QtWayland plugin and QtCompositor happens in the module
6450 #-------------------------------------------------------------------------------
6451 # check if the user passed the obsoleted -arch or -host-arch options
6452 #-------------------------------------------------------------------------------
6453 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6456 NOTICE: The -arch and -host-arch options are obsolete.
6458 Qt now detects the target and host architectures based on compiler
6459 output. Qt will be built using $CFG_ARCH for the target architecture
6460 and $CFG_HOST_ARCH for the host architecture (note that these two
6461 will be the same unless you are cross-compiling).
6465 #-------------------------------------------------------------------------------
6466 # finally save the executed command to another script
6467 #-------------------------------------------------------------------------------
6468 if [ `basename $0` != "config.status" ]; then
6469 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6471 # add the system variables
6472 for varname in $SYSTEM_VARIABLES; do
6474 'if [ -n "\$'${varname}'" ]; then
6475 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6480 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6482 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6483 echo "#!/bin/sh" > "$outpath/config.status"
6484 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6485 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6486 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6487 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6488 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6489 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6490 echo "else" >> "$outpath/config.status"
6491 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6492 echo "fi" >> "$outpath/config.status"
6493 chmod +x "$outpath/config.status"
6496 if [ -n "$RPATH_MESSAGE" ]; then
6498 echo "$RPATH_MESSAGE"
6501 MAKE=`basename "$MAKE"`
6503 echo Qt is now configured for building. Just run \'$MAKE\'.
6504 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6505 echo Once everything is built, Qt is installed.
6506 echo You should not run \'$MAKE install\'.
6508 echo Once everything is built, you must run \'$MAKE install\'.
6509 echo Qt will be installed into $QT_INSTALL_PREFIX
6512 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.