Merge "Merge remote-tracking branch 'origin/master' into api_changes" into refs/stagi...
[profile/ivi/qtbase.git] / configure
1 #!/bin/sh
2 #############################################################################
3 ##
4 ## Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
5 ## Contact: http://www.qt-project.org/
6 ##
7 ## This file is the build configuration utility of the Qt Toolkit.
8 ##
9 ## $QT_BEGIN_LICENSE:LGPL$
10 ## GNU Lesser General Public License Usage
11 ## This file may be used under the terms of the GNU Lesser General Public
12 ## License version 2.1 as published by the Free Software Foundation and
13 ## appearing in the file LICENSE.LGPL included in the packaging of this
14 ## file. Please review the following information to ensure the GNU Lesser
15 ## General Public License version 2.1 requirements will be met:
16 ## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
17 ##
18 ## In addition, as a special exception, Nokia gives you certain additional
19 ## rights. These rights are described in the Nokia Qt LGPL Exception
20 ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
21 ##
22 ## GNU General Public License Usage
23 ## Alternatively, this file may be used under the terms of the GNU General
24 ## Public License version 3.0 as published by the Free Software Foundation
25 ## and appearing in the file LICENSE.GPL included in the packaging of this
26 ## file. Please review the following information to ensure the GNU General
27 ## Public License version 3.0 requirements will be met:
28 ## http://www.gnu.org/copyleft/gpl.html.
29 ##
30 ## Other Usage
31 ## Alternatively, this file may be used in accordance with the terms and
32 ## conditions contained in a signed written agreement between you and Nokia.
33 ##
34 ##
35 ##
36 ##
37 ##
38 ##
39 ## $QT_END_LICENSE$
40 ##
41 #############################################################################
42
43 #-------------------------------------------------------------------------------
44 # script initialization
45 #-------------------------------------------------------------------------------
46
47 # the name of this script
48 relconf=`basename $0`
49 # the directory of this script is the "source tree"
50 relpath=`dirname $0`
51 relpath=`(cd "$relpath"; /bin/pwd)`
52 # the current directory is the "build tree" or "object tree"
53 outpath=`/bin/pwd`
54
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"
61 fi
62
63 # later cache the command line in config.status
64 OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
65
66 # initialize global variables
67 QMAKE_SWITCHES=
68 QMAKE_VARS=
69 QMAKE_CONFIG=
70 QTCONFIG_CONFIG=
71 QT_CONFIG=
72 SUPPORTED=
73 QMAKE_VARS_FILE=.qmake.vars
74 DEVICE_VARS_FILE=.device.vars
75
76 :> "$QMAKE_VARS_FILE"
77 :> "$DEVICE_VARS_FILE"
78
79 #-------------------------------------------------------------------------------
80 # utility functions
81 #-------------------------------------------------------------------------------
82
83 shellEscape()
84 {
85     echo "$@" | sed 's/ /\ /g'
86 }
87
88 # Adds a new qmake variable to the cache
89 # Usage: QMakeVar mode varname contents
90 #   where mode is one of: set, add, del
91 QMakeVar()
92 {
93     case "$1" in
94         set)
95             eq="="
96             ;;
97         add)
98             eq="+="
99             ;;
100         del)
101             eq="-="
102             ;;
103         *)
104             echo >&2 "BUG: wrong command to QMakeVar: $1"
105             ;;
106     esac
107
108     echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
109 }
110
111 # Helper function for getQMakeConf. It parses include statements in
112 # qmake.conf and prints out the expanded file
113 getQMakeConf1()
114 {
115     while read line; do case "$line" in
116         include*)
117             inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"`
118             current_dir=`dirname "$1"`
119             conf_file="$current_dir/$inc_file"
120             if [ ! -f  "$conf_file" ]; then
121                 echo "WARNING: Unable to find file $conf_file" >&2
122                 continue
123             fi
124             getQMakeConf1 "$conf_file"
125         ;;
126         *)
127             echo "$line"
128         ;;
129     esac; done < "$1"
130 }
131
132 getQMakeConf2()
133 {
134     $AWK '
135 BEGIN {
136     values["LITERAL_WHITESPACE"] = " "
137     values["LITERAL_DOLLAR"] = "$"
138 }
139 /^[_A-Z0-9.]+[ \t]*\+?=/ {
140     valStart = index($0, "=") + 1
141
142     append = 0
143     if (substr($0, valStart - 2, 1) == "+") {
144         append = 1
145     }
146
147     variable = substr($0, 0, valStart - 2 - append)
148     value = substr($0, valStart)
149     gsub("[ \t]+", "", variable)
150     gsub("^[ \t]+", "", value)
151     gsub("[ \t]+$", "", value)
152
153     ovalue = ""
154     while (match(value, /\$\$(\{[_A-Z0-9.]+\}|[_A-Z0-9.]+)/)) {
155         ovalue = ovalue substr(value, 1, RSTART - 1)
156         var = substr(value, RSTART + 2, RLENGTH - 2)
157         value = substr(value, RSTART + RLENGTH)
158         if (var ~ /^{/) {
159             var = substr(var, 2, length(var) - 2)
160         }
161         ovalue = ovalue values[var]
162     }
163     ovalue = ovalue value
164
165     combinedValue = values[variable]
166     if (append == 1 && length(combinedValue) > 0) {
167         combinedValue = combinedValue " " ovalue
168     } else {
169         combinedValue = ovalue
170     }
171     values[variable] = combinedValue
172 }
173 END {
174     for (var in values) {
175         print var "=" values[var]
176     }
177 }
178 '
179 }
180
181 getQMakeConf3()
182 {
183     echo "$2" | $AWK "/^($1)=/ { print substr(\$0, index(\$0, \"=\") + 1) }"
184 }
185
186 # relies on $QMAKESPEC being set correctly. parses include statements in
187 # qmake.conf and prints out the expanded file
188 getQMakeConf()
189 {
190     if [ -z "$specvals" ]; then
191         specvals=`getQMakeConf1 "$QMAKESPEC/qmake.conf" | getQMakeConf2`
192     fi
193     getQMakeConf3 "$1" "$specvals"
194 }
195
196 getXQMakeConf()
197 {
198     if [ -z "$xspecvals" ]; then
199         xspecvals=`getQMakeConf1 "$XQMAKESPEC/qmake.conf" | getQMakeConf2`
200     fi
201     getQMakeConf3 "$1" "$xspecvals"
202 }
203
204 # relies on $TEST_COMPILER being set correctly
205 compilerSupportsFlag()
206 {
207     cat >conftest.cpp <<EOF
208 int main() { return 0; }
209 EOF
210     "$TEST_COMPILER" "$@" -o conftest.o conftest.cpp
211     ret=$?
212     rm -f conftest.cpp conftest.o
213     return $ret
214 }
215
216 # relies on $TEST_COMPILER being set correctly
217 linkerSupportsFlag()
218 {
219     lflags=-Wl
220     for flag
221     do
222         safe_flag=`shellEscape "$flag"`
223         lflags=$lflags,$safe_flag
224     done
225     compilerSupportsFlag "$lflags" >/dev/null 2>&1
226 }
227
228 #-------------------------------------------------------------------------------
229 # device options
230 #-------------------------------------------------------------------------------
231 DeviceVar()
232 {
233     case "$1" in
234         set)
235             eq="="
236             ;;
237         *)
238             echo >&2 "BUG: wrong command to QMakeVar: $1"
239             ;;
240     esac
241
242     echo "$2" "$eq" "$3" >> "$DEVICE_VARS_FILE"
243 }
244
245 #-------------------------------------------------------------------------------
246 # operating system detection
247 #-------------------------------------------------------------------------------
248
249 # need that throughout the script
250 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
251 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
252 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
253 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
254
255 # detect the "echo without newline" style. usage: echo $ECHO_N "<string>$ECHO_C"
256 if echo '\c' | grep '\c' >/dev/null; then
257     ECHO_N=-n
258 else
259     ECHO_C='\c'
260 fi
261
262 #-------------------------------------------------------------------------------
263 # window system detection
264 #-------------------------------------------------------------------------------
265
266 BUILD_ON_MAC=no
267 PLATFORM_MAC=no
268 if [ -d /System/Library/Frameworks/Carbon.framework ]; then
269     BUILD_ON_MAC=yes
270     PLATFORM_MAC=maybe
271 fi
272
273 #-----------------------------------------------------------------------------
274 # Qt version detection
275 #-----------------------------------------------------------------------------
276 QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
277 QT_MAJOR_VERSION=
278 QT_MINOR_VERSION=0
279 QT_PATCH_VERSION=0
280 if [ -n "$QT_VERSION" ]; then
281    QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
282    MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
283    if [ -n "$MAJOR" ]; then
284      MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
285       PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
286       QT_MAJOR_VERSION="$MAJOR"
287       [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
288       [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
289    fi
290 fi
291 if [ -z "$QT_MAJOR_VERSION" ]; then
292    echo "Cannot process version from qglobal.h: $QT_VERSION"
293    echo "Cannot proceed."
294    exit 1
295 fi
296
297 QT_PACKAGEDATE=`grep '^# *define *QT_PACKAGEDATE_STR' "$relpath"/src/corelib/global/qglobal.h | sed -e 's,^# *define *QT_PACKAGEDATE_STR *"\([^ ]*\)"$,\1,' -e s,-,,g`
298 if [ -z "$QT_PACKAGEDATE" ]; then
299    echo "Unable to determine package date from qglobal.h: '$QT_PACKAGEDATE'"
300    echo "Cannot proceed"
301    exit 1
302 fi
303
304 #-------------------------------------------------------------------------------
305 # check the license
306 #-------------------------------------------------------------------------------
307 COMMERCIAL_USER=ask
308 CFG_DEV=no
309 CFG_RTOS_ENABLED=yes
310 EditionString=Commercial
311
312 earlyArgParse()
313 {
314     # parse the arguments, setting things to "yes" or "no"
315     while [ "$#" -gt 0 ]; do
316         CURRENT_OPT="$1"
317         UNKNOWN_ARG=no
318         case "$1" in
319         #Autoconf style options
320         --enable-*)
321             VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
322             VAL=yes
323             ;;
324         --disable-*)
325             VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
326             VAL=no
327             ;;
328         --*=*)
329             VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
330             VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
331             ;;
332         --no-*)
333             VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
334             VAL=no
335             ;;
336         -h|help|--help|-help)
337             if [ "$VAL" = "yes" ]; then
338                 OPT_HELP="$VAL"
339                 COMMERCIAL_USER="no" #doesn't matter we will display the help
340             else
341                 UNKNOWN_OPT=yes
342                 COMMERCIAL_USER="no" #doesn't matter we will display the help
343             fi
344             ;;
345         --*)
346             VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
347             VAL=yes
348             ;;
349         -*)
350             VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
351             VAL="unknown"
352             ;;
353         *)
354             UNKNOWN_ARG=yes
355             ;;
356         esac
357         if [ "$UNKNOWN_ARG" = "yes" ]; then
358             shift
359             continue
360         fi
361         shift
362
363         UNKNOWN_OPT=no
364         case "$VAR" in
365         developer-build)
366             CFG_DEV="yes"
367             ;;
368         commercial)
369             COMMERCIAL_USER="yes"
370             ;;
371         opensource)
372             COMMERCIAL_USER="no"
373             ;;
374         *)
375             UNKNOWN_OPT=yes
376             ;;
377         esac
378     done
379 }
380
381 earlyArgParse "$@"
382
383 if [ "$COMMERCIAL_USER" = "ask" ]; then
384     while true; do
385         echo "Which edition of Qt do you want to use ?"
386         echo
387         echo "Type 'c' if you want to use the Commercial Edition."
388         echo "Type 'o' if you want to use the Open Source Edition."
389         echo
390         read commercial
391         echo
392         if [ "$commercial" = "c" ]; then
393             COMMERCIAL_USER="yes"
394             break
395         elif [ "$commercial" = "o" ]; then
396             COMMERCIAL_USER="no"
397             break
398         fi
399     done
400 fi
401
402 if [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
403     # Commercial preview release
404     [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
405     Licensee="Preview"
406     Edition="Preview"
407     QT_EDITION="QT_EDITION_DESKTOP"
408     LicenseType="Technology Preview"
409 elif [ $COMMERCIAL_USER = "yes" ]; then
410     # one of commercial editions
411     [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
412
413     # read in the license file
414     if [ -f "$LICENSE_FILE" ]; then
415         . "$LICENSE_FILE" >/dev/null 2>&1
416         if [ -z "$LicenseKeyExt" ]; then
417             echo
418             echo "You are using an old license file."
419             echo
420             echo "Please install the license file supplied by Nokia,"
421             echo "or install the Qt Open Source Edition if you intend to"
422             echo "develop free software."
423             exit 1
424         fi
425         if [ -z "$Licensee" ]; then
426             echo
427             echo "Invalid license key. Please check the license key."
428             exit 1
429         fi
430     else
431         if [ -z "$LicenseKeyExt" ]; then
432             echo
433             echo $ECHO_N "Please enter your license key: $ECHO_C"
434             read LicenseKeyExt
435             Licensee="Unknown user"
436         fi
437     fi
438
439     # Key verification
440     echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
441         && LicenseValid="yes" \
442         || LicenseValid="no"
443     if [ "$LicenseValid" != "yes" ]; then
444         echo
445         echo "Invalid license key. Please check the license key."
446         exit 1
447     fi
448     ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
449     PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d -`
450     LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
451     LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
452
453     # determine which edition we are licensed to use
454     case "$LicenseTypeCode" in
455     F4M)
456         LicenseType="Commercial"
457         case $ProductCode in
458         F)
459             Edition="Universal"
460             QT_EDITION="QT_EDITION_UNIVERSAL"
461             ;;
462         B)
463             Edition="FullFramework"
464             EditionString="Full Framework"
465             QT_EDITION="QT_EDITION_DESKTOP"
466             ;;
467         L)
468             Edition="GUIFramework"
469             EditionString="GUI Framework"
470             QT_EDITION="QT_EDITION_DESKTOPLIGHT"
471             ;;
472         esac
473         ;;
474     Z4M|R4M|Q4M)
475         LicenseType="Evaluation"
476         QMakeVar add DEFINES QT_EVAL
477         case $ProductCode in
478          B)
479             Edition="Evaluation"
480             QT_EDITION="QT_EDITION_EVALUATION"
481             ;;
482         esac
483         ;;
484     esac
485     if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
486         echo
487         echo "Invalid license key. Please check the license key."
488         exit 1
489     fi
490
491     # verify that we are licensed to use Qt on this platform
492     LICENSE_EXTENSION=
493     case "$PlatformCode" in
494         *L)
495             CFG_RTOS_ENABLED=yes
496             PlatformCode=`echo "$PlatformCode" | sed 'h;y/8NPQRTZ/UCWX9M7/;x;G;s/\(.\)....\(.\)./\1\2/'`
497             ;;
498         *)
499             CFG_RTOS_ENABLED=no
500             PlatformCode=`echo "$PlatformCode" | sed 's/.$//'`
501             ;;
502     esac
503     ### EMBEDDED_QPA logic missing ###
504     case "$PlatformCode,$PLATFORM_MAC" in
505         X9,* | XC,* | XU,* | XW,* | XM,*)
506             # Qt All-OS
507             LICENSE_EXTENSION="-ALLOS"
508             ;;
509         8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*)
510             # Qt for Embedded Linux
511             LICENSE_EXTENSION="-EMBEDDED"
512             ;;
513         6M,* | N7,* | N9,* | NX,*)
514             # Embedded no-deploy
515             LICENSE_EXTENSION="-EMBEDDED"
516             ;;
517         FM,* | LM,yes | ZM,no)
518             # Desktop
519             LICENSE_EXTENSION="-DESKTOP"
520             ;;
521         *)
522             Platform=Linux/X11
523             [ "$PLATFORM_MAC" = "yes" ] && Platform='Mac OS X'
524             echo
525             echo "You are not licensed for the $Platform platform."
526             echo
527             echo "Please contact qt-info@nokia.com to upgrade your license to"
528             echo "include the $Platform platform, or install the Qt Open Source Edition"
529             echo "if you intend to develop free software."
530             exit 1
531             ;;
532     esac
533
534     if test -r "$relpath/.LICENSE"; then
535         # Generic, non-final license
536         LICENSE_EXTENSION=""
537         line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
538         case "$line" in
539             *BETA*)
540                 Edition=Beta
541                 ;;
542             *TECHNOLOGY?PREVIEW*)
543                 Edition=Preview
544                 ;;
545             *EVALUATION*)
546                 Edition=Evaluation
547                 ;;
548             *)
549                 echo >&2 "Invalid license files; cannot continue"
550                 exit 1
551                 ;;
552         esac
553         Licensee="$Edition"
554         EditionString="$Edition"
555         QT_EDITION="QT_EDITION_DESKTOP"
556     fi
557
558     case "$LicenseFeatureCode" in
559     B|G|L|Y)
560         # US
561         case "$LicenseType" in
562         Commercial)
563             cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
564             ;;
565         Evaluation)
566             cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
567             ;;
568         esac
569         ;;
570     2|4|5|F)
571         # non-US
572         case "$LicenseType" in
573         Commercial)
574             cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
575             ;;
576         Evaluation)
577             cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
578             ;;
579         esac
580         ;;
581     *)
582         echo
583         echo "Invalid license key. Please check the license key."
584         exit 1
585         ;;
586     esac
587     case "$LicenseFeatureCode" in
588         4|B|F|Y)
589             CFG_RTOS_ENABLED=yes
590             ;;
591         2|5|G|L)
592             CFG_RTOS_ENABLED=no
593             ;;
594     esac
595     if [ '!' -f "$outpath/LICENSE" ]; then
596         echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
597         echo "this software has disappeared."
598         echo
599         echo "Sorry, you are not licensed to use this software."
600         echo "Try re-installing."
601         echo
602         exit 1
603     fi
604 elif [ $COMMERCIAL_USER = "no" ]; then
605     # Open Source edition - may only be used under the terms of the GPL or LGPL.
606     [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
607     Licensee="Open Source"
608     Edition="OpenSource"
609     EditionString="Open Source"
610     QT_EDITION="QT_EDITION_OPENSOURCE"
611 fi
612
613 #-------------------------------------------------------------------------------
614 # initalize variables
615 #-------------------------------------------------------------------------------
616
617 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
618 for varname in $SYSTEM_VARIABLES; do
619     qmakevarname="${varname}"
620     # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
621     if [ "${varname}" = "LDFLAGS" ]; then
622         qmakevarname="LFLAGS"
623     elif [ "${varname}" = "LD" ]; then
624         qmakevarname="LINK"
625     fi
626     cmd=`echo \
627 'if [ -n "\$'${varname}'" ]; then
628     QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
629 fi'`
630     eval "$cmd"
631 done
632 # Use CC/CXX to run config.tests
633 mkdir -p "$outpath/config.tests"
634 rm -f "$outpath/config.tests/.qmake.cache"
635 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
636
637 QMakeVar add styles "cde mac motif plastique cleanlooks windows"
638
639 # QTDIR may be set and point to an old or system-wide Qt installation
640 unset QTDIR
641
642 # the minimum version of libdbus-1 that we require:
643 MIN_DBUS_1_VERSION=0.93
644
645 # initalize internal variables
646 CFG_CONFIGURE_EXIT_ON_ERROR=yes
647 CFG_PROFILE=no
648 CFG_EXCEPTIONS=unspecified
649 CFG_GUI=auto # (yes|no|auto)
650 CFG_WIDGETS=yes
651 CFG_QCONFIG=full
652 CFG_DEBUG=auto
653 CFG_MYSQL_CONFIG=
654 CFG_DEBUG_RELEASE=no
655 CFG_SHARED=yes
656 CFG_SM=auto
657 CFG_XSHAPE=auto
658 CFG_XSYNC=auto
659 CFG_XVIDEO=auto
660 CFG_XINERAMA=runtime
661 CFG_XFIXES=runtime
662 CFG_ZLIB=auto
663 CFG_SQLITE=qt
664 CFG_GIF=auto
665 CFG_PNG=yes
666 CFG_LIBPNG=auto
667 CFG_JPEG=auto
668 CFG_LIBJPEG=auto
669 CFG_XCURSOR=runtime
670 CFG_XRANDR=runtime
671 CFG_XRENDER=auto
672 CFG_MITSHM=auto
673 CFG_OPENGL=auto
674 CFG_OPENVG=auto
675 CFG_OPENVG_LC_INCLUDES=no
676 CFG_OPENVG_SHIVA=auto
677 CFG_OPENVG_ON_OPENGL=auto
678 CFG_EGL=auto
679 CFG_SSE=auto
680 CFG_FONTCONFIG=auto
681 CFG_LIBFREETYPE=auto
682 CFG_SQL_AVAILABLE=
683 QT_DEFAULT_BUILD_PARTS="libs examples"
684 CFG_BUILD_PARTS=""
685 CFG_NOBUILD_PARTS=""
686 CFG_RELEASE_QMAKE=no
687 CFG_AUDIO_BACKEND=auto
688 CFG_V8SNAPSHOT=auto
689 CFG_QML_DEBUG=yes
690 CFG_JAVASCRIPTCORE_JIT=auto
691 CFG_PKGCONFIG=auto
692
693 # Target architecture
694 CFG_ARCH=
695 # Host architecture, same as CFG_ARCH when not cross-compiling
696 CFG_HOST_ARCH=
697 # Set when the -arch or -host-arch arguments are used
698 OPT_OBSOLETE_HOST_ARG=no
699
700 CFG_USE_GNUMAKE=no
701 CFG_IM=yes
702 CFG_XINPUT2=auto
703 CFG_XINPUT=runtime
704 CFG_XKB=auto
705 CFG_XCB=auto
706 CFG_XCB_LIMITED=yes
707 CFG_EGLFS=auto
708 CFG_DIRECTFB=auto
709 CFG_LIBUDEV=auto
710 CFG_OBSOLETE_WAYLAND=no
711 CFG_EVDEV=auto
712 CFG_NIS=auto
713 CFG_CUPS=auto
714 CFG_ICONV=auto
715 CFG_DBUS=auto
716 CFG_GLIB=auto
717 CFG_GSTREAMER=auto
718 CFG_QGTKSTYLE=auto
719 CFG_LARGEFILE=auto
720 CFG_OPENSSL=auto
721 CFG_PRECOMPILE=auto
722 CFG_SEPARATE_DEBUG_INFO=no
723 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
724 CFG_REDUCE_EXPORTS=auto
725 CFG_SSE2=auto
726 CFG_SSE3=auto
727 CFG_SSSE3=auto
728 CFG_SSE4_1=auto
729 CFG_SSE4_2=auto
730 CFG_AVX=auto
731 CFG_AVX2=auto
732 CFG_REDUCE_RELOCATIONS=auto
733 CFG_ACCESSIBILITY=auto
734 CFG_IWMMXT=no
735 CFG_NEON=auto
736 CFG_MIPS_DSP=yes
737 CFG_MIPS_DSPR2=yes
738 CFG_CLOCK_GETTIME=auto
739 CFG_CLOCK_MONOTONIC=auto
740 CFG_MREMAP=auto
741 CFG_GETADDRINFO=auto
742 CFG_IPV6IFNAME=auto
743 CFG_GETIFADDRS=auto
744 CFG_INOTIFY=auto
745 CFG_RPATH=yes
746 CFG_FRAMEWORK=auto
747 MAC_CONFIG_TEST_COMMANDLINE=  # used to make the configure tests run with the correct arch's and SDK settings
748 CFG_MAC_DWARF2=auto
749 CFG_MAC_HARFBUZZ=no
750 CFG_SXE=no
751 CFG_PREFIX_INSTALL=yes
752 CFG_SDK=
753 D_FLAGS=
754 I_FLAGS=
755 L_FLAGS=
756 RPATH_FLAGS=
757 l_FLAGS=
758 W_FLAGS=
759 QCONFIG_FLAGS=
760 XPLATFORM=              # This seems to be the QMAKESPEC, like "linux-g++"
761 XPLATFORM_MINGW=no      # Whether target platform is MinGW (win32-g++*)
762 XPLATFORM_MAEMO=no
763 PLATFORM=$QMAKESPEC
764 QT_CROSS_COMPILE=no
765 OPT_CONFIRM_LICENSE=no
766 OPT_SHADOW=maybe
767 OPT_FAST=auto
768 OPT_VERBOSE=no
769 OPT_HELP=
770 CFG_SILENT=no
771 CFG_ALSA=auto
772 CFG_PULSEAUDIO=auto
773 CFG_COREWLAN=auto
774 CFG_NOPROCESS=no
775 CFG_ICU=auto
776 CFG_FORCE_ASSERTS=no
777 CFG_PCRE=auto
778 QPA_PLATFORM_GUARD=yes
779
780 # initalize variables used for installation
781 QT_INSTALL_PREFIX=
782 QT_INSTALL_DOCS=
783 QT_INSTALL_HEADERS=
784 QT_INSTALL_LIBS=
785 QT_INSTALL_BINS=
786 QT_INSTALL_PLUGINS=
787 QT_INSTALL_IMPORTS=
788 QT_INSTALL_DATA=
789 QT_INSTALL_TRANSLATIONS=
790 QT_INSTALL_SETTINGS=
791 QT_INSTALL_EXAMPLES=
792 QT_INSTALL_TESTS=
793 CFG_SYSROOT=
794 QT_HOST_PREFIX=
795 QT_HOST_BINS=
796 QT_HOST_DATA=
797
798 #flags for SQL drivers
799 QT_CFLAGS_PSQL=
800 QT_LFLAGS_PSQL=
801 QT_CFLAGS_MYSQL=
802 QT_LFLAGS_MYSQL=
803 QT_LFLAGS_MYSQL_R=
804 QT_CFLAGS_SQLITE=
805 QT_LFLAGS_SQLITE=
806 QT_LFLAGS_ODBC="-lodbc"
807 QT_LFLAGS_TDS=
808
809 # flags for libdbus-1
810 QT_CFLAGS_DBUS=
811 QT_LIBS_DBUS=
812
813 # flags for Glib (X11 only)
814 QT_CFLAGS_GLIB=
815 QT_LIBS_GLIB=
816
817 # flags for GStreamer (X11 only)
818 QT_CFLAGS_GSTREAMER=
819 QT_LIBS_GSTREAMER=
820
821 #-------------------------------------------------------------------------------
822 # check SQL drivers available in this package
823 #-------------------------------------------------------------------------------
824
825 # opensource version removes some drivers, so force them to be off
826 CFG_SQL_tds=no
827 CFG_SQL_oci=no
828 CFG_SQL_db2=no
829
830 CFG_SQL_AVAILABLE=
831 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
832   for a in "$relpath/src/plugins/sqldrivers/"*; do
833      if [ -d "$a" ]; then
834          base_a=`basename "$a"`
835          CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
836          eval "CFG_SQL_${base_a}=auto"
837      fi
838   done
839 fi
840
841 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
842 if [ -d "$relpath/src/plugins/imageformats" ]; then
843     for a in "$relpath/src/plugins/imageformats/"*; do
844         if [ -d "$a" ]; then
845             base_a=`basename "$a"`
846             CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
847         fi
848     done
849 fi
850
851 #-------------------------------------------------------------------------------
852 # parse command line arguments
853 #-------------------------------------------------------------------------------
854
855 # parse the arguments, setting things to "yes" or "no"
856 while [ "$#" -gt 0 ]; do
857     CURRENT_OPT="$1"
858     UNKNOWN_ARG=no
859     case "$1" in
860     #Autoconf style options
861     --enable-*)
862         VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
863         VAL=yes
864         ;;
865     --disable-*)
866         VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
867         VAL=no
868         ;;
869     --*=*)
870         VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
871         VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
872         ;;
873     --no-*)
874         VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
875         VAL=no
876         ;;
877     --*)
878         VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
879         VAL=yes
880         ;;
881     #Qt plugin options
882     -no-*-*|-plugin-*-*|-qt-*-*)
883         VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
884         VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
885         ;;
886     #Qt style no options
887     -no-*)
888         VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
889         VAL=no
890         ;;
891     #Qt style yes options
892     -profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-xinput2|-egl|-reduce-exports|-pch|-separate-debug-info|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-xcb|-eglfs|-directfb|-nis|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-debug-and-release|-exceptions|-harfbuzz|-prefix-install|-silent|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-phonon-backend|-audio-backend|-qml-debug|-javascript-jit|-rpath|-pkg-config|-force-pkg-config|-icu|-force-asserts|-testcocoon)
893         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
894         VAL=yes
895         ;;
896     #Qt style options that pass an argument
897     -qconfig)
898         CFG_QCONFIG="$VAL"
899         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
900         shift
901         VAL=$1
902         ;;
903     -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)
904         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
905         shift
906         VAL="$1"
907         ;;
908     #Qt style complex options in one command
909     -enable-*|-disable-*)
910         VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
911         VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
912         ;;
913     #Qt Builtin/System style options
914     -no-*|-system-*|-qt-*)
915         VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
916         VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
917         ;;
918     #Options that cannot be generalized
919     -k|-continue)
920         VAR=fatal_error
921         VAL=no
922         ;;
923     -opengl)
924         VAR=opengl
925         # this option may or may not be followed by an argument
926         if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
927             VAL=yes
928         else
929             shift;
930             VAL=$1
931         fi
932         ;;
933     -openvg)
934         VAR=openvg
935         # this option may or may not be followed by an argument
936         if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
937             VAL=yes
938         else
939             shift;
940             VAL=$1
941         fi
942         ;;
943     -hostprefix)
944         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
945         # this option may or may not be followed by an argument
946         if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
947             VAL=$outpath
948         else
949             shift;
950             VAL=$1
951         fi
952         ;;
953     -qtnamespace)
954         VAR="qtnamespace"
955         shift
956         VAL="$1"
957         ;;
958     -qtlibinfix)
959         VAR="qtlibinfix"
960         shift
961         VAL="$1"
962         ;;
963     -D?*|-D)
964         VAR="add_define"
965         if [ "$1" = "-D" ]; then
966             shift
967             VAL="$1"
968         else
969             VAL=`echo $1 | sed 's,-D,,'`
970         fi
971         ;;
972     -fpu)
973         VAR="fpu"
974         # this option may or may not be followed by an argument
975         if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
976             VAL=no
977         else
978             shift
979             VAL=$1
980         fi
981         ;;
982     -I?*|-I)
983         VAR="add_ipath"
984         if [ "$1" = "-I" ]; then
985             shift
986             VAL="$1"
987         else
988             VAL=`echo $1 | sed 's,-I,,'`
989         fi
990         ;;
991     -L?*|-L)
992         VAR="add_lpath"
993         if [ "$1" = "-L" ]; then
994             shift
995             VAL="$1"
996         else
997             VAL=`echo $1 | sed 's,-L,,'`
998         fi
999         ;;
1000     -R?*|-R)
1001         VAR="add_rpath"
1002         if [ "$1" = "-R" ]; then
1003             shift
1004             VAL="$1"
1005         else
1006             VAL=`echo $1 | sed 's,-R,,'`
1007         fi
1008         ;;
1009     -l?*)
1010         VAR="add_link"
1011         VAL=`echo $1 | sed 's,-l,,'`
1012         ;;
1013     -F?*|-F)
1014         VAR="add_fpath"
1015         if [ "$1" = "-F" ]; then
1016             shift
1017             VAL="$1"
1018         else
1019             VAL=`echo $1 | sed 's,-F,,'`
1020         fi
1021         ;;
1022     -fw?*|-fw)
1023         VAR="add_framework"
1024         if [ "$1" = "-fw" ]; then
1025             shift
1026             VAL="$1"
1027         else
1028             VAL=`echo $1 | sed 's,-fw,,'`
1029         fi
1030         ;;
1031     -W*)
1032         VAR="add_warn"
1033         VAL="$1"
1034         ;;
1035     -*)
1036         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1037         VAL="unknown"
1038         ;;
1039     *)
1040         UNKNOWN_ARG=yes
1041         ;;
1042     esac
1043     if [ "$UNKNOWN_ARG" = "yes" ]; then
1044         echo "$1: unknown argument"
1045         OPT_HELP=yes
1046         ERROR=yes
1047         shift
1048         continue
1049      fi
1050     shift
1051
1052     UNKNOWN_OPT=no
1053     case "$VAR" in
1054     accessibility)
1055         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1056             CFG_ACCESSIBILITY="$VAL"
1057         else
1058             UNKNOWN_OPT=yes
1059         fi
1060         ;;
1061     license)
1062         LICENSE_FILE="$VAL"
1063         ;;
1064     gnumake)
1065         CFG_USE_GNUMAKE="$VAL"
1066         ;;
1067     mysql_config)
1068         CFG_MYSQL_CONFIG="$VAL"
1069         ;;
1070     prefix)
1071         QT_INSTALL_PREFIX="$VAL"
1072         ;;
1073     hostprefix)
1074         QT_HOST_PREFIX="$VAL"
1075         ;;
1076     hostdatadir)
1077         QT_HOST_DATA="$VAL"
1078         ;;
1079     hostbindir)
1080         QT_HOST_BINS="$VAL"
1081         ;;
1082     pkg-config)
1083         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1084             CFG_PKGCONFIG="$VAL"
1085         else
1086             UNKNOWN_OPT=yes
1087         fi
1088         ;;
1089     force-pkg-config)
1090         CFG_PKGCONFIG="force"
1091         ;;
1092     docdir)
1093         QT_INSTALL_DOCS="$VAL"
1094         ;;
1095     headerdir)
1096         QT_INSTALL_HEADERS="$VAL"
1097         ;;
1098     plugindir)
1099         QT_INSTALL_PLUGINS="$VAL"
1100         ;;
1101     importdir)
1102         QT_INSTALL_IMPORTS="$VAL"
1103         ;;
1104     datadir)
1105         QT_INSTALL_DATA="$VAL"
1106         ;;
1107     libdir)
1108         QT_INSTALL_LIBS="$VAL"
1109         ;;
1110     qtnamespace)
1111         QT_NAMESPACE="$VAL"
1112         ;;
1113     qtlibinfix)
1114         QT_LIBINFIX="$VAL"
1115         ;;
1116     translationdir)
1117         QT_INSTALL_TRANSLATIONS="$VAL"
1118         ;;
1119     sysconfdir|settingsdir)
1120         QT_INSTALL_SETTINGS="$VAL"
1121         ;;
1122     examplesdir)
1123         QT_INSTALL_EXAMPLES="$VAL"
1124         ;;
1125     testsdir)
1126         QT_INSTALL_TESTS="$VAL"
1127         ;;
1128     qconfig)
1129         CFG_QCONFIG="$VAL"
1130         ;;
1131     sysroot)
1132         CFG_SYSROOT="$VAL"
1133         ;;
1134     bindir)
1135         QT_INSTALL_BINS="$VAL"
1136         ;;
1137     sxe)
1138         CFG_SXE="$VAL"
1139         ;;
1140     sse)
1141         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1142             CFG_SSE="$VAL"
1143         else
1144             UNKNOWN_OPT=yes
1145         fi
1146         ;;
1147     opengl)
1148         if  [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1149             [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1150             [ "$VAL" = "es2" ]; then
1151             CFG_OPENGL="$VAL"
1152         else
1153             UNKNOWN_OPT=yes
1154         fi
1155         ;;
1156     openvg)
1157         if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1158             CFG_OPENVG="$VAL"
1159         else
1160             UNKNOWN_OPT=yes
1161         fi
1162         ;;
1163     nomake)
1164         CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1165         ;;
1166     make)
1167         CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1168         ;;
1169     sdk)
1170         if [ "$BUILD_ON_MAC" = "yes" ]; then
1171             CFG_SDK="$VAL"
1172         else
1173             UNKNOWN_OPT=yes
1174         fi
1175         ;;
1176      dwarf2)
1177         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1178             CFG_MAC_DWARF2="$VAL"
1179         else
1180             UNKNOWN_OPT=yes
1181         fi
1182         ;;
1183     arch|host-arch)
1184         OPT_OBSOLETE_HOST_ARG=yes
1185         ;;
1186     harfbuzz)
1187         if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1188             CFG_MAC_HARFBUZZ="$VAL"
1189         else
1190             UNKNOWN_OPT=yes
1191         fi
1192         ;;
1193
1194     framework)
1195         if [ "$BUILD_ON_MAC" = "yes" ]; then
1196             CFG_FRAMEWORK="$VAL"
1197         else
1198             UNKNOWN_OPT=yes
1199         fi
1200         ;;
1201     profile)
1202         if [ "$VAL" = "yes" ]; then
1203             CFG_PROFILE=yes
1204             QMakeVar add QMAKE_CFLAGS -pg
1205             QMakeVar add QMAKE_CXXFLAGS -pg
1206             QMakeVar add QMAKE_LFLAGS -pg
1207             QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1208         else
1209             UNKNOWN_OPT=yes
1210         fi
1211         ;;
1212     testcocoon)
1213         if [ "$VAL" = "yes" ]; then
1214             QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1215         fi
1216         ;;
1217     exceptions|g++-exceptions)
1218         if [ "$VAL" = "no" ]; then
1219             CFG_EXCEPTIONS=no
1220         elif [ "$VAL" = "yes" ]; then
1221             CFG_EXCEPTIONS=yes
1222         else
1223             UNKNOWN_OPT=yes
1224         fi
1225         ;;
1226     platform)
1227         PLATFORM="$VAL"
1228         # keep compatibility with old platform names
1229         case $PLATFORM in
1230         aix-64)
1231             PLATFORM=aix-xlc-64
1232             ;;
1233         hpux-o64)
1234             PLATFORM=hpux-acc-o64
1235             ;;
1236         hpux-n64)
1237             PLATFORM=hpux-acc-64
1238             ;;
1239         hpux-acc-n64)
1240             PLATFORM=hpux-acc-64
1241             ;;
1242         irix-n32)
1243             PLATFORM=irix-cc
1244             ;;
1245         irix-64)
1246             PLATFORM=irix-cc-64
1247             ;;
1248         irix-cc-n64)
1249             PLATFORM=irix-cc-64
1250             ;;
1251         reliant-64)
1252             PLATFORM=reliant-cds-64
1253             ;;
1254         solaris-64)
1255             PLATFORM=solaris-cc-64
1256             ;;
1257         openunix-cc)
1258             PLATFORM=unixware-cc
1259             ;;
1260         openunix-g++)
1261             PLATFORM=unixware-g++
1262             ;;
1263         unixware7-cc)
1264             PLATFORM=unixware-cc
1265             ;;
1266         unixware7-g++)
1267             PLATFORM=unixware-g++
1268             ;;
1269         macx-g++-64)
1270             PLATFORM=macx-g++
1271             NATIVE_64_ARCH=
1272             case `uname -p` in
1273             i386) NATIVE_64_ARCH="x86_64" ;;
1274             powerpc) NATIVE_64_ARCH="ppc64" ;;
1275             *)   echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1276             esac
1277             if [ ! -z "$NATIVE_64_ARCH" ]; then
1278                 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1279             fi
1280             ;;
1281         esac
1282         ;;
1283     xplatform)
1284         XPLATFORM="$VAL"
1285         case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
1286         ;;
1287     device)
1288         XPLATFORM="devices/$VAL"
1289         ;;
1290     device-option)
1291         DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1292         DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1293         DeviceVar set $DEV_VAR $DEV_VAL
1294         ;;
1295     debug-and-release)
1296         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1297             CFG_DEBUG_RELEASE="$VAL"
1298         else
1299             UNKNOWN_OPT=yes
1300         fi
1301         ;;
1302     optimized-qmake)
1303         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1304             CFG_RELEASE_QMAKE="$VAL"
1305         else
1306             UNKNOWN_OPT=yes
1307         fi
1308         ;;
1309     release)
1310         if [ "$VAL" = "yes" ]; then
1311             CFG_DEBUG=no
1312         elif [ "$VAL" = "no" ]; then
1313             CFG_DEBUG=yes
1314         else
1315             UNKNOWN_OPT=yes
1316         fi
1317         ;;
1318     prefix-install)
1319         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1320             CFG_PREFIX_INSTALL="$VAL"
1321         else
1322             UNKNOWN_OPT=yes
1323         fi
1324         ;;
1325     debug)
1326         CFG_DEBUG="$VAL"
1327         ;;
1328     developer-build|commercial|opensource)
1329         # These switches have been dealt with already
1330         ;;
1331     static)
1332         if [ "$VAL" = "yes" ]; then
1333             CFG_SHARED=no
1334         elif [ "$VAL" = "no" ]; then
1335             CFG_SHARED=yes
1336         else
1337             UNKNOWN_OPT=yes
1338         fi
1339         ;;
1340     fatal_error)
1341         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1342             CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1343         else
1344             UNKNOWN_OPT=yes
1345         fi
1346         ;;
1347     feature-*)
1348             FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1349             if [ "$VAL" = "no" ]; then
1350                 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1351             elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1352                 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1353             else
1354                 UNKNOWN_OPT=yes
1355             fi
1356         ;;
1357     shared)
1358         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1359             CFG_SHARED="$VAL"
1360         else
1361             UNKNOWN_OPT=yes
1362         fi
1363         ;;
1364     gif)
1365         if [ "$VAL" = "no" ]; then
1366             CFG_GIF="$VAL"
1367         else
1368             UNKNOWN_OPT=yes
1369         fi
1370         ;;
1371     sm)
1372         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1373             CFG_SM="$VAL"
1374         else
1375             UNKNOWN_OPT=yes
1376         fi
1377
1378         ;;
1379     xinerama)
1380         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1381             CFG_XINERAMA="$VAL"
1382         else
1383             UNKNOWN_OPT=yes
1384         fi
1385         ;;
1386     xshape)
1387         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1388             CFG_XSHAPE="$VAL"
1389         else
1390             UNKNOWN_OPT=yes
1391         fi
1392         ;;
1393     xvideo)
1394         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1395             CFG_XVIDEO="$VAL"
1396         else
1397             UNKNOWN_OPT=yes
1398         fi
1399         ;;
1400     xsync)
1401         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1402             CFG_XSYNC="$VAL"
1403         else
1404             UNKNOWN_OPT=yes
1405         fi
1406         ;;
1407      xinput2)
1408         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1409             CFG_XINPUT2="$VAL"
1410         else
1411             UNKNOWN_OPT=yes
1412         fi
1413         ;;
1414     xinput)
1415         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1416             CFG_XINPUT="$VAL"
1417         else
1418             UNKNOWN_OPT=yes
1419         fi
1420         ;;
1421     egl)
1422         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1423             CFG_EGL="$VAL"
1424         else
1425             UNKNOWN_OPT=yes
1426         fi
1427         ;;
1428     pch)
1429         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1430             CFG_PRECOMPILE="$VAL"
1431         else
1432             UNKNOWN_OPT=yes
1433         fi
1434         ;;
1435     separate-debug-info)
1436         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1437             CFG_SEPARATE_DEBUG_INFO="$VAL"
1438         elif [ "$VAL" = "nocopy" ] ; then
1439             CFG_SEPARATE_DEBUG_INFO="yes"
1440             CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1441         else
1442             UNKNOWN_OPT=yes
1443         fi
1444         ;;
1445     reduce-exports)
1446         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1447             CFG_REDUCE_EXPORTS="$VAL"
1448         else
1449             UNKNOWN_OPT=yes
1450         fi
1451         ;;
1452     sse2)
1453         if [ "$VAL" = "no" ]; then
1454             CFG_SSE2="$VAL"
1455         else
1456             UNKNOWN_OPT=yes
1457         fi
1458         ;;
1459     sse3)
1460         if [ "$VAL" = "no" ]; then
1461             CFG_SSE3="$VAL"
1462         else
1463             UNKNOWN_OPT=yes
1464         fi
1465         ;;
1466     ssse3)
1467         if [ "$VAL" = "no" ]; then
1468             CFG_SSSE3="$VAL"
1469         else
1470             UNKNOWN_OPT=yes
1471         fi
1472         ;;
1473     sse4.1)
1474         if [ "$VAL" = "no" ]; then
1475             CFG_SSE4_1="$VAL"
1476         else
1477             UNKNOWN_OPT=yes
1478         fi
1479         ;;
1480     sse4.2)
1481         if [ "$VAL" = "no" ]; then
1482             CFG_SSE4_2="$VAL"
1483         else
1484             UNKNOWN_OPT=yes
1485         fi
1486         ;;
1487     avx)
1488         if [ "$VAL" = "no" ]; then
1489             CFG_AVX="$VAL"
1490         else
1491             UNKNOWN_OPT=yes
1492         fi
1493         ;;
1494     avx2)
1495         if [ "$VAL" = "no" ]; then
1496             CFG_AVX2="$VAL"
1497         else
1498             UNKNOWN_OPT=yes
1499         fi
1500         ;;
1501     iwmmxt)
1502         CFG_IWMMXT="yes"
1503         ;;
1504     neon)
1505         if [ "$VAL" = "no" ]; then
1506             CFG_NEON="$VAL"
1507         else
1508             UNKNOWN_OPT=yes
1509         fi
1510         ;;
1511     mips_dsp)
1512         if [ "$VAL" = "no" ]; then
1513             CFG_MIPS_DSP="$VAL"
1514         else
1515             UNKNOWN_OPT=yes
1516         fi
1517         ;;
1518     mips_dspr2)
1519         if [ "$VAL" = "no" ]; then
1520             CFG_MIPS_DSPR2="$VAL"
1521         else
1522             UNKNOWN_OPT=yes
1523         fi
1524         ;;
1525     reduce-relocations)
1526         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1527             CFG_REDUCE_RELOCATIONS="$VAL"
1528         else
1529             UNKNOWN_OPT=yes
1530         fi
1531         ;;
1532     zlib)
1533         [ "$VAL" = "qt" ] && VAL=yes
1534         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1535             CFG_ZLIB="$VAL"
1536         else
1537             UNKNOWN_OPT=yes
1538         fi
1539         # No longer supported:
1540         #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1541         ;;
1542     sqlite)
1543         if [ "$VAL" = "system" ]; then
1544             CFG_SQLITE=system
1545         else
1546             UNKNOWN_OPT=yes
1547         fi
1548         ;;
1549     libpng)
1550         [ "$VAL" = "yes" ] && VAL=qt
1551         if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1552             CFG_LIBPNG="$VAL"
1553         else
1554             UNKNOWN_OPT=yes
1555         fi
1556         ;;
1557     libjpeg)
1558         [ "$VAL" = "yes" ] && VAL=qt
1559         if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1560             CFG_LIBJPEG="$VAL"
1561         else
1562             UNKNOWN_OPT=yes
1563         fi
1564         ;;
1565     xcursor)
1566         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1567             CFG_XCURSOR="$VAL"
1568         else
1569             UNKNOWN_OPT=yes
1570         fi
1571         ;;
1572     xfixes)
1573         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1574             CFG_XFIXES="$VAL"
1575         else
1576             UNKNOWN_OPT=yes
1577         fi
1578         ;;
1579     xrandr)
1580         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1581             CFG_XRANDR="$VAL"
1582         else
1583             UNKNOWN_OPT=yes
1584         fi
1585         ;;
1586     xrender)
1587         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1588             CFG_XRENDER="$VAL"
1589         else
1590             UNKNOWN_OPT=yes
1591         fi
1592         ;;
1593     mitshm)
1594         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1595             CFG_MITSHM="$VAL"
1596         else
1597             UNKNOWN_OPT=yes
1598         fi
1599         ;;
1600     fontconfig)
1601         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1602             CFG_FONTCONFIG="$VAL"
1603         else
1604             UNKNOWN_OPT=yes
1605         fi
1606         ;;
1607     xkb)
1608         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1609             CFG_XKB="$VAL"
1610         else
1611             UNKNOWN_OPT=yes
1612         fi
1613         ;;
1614     xcb)
1615         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1616             CFG_XCB="$VAL"
1617         else
1618             UNKNOWN_OPT=yes
1619         fi
1620         ;;
1621     wayland)
1622         CFG_OBSOLETE_WAYLAND=yes
1623         ;;
1624     eglfs)
1625         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1626             CFG_EGLFS="$VAL"
1627         else
1628             UNKNOWN_OPT=yes
1629         fi
1630         ;;
1631     directfb)
1632         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1633             CFG_DIRECTFB="$VAL"
1634         else
1635             UNKNOWN_OPT=yes
1636         fi
1637         ;;
1638     libudev)
1639         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1640             CFG_LIBUDEV="$VAL"
1641         else
1642             UNKNOWN_OPT=yes
1643         fi
1644         ;;
1645     evdev)
1646         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1647             CFG_EVDEV="$VAL"
1648         else
1649             UNKNOWN_OPT=yes
1650         fi
1651         ;;
1652     cups)
1653         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1654             CFG_CUPS="$VAL"
1655         else
1656             UNKNOWN_OPT=yes
1657         fi
1658         ;;
1659     iconv)
1660         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1661             CFG_ICONV="$VAL"
1662         else
1663             UNKNOWN_OPT=yes
1664         fi
1665         ;;
1666     glib)
1667         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1668             CFG_GLIB="$VAL"
1669         else
1670             UNKNOWN_OPT=yes
1671         fi
1672         ;;
1673     gstreamer)
1674         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1675             CFG_GSTREAMER="$VAL"
1676         else
1677             UNKNOWN_OPT=yes
1678         fi
1679         ;;
1680     gtkstyle)
1681         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1682             CFG_QGTKSTYLE="$VAL"
1683         else
1684             UNKNOWN_OPT=yes
1685         fi
1686         ;;
1687     gui)
1688         if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1689             CFG_GUI="yes"
1690         else
1691             if [ "$VAL" = "no" ]; then
1692                 CFG_GUI="no"
1693             else
1694                 UNKNOWN_OPT=yes
1695             fi
1696         fi
1697         ;;
1698     widgets)
1699         if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1700             CFG_WIDGETS="yes"
1701         elif [ "$VAL" = "no" ]; then
1702             CFG_WIDGETS="no"
1703         else
1704             UNKNOWN_OPT=yes
1705         fi
1706         ;;
1707     qpa-platform-guard)
1708         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1709             QPA_PLATFORM_GUARD="$VAL"
1710         else
1711             UNKNOWN_OPT=yes
1712         fi
1713         ;;
1714     dbus)
1715         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1716             CFG_DBUS="$VAL"
1717         elif [ "$VAL" = "runtime" ]; then
1718             CFG_DBUS="yes"
1719         else
1720             UNKNOWN_OPT=yes
1721         fi
1722         ;;
1723     dbus-linked)
1724         if [ "$VAL" = "yes" ]; then
1725             CFG_DBUS="linked"
1726         else
1727             UNKNOWN_OPT=yes
1728         fi
1729         ;;
1730     nis)
1731         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1732             CFG_NIS="$VAL"
1733         else
1734             UNKNOWN_OPT=yes
1735         fi
1736         ;;
1737     largefile)
1738         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1739             CFG_LARGEFILE="$VAL"
1740         else
1741             UNKNOWN_OPT=yes
1742         fi
1743         ;;
1744     openssl)
1745         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1746             CFG_OPENSSL="$VAL"
1747         else
1748             UNKNOWN_OPT=yes
1749         fi
1750         ;;
1751     openssl-linked)
1752         if [ "$VAL" = "yes" ]; then
1753             CFG_OPENSSL="linked"
1754         else
1755             UNKNOWN_OPT=yes
1756         fi
1757         ;;
1758     qml-debug)
1759         if [ "$VAL" = "yes" ]; then
1760             CFG_QML_DEBUG="yes"
1761         else
1762             if [ "$VAL" = "no" ]; then
1763                 CFG_QML_DEBUG="no"
1764             else
1765                 UNKNOWN_OPT=yes
1766             fi
1767         fi
1768         ;;
1769     javascript-jit)
1770         if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then 
1771             CFG_JAVASCRIPTCORE_JIT="$VAL"
1772         else
1773             UNKNOWN_OPT=yes
1774         fi
1775         ;;
1776     confirm-license)
1777         if [ "$VAL" = "yes" ]; then
1778             OPT_CONFIRM_LICENSE="$VAL"
1779         else
1780             UNKNOWN_OPT=yes
1781         fi
1782         ;;
1783     h|help)
1784         if [ "$VAL" = "yes" ]; then
1785             OPT_HELP="$VAL"
1786         else
1787             UNKNOWN_OPT=yes
1788         fi
1789         ;;
1790     sql-*|imageformat-*)
1791         # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1792         # if autoconf style options were used, $VAL can be "yes" or "no"
1793         [ "$VAL" = "yes" ] && VAL=qt
1794         # now $VAL should be "no", "qt", or "plugin"... double-check
1795         if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1796             UNKNOWN_OPT=yes
1797         fi
1798         # now $VAL is "no", "qt", or "plugin"
1799         OPT="$VAL"
1800         VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1801         VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1802
1803         # Grab the available values
1804         case "$VAR" in
1805         sql)
1806             avail="$CFG_SQL_AVAILABLE"
1807             ;;
1808         imageformat)
1809             avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1810             if [ "$OPT" != "plugin" ]; then
1811                 # png is always built in
1812                 avail="$avail png"
1813             fi
1814             ;;
1815         *)
1816             avail=""
1817             echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1818             ;;
1819         esac
1820
1821         # Check that that user's value is available.
1822         found=no
1823         for d in $avail; do
1824             if [ "$VAL" = "$d" ]; then
1825                 found=yes
1826                 break
1827             fi
1828         done
1829         [ "$found" = yes ] || ERROR=yes
1830
1831         if [ "$VAR" = "sql" ]; then
1832             # set the CFG_SQL_driver
1833             eval "CFG_SQL_$VAL=\$OPT"
1834             continue
1835         elif [ "$VAR" = "imageformat" ]; then
1836             [ "$OPT" = "qt" ] && OPT=yes
1837             VAL="`echo $VAL |tr a-z A-Z`"
1838             eval "CFG_$VAL=$OPT"
1839             continue
1840         fi
1841
1842         if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1843             if [ "$OPT" = "plugin" ]; then
1844                 VAR="${VAR}-${OPT}"
1845             fi
1846             QMakeVar add "${VAR}s" "${VAL}"
1847         elif [ "$OPT" = "no" ]; then
1848             PLUG_VAR="${VAR}-plugin"
1849             IN_VAR="${VAR}"
1850             QMakeVar del "${IN_VAR}s" "$VAL"
1851             QMakeVar del "${PLUG_VAR}s" "$VAL"
1852         fi
1853         if [ "$ERROR" = "yes" ]; then
1854            echo "$CURRENT_OPT: unknown argument"
1855            OPT_HELP=yes
1856         fi
1857         ;;
1858     v|verbose)
1859         if [ "$VAL" = "yes" ]; then
1860             if [ "$OPT_VERBOSE" = "$VAL" ]; then            # takes two verboses to turn on qmake debugs
1861                 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1862             else
1863                 OPT_VERBOSE=yes
1864             fi
1865         elif [ "$VAL" = "no" ]; then
1866             if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1867                 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1868             else
1869                 OPT_VERBOSE=no
1870             fi
1871         else
1872             UNKNOWN_OPT=yes
1873         fi
1874         ;;
1875     fast)
1876         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1877             OPT_FAST="$VAL"
1878         else
1879             UNKNOWN_OPT=yes
1880         fi
1881         ;;
1882     rpath)
1883         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1884             CFG_RPATH="$VAL"
1885         else
1886             UNKNOWN_OPT=yes
1887         fi
1888         ;;
1889     add_define)
1890         D_FLAGS="$D_FLAGS \"$VAL\""
1891         ;;
1892     add_ipath)
1893         I_FLAGS="$I_FLAGS -I\"${VAL}\""
1894         ;;
1895     add_lpath)
1896         L_FLAGS="$L_FLAGS -L\"${VAL}\""
1897         ;;
1898     add_rpath)
1899         RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
1900         ;;
1901     add_link)
1902         l_FLAGS="$l_FLAGS -l\"${VAL}\""
1903         ;;
1904     add_fpath)
1905         if [ "$BUILD_ON_MAC" = "yes" ]; then
1906             L_FLAGS="$L_FLAGS -F\"${VAL}\""
1907             I_FLAGS="$I_FLAGS -F\"${VAL}\""
1908         else
1909             UNKNOWN_OPT=yes
1910         fi
1911         ;;
1912     add_framework)
1913         if [ "$BUILD_ON_MAC" = "yes" ]; then
1914             l_FLAGS="$l_FLAGS -framework \"${VAL}\""
1915         else
1916             UNKNOWN_OPT=yes
1917         fi
1918         ;;
1919     add_warn)
1920         W_FLAGS="$W_FLAGS \"${VAL}\""
1921         ;;
1922     silent)
1923         CFG_SILENT="$VAL"
1924         ;;
1925     phonon-backend)
1926         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1927             CFG_PHONON_BACKEND="$VAL"
1928         else
1929             UNKNOWN_OPT=yes
1930         fi
1931         ;;
1932     dont-process)
1933         CFG_NOPROCESS=yes
1934         ;;
1935     process)
1936         CFG_NOPROCESS=no
1937         ;;
1938     audio-backend)
1939         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1940             CFG_AUDIO_BACKEND="$VAL"
1941         else
1942             UNKNOWN_OPT=yes
1943         fi
1944         ;;
1945     icu)
1946         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1947             CFG_ICU="$VAL"
1948         else
1949             UNKNOWN_OPT=yes
1950         fi
1951         ;;
1952     force-asserts)
1953         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1954             CFG_FORCE_ASSERTS="$VAL"
1955         else
1956             UNKNOWN_OPT=yes
1957         fi
1958         ;;
1959     pcre)
1960         if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
1961             CFG_PCRE="$VAL"
1962         else
1963             UNKNOWN_OPT=yes
1964         fi
1965         ;;
1966     *)
1967         UNKNOWN_OPT=yes
1968         ;;
1969     esac
1970     if [ "$UNKNOWN_OPT" = "yes" ]; then
1971         echo "${CURRENT_OPT}: invalid command-line switch"
1972         OPT_HELP=yes
1973         ERROR=yes
1974     fi
1975 done
1976
1977 # update QT_CONFIG to show our current predefined configuration
1978 case "$CFG_QCONFIG" in
1979 minimal|small|medium|large|full)
1980     # these are a sequence of increasing functionality
1981     for c in minimal small medium large full; do
1982         QT_CONFIG="$QT_CONFIG $c-config"
1983         [ "$CFG_QCONFIG" = $c ] && break
1984     done
1985     ;;
1986 *)
1987     # not known to be sufficient for anything
1988     if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
1989         echo >&2 "Error: configuration file not found:"
1990         echo >&2 "  $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
1991         echo >&2 "  or"
1992         echo >&2 "  `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
1993         OPT_HELP=yes
1994     fi
1995 esac
1996
1997 #-------------------------------------------------------------------------------
1998 # build tree initialization
1999 #-------------------------------------------------------------------------------
2000
2001 # where to find which..
2002 unixtests="$relpath/config.tests/unix"
2003 mactests="$relpath/config.tests/mac"
2004 WHICH="$unixtests/which.test"
2005
2006 PERL=`$WHICH perl 2>/dev/null`
2007
2008 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2009 AWK=
2010 for e in gawk nawk awk; do
2011     if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2012         AWK=$e
2013         break
2014     fi
2015 done
2016
2017 # find perl
2018 PERL="/usr/bin/perl"
2019 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2020     PERL=`$WHICH perl`
2021 fi
2022
2023 ### skip this if the user just needs help...
2024 if [ "$OPT_HELP" != "yes" ]; then
2025
2026 # is this a shadow build?
2027 if [ "$OPT_SHADOW" = "maybe" ]; then
2028     OPT_SHADOW=no
2029     if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2030         if [ -h "$outpath" ]; then
2031             [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2032         else
2033             OPT_SHADOW=yes
2034         fi
2035     fi
2036 fi
2037 if [ "$OPT_SHADOW" = "yes" ]; then
2038     if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2039         echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2040         echo >&2 "Cannot proceed."
2041         exit 1
2042     fi
2043     [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2044 fi
2045
2046 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2047     echo
2048     echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2049     echo "Qt can be built in release mode with separate debug information, so"
2050     echo "-debug-and-release is not necessary anymore"
2051     echo
2052 fi
2053
2054 if [ "$CFG_SILENT" = "yes" ]; then
2055     QMAKE_CONFIG="$QMAKE_CONFIG silent"
2056 fi
2057
2058 # if the source tree is different from the build tree,
2059 # symlink or copy part of the sources
2060 if [ "$OPT_SHADOW" = "yes" ]; then
2061     echo "Preparing build tree..."
2062
2063     if [ -z "$PERL" ]; then
2064         echo
2065         echo "You need perl in your PATH to make a shadow build."
2066         echo "Cannot proceed."
2067         exit 1
2068     fi
2069
2070     [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2071
2072     # make a syncqt script that can be used in the shadow
2073     rm -f "$outpath/bin/syncqt"
2074     if [ -x "$relpath/bin/syncqt" ]; then
2075         mkdir -p "$outpath/bin"
2076         echo "#!/bin/sh" >"$outpath/bin/syncqt"
2077         echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2078         chmod 755 "$outpath/bin/syncqt"
2079     fi
2080
2081     for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2082         rm -f "$outpath/bin/$i"
2083         if [ -x "$relpath/bin/$i" ]; then
2084             mkdir -p "$outpath/bin"
2085             echo "#!/bin/sh" >"$outpath/bin/$i"
2086             echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2087             echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2088             chmod 755 "$outpath/bin/$i"
2089         fi
2090     done
2091
2092     # save a pre-existing mkspecs/modules dir
2093     test -d "$outpath/mkspecs/modules" && \
2094         mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2095
2096     # symlink the mkspecs directory
2097     mkdir -p "$outpath/mkspecs"
2098     rm -rf "$outpath"/mkspecs/*
2099     ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2100     rm -f "$outpath/mkspecs/default"
2101
2102     ShadowMkspecs()
2103     {
2104         rm -rf "$outpath/mkspecs/$1"
2105         find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2106         find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2107     }
2108
2109     # Special case for mkspecs/features directory.
2110     # To be able to place .prf files into a shadow build directory,
2111     # we're creating links for files only. The directory structure is reproduced.
2112     ShadowMkspecs features
2113
2114     # The modules dir is special, too.
2115     if test -d "$outpath/mkspecs-modules"; then
2116         rm -rf "$outpath/mkspecs/modules"
2117         mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2118     else
2119         ShadowMkspecs modules
2120     fi
2121
2122     # symlink the doc directory
2123     rm -rf "$outpath/doc"
2124     ln -s "$relpath/doc" "$outpath/doc"
2125 fi
2126
2127 # symlink fonts to be able to run application from build directory
2128 if [ ! -d "${outpath}/lib/fonts" ]; then
2129     if [ "$PLATFORM" = "$XPLATFORM" ]; then
2130         mkdir -p "${outpath}/lib"
2131         ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2132     fi
2133 fi
2134
2135 if [ "$OPT_FAST" = "auto" ]; then
2136    if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2137        OPT_FAST=yes
2138    else
2139        OPT_FAST=no
2140    fi
2141 fi
2142
2143 # find a make command
2144 if [ -z "$MAKE" ]; then
2145     MAKE=
2146     for mk in gmake make; do
2147         if "$WHICH" $mk >/dev/null 2>&1; then
2148             MAKE=`"$WHICH" $mk`
2149             break
2150         fi
2151     done
2152     if [ -z "$MAKE" ]; then
2153         echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2154         echo >&2 "Cannot proceed."
2155         exit 1
2156     fi
2157     # export MAKE, we need it later in the config.tests
2158     export MAKE
2159 fi
2160
2161 fi ### help
2162
2163 #-------------------------------------------------------------------------------
2164 # auto-detect all that hasn't been specified in the arguments
2165 #-------------------------------------------------------------------------------
2166
2167 if [ -z "$PLATFORM" ]; then
2168     PLATFORM_NOTES=
2169     case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2170      Darwin:*)
2171          OSX_VERSION=`uname -r | cut -d. -f1`
2172          # Select compiler. Use g++ unless we find a usable Clang version
2173          PLATFORM=macx-g++
2174          if [ "$OSX_VERSION" -ge 12 ]; then
2175             # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2176             PLATFORM=macx-clang
2177          elif [ "$OSX_VERSION" -eq 11 ]; then
2178              # We're on Lion. Check if we have a supported Clang version
2179              case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2180                  3.*)
2181                      PLATFORM=macx-clang
2182                      PLATFORM_NOTES="\n    - Also available for Mac OS X: macx-g++\n"
2183                      ;;
2184              esac
2185          fi
2186          ;;
2187      AIX:*)
2188         #PLATFORM=aix-g++
2189         #PLATFORM=aix-g++-64
2190         PLATFORM=aix-xlc
2191         #PLATFORM=aix-xlc-64
2192         PLATFORM_NOTES="
2193             - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2194         "
2195         ;;
2196      GNU:*)
2197         PLATFORM=hurd-g++
2198         ;;
2199      dgux:*)
2200         PLATFORM=dgux-g++
2201         ;;
2202 #     DYNIX/ptx:4*)
2203 #       PLATFORM=dynix-g++
2204 #       ;;
2205      ULTRIX:*)
2206         PLATFORM=ultrix-g++
2207         ;;
2208      FreeBSD:*)
2209         PLATFORM=freebsd-g++
2210         PLATFORM_NOTES="
2211             - Also available for FreeBSD: freebsd-icc
2212         "
2213         ;;
2214      OpenBSD:*)
2215         PLATFORM=openbsd-g++
2216         ;;
2217      NetBSD:*)
2218         PLATFORM=netbsd-g++
2219         ;;
2220      BSD/OS:*|BSD/386:*)
2221         PLATFORM=bsdi-g++
2222         ;;
2223      IRIX*:*)
2224         #PLATFORM=irix-g++
2225         PLATFORM=irix-cc
2226         #PLATFORM=irix-cc-64
2227         PLATFORM_NOTES="
2228             - Also available for IRIX: irix-g++ irix-cc-64
2229         "
2230         ;;
2231      HP-UX:*)
2232         case "$UNAME_MACHINE" in
2233             ia64)
2234                 #PLATFORM=hpuxi-acc-32
2235                 PLATFORM=hpuxi-acc-64
2236                 PLATFORM_NOTES="
2237                     - Also available for HP-UXi: hpuxi-acc-32
2238                 "
2239             ;;
2240             *)
2241                 #PLATFORM=hpux-g++
2242                 PLATFORM=hpux-acc
2243                 #PLATFORM=hpux-acc-64
2244                 #PLATFORM=hpux-cc
2245                 #PLATFORM=hpux-acc-o64
2246                 PLATFORM_NOTES="
2247                     - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2248                 "
2249             ;;
2250         esac
2251         ;;
2252      OSF1:*)
2253         #PLATFORM=tru64-g++
2254         PLATFORM=tru64-cxx
2255         PLATFORM_NOTES="
2256             - Also available for Tru64: tru64-g++
2257         "
2258         ;;
2259      Linux:*)
2260         case "$UNAME_MACHINE" in
2261             x86_64|s390x|ppc64)
2262                 PLATFORM=linux-g++-64
2263                 ;;
2264             *)
2265                 PLATFORM=linux-g++
2266                 ;;
2267         esac
2268         PLATFORM_NOTES="
2269             - Also available for Linux: linux-kcc linux-icc linux-cxx
2270         "
2271         ;;
2272      SunOS:5*)
2273         if [ "$XPLATFORM_MINGW" = "yes" ]; then
2274             PLATFORM="solaris-g++"
2275         else
2276             #PLATFORM=solaris-g++
2277             PLATFORM=solaris-cc
2278             #PLATFORM=solaris-cc64
2279         fi
2280         PLATFORM_NOTES="
2281             - Also available for Solaris: solaris-g++ solaris-cc-64
2282         "
2283         ;;
2284      ReliantUNIX-*:*|SINIX-*:*)
2285         PLATFORM=reliant-cds
2286         #PLATFORM=reliant-cds-64
2287         PLATFORM_NOTES="
2288             - Also available for Reliant UNIX: reliant-cds-64
2289         "
2290         ;;
2291      CYGWIN*:*)
2292         PLATFORM=cygwin-g++
2293         ;;
2294      LynxOS*:*)
2295         PLATFORM=lynxos-g++
2296         ;;
2297      OpenUNIX:*)
2298         #PLATFORM=unixware-g++
2299         PLATFORM=unixware-cc
2300         PLATFORM_NOTES="
2301             - Also available for OpenUNIX: unixware-g++
2302         "
2303         ;;
2304      UnixWare:*)
2305         #PLATFORM=unixware-g++
2306         PLATFORM=unixware-cc
2307         PLATFORM_NOTES="
2308             - Also available for UnixWare: unixware-g++
2309         "
2310         ;;
2311      SCO_SV:*)
2312         #PLATFORM=sco-g++
2313         PLATFORM=sco-cc
2314         PLATFORM_NOTES="
2315             - Also available for SCO OpenServer: sco-g++
2316         "
2317         ;;
2318      UNIX_SV:*)
2319         PLATFORM=unixware-g++
2320         ;;
2321      QNX:*)
2322         PLATFORM=unsupported/qnx-g++
2323         ;;
2324      *)
2325         if [ "$OPT_HELP" != "yes" ]; then
2326             echo
2327             for p in $PLATFORMS; do
2328                 echo "    $relconf $* -platform $p"
2329             done
2330             echo >&2
2331             echo "   The build script does not currently recognize all" >&2
2332             echo "   platforms supported by Qt." >&2
2333             echo "   Rerun this script with a -platform option listed to" >&2
2334             echo "   set the system/compiler combination you use." >&2
2335             echo >&2
2336             exit 2
2337         fi
2338     esac
2339 fi
2340
2341 PLATFORMS=`find "$relpath/mkspecs/" -type f | grep -v qws | sed "s,$relpath/mkspecs/qws/,,"`
2342
2343 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2344
2345 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2346 case "$XPLATFORM" in linux-g++-maemo) XPLATFORM_MAEMO=yes;; esac
2347
2348 if [ -d "$PLATFORM" ]; then
2349   QMAKESPEC="$PLATFORM"
2350 else
2351   QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2352 fi
2353 if [ -d "$XPLATFORM" ]; then
2354   XQMAKESPEC="$XPLATFORM"
2355 else
2356   XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2357 fi
2358 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2359     QT_CROSS_COMPILE=yes
2360     QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2361     QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2362 fi
2363
2364 if [ "$BUILD_ON_MAC" = "yes" ]; then
2365    if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2366       echo >&2
2367       echo "   Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2368       echo "   Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2369       echo "   use mac-xcode on your application code it can link to a Qt/Mac" >&2
2370       echo "   built with 'macx-g++'" >&2
2371       echo >&2
2372       exit 2
2373     fi
2374 fi
2375
2376 # check specified platforms are supported
2377 if [ '!' -d "$QMAKESPEC" ]; then
2378     echo
2379     echo "   The specified system/compiler is not supported:"
2380     echo
2381     echo "      $QMAKESPEC"
2382     echo
2383     echo "   Please see the README file for a complete list."
2384     echo
2385     exit 2
2386 fi
2387 if [ '!' -d "$XQMAKESPEC" ]; then
2388     echo
2389     echo "   The specified system/compiler is not supported:"
2390     echo
2391     echo "      $XQMAKESPEC"
2392     echo
2393     echo "   Please see the README file for a complete list."
2394     echo
2395     exit 2
2396 fi
2397 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2398     echo
2399     echo "   The specified system/compiler port is not complete:"
2400     echo
2401     echo "      $XQMAKESPEC/qplatformdefs.h"
2402     echo
2403     echo "   Please contact qt-info@nokia.com."
2404     echo
2405     exit 2
2406 fi
2407
2408 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2409     # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2410     if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2411         sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2412         mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2413     fi
2414 fi
2415
2416 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2417     case `basename "$XPLATFORM"` in
2418         qnx-* | vxworks-*)
2419             echo ""
2420             echo "You are not licensed for Qt for `basename $XPLATFORM`."
2421             echo ""
2422             echo "Please contact qt-info@nokia.com to upgrade your license to"
2423             echo "include this platform, or install the Qt Open Source Edition"
2424             echo "if you intend to develop free software."
2425             exit 1
2426             ;;
2427     esac
2428 fi
2429
2430 #-------------------------------------------------------------------------------
2431 # write out device config before we run the test.
2432 #-------------------------------------------------------------------------------
2433 if cmp -s "$DEVICE_VARS_FILE" "$outpath/mkspecs/qdevice.pri"; then
2434     rm -f "$DEVICE_VARS_FILE"
2435 else
2436     mv -f $DEVICE_VARS_FILE "$outpath/mkspecs/qdevice.pri"
2437 fi
2438
2439 #-------------------------------------------------------------------------------
2440 # tests that don't need qmake (must be run before displaying help)
2441 #-------------------------------------------------------------------------------
2442
2443 # detect build style
2444 if [ "$CFG_DEBUG" = "auto" ]; then
2445     if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2446         CFG_DEBUG_RELEASE=yes
2447         CFG_DEBUG=yes
2448     elif [ "$CFG_DEV" = "yes" ]; then
2449         CFG_DEBUG_RELEASE=no
2450         CFG_DEBUG=yes
2451     else
2452         CFG_DEBUG_RELEASE=no
2453         CFG_DEBUG=no
2454     fi
2455 fi
2456 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2457     QT_CONFIG="$QT_CONFIG build_all"
2458 fi
2459
2460 # pass on $CFG_SDK to the configure tests.
2461 if [ '!' -z "$CFG_SDK" ]; then
2462     MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -sdk $CFG_SDK"
2463 fi
2464
2465 # find the default framework value
2466 if [ "$BUILD_ON_MAC" = "yes" ]; then
2467     if [ "$CFG_FRAMEWORK" = "auto" ]; then
2468         CFG_FRAMEWORK="$CFG_SHARED"
2469     elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2470         echo
2471         echo "WARNING: Using static linking will disable the use of Mac frameworks."
2472         echo
2473         CFG_FRAMEWORK="no"
2474     fi
2475 else
2476     CFG_FRAMEWORK=no
2477 fi
2478
2479 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2480
2481 TEST_COMPILER=$QMAKE_CONF_COMPILER
2482 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2483     if [ -z "$TEST_COMPILER" ]; then
2484         echo "ERROR: Cannot set the compiler for the configuration tests"
2485         exit 1
2486     fi
2487 fi
2488
2489 if [ -n "$CFG_SYSROOT" ]; then
2490     SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2491 else
2492     SYSROOT_FLAG=
2493 fi
2494 export SYSROOT_FLAG    # used by config.tests/unix/compile.test
2495
2496 # auto-detect precompiled header support
2497 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2498     if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2499        CFG_PRECOMPILE=no
2500     else
2501        CFG_PRECOMPILE=yes
2502     fi
2503 fi
2504
2505 #auto-detect DWARF2 on the mac
2506 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_MAC_DWARF2" = "auto" ]; then
2507     if "$mactests/dwarf2.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests" ; then
2508         CFG_MAC_DWARF2=no
2509     else
2510         CFG_MAC_DWARF2=yes
2511     fi
2512 fi
2513
2514 # auto-detect support for separate debug info in objcopy
2515 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2516     TEST_COMPILER_CFLAGS=`getXQMakeConf QMAKE_CFLAGS`
2517     TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2518     TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2519     COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2520     COMPILER_WITH_FLAGS=`echo "$COMPILER_WITH_FLAGS" | sed -e "s%\\$\\$QMAKE_CFLAGS%$TEST_COMPILER_CFLAGS%g"`
2521     if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2522        CFG_SEPARATE_DEBUG_INFO=no
2523     else
2524        case "$PLATFORM" in
2525        hpux-*)
2526            # binutils on HP-UX is buggy; default to no.
2527            CFG_SEPARATE_DEBUG_INFO=no
2528            ;;
2529        *)
2530            CFG_SEPARATE_DEBUG_INFO=yes
2531            ;;
2532        esac
2533     fi
2534 fi
2535
2536 # auto-detect -fvisibility support
2537 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2538     if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2539        if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2540            echo "-reduce-exports was requested but this compiler does not support it"
2541            echo "Re-run configure with -v for more information"
2542            exit 1
2543        fi
2544        CFG_REDUCE_EXPORTS=no
2545     else
2546        CFG_REDUCE_EXPORTS=yes
2547     fi
2548 fi
2549
2550 # detect the availability of the -Bsymbolic-functions linker optimization
2551 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2552     if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2553        if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2554            echo "-reduce-relocations was requested but this compiler does not support it"
2555            echo "Re-run configure with -v for more information"
2556            exit 1
2557        fi
2558         CFG_REDUCE_RELOCATIONS=no
2559     else
2560         CFG_REDUCE_RELOCATIONS=yes
2561     fi
2562 fi
2563
2564 # auto-detect GNU make support
2565 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2566    CFG_USE_GNUMAKE=yes
2567 fi
2568
2569 # find the default framework value
2570 if [ "$BUILD_ON_MAC" = "yes" ]; then
2571     if [ "$CFG_FRAMEWORK" = "auto" ]; then
2572         CFG_FRAMEWORK="$CFG_SHARED"
2573     elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2574         echo
2575         echo "WARNING: Using static linking will disable the use of Mac frameworks."
2576         echo
2577         CFG_FRAMEWORK="no"
2578     fi
2579 else
2580     CFG_FRAMEWORK=no
2581 fi
2582
2583 #setup the build parts
2584 if [ -z "$CFG_BUILD_PARTS" ]; then
2585     CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2586
2587     # build tests by default, if a developer build
2588     if [ "$CFG_DEV" = "yes" ]; then
2589         CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2590     fi
2591
2592     # don't build tools by default when cross-compiling
2593     if [ "$PLATFORM" != "$XPLATFORM" ]; then
2594         CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2595     fi
2596 fi
2597 for nobuild in $CFG_NOBUILD_PARTS; do
2598     CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2599 done
2600 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2601 #    echo
2602 #    echo "WARNING: libs is a required part of the build."
2603 #    echo
2604     CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2605 fi
2606
2607 #-------------------------------------------------------------------------------
2608 # post process QT_INSTALL_* variables
2609 #-------------------------------------------------------------------------------
2610
2611 if [ -z "$QT_INSTALL_PREFIX" ]; then
2612     if [ "$CFG_DEV" = "yes" ]; then
2613         QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2614     else
2615         QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2616     fi
2617 fi
2618 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2619
2620 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2621     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2622         if [ "$BUILD_ON_MAC" = "yes" ]; then
2623             QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2624         fi
2625     fi
2626     [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2627
2628 fi
2629 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2630
2631 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2632     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2633         if [ "$BUILD_ON_MAC" = "yes" ]; then
2634             if [ "$CFG_FRAMEWORK" = "yes" ]; then
2635                 QT_INSTALL_HEADERS=
2636             fi
2637         fi
2638     fi
2639     [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2640
2641 fi
2642 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2643
2644 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2645     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2646         if [ "$BUILD_ON_MAC" = "yes" ]; then
2647             if [ "$CFG_FRAMEWORK" = "yes" ]; then
2648                 QT_INSTALL_LIBS="/Libraries/Frameworks"
2649             fi
2650         fi
2651     fi
2652     [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2653 fi
2654 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2655
2656 if [ -z "$QT_INSTALL_BINS" ]; then #default
2657     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2658         if [ "$BUILD_ON_MAC" = "yes" ]; then
2659             QT_INSTALL_BINS="/Developer/Applications/Qt"
2660         fi
2661     fi
2662     [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2663 fi
2664 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2665
2666 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2667     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2668         if [ "$BUILD_ON_MAC" = "yes" ]; then
2669             QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2670         fi
2671     fi
2672     [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2673 fi
2674 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2675
2676 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2677     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2678         if [ "$BUILD_ON_MAC" = "yes" ]; then
2679             QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2680         fi
2681     fi
2682     [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2683 fi
2684 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2685
2686 if [ -z "$QT_INSTALL_DATA" ]; then #default
2687     QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2688 fi
2689 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2690
2691 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2692     QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2693 fi
2694 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2695
2696 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2697     if [ "$BUILD_ON_MAC" = "yes" ]; then
2698         QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2699     else
2700         QT_INSTALL_SETTINGS=/etc/xdg
2701     fi
2702 fi
2703 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2704
2705 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2706     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2707         if [ "$BUILD_ON_MAC" = "yes" ]; then
2708             QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2709         fi
2710     fi
2711     [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2712 fi
2713 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2714
2715 #tests
2716 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2717     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2718         if [ "$BUILD_ON_MAC" = "yes" ]; then
2719             QT_INSTALL_TESTS="/Developer/Tests/Qt"
2720         fi
2721     fi
2722     [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2723 fi
2724 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2725
2726 #------- host paths --------
2727
2728 if [ -z "$QT_HOST_PREFIX" ]; then
2729     QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2730     haveHpx=false
2731 else
2732     QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2733     haveHpx=true
2734 fi
2735
2736 if [ -z "$QT_HOST_BINS" ]; then #default
2737     if $haveHpx; then
2738         if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2739             if [ "$BUILD_ON_MAC" = "yes" ]; then
2740                 QT_HOST_BINS="/Developer/Applications/Qt"
2741             fi
2742         fi
2743         [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2744     else
2745         QT_HOST_BINS="$QT_INSTALL_BINS"
2746     fi
2747 fi
2748 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2749
2750 if [ -z "$QT_HOST_DATA" ]; then #default
2751     if $haveHpx; then
2752         QT_HOST_DATA="$QT_HOST_PREFIX"
2753     else
2754         QT_HOST_DATA="$QT_INSTALL_DATA"
2755     fi
2756 else
2757     QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2758 fi
2759
2760 #-------------------------------------------------------------------------------
2761 # help - interactive parts of the script _after_ this section please
2762 #-------------------------------------------------------------------------------
2763
2764 # next, emit a usage message if something failed.
2765 if [ "$OPT_HELP" = "yes" ]; then
2766     [ "x$ERROR" = "xyes" ] && echo
2767     if [ "$CFG_NIS" = "no" ]; then
2768         NSY=" "
2769         NSN="*"
2770     else
2771         NSY="*"
2772         NSN=" "
2773     fi
2774     if [ "$CFG_CUPS" = "no" ]; then
2775         CUY=" "
2776         CUN="*"
2777     else
2778         CUY="*"
2779         CUN=" "
2780     fi
2781     if [ "$CFG_ICONV" = "no" ]; then
2782         CIY=" "
2783         CIN="*"
2784     else
2785         CIY="*"
2786         CIN=" "
2787     fi
2788     if [ "$CFG_LARGEFILE" = "no" ]; then
2789         LFSY=" "
2790         LFSN="*"
2791     else
2792         LFSY="*"
2793         LFSN=" "
2794     fi
2795     if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2796         PHY=" "
2797         PHN="*"
2798     else
2799         PHY="*"
2800         PHN=" "
2801     fi
2802
2803     if [ "$CFG_XCB" = "no" ]; then
2804         XCBY=" "
2805         XCBN="*"
2806     else
2807         XCBY="*"
2808         XCBN=" "
2809     fi
2810
2811     if [ "$CFG_EGLFS" = "no" ]; then
2812         EGLFSY=" "
2813         EGLFSN="*"
2814     else
2815         EGLFSY="*"
2816         EGLFSN=" "
2817     fi
2818
2819     if [ "$CFG_DIRECTFB" = "no"]; then
2820         DFBY=" "
2821         DFBN="*"
2822     else
2823         DFBY="*"
2824         DFBN=" "
2825     fi
2826     if [ "$CFG_XINPUT2" = "no" ]; then
2827         X2Y=" "
2828         X2N="*"
2829     else
2830         X2Y="*"
2831         X2N=" "
2832     fi
2833
2834     if [ "$CFG_DBUS" = "no" ]; then
2835         DBY=" "
2836         DBN="+"
2837     else
2838         DBY="+"
2839         DBN=" "
2840     fi
2841
2842     if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2843         SBY=" "
2844         SBN="*"
2845     else
2846         SBY="*"
2847         SBN=" "
2848     fi
2849
2850     if [ "$CFG_GLIB" = "no" ]; then
2851         GBY=" "
2852         GBN="+"
2853     else
2854         GBY="+"
2855         GBN=" "
2856     fi
2857
2858     cat <<EOF
2859 Usage:  $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>]
2860         [-docdir <dir>] [-headerdir <dir>] [-plugindir <dir> ] [-importdir <dir>] [-datadir <dir>]
2861         [-translationdir <dir>] [-sysconfdir <dir>] [-examplesdir <dir>] [-testsdir <dir>]
2862         [-release] [-debug] [-debug-and-release]
2863         [-developer-build] [-shared] [-static] [-no-fast] [-fast] [-no-largefile]
2864         [-largefile] [-no-exceptions] [-exceptions] [-no-accessibility]
2865         [-accessibility] [-no-sql-<driver>] [-sql-<driver>]
2866         [-plugin-sql-<driver>] [-system-sqlite]
2867         [-platform] [-D <string>] [-I <string>] [-L <string>] [-help]
2868         [-qt-zlib] [-system-zlib] [-no-gif] [-no-libpng] [-qt-libpng] [-system-libpng]
2869         [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make <part>]
2870         [-nomake <part>] [-R <string>]  [-l <string>] [-no-rpath]  [-rpath] [-continue]
2871         [-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv]
2872         [-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked] [-no-gui]
2873         [-no-separate-debug-info] [-no-sse2]
2874         [-no-sse3] [-no-ssse3] [-no-sse4.1] [-no-sse4.2] [-no-avx] [-no-neon]
2875         [-qtnamespace <namespace>] [-qtlibinfix <infix>] [-separate-debug-info]
2876         [-no-phonon-backend] [-phonon-backend] [-no-media-backend] [-media-backend]
2877         [-no-audio-backend] [-audio-backend]
2878         [-no-javascript-jit] [-javascript-jit] [-no-qml-debug] [-qml-debug]
2879         [-no-optimized-qmake] [-optimized-qmake]
2880         [-no-openssl] [-openssl] [-openssl-linked]
2881         [-no-gtkstyle] [-gtkstyle]
2882         [-qt-pcre] [-system-pcre]
2883         [-device <name>] [-device-option <key=value>]
2884         [additional platform specific options (see below)]
2885
2886
2887 Installation options:
2888
2889  These are optional, but you may specify install directories.
2890
2891     -prefix <dir> ...... This will install everything relative to <dir>
2892                          (default $QT_INSTALL_PREFIX)
2893
2894     -hostprefix [dir] .. Tools and libraries needed when developing
2895                          applications are installed in [dir]. If [dir] is
2896                          not given, the current build directory will be used.
2897                          (default PREFIX)
2898
2899   * -prefix-install .... Force a sandboxed "local" installation of
2900                          Qt. This will install into
2901                          $QT_INSTALL_PREFIX, if this option is
2902                          disabled then some platforms will attempt a
2903                          "system" install by placing default values to
2904                          be placed in a system location other than
2905                          PREFIX.
2906
2907  You may use these to separate different parts of the install:
2908
2909     -bindir <dir> ......... Executables will be installed to <dir>
2910                             (default PREFIX/bin)
2911     -libdir <dir> ......... Libraries will be installed to <dir>
2912                             (default PREFIX/lib)
2913     -docdir <dir> ......... Documentation will be installed to <dir>
2914                             (default PREFIX/doc)
2915     -headerdir <dir> ...... Headers will be installed to <dir>
2916                             (default PREFIX/include)
2917     -plugindir <dir> ...... Plugins will be installed to <dir>
2918                             (default PREFIX/plugins)
2919     -importdir <dir> ...... Imports for QML will be installed to <dir>
2920                             (default PREFIX/imports)
2921     -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
2922                             (default PREFIX)
2923     -translationdir <dir> . Translations of Qt programs will be installed to <dir>
2924                             (default PREFIX/translations)
2925     -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
2926                             (default PREFIX/etc/settings)
2927     -examplesdir <dir> .... Examples will be installed to <dir>
2928                             (default PREFIX/examples)
2929     -testsdir <dir> ....... Tests will be installed to <dir>
2930                             (default PREFIX/tests)
2931
2932     -hostbindir <dir> .. Host executables will be installed to <dir>
2933                          (default HOSTPREFIX/bin)
2934     -hostdatadir <dir> . Data used by qmake will be installed to <dir>
2935                          (default HOSTPREFIX)
2936
2937 Configure options:
2938
2939  The defaults (*) are usually acceptable. A plus (+) denotes a default value
2940  that needs to be evaluated. If the evaluation succeeds, the feature is
2941  included. Here is a short explanation of each option:
2942
2943  *  -release ........... Compile and link Qt with debugging turned off.
2944     -debug ............. Compile and link Qt with debugging turned on.
2945     -debug-and-release . Compile and link two versions of Qt, with and without
2946                          debugging turned on (Mac only).
2947
2948     -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
2949
2950     -opensource ........ Compile and link the Open-Source Edition of Qt.
2951     -commercial ........ Compile and link the Commercial Edition of Qt.
2952
2953
2954  *  -shared ............ Create and use shared Qt libraries.
2955     -static ............ Create and use static Qt libraries.
2956
2957  *  -no-fast ........... Configure Qt normally by generating Makefiles for all
2958                          project files.
2959     -fast .............. Configure Qt quickly by generating Makefiles only for
2960                          library and subdirectory targets.  All other Makefiles
2961                          are created as wrappers, which will in turn run qmake.
2962
2963     -no-largefile ...... Disables large file support.
2964  +  -largefile ......... Enables Qt to access files larger than 4 GB.
2965
2966     -no-exceptions ..... Disable exceptions on compilers that support it.
2967  *  -exceptions ........ Enable exceptions on compilers that support it.
2968
2969     -no-accessibility .. Do not compile Accessibility support.
2970  *  -accessibility ..... Compile Accessibility support.
2971
2972     -no-sql-<driver> ... Disable SQL <driver> entirely.
2973     -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
2974                          none are turned on.
2975     -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
2976                          at run time.
2977
2978                          Possible values for <driver>:
2979                          [ $CFG_SQL_AVAILABLE ]
2980
2981     -system-sqlite ..... Use sqlite from the operating system.
2982
2983     -no-phonon-backend.. Do not build the platform phonon plugin.
2984  +  -phonon-backend..... Build the platform phonon plugin.
2985
2986     -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
2987  +  -javascript-jit .... Build the JavaScriptCore JIT compiler.
2988
2989     -no-qml-debug ...... Do not build the in-process QML debugging support.
2990  +  -qml-debug ......... Build the QML debugging support.
2991
2992     -platform target ... The operating system and compiler you are building
2993                          on ($PLATFORM).
2994
2995                          See the README file for a list of supported
2996                          operating systems and compilers.
2997
2998     -no-sse2 ........... Do not compile with use of SSE2 instructions.
2999     -no-sse3 ........... Do not compile with use of SSE3 instructions.
3000     -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3001     -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3002     -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3003     -no-avx ............ Do not compile with use of AVX instructions.
3004     -no-avx2 ........... Do not compile with use of AVX2 instructions.
3005     -no-neon ........... Do not compile with use of NEON instructions.
3006     -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3007     -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3008
3009     -qtnamespace <name>  Wraps all Qt library code in 'namespace <name> {...}'.
3010     -qtlibinfix <infix>  Renames all libQt*.so to libQt*<infix>.so.
3011
3012     -testcocoon          Instrument Qt with the TestCocoon code coverage tool.
3013
3014     -D <string> ........ Add an explicit define to the preprocessor.
3015     -I <string> ........ Add an explicit include path.
3016     -L <string> ........ Add an explicit library path.
3017
3018  +  -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3019                          configure determines whether to use pkg-config or not with
3020                          some heuristics such as checking the environment variables.
3021     -no-pkg-config ..... Disable use of pkg-config.
3022     -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3023                          detection heuristic).
3024
3025     -help, -h .......... Display this information.
3026
3027 Third Party Libraries:
3028
3029     -qt-zlib ........... Use the zlib bundled with Qt.
3030  +  -system-zlib ....... Use zlib from the operating system.
3031                          See http://www.gzip.org/zlib
3032
3033     -no-gif ............ Do not compile GIF reading support.
3034
3035     -no-libpng ......... Do not compile PNG support.
3036     -qt-libpng ......... Use the libpng bundled with Qt.
3037  +  -system-libpng ..... Use libpng from the operating system.
3038                          See http://www.libpng.org/pub/png
3039
3040     -no-libjpeg ........ Do not compile JPEG support.
3041     -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3042  +  -system-libjpeg .... Use libjpeg from the operating system.
3043                          See http://www.ijg.org
3044
3045     -no-openssl ........ Do not compile support for OpenSSL.
3046  +  -openssl ........... Enable run-time OpenSSL support.
3047     -openssl-linked .... Enabled linked OpenSSL support.
3048
3049     -qt-pcre ........... Use the PCRE library bundled with Qt.
3050  +  -system-pcre ....... Use the PCRE library from the operating system.
3051
3052 Additional options:
3053
3054     -make <part> ....... Add part to the list of parts to be built at make time.
3055                          ($QT_DEFAULT_BUILD_PARTS)
3056     -nomake <part> ..... Exclude part from the list of parts to be built.
3057
3058     -R <string> ........ Add an explicit runtime library path to the Qt
3059                          libraries.
3060     -l <string> ........ Add an explicit library.
3061
3062     -no-rpath .......... Do not use the library install path as a runtime
3063                          library path.
3064  +  -rpath ............. Link Qt libraries and executables using the library
3065                          install path as a runtime library path. Equivalent
3066                          to -R install_libpath
3067
3068     -continue .......... Continue as far as possible if an error occurs.
3069
3070     -verbose, -v ....... Print verbose information about each step of the
3071                          configure process.
3072
3073     -silent ............ Reduce the build output so that warnings and errors
3074                          can be seen more easily.
3075
3076  *  -no-optimized-qmake ... Do not build qmake optimized.
3077     -optimized-qmake ...... Build qmake optimized.
3078
3079     -no-gui ............ Don't build the Qt GUI library
3080
3081  $NSN  -no-nis ............ Do not compile NIS support.
3082  $NSY  -nis ............... Compile NIS support.
3083
3084  $CUN  -no-cups ........... Do not compile CUPS support.
3085  $CUY  -cups .............. Compile CUPS support.
3086                          Requires cups/cups.h and libcups.so.2.
3087
3088  $CIN  -no-iconv .......... Do not compile support for iconv(3).
3089  $CIY  -iconv ............. Compile support for iconv(3).
3090
3091  $PHN  -no-pch ............ Do not use precompiled header support.
3092  $PHY  -pch ............... Use precompiled header support.
3093
3094  $DBN  -no-dbus ........... Do not compile the QtDBus module.
3095  $DBY  -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3096     -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3097
3098     -reduce-relocations ..... Reduce relocations in the libraries through extra
3099                               linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3100                               experimental; needs GNU ld >= 2.18).
3101
3102     -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3103
3104     -device <name> ............... Cross-compile for device <name> (experimental)
3105     -device-option <key=value> ... Add device specific options for the device mkspec
3106                                    (experimental)
3107
3108  $SBN  -no-separate-debug-info . Do not store debug information in a separate file.
3109  $SBY  -separate-debug-info .... Strip debug information into a separate .debug file.
3110
3111  $XCBN  -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3112  $XCBY  -xcb ............... Compile Xcb support.
3113
3114  $EGLFSN  -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3115  $EGLFSY  -eglfs ............. Compile EGLFS support.
3116
3117  $DFBN  -no-directfb ....... Do not compile DirectFB support.
3118  $DFBY  -directfb .......... Compile DirectFB support.
3119
3120     -xplatform target ... The target platform when cross-compiling.
3121
3122     -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot.
3123
3124     -no-feature-<feature> Do not compile in <feature>.
3125     -feature-<feature> .. Compile in <feature>. The available features
3126                           are described in src/corelib/global/qfeatures.txt
3127
3128     -no-freetype ........ Do not compile in Freetype2 support.
3129     -qt-freetype ........ Use the libfreetype bundled with Qt.
3130  *  -system-freetype .... Use libfreetype from the operating system.
3131                           See http://www.freetype.org/
3132
3133     -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3134                           default ($CFG_QCONFIG).
3135
3136     -no-opengl .......... Do not support OpenGL.
3137     -opengl <api> ....... Enable OpenGL support
3138                           With no parameter, this will attempt to auto-detect
3139                           OpenGL ES 2, or regular desktop OpenGL.
3140                           Use es2 for <api> to override auto-detection.
3141
3142  $GBN  -no-glib ........... Do not compile Glib support.
3143  $GBY  -glib .............. Compile Glib support.
3144 EOF
3145
3146 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3147     cat << EOF
3148
3149  $X2N  -no-xinput2......... Do not compile XInput2 support.
3150  $X2Y  -xinput2............ Compile XInput2 support.
3151
3152 EOF
3153
3154 fi
3155
3156 if [ "$BUILD_ON_MAC" = "yes" ]; then
3157     cat << EOF
3158
3159 Qt/Mac only:
3160
3161     -Fstring ........... Add an explicit framework path.
3162     -fw string ......... Add an explicit framework.
3163
3164  *  -framework ......... Build Qt as a series of frameworks and
3165                          link tools against those frameworks.
3166     -no-framework ...... Do not build Qt as a series of frameworks.
3167
3168  *  -dwarf2 ............ Enable dwarf2 debugging symbols.
3169     -no-dwarf2 ......... Disable dwarf2 debugging symbols.
3170
3171     -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3172                          To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3173
3174     -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3175  *  -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3176                          QT_ENABLE_HARFBUZZ environment variable.
3177
3178 EOF
3179 fi
3180
3181    [ "x$ERROR" = "xyes" ] && exit 1
3182    exit 0
3183 fi # Help
3184
3185
3186 # -----------------------------------------------------------------------------
3187 # LICENSING, INTERACTIVE PART
3188 # -----------------------------------------------------------------------------
3189
3190 echo
3191 echo "This is the Qt ${EditionString} Edition."
3192 echo
3193
3194 if [ "$Edition" = "OpenSource" ]; then
3195     while true; do
3196         echo "You are licensed to use this software under the terms of"
3197         echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3198         if [ -f "$relpath/LICENSE.GPL3" ]; then
3199             echo "You are also licensed to use this software under the terms of"
3200             echo "the GNU General Public License (GPL) versions 3."
3201             affix="either"
3202         else
3203             affix="the"
3204         fi
3205         echo
3206         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3207             echo "You have already accepted the terms of the $LicenseType license."
3208             acceptance=yes
3209         else
3210             if [ -f "$relpath/LICENSE.GPL3" ]; then
3211                 echo "Type '3' to view the GNU General Public License version 3."
3212             fi
3213             echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3214             echo "Type 'yes' to accept this license offer."
3215             echo "Type 'no' to decline this license offer."
3216             echo
3217             echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3218             read acceptance
3219         fi
3220         echo
3221         if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3222             break
3223         elif [ "$acceptance" = "no" ]; then
3224             echo "You are not licensed to use this software."
3225             echo
3226             exit 1
3227         elif [ "$acceptance" = "3" ]; then
3228             more "$relpath/LICENSE.GPL3"
3229         elif [ "$acceptance" = "L" ]; then
3230             more "$relpath/LICENSE.LGPL"
3231         fi
3232     done
3233 elif [ "$Edition" = "Preview" ]; then
3234     TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3235     while true; do
3236
3237         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3238             echo "You have already accepted the terms of the $LicenseType license."
3239             acceptance=yes
3240         else
3241             echo "You are licensed to use this software under the terms of"
3242             echo "the $TheLicense"
3243             echo
3244             echo "Type '?' to read the Preview License."
3245             echo "Type 'yes' to accept this license offer."
3246             echo "Type 'no' to decline this license offer."
3247             echo
3248             echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3249             read acceptance
3250         fi
3251         echo
3252         if [ "$acceptance" = "yes" ]; then
3253             break
3254         elif [ "$acceptance" = "no" ] ;then
3255             echo "You are not licensed to use this software."
3256             echo
3257             exit 0
3258         elif [ "$acceptance" = "?" ]; then
3259             more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3260         fi
3261     done
3262 elif [ "$Edition" != "OpenSource" ]; then
3263     if [ -n "$ExpiryDate" ]; then
3264         ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3265         [ -z "$ExpiryDate" ] && ExpiryDate="0"
3266         Today=`date +%Y%m%d`
3267         if [ "$Today" -gt "$ExpiryDate" ]; then
3268             case "$LicenseType" in
3269             Commercial|Academic|Educational)
3270                 if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
3271                     echo
3272                     echo "NOTICE  NOTICE  NOTICE  NOTICE"
3273                     echo
3274                     echo "  Your support and upgrade period has expired."
3275                     echo
3276                     echo "  You are no longer licensed to use this version of Qt."
3277                     echo "  Please contact qt-info@nokia.com to renew your support"
3278                     echo "  and upgrades for this license."
3279                     echo
3280                     echo "NOTICE  NOTICE  NOTICE  NOTICE"
3281                     echo
3282                     exit 1
3283                 else
3284                     echo
3285                     echo "WARNING  WARNING  WARNING  WARNING"
3286                     echo
3287                     echo "  Your support and upgrade period has expired."
3288                     echo
3289                     echo "  You may continue to use your last licensed release"
3290                     echo "  of Qt under the terms of your existing license"
3291                     echo "  agreement. But you are not entitled to technical"
3292                     echo "  support, nor are you entitled to use any more recent"
3293                     echo "  Qt releases."
3294                     echo
3295                     echo "  Please contact qt-info@nokia.com to renew your"
3296                     echo "  support and upgrades for this license."
3297                     echo
3298                     echo "WARNING  WARNING  WARNING  WARNING"
3299                     echo
3300                     sleep 3
3301                 fi
3302                 ;;
3303             Evaluation|*)
3304                 echo
3305                 echo "NOTICE  NOTICE  NOTICE  NOTICE"
3306                 echo
3307                 echo "  Your Evaluation license has expired."
3308                 echo
3309                 echo "  You are no longer licensed to use this software. Please"
3310                 echo "  contact qt-info@nokia.com to purchase license, or install"
3311                 echo "  the Qt Open Source Edition if you intend to develop free"
3312                 echo "  software."
3313                 echo
3314                 echo "NOTICE  NOTICE  NOTICE  NOTICE"
3315                 echo
3316                 exit 1
3317                 ;;
3318             esac
3319         fi
3320     fi
3321     TheLicense=`head -n 1 "$outpath/LICENSE"`
3322     while true; do
3323         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3324             echo "You have already accepted the terms of the $TheLicense."
3325             acceptance=yes
3326         else
3327             echo "You are licensed to use this software under the terms of"
3328             echo "the $TheLicense."
3329             echo
3330             echo "Type '?' to view the $TheLicense."
3331             echo "Type 'yes' to accept this license offer."
3332             echo "Type 'no' to decline this license offer."
3333             echo
3334             echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3335             read acceptance
3336         fi
3337         echo
3338         if [ "$acceptance" = "yes" ]; then
3339             break
3340         elif [ "$acceptance" = "no" ]; then
3341             echo "You are not licensed to use this software."
3342             echo
3343             exit 1
3344         else [ "$acceptance" = "?" ]
3345             more "$outpath/LICENSE"
3346         fi
3347     done
3348 fi
3349
3350 # this should be moved somewhere else
3351 case "$PLATFORM" in
3352 aix-*)
3353     AIX_VERSION=`uname -v`
3354     if [ "$AIX_VERSION" -lt "5" ]; then
3355         QMakeVar add QMAKE_LIBS_X11 -lbind
3356     fi
3357     ;;
3358 *)
3359     ;;
3360 esac
3361
3362 #-------------------------------------------------------------------------------
3363 # generate qconfig.cpp
3364 #-------------------------------------------------------------------------------
3365 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3366
3367 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3368 /* License Info */
3369 static const char qt_configure_licensee_str          [256 + 12] = "qt_lcnsuser=$Licensee";
3370 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3371
3372 /* Installation date */
3373 static const char qt_configure_installation          [12+11]    = "qt_instdate=`date +%Y-%m-%d`";
3374
3375 /* Installation Info */
3376 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3377     "qt_prfxpath=$QT_INSTALL_PREFIX",
3378     "qt_docspath=$QT_INSTALL_DOCS",
3379     "qt_hdrspath=$QT_INSTALL_HEADERS",
3380     "qt_libspath=$QT_INSTALL_LIBS",
3381     "qt_binspath=$QT_INSTALL_BINS",
3382     "qt_plugpath=$QT_INSTALL_PLUGINS",
3383     "qt_impspath=$QT_INSTALL_IMPORTS",
3384     "qt_datapath=$QT_INSTALL_DATA",
3385     "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3386     "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3387     "qt_tstspath=$QT_INSTALL_TESTS",
3388 #ifdef QT_BUILD_QMAKE
3389     "qt_ssrtpath=$CFG_SYSROOT",
3390     "qt_hpfxpath=$QT_HOST_PREFIX",
3391     "qt_hbinpath=$QT_HOST_BINS",
3392     "qt_hdatpath=$QT_HOST_DATA",
3393 #endif
3394 };
3395 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3396 EOF
3397
3398 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3399
3400 /* strlen( "qt_lcnsxxxx" ) == 12 */
3401 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3402 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3403
3404 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3405 EOF
3406
3407 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3408 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3409     rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3410 else
3411     [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3412     mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3413     chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3414 fi
3415
3416 # -----------------------------------------------------------------------------
3417 if [ "$LicenseType" = "Evaluation" ]; then
3418     EVALKEY=qt_qevalkey=$LicenseKeyExt
3419 elif echo "$D_FLAGS" | grep QT_EVAL >/dev/null 2>&1; then
3420     EVALKEY=qt_qevalkey=
3421 fi
3422
3423 if [ -n "$EVALKEY" ]; then
3424     rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3425     cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3426 /* Evaluation license key */
3427 static const volatile char qt_eval_key_data                   [512 + 12] = "$EVALKEY";
3428 EOF
3429     chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3430 fi
3431
3432
3433 # -----------------------------------------------------------------------------
3434 # build qmake
3435 # -----------------------------------------------------------------------------
3436
3437 # symlink includes
3438 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3439     SYNCQT_OPTS=
3440     [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
3441     if [ "$OPT_SHADOW" = "yes" ]; then
3442         "$outpath/bin/syncqt" $SYNCQT_OPTS "$relpath" || exit 1
3443     elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then
3444         QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
3445     fi
3446 fi
3447
3448 # $1: input variable name (awk regexp)
3449 # $2: optional output variable name
3450 # $3: optional value transformation (sed command)
3451 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3452 # is where the resulting variable is written to
3453 setBootstrapVariable()
3454 {
3455     getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3456 }
3457
3458 # build qmake
3459 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3460     echo "Creating qmake. Please wait..."
3461
3462     OLD_QCONFIG_H=
3463     QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
3464     QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
3465     if [ -f "$QCONFIG_H" ]; then
3466          OLD_QCONFIG_H=$QCONFIG_H
3467          mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
3468     fi
3469
3470     # create temporary qconfig.h for compiling qmake, if it doesn't exist
3471     # when building qmake, we use #defines for the install paths,
3472     # however they are real functions in the library
3473     if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
3474         mkdir -p "$outpath/src/corelib/global"
3475         [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
3476         echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
3477     fi
3478
3479     mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
3480
3481     #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3482     rm -rf mkspecs/default
3483     ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3484     mkdir -p "$outpath/qmake" || exit
3485     # fix makefiles
3486     for mkfile in GNUmakefile Makefile; do
3487         EXTRA_LFLAGS=
3488         EXTRA_CFLAGS=
3489         in_mkfile="${mkfile}.in"
3490         if [ "$mkfile" = "Makefile" ]; then
3491 #           if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3492 #               (cd qmake && qmake) >/dev/null 2>&1 && continue
3493 #           fi
3494             in_mkfile="${mkfile}.unix"
3495         fi
3496         in_mkfile="$relpath/qmake/$in_mkfile"
3497         mkfile="$outpath/qmake/$mkfile"
3498         if [ -f "$mkfile" ]; then
3499             [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3500             rm -f "$mkfile"
3501         fi
3502         [ -f "$in_mkfile" ] || continue
3503
3504         echo "########################################################################" > "$mkfile"
3505         echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3506         echo "########################################################################" >> "$mkfile"
3507         EXTRA_OBJS=
3508         EXTRA_SRCS=
3509         EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3510         EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3511         EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3512
3513         if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3514             EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3515         fi
3516
3517         [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3518         setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3519         setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3520         setBootstrapVariable QMAKE_CFLAGS
3521         setBootstrapVariable QMAKE_CXXFLAGS
3522         setBootstrapVariable QMAKE_LFLAGS
3523
3524         if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3525             EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3526             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3527         fi
3528         if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3529             setBootstrapVariable QMAKE_CFLAGS_RELEASE
3530             setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3531             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3532             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3533         elif [ "$CFG_DEBUG" = "yes" ]; then
3534             setBootstrapVariable QMAKE_CFLAGS_DEBUG
3535             setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3536             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3537             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3538         fi
3539
3540         if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3541             setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3542             for rpath in $RPATH_FLAGS; do
3543                 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3544             done
3545         fi
3546         if [ "$BUILD_ON_MAC" = "yes" ]; then
3547             echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3548             echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3549             echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3550             EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3551             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3552             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3553             EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3554             EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3555             if [ '!' -z "$CFG_SDK" ]; then
3556                 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3557                 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3558                 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3559                 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3560                 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3561             fi
3562         fi
3563         if [ '!' -z "$D_FLAGS" ]; then
3564             for DEF in $D_FLAGS; do
3565                 EXTRA_CFLAGS="$EXTRA_CFLAGS \"-D${DEF}\""
3566             done
3567         fi
3568         QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3569         [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3570         QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3571         [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3572         echo >>"$mkfile"
3573         adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3574         adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3575         adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3576         sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3577             -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3578             -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3579             -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3580             -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3581             -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3582             -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3583
3584         if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3585             (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3586             sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3587             sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3588             rm "$mkfile.tmp"
3589         fi
3590     done
3591
3592     QMAKE_BUILD_ERROR=no
3593     (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
3594     [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
3595     [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
3596     [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
3597 fi # Build qmake
3598
3599 #-------------------------------------------------------------------------------
3600 # Detect pkg-config
3601 #-------------------------------------------------------------------------------
3602 if [ -z "$PKG_CONFIG" ]; then
3603     # See if PKG_CONFIG is set in the mkspec:
3604     PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
3605 fi
3606 if [ -z "$PKG_CONFIG" ]; then
3607     PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3608 fi
3609
3610 if [ "$CFG_PKGCONFIG" = "no" ]; then
3611     PKG_CONFIG=
3612 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3613     echo >&2 ""
3614     echo >&2 "You have asked to use pkg-config. Please make sure you have"
3615     echo >&2 "a correctly setup pkg-config environment!"
3616     echo >&2 ""
3617 elif [ -n "$PKG_CONFIG" ]; then
3618     # found a pkg-config
3619     if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3620         # when xcompiling, check environment to see if it's actually usable
3621         if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3622             if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3623                 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3624                 export PKG_CONFIG_LIBDIR
3625                 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3626             elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3627                 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3628                 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3629                 echo >&2 "Set this variable to the directory that contains target .pc files"
3630                 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3631                 echo >&2 "use -force-pkg-config to override this test."
3632                 exit 101
3633             else
3634                 PKG_CONFIG=
3635                 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3636             fi
3637         fi
3638         if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3639             if [ -n "$CFG_SYSROOT" ]; then
3640                 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3641                 export PKG_CONFIG_SYSROOT_DIR
3642                 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3643             elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3644                 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3645                 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3646                 echo >&2 "or use -force-pkg-config to override this test."
3647                 exit 101
3648             else
3649                 PKG_CONFIG=
3650                 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3651             fi
3652         fi
3653     fi
3654 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3655     echo >&2 "Could not detect pkg-config from mkspec or PATH."
3656     exit 101
3657 fi
3658
3659 if [ -z "$PKG_CONFIG" ]; then
3660     QT_CONFIG="$QT_CONFIG no-pkg-config"
3661 fi
3662
3663 #-------------------------------------------------------------------------------
3664 # tests that need qmake
3665 #-------------------------------------------------------------------------------
3666
3667 #-------------------------------------------------------------------------------
3668 # determine the target and host architectures
3669 #-------------------------------------------------------------------------------
3670
3671 # Use config.tests/arch/arch.pro to has the compiler tell us what the target architecture is
3672 CFG_ARCH=`OUTDIR="$outpath" "$outpath/bin/qmake" -spec "$XQMAKESPEC" -o /dev/null "$relpath/config.tests/arch/arch.pro" 2>&1 | sed -n -e 's,^Project MESSAGE:.*Architecture: \([a-zA-Z0-9_]*\).*,\1,p'`
3673
3674 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3675 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3676     # Do the same test again, using the host compiler
3677     CFG_HOST_ARCH=`OUTDIR="$outpath" "$outpath/bin/qmake" -spec "$QMAKESPEC" -o /dev/null "$relpath/config.tests/arch/arch.pro" 2>&1 | sed -n -e 's,^Project MESSAGE:.*Architecture: \([a-zA-Z0-9_]*\).*,\1,p'`
3678     [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3679 else
3680     # not cross compiling, host == target
3681     CFG_HOST_ARCH="$CFG_ARCH"
3682 fi
3683
3684 if [ "$OPT_VERBOSE" = "yes" ]; then
3685     echo "System architecture: '$CFG_ARCH'"
3686     echo "Host architecture: '$CFG_HOST_ARCH'"
3687 fi
3688
3689 #-------------------------------------------------------------------------------
3690 # functionality tests
3691 #-------------------------------------------------------------------------------
3692
3693 # detect availability of float math.h functions
3694 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/floatmath "floatmath" $L_FLAGS $I_FLAGS $l_FLAGS; then
3695     CFG_USE_FLOATMATH=yes
3696 else
3697     CFG_USE_FLOATMATH=no
3698 fi
3699
3700 # detect sse2 support
3701 if [ "${CFG_SSE2}" = "auto" ]; then
3702     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse2 "sse2" $L_FLAGS $I_FLAGS $l_FLAGS "-msse2"; then
3703        CFG_SSE2=yes
3704     else
3705        CFG_SSE2=no
3706     fi
3707 fi
3708
3709 # detect sse3 support
3710 if [ "${CFG_SSE3}" = "auto" ]; then
3711     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse3 "sse3" $L_FLAGS $I_FLAGS $l_FLAGS "-msse3"; then
3712        CFG_SSE3=yes
3713     else
3714        CFG_SSE3=no
3715     fi
3716 fi
3717
3718 # detect ssse3 support
3719 if [ "${CFG_SSSE3}" = "auto" ]; then
3720     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ssse3 "ssse3" $L_FLAGS $I_FLAGS $l_FLAGS "-mssse3"; then
3721        CFG_SSSE3=yes
3722     else
3723        CFG_SSSE3=no
3724     fi
3725 fi
3726
3727 # detect sse4.1 support
3728 if [ "${CFG_SSE4_1}" = "auto" ]; then
3729     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse4_1 "sse4_1" $L_FLAGS $I_FLAGS $l_FLAGS "-msse4.1"; then
3730        CFG_SSE4_1=yes
3731     else
3732        CFG_SSE4_1=no
3733     fi
3734 fi
3735
3736 # detect sse4.2 support
3737 if [ "${CFG_SSE4_2}" = "auto" ]; then
3738     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse4_2 "sse4_2" $L_FLAGS $I_FLAGS $l_FLAGS "-msse4.2"; then
3739        CFG_SSE4_2=yes
3740     else
3741        CFG_SSE4_2=no
3742     fi
3743 fi
3744
3745 # detect avx support
3746 if [ "${CFG_AVX}" = "auto" ]; then
3747     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/avx "avx" $L_FLAGS $I_FLAGS $l_FLAGS "-mavx"; then
3748        CFG_AVX=yes
3749     else
3750        CFG_AVX=no
3751     fi
3752 fi
3753
3754 # detect avx2 support
3755 if [ "${CFG_AVX2}" = "auto" ]; then
3756     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/avx2 "avx2" $L_FLAGS $I_FLAGS $l_FLAGS "-march=core-avx2"; then
3757        CFG_AVX2=yes
3758     else
3759        CFG_AVX2=no
3760     fi
3761 fi
3762
3763 # check iWMMXt support
3764 if [ "$CFG_IWMMXT" = "yes" ]; then
3765     "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iwmmxt "iwmmxt" $L_FLAGS $I_FLAGS $l_FLAGS "-mcpu=iwmmxt"
3766     if [ $? != "0" ]; then
3767         echo "The iWMMXt functionality test failed!"
3768         echo " Please make sure your compiler supports iWMMXt intrinsics!"
3769         exit 1
3770     fi
3771 fi
3772
3773 # detect neon support
3774 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3775     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/neon "neon" $L_FLAGS $I_FLAGS $l_FLAGS "-mfpu=neon"; then
3776         CFG_NEON=yes
3777     else
3778         CFG_NEON=no
3779     fi
3780 elif [ "$CFG_ARCH" != "arm" ]; then
3781     CFG_NEON=no
3782 fi
3783
3784 # detect mips_dsp support
3785 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSP}" = "yes" ]; then
3786   CFG_MIPS_DSP=yes
3787     else
3788   CFG_MIPS_DSP=no
3789 fi
3790
3791 # detect mips_dspr2 support
3792 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "yes" ]; then
3793   CFG_MIPS_DSPR2=yes
3794     else
3795   CFG_MIPS_DSPR2=no
3796 fi
3797
3798 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3799
3800 # detect zlib
3801 if [ "$CFG_ZLIB" = "no" ]; then
3802     # Note: Qt no longer support builds without zlib
3803     # So we force a "no" to be "auto" here.
3804     # If you REALLY really need no zlib support, you can still disable
3805     # it by doing the following:
3806     #   add "no-zlib" to mkspecs/qconfig.pri
3807     #   #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
3808     #
3809     # There's no guarantee that Qt will build under those conditions
3810
3811     CFG_ZLIB=auto
3812     ZLIB_FORCED=yes
3813 fi
3814 if [ "$CFG_ZLIB" = "auto" ]; then
3815     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/zlib "zlib" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3816        CFG_ZLIB=system
3817     else
3818        CFG_ZLIB=yes
3819     fi
3820 fi
3821
3822 if [ "$CFG_LARGEFILE" = "auto" ]; then
3823     #Large files should be enabled for all Linux systems
3824     CFG_LARGEFILE=yes
3825 fi
3826
3827 if [ "$CFG_GUI" = "no" ]; then
3828     QPA_PLATFORM_GUARD=no
3829 fi
3830
3831 # detect how jpeg should be built
3832 if [ "$CFG_JPEG" = "auto" ]; then
3833     if [ "$CFG_SHARED" = "yes" ]; then
3834         CFG_JPEG=plugin
3835     else
3836         CFG_JPEG=yes
3837     fi
3838 fi
3839 # detect jpeg
3840 if [ "$CFG_LIBJPEG" = "auto" ]; then
3841     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libjpeg "libjpeg" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3842        CFG_LIBJPEG=system
3843     else
3844        CFG_LIBJPEG=qt
3845     fi
3846 fi
3847
3848 # detect how gif should be built
3849 if [ "$CFG_GIF" = "auto" ]; then
3850     if [ "$CFG_SHARED" = "yes" ]; then
3851         CFG_GIF=plugin
3852     else
3853         CFG_GIF=yes
3854     fi
3855 fi
3856
3857 # detect png
3858 if [ "$CFG_LIBPNG" = "auto" ]; then
3859     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libpng "libpng" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3860        CFG_LIBPNG=system
3861     else
3862        CFG_LIBPNG=qt
3863     fi
3864 fi
3865
3866 # detect accessibility
3867 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
3868     CFG_ACCESSIBILITY=yes
3869 fi
3870
3871 if [ "$CFG_EGLFS" = "yes" ]; then
3872     if [ "$CFG_EGL" = "no" ]; then
3873         echo "The EGLFS plugin requires EGL support and cannot be built"
3874         exit 101
3875     fi
3876     CFG_EGL=yes
3877 fi
3878
3879 # auto-detect SQL-modules support
3880 for _SQLDR in $CFG_SQL_AVAILABLE; do
3881         case $_SQLDR in
3882         mysql)
3883             if [ "$CFG_SQL_mysql" != "no" ]; then
3884                 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
3885                 if [ -x "$CFG_MYSQL_CONFIG" ]; then
3886                     QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
3887                     QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
3888                     QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
3889                     QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
3890                     QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
3891                 fi
3892                 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
3893                     if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3894                         echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
3895                         echo " You need MySql 4 or higher."
3896                         echo " If you believe this message is in error you may use the continue"
3897                         echo " switch (-continue) to $0 to continue."
3898                         exit 101
3899                     else
3900                         CFG_SQL_mysql="no"
3901                         QT_LFLAGS_MYSQL=""
3902                         QT_LFLAGS_MYSQL_R=""
3903                         QT_CFLAGS_MYSQL=""
3904                     fi
3905                 else
3906                     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $L_FLAGS $QT_CFLAGS_MYSQL $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3907                         QMakeVar add CONFIG use_libmysqlclient_r
3908                         if [ "$CFG_SQL_mysql" = "auto" ]; then
3909                             CFG_SQL_mysql=plugin
3910                         fi
3911                         QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
3912                     elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $L_FLAGS $QT_CFLAGS_MYSQL $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3913                         if [ "$CFG_SQL_mysql" = "auto" ]; then
3914                             CFG_SQL_mysql=plugin
3915                         fi
3916                     else
3917                         if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3918                             echo "MySQL support cannot be enabled due to functionality tests!"
3919                             echo " Turn on verbose messaging (-v) to $0 to see the final report."
3920                             echo " If you believe this message is in error you may use the continue"
3921                             echo " switch (-continue) to $0 to continue."
3922                             exit 101
3923                         else
3924                             CFG_SQL_mysql=no
3925                             QT_LFLAGS_MYSQL=""
3926                             QT_LFLAGS_MYSQL_R=""
3927                             QT_CFLAGS_MYSQL=""
3928                         fi
3929                     fi
3930                 fi
3931             fi
3932             ;;
3933         psql)
3934             if [ "$CFG_SQL_psql" != "no" ]; then
3935                 # Be careful not to use native pg_config when cross building.
3936                 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
3937                     QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
3938                     QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
3939                 fi
3940                 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
3941                 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
3942                 # But, respect PSQL_LIBS if set
3943                 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
3944                 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $L_FLAGS $QT_CFLAGS_PSQL $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3945                     if [ "$CFG_SQL_psql" = "auto" ]; then
3946                         CFG_SQL_psql=plugin
3947                     fi
3948                 else
3949                     if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3950                         echo "PostgreSQL support cannot be enabled due to functionality tests!"
3951                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
3952                         echo " If you believe this message is in error you may use the continue"
3953                         echo " switch (-continue) to $0 to continue."
3954                         exit 101
3955                     else
3956                         CFG_SQL_psql=no
3957                         QT_CFLAGS_PSQL=""
3958                         QT_LFLAGS_PSQL=""
3959                     fi
3960                 fi
3961             fi
3962         ;;
3963         odbc)
3964             if [ "$CFG_SQL_odbc" != "no" ]; then
3965                 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/odbc "ODBC" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3966                     if [ "$CFG_SQL_odbc" = "auto" ]; then
3967                         CFG_SQL_odbc=plugin
3968                     fi
3969                 else
3970                     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iodbc "iODBC" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3971                         QT_LFLAGS_ODBC="-liodbc"
3972                         if [ "$CFG_SQL_odbc" = "auto" ]; then
3973                             CFG_SQL_odbc=plugin
3974                         fi
3975                     else
3976                         if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3977                             echo "ODBC support cannot be enabled due to functionality tests!"
3978                             echo " Turn on verbose messaging (-v) to $0 to see the final report."
3979                             echo " If you believe this message is in error you may use the continue"
3980                             echo " switch (-continue) to $0 to continue."
3981                             exit 101
3982                         else
3983                             CFG_SQL_odbc=no
3984                         fi
3985                     fi
3986                 fi
3987             fi
3988             ;;
3989         oci)
3990             if [ "$CFG_SQL_oci" != "no" ]; then
3991                 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/oci "OCI" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3992                     if [ "$CFG_SQL_oci" = "auto" ]; then
3993                         CFG_SQL_oci=plugin
3994                     fi
3995                 else
3996                     if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3997                         echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
3998                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
3999                         echo " If you believe this message is in error you may use the continue"
4000                         echo " switch (-continue) to $0 to continue."
4001                         exit 101
4002                     else
4003                         CFG_SQL_oci=no
4004                     fi
4005                 fi
4006             fi
4007             ;;
4008         tds)
4009             if [ "$CFG_SQL_tds" != "no" ]; then
4010                 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4011                 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4012                 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/tds "TDS" $QT_LFLAGS_TDS $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4013                     if [ "$CFG_SQL_tds" = "auto" ]; then
4014                         CFG_SQL_tds=plugin
4015                     fi
4016                 else
4017                     if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4018                         echo "TDS support cannot be enabled due to functionality tests!"
4019                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4020                         echo " If you believe this message is in error you may use the continue"
4021                         echo " switch (-continue) to $0 to continue."
4022                         exit 101
4023                     else
4024                         CFG_SQL_tds=no
4025                     fi
4026                 fi
4027             fi
4028             ;;
4029         db2)
4030             if [ "$CFG_SQL_db2" != "no" ]; then
4031                 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/db2 "DB2" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4032                     if [ "$CFG_SQL_db2" = "auto" ]; then
4033                         CFG_SQL_db2=plugin
4034                     fi
4035                 else
4036                     if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4037                         echo "ODBC support cannot be enabled due to functionality tests!"
4038                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4039                         echo " If you believe this message is in error you may use the continue"
4040                         echo " switch (-continue) to $0 to continue."
4041                         exit 101
4042                     else
4043                         CFG_SQL_db2=no
4044                     fi
4045                 fi
4046             fi
4047             ;;
4048         ibase)
4049             if [ "$CFG_SQL_ibase" != "no" ]; then
4050                 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ibase "InterBase" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4051                     if [ "$CFG_SQL_ibase" = "auto" ]; then
4052                         CFG_SQL_ibase=plugin
4053                     fi
4054                 else
4055                     if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4056                         echo "InterBase support cannot be enabled due to functionality tests!"
4057                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4058                         echo " If you believe this message is in error you may use the continue"
4059                         echo " switch (-continue) to $0 to continue."
4060                         exit 101
4061                     else
4062                         CFG_SQL_ibase=no
4063                     fi
4064                 fi
4065             fi
4066             ;;
4067         sqlite2)
4068             if [ "$CFG_SQL_sqlite2" != "no" ]; then
4069                 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sqlite2 "SQLite2" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4070                     if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4071                         CFG_SQL_sqlite2=plugin
4072                     fi
4073                 else
4074                     if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4075                         echo "SQLite2 support cannot be enabled due to functionality tests!"
4076                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4077                         echo " If you believe this message is in error you may use the continue"
4078                         echo " switch (-continue) to $0 to continue."
4079                         exit 101
4080                     else
4081                         CFG_SQL_sqlite2=no
4082                     fi
4083                 fi
4084             fi
4085             ;;
4086         sqlite)
4087             if [ "$CFG_SQL_sqlite" != "no" ]; then
4088                 SQLITE_AUTODETECT_FAILED="no"
4089                 if [ "$CFG_SQLITE" = "system" ]; then
4090                     if [ -n "$PKG_CONFIG" ]; then
4091                         QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4092                         QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4093                     fi
4094                     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $L_FLAGS $QT_CFLAGS_SQLITE $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4095                         if [ "$CFG_SQL_sqlite" = "auto" ]; then
4096                             CFG_SQL_sqlite=plugin
4097                         fi
4098                         QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4099                     else
4100                         SQLITE_AUTODETECT_FAILED="yes"
4101                         CFG_SQL_sqlite=no
4102                     fi
4103                 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4104                     if [ "$CFG_SQL_sqlite" = "auto" ]; then
4105                             CFG_SQL_sqlite=plugin
4106                     fi
4107                 else
4108                     SQLITE_AUTODETECT_FAILED="yes"
4109                     CFG_SQL_sqlite=no
4110                 fi
4111
4112                 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4113                     echo "SQLite support cannot be enabled due to functionality tests!"
4114                     echo " Turn on verbose messaging (-v) to $0 to see the final report."
4115                     echo " If you believe this message is in error you may use the continue"
4116                     echo " switch (-continue) to $0 to continue."
4117                     exit 101
4118                 fi
4119             fi
4120             ;;
4121         *)
4122             if [ "$OPT_VERBOSE" = "yes" ]; then
4123                 echo "unknown SQL driver: $_SQLDR"
4124             fi
4125             ;;
4126         esac
4127 done
4128
4129 # auto-detect NIS support
4130 if [ "$CFG_NIS" != "no" ]; then
4131     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/nis "NIS" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4132         CFG_NIS=yes
4133     else
4134         if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4135             echo "NIS support cannot be enabled due to functionality tests!"
4136             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4137             echo " If you believe this message is in error you may use the continue"
4138             echo " switch (-continue) to $0 to continue."
4139             exit 101
4140         else
4141             CFG_NIS=no
4142         fi
4143     fi
4144 fi
4145
4146 # auto-detect CUPS support
4147 if [ "$CFG_CUPS" != "no" ]; then
4148     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/cups "Cups" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4149         CFG_CUPS=yes
4150     else
4151         if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4152             echo "Cups support cannot be enabled due to functionality tests!"
4153             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4154             echo " If you believe this message is in error you may use the continue"
4155             echo " switch (-continue) to $0 to continue."
4156             exit 101
4157         else
4158             CFG_CUPS=no
4159         fi
4160     fi
4161 fi
4162
4163 # auto-detect iconv(3) support
4164 if [ "$CFG_ICONV" != "no" ]; then
4165     if [ "$XPLATFORM_MINGW" = "yes" ]; then
4166         CFG_ICONV=no
4167     elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/iconv" "POSIX iconv" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4168         CFG_ICONV=yes
4169     elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/sun-libiconv" "SUN libiconv" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4170         CFG_ICONV=sun
4171     elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/gnu-libiconv" "GNU libiconv" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4172         CFG_ICONV=gnu
4173     else
4174         if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4175             echo "Iconv support cannot be enabled due to functionality tests!"
4176             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4177             echo " If you believe this message is in error you may use the continue"
4178             echo " switch (-continue) to $0 to continue."
4179             exit 101
4180         else
4181             CFG_ICONV=no
4182         fi
4183     fi
4184 fi
4185
4186 # auto-detect libdbus-1 support
4187 if [ "$CFG_DBUS" != "no" ]; then
4188     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4189         QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4190         QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4191     fi
4192     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/dbus "D-Bus" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_DBUS $QT_LIBS_DBUS $MAC_CONFIG_TEST_COMMANDLINE; then
4193         [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4194         QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4195         QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4196     else
4197         if [ "$CFG_DBUS" = "auto" ]; then
4198             CFG_DBUS=no
4199         elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4200             # CFG_DBUS is "yes" or "linked" here
4201
4202             echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4203             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4204             echo " If you believe this message is in error you may use the continue"
4205             echo " switch (-continue) to $0 to continue."
4206             exit 101
4207         fi
4208     fi
4209 fi
4210
4211 # auto-detect Glib support
4212 if [ "$CFG_GLIB" != "no" ]; then
4213     if [ -n "$PKG_CONFIG" ]; then
4214         QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4215         QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4216     fi
4217     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/glib "Glib" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4218         CFG_GLIB=yes
4219         QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4220         QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4221     else
4222         if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4223             echo "Glib support cannot be enabled due to functionality tests!"
4224             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4225             echo " If you believe this message is in error you may use the continue"
4226             echo " switch (-continue) to $0 to continue."
4227             exit 101
4228         else
4229             CFG_GLIB=no
4230         fi
4231     fi
4232 fi
4233
4234 # ### Vestige
4235 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4236     if [ -n "$PKG_CONFIG" ]; then
4237         QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4238         QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4239     fi
4240     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/gstreamer "GStreamer" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4241         CFG_GSTREAMER=yes
4242         QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4243         QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4244     else
4245         if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4246             echo "Gstreamer support cannot be enabled due to functionality tests!"
4247             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4248             echo " If you believe this message is in error you may use the continue"
4249             echo " switch (-continue) to $0 to continue."
4250             exit 101
4251         else
4252             CFG_GSTREAMER=no
4253         fi
4254     fi
4255 elif [ "$CFG_GLIB" = "no" ]; then
4256     CFG_GSTREAMER=no
4257 fi
4258
4259 # auto-detect libicu support
4260 if [ "$CFG_ICU" != "no" ]; then
4261     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/icu "ICU" $L_FLAGS $I_FLAGS $l_FLAGS; then
4262         [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4263     else
4264         if [ "$CFG_ICU" = "auto" ]; then
4265             CFG_ICU=no
4266         elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4267             # CFG_ICU is "yes"
4268
4269             echo "The ICU library support cannot be enabled."
4270             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4271             echo " If you believe this message is in error you may use the continue"
4272             echo " switch (-continue) to $0 to continue."
4273             exit 101
4274         fi
4275     fi
4276 fi
4277
4278 # Auto-detect PulseAudio support
4279 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4280     if [ -n "$PKG_CONFIG" ]; then
4281         QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4282         QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4283     fi
4284     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/pulseaudio "PulseAudio" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4285         CFG_PULSEAUDIO=yes
4286         QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4287         QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4288     else
4289         if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4290             echo "PulseAudio support cannot be enabled due to functionality tests!"
4291             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4292             echo " If you believe this message is in error you may use the continue"
4293             echo " switch (-continue) to $0 to continue."
4294             exit 101
4295         else
4296             CFG_PULSEAUDIO=no
4297         fi
4298     fi
4299 fi
4300
4301 # X11/MINGW OpenGL
4302 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4303     # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4304     if [ "$CFG_GUI" = "no" ]; then
4305         if [ "$CFG_OPENGL" = "auto" ]; then
4306             CFG_OPENGL=no
4307         fi
4308         if [ "$CFG_OPENGL" != "no" ]; then
4309             echo "OpenGL enabled, but GUI disabled."
4310             echo " You might need to either enable the GUI or disable OpenGL"
4311             exit 1
4312         fi
4313     fi
4314     if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4315         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS; then
4316             CFG_OPENGL=desktop
4317         elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
4318             CFG_OPENGL=es2
4319         else
4320             if [ "$CFG_OPENGL" = "yes" ]; then
4321                 echo "All the OpenGL functionality tests failed!"
4322                 echo " You might need to modify the include and library search paths by editing"
4323                 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4324                 echo " ${XQMAKESPEC}."
4325                 exit 1
4326             fi
4327             CFG_OPENGL=no
4328         fi
4329         case "$PLATFORM" in
4330         hpux*)
4331             # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4332             if [ "$CFG_OPENGL" = "desktop" ]; then
4333                 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS
4334                 if [ $? != "0" ]; then
4335                     QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4336                 fi
4337             fi
4338             ;;
4339         *)
4340             ;;
4341         esac
4342     elif [ "$CFG_OPENGL" = "es2" ]; then
4343         #OpenGL ES 2.x
4344         "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS
4345         if [ $? != "0" ]; then
4346             echo "The OpenGL ES 2.0 functionality test failed!"
4347             echo " You might need to modify the include and library search paths by editing"
4348             echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4349             echo " ${XQMAKESPEC}."
4350             exit 1
4351         fi
4352     elif [ "$CFG_OPENGL" = "desktop" ]; then
4353         # Desktop OpenGL support
4354         "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS
4355         if [ $? != "0" ]; then
4356             echo "The OpenGL functionality test failed!"
4357             echo " You might need to modify the include and library search paths by editing"
4358             echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4359             echo " ${XQMAKESPEC}."
4360             exit 1
4361         fi
4362         case "$PLATFORM" in
4363         hpux*)
4364             # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4365             "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS
4366             if [ $? != "0" ]; then
4367                 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4368             fi
4369             ;;
4370         *)
4371             ;;
4372         esac
4373     fi
4374 fi # X11/MINGW OpenGL
4375
4376 if [ "$BUILD_ON_MAC" = "yes" ]; then
4377     if [ "$CFG_PHONON" != "no" ]; then
4378         # Always enable Phonon (unless it was explicitly disabled)
4379         CFG_PHONON=yes
4380     fi
4381
4382     if [ "$CFG_COREWLAN" = "auto" ]; then
4383         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/mac/corewlan "CoreWlan" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4384             CFG_COREWLAN=yes
4385         else
4386             CFG_COREWLAN=no
4387         fi
4388     fi
4389 fi
4390
4391 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4392 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4393     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS; then
4394         CFG_OPENGL=desktop
4395     elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
4396         CFG_OPENGL=es2
4397     else
4398         if [ "$CFG_OPENGL" = "yes" ]; then
4399             echo "All the OpenGL functionality tests failed!"
4400             echo " You might need to modify the include and library search paths by editing"
4401             echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4402             echo " ${XQMAKESPEC}."
4403             exit 1
4404         fi
4405         CFG_OPENGL=no
4406     fi
4407 elif [ "$CFG_OPENGL" = "es2" ]; then
4408     #OpenGL ES 2.x
4409     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4410         QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4411         QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4412         QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4413         QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4414         QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "$QMAKE_INCDIR_OPENGL_ES2"
4415         QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "$QMAKE_LIBDIR_OPENGL_ES2"
4416         QMakeVar set QMAKE_LIBS_OPENGL_ES2 "$QMAKE_LIBS_OPENGL_ES2"
4417     fi
4418
4419     "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4420     if [ $? != "0" ]; then
4421         echo "The OpenGL ES 2.0 functionality test failed!"
4422         echo " You might need to modify the include and library search paths by editing"
4423         echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4424         echo " ${XQMAKESPEC}."
4425         exit 1
4426     fi
4427 elif [ "$CFG_OPENGL" = "desktop" ]; then
4428     # Desktop OpenGL support
4429     "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS
4430     if [ $? != "0" ]; then
4431         echo "The OpenGL functionality test failed!"
4432         echo " You might need to modify the include and library search paths by editing"
4433         echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4434         echo " ${XQMAKESPEC}."
4435         exit 1
4436     fi
4437 fi
4438
4439 # auto-detect FontConfig support
4440 if [ "$CFG_FONTCONFIG" != "no" ]; then
4441     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4442         QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4443         QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4444     else
4445         QT_CFLAGS_FONTCONFIG=
4446         QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4447     fi
4448     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/fontconfig "FontConfig" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4449         QT_CONFIG="$QT_CONFIG fontconfig"
4450         QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4451         QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4452         CFG_LIBFREETYPE=system
4453     fi
4454
4455 fi
4456
4457 # Save these for a check later
4458 ORIG_CFG_XCB="$CFG_XCB"
4459 ORIG_CFG_EGLFS="$CFG_EGLFS"
4460 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4461
4462 if [ "$CFG_LIBUDEV" != "no" ]; then
4463     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4464         QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4465         QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4466         QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4467         QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4468     fi
4469     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libudev "libudev" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4470         CFG_LIBUDEV=yes
4471         QT_CONFIG="$QT_CONFIG libudev"
4472     elif [ "$CFG_LIBUDEV" = "yes" ]; then
4473         echo "The libudev functionality test failed!"
4474         exit 1
4475     else
4476         CFG_LIBUDEV=no
4477         QMakeVar add DEFINES QT_NO_LIBUDEV
4478     fi
4479 fi
4480
4481 if [ "$CFG_EVDEV" != "no" ]; then
4482     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/evdev "evdev" $L_FLAGS $I_FLAGS $l_FLAGS; then
4483         CFG_EVDEV=yes
4484         QT_CONFIG="$QT_CONFIG evdev"
4485     elif [ "$CFG_EVDEV" = "yes" ]; then
4486         echo "The evdev functionality test failed!"
4487         exit 1
4488     else
4489         CFG_EVDEV=no
4490         QMakeVar add DEFINES QT_NO_EVDEV
4491     fi
4492 fi
4493
4494 # Check we actually have X11 :-)
4495 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xlib "XLib" $L_FLAGS $I_FLAGS $l_FLAGS; then
4496     QT_CONFIG="$QT_CONFIG xlib"
4497 fi
4498
4499 # auto-detect Xrender support
4500 if [ "$CFG_XRENDER" != "no" ]; then
4501     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xrender "Xrender" $L_FLAGS $I_FLAGS $l_FLAGS; then
4502         CFG_XRENDER=yes
4503         QT_CONFIG="$QT_CONFIG xrender"
4504     else
4505         if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4506             echo "Xrender support cannot be enabled due to functionality tests!"
4507             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4508             echo " If you believe this message is in error you may use the continue"
4509             echo " switch (-continue) to $0 to continue."
4510             exit 101
4511         else
4512             CFG_XRENDER=no
4513         fi
4514     fi
4515 fi
4516
4517 if [ "$CFG_XCB" != "no" ]; then
4518     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4519         QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4520         QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4521     fi
4522     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb "xcb" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4523         CFG_XCB=yes
4524         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-render "xcb-render" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4525             QT_CONFIG="$QT_CONFIG xcb-render"
4526         fi
4527
4528         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4529             CFG_XCB_LIMITED=no
4530             QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4531         fi
4532
4533         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-xlib "xcb-xlib" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4534             QT_CONFIG="$QT_CONFIG xcb-xlib"
4535         fi
4536
4537         if [ "$XPLATFORM_MAEMO" = "yes" ]; then
4538             # auto-detect XInput2/Xinput support
4539             if [ "$CFG_XINPUT2" != "no" ]; then
4540                 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xinput2 "XInput2" $L_FLAGS $I_FLAGS $l_FLAGS; then
4541                     CFG_XINPUT2=yes
4542                     CFG_XINPUT=no
4543                 else
4544                     if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4545                         echo "XInput2 support cannot be enabled due to functionality tests!"
4546                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4547                         echo " If you believe this message is in error you may use the continue"
4548                         echo " switch (-continue) to $0 to continue."
4549                         exit 101
4550                     else
4551                         CFG_XINPUT2=no
4552                     fi
4553                 fi
4554             fi
4555         fi
4556     else
4557         if [ "$CFG_XCB" = "yes" ]; then
4558             echo "The XCB test failed!"
4559             echo " You might need to install dependency packages."
4560             echo " See src/plugins/platforms/xcb/README."
4561             exit 1
4562         fi
4563         CFG_XCB=no
4564         QMakeVar add DEFINES QT_NO_XCB
4565     fi
4566 fi
4567
4568 if [ "$CFG_DIRECTFB" != "no" ]; then
4569     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4570         QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4571         QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4572         QT_CONFIG="$QT_CONFIG directfb"
4573     else
4574         CFG_DIRECTFB=no
4575     fi
4576 fi
4577
4578 # Detect libxkbcommon
4579 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4580     QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4581     QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4582     QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4583     QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4584 else
4585     QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4586 fi
4587
4588 # EGL Support
4589 if [ "$CFG_EGL" != "no" ] && [ "$CFG_OPENGL" != "desktop" ]; then
4590     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4591         QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4592         QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4593         QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4594         QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4595         QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4596     fi       # detect EGL support
4597     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/qpa/egl" "EGL" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4598         CFG_EGL=yes
4599     elif [ "$CFG_EGL" = "yes" ]; then
4600         echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4601         echo " You might need to modify the include and library search paths by editing"
4602         echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4603         exit 1
4604     else
4605         CFG_EGL=no
4606     fi
4607 elif [ "$CFG_OPENGL" = "desktop" ]; then
4608     if [ "$CFG_EGL" = "yes" ]; then
4609         echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4610         echo "Either disable EGL support or enable OpenGL ES support."
4611         exit 101
4612     fi
4613     CFG_EGL=no
4614 fi
4615
4616 if [ "$CFG_EGLFS" != "no" ]; then
4617     CFG_EGLFS="$CFG_EGL"
4618 fi
4619
4620 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4621     QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4622     QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4623     QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4624 fi
4625 if [ -n "$QMAKE_CFLAGS_DIRECTFB" ] || [ -n "$QMAKE_LIBS_DIRECTFB" ]; then
4626     QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4627     QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4628 fi
4629
4630 if [ "$BUILD_ON_MAC" = "yes" ]; then
4631     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/mac/coreservices "CoreServices" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4632         QT_CONFIG="$QT_CONFIG coreservices"
4633     else
4634         QMakeVar add DEFINES QT_NO_CORESERVICES
4635     fi
4636 fi
4637
4638 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ]; then
4639     if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ]; then
4640         if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4641             ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] ); then
4642         echo "No QPA platform plugin enabled!"
4643         echo " If you really want to build without a QPA platform plugin you must pass"
4644         echo " -no-xcb, -no-eglfs and -no-directfb to configure. Doing this will"
4645         echo " produce a Qt that cannot run GUI applications."
4646         echo " The dependencies needed for xcb to build are listed in"
4647         echo " src/plugins/platforms/xcb/README"
4648         exit 1
4649     fi
4650 fi
4651     fi
4652
4653 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_PHONON" != "no" ] && CFG_PHONON="yes"
4654
4655 # freetype support
4656 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4657 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4658     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/freetype "FreeType" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4659         CFG_LIBFREETYPE=system
4660     else
4661         CFG_LIBFREETYPE=yes
4662     fi
4663 fi
4664
4665 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $l_FLAGS &&
4666     [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4667     echo "STL functionality check failed! Cannot build Qt with this STL library."
4668     echo " Turn on verbose messaging (-v) to $0 to see the final report."
4669     exit 101
4670 fi
4671
4672
4673 # detect POSIX clock_gettime()
4674 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
4675     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/clock-gettime "POSIX clock_gettime()" $L_FLAGS $I_FLAGS $l_FLAGS; then
4676         CFG_CLOCK_GETTIME=yes
4677     else
4678         CFG_CLOCK_GETTIME=no
4679     fi
4680 fi
4681
4682 # detect POSIX monotonic clocks
4683 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
4684     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/clock-monotonic "POSIX Monotonic Clock" $L_FLAGS $I_FLAGS $l_FLAGS; then
4685         CFG_CLOCK_MONOTONIC=yes
4686     else
4687         CFG_CLOCK_MONOTONIC=no
4688     fi
4689 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
4690     CFG_CLOCK_MONOTONIC=no
4691 fi
4692
4693 # detect mremap
4694 if [ "$CFG_MREMAP" = "auto" ]; then
4695     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mremap "mremap" $L_FLAGS $I_FLAGS $l_FLAGS; then
4696         CFG_MREMAP=yes
4697     else
4698         CFG_MREMAP=no
4699     fi
4700 fi
4701
4702 # find if the platform provides getaddrinfo (ipv6 dns lookups)
4703 if [ "$CFG_GETADDRINFO" != "no" ]; then
4704     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getaddrinfo "getaddrinfo" $L_FLAGS $I_FLAGS $l_FLAGS; then
4705         CFG_GETADDRINFO=yes
4706     else
4707         if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4708             echo "getaddrinfo support cannot be enabled due to functionality tests!"
4709             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4710             echo " If you believe this message is in error you may use the continue"
4711             echo " switch (-continue) to $0 to continue."
4712             exit 101
4713         else
4714             CFG_GETADDRINFO=no
4715         fi
4716     fi
4717 fi
4718
4719 # find if the platform provides inotify
4720 if [ "$CFG_INOTIFY" != "no" ]; then
4721     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/inotify "inotify" $L_FLAGS $I_FLAGS $l_FLAGS; then
4722         CFG_INOTIFY=yes
4723     else
4724         if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4725             echo "inotify support cannot be enabled due to functionality tests!"
4726             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4727             echo " If you believe this message is in error you may use the continue"
4728             echo " switch (-continue) to $0 to continue."
4729             exit 101
4730         else
4731             CFG_INOTIFY=no
4732         fi
4733     fi
4734 fi
4735
4736 # find if the platform provides if_nametoindex (ipv6 interface name support)
4737 if [ "$CFG_IPV6IFNAME" != "no" ]; then
4738     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ipv6ifname "IPv6 interface name" $L_FLAGS $I_FLAGS $l_FLAGS; then
4739         CFG_IPV6IFNAME=yes
4740     else
4741         if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4742             echo "IPv6 interface name support cannot be enabled due to functionality tests!"
4743             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4744             echo " If you believe this message is in error you may use the continue"
4745             echo " switch (-continue) to $0 to continue."
4746             exit 101
4747         else
4748             CFG_IPV6IFNAME=no
4749         fi
4750     fi
4751 fi
4752
4753 # find if the platform provides getifaddrs (network interface enumeration)
4754 if [ "$CFG_GETIFADDRS" != "no" ]; then
4755     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getifaddrs "getifaddrs" $L_FLAGS $I_FLAGS $l_FLAGS; then
4756         CFG_GETIFADDRS=yes
4757     else
4758         if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4759             echo "getifaddrs support cannot be enabled due to functionality tests!"
4760             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4761             echo " If you believe this message is in error you may use the continue"
4762             echo " switch (-continue) to $0 to continue."
4763             exit 101
4764         else
4765             CFG_GETIFADDRS=no
4766         fi
4767     fi
4768 fi
4769
4770 # detect OpenSSL
4771 if [ "$CFG_OPENSSL" != "no" ]; then
4772     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/openssl "OpenSSL" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4773         if [ "$CFG_OPENSSL" = "auto" ]; then
4774             CFG_OPENSSL=yes
4775         fi
4776     else
4777         if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4778             echo "OpenSSL support cannot be enabled due to functionality tests!"
4779             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4780             echo " If you believe this message is in error you may use the continue"
4781             echo " switch (-continue) to $0 to continue."
4782             exit 101
4783         else
4784             CFG_OPENSSL=no
4785         fi
4786     fi
4787 fi
4788
4789 # detect PCRE
4790 if [ "$CFG_PCRE" != "qt" ]; then
4791     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/pcre "PCRE" $L_FLAGS $I_FLAGS $l_FLAGS; then
4792         CFG_PCRE=system
4793     else
4794         if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4795             echo "PCRE support cannot be enabled due to functionality tests!"
4796             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4797             echo " If you believe this message is in error you may use the continue"
4798             echo " switch (-continue) to $0 to continue."
4799             exit 101
4800         else
4801             CFG_PCRE=qt
4802         fi
4803     fi
4804 fi
4805
4806 # detect OpenVG support
4807 if [ "$CFG_OPENVG" != "no" ]; then
4808     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
4809         if [ "$CFG_OPENVG" = "auto" ]; then
4810             CFG_OPENVG=yes
4811         fi
4812     elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG openvg_on_opengl" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
4813         if [ "$CFG_OPENVG" = "auto" ]; then
4814             CFG_OPENVG=yes
4815         fi
4816         CFG_OPENVG_ON_OPENGL=yes
4817     elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG lower_case_includes" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG (lc includes)" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
4818         if [ "$CFG_OPENVG" = "auto" ]; then
4819             CFG_OPENVG=yes
4820         fi
4821         CFG_OPENVG_LC_INCLUDES=yes
4822     elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG openvg_on_opengl lower_case_includes" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG (lc includes)" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
4823         if [ "$CFG_OPENVG" = "auto" ]; then
4824             CFG_OPENVG=yes
4825         fi
4826         CFG_OPENVG_LC_INCLUDES=yes
4827         CFG_OPENVG_ON_OPENGL=yes
4828     else
4829         if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4830             echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
4831             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4832             echo " If you believe this message is in error you may use the continue"
4833             echo " switch (-continue) to $0 to continue."
4834             exit 101
4835         else
4836             CFG_OPENVG=no
4837         fi
4838     fi
4839     if [ "$CFG_OPENVG" = "yes" ] && "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/shivavg" "ShivaVG" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
4840         CFG_OPENVG_SHIVA=yes
4841     fi
4842 fi
4843
4844 if [ "$CFG_ALSA" = "auto" ]; then
4845     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/alsa "alsa" $L_FLAGS $I_FLAGS $l_FLAGS; then
4846         CFG_ALSA=yes
4847     else
4848         CFG_ALSA=no
4849     fi
4850 fi
4851
4852 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then 
4853     if [ "$CFG_ARCH" = "arm" ]; then
4854        "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/javascriptcore-jit "javascriptcore-jit" $L_FLAGS $I_FLAGS $l_FLAGS
4855         if [ $? != "0" ]; then
4856            CFG_JAVASCRIPTCORE_JIT=no
4857         fi
4858     else
4859         case "$XPLATFORM" in
4860             linux-icc*)
4861                 CFG_JAVASCRIPTCORE_JIT=no
4862                 ;;
4863         esac
4864     fi
4865 fi
4866
4867 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
4868     QMakeVar set JAVASCRIPTCORE_JIT yes
4869 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
4870     QMakeVar set JAVASCRIPTCORE_JIT no
4871 fi
4872
4873 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
4874     CFG_AUDIO_BACKEND=yes
4875 fi
4876
4877 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
4878     echo "Warning: largefile support cannot be disabled for win32."
4879     CFG_LARGEFILE="yes"
4880 fi
4881
4882 #-------------------------------------------------------------------------------
4883 # ask for all that hasn't been auto-detected or specified in the arguments
4884 #-------------------------------------------------------------------------------
4885
4886 # enable dwarf2 support on Mac
4887 if [ "$CFG_MAC_DWARF2" = "yes" ]; then
4888     QT_CONFIG="$QT_CONFIG dwarf2"
4889 fi
4890
4891 # Detect the default arch (x86 or x86_64) on Mac OS X
4892 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
4893     DEFAULT_ARCH=
4894     case `file "${outpath}/bin/qmake"` in
4895     *i?86)
4896         DEFAULT_ARCH=x86
4897         ;;
4898     *x86_64)
4899         DEFAULT_ARCH=x86_64
4900         ;;
4901     *ppc|*ppc64|*)
4902         # unsupported/unknown
4903         ;;
4904     esac
4905
4906     if [ -n "$DEFAULT_ARCH" ]; then
4907         [ "$OPT_VERBOSE" = "yes" ] && echo "Setting default Mac OS X architechture to $DEFAULT_ARCH."
4908         QT_CONFIG="$QT_CONFIG $DEFAULT_ARCH"
4909         QMAKE_CONFIG="$QMAKE_CONFIG $DEFAULT_ARCH"
4910         # Make the application arch follow the Qt arch
4911         QTCONFIG_CONFIG="$QTCONFIG_CONFIG $DEFAULT_ARCH"
4912     fi
4913 fi
4914
4915 # ### Vestige
4916 if [ "$CFG_PHONON_BACKEND" = "yes" ]; then
4917     QT_CONFIG="$QT_CONFIG phonon-backend"
4918 fi
4919
4920 # disable accessibility
4921 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
4922     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
4923 else
4924     QT_CONFIG="$QT_CONFIG accessibility"
4925 fi
4926
4927 # enable egl
4928 if [ "$CFG_EGL" = "yes" ]; then
4929     QT_CONFIG="$QT_CONFIG egl"
4930 else
4931     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
4932 fi
4933
4934 # enable eglfs
4935 if [ "$CFG_EGLFS" = "yes" ]; then
4936     QT_CONFIG="$QT_CONFIG eglfs"
4937 else
4938     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
4939 fi
4940
4941 # enable openvg
4942 if [ "$CFG_OPENVG" = "no" ]; then
4943     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
4944 else
4945     QT_CONFIG="$QT_CONFIG openvg"
4946     if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
4947         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
4948     fi
4949     if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
4950         QT_CONFIG="$QT_CONFIG openvg_on_opengl"
4951     fi
4952     if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
4953         QT_CONFIG="$QT_CONFIG shivavg"
4954         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
4955     fi
4956 fi
4957
4958 # enable opengl
4959 if [ "$CFG_OPENGL" = "no" ]; then
4960     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
4961 else
4962     QT_CONFIG="$QT_CONFIG opengl"
4963 fi
4964
4965 if [ "$CFG_OPENGL" = "es2" ]; then
4966     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
4967 fi
4968
4969 if [ "$CFG_OPENGL" = "es2" ]; then
4970     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
4971     QT_CONFIG="$QT_CONFIG opengles2"
4972 fi
4973
4974 # safe execution environment
4975 if [ "$CFG_SXE" != "no" ]; then
4976     QT_CONFIG="$QT_CONFIG sxe"
4977 fi
4978
4979 # build up the variables for output
4980 if [ "$CFG_DEBUG" = "yes" ]; then
4981     QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
4982     QMAKE_CONFIG="$QMAKE_CONFIG debug"
4983 elif [ "$CFG_DEBUG" = "no" ]; then
4984     QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
4985     QMAKE_CONFIG="$QMAKE_CONFIG release"
4986 fi
4987 if [ "$CFG_SHARED" = "yes" ]; then
4988     QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
4989     QMAKE_CONFIG="$QMAKE_CONFIG shared dll"
4990 elif [ "$CFG_SHARED" = "no" ]; then
4991     QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
4992     QMAKE_CONFIG="$QMAKE_CONFIG static"
4993 fi
4994
4995 #FIXME: qpa is implicit this should all be removed
4996 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
4997 QT_CONFIG="$QT_CONFIG qpa"
4998 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
4999 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5000
5001 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5002     # Do not set this here for Windows. Let qmake do it so
5003     # debug and release precompiled headers are kept separate.
5004     QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5005 fi
5006 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5007 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5008 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5009 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5010 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5011     QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5012 fi
5013 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5014     QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5015 fi
5016 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5017 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5018 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5019 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5020     QMakeVar add QMAKE_CFLAGS -g
5021     QMakeVar add QMAKE_CXXFLAGS -g
5022     QT_CONFIG="$QT_CONFIG separate_debug_info"
5023 fi
5024 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5025     QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5026 fi
5027 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5028 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5029 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5030 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5031 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5032 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5033 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5034 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5035 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5036 if [ "$CFG_ARCH" = "mips" ]; then
5037     [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5038     [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5039 fi
5040 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5041     QT_CONFIG="$QT_CONFIG clock-gettime"
5042 fi
5043 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5044     QT_CONFIG="$QT_CONFIG clock-monotonic"
5045 fi
5046 if [ "$CFG_MREMAP" = "yes" ]; then
5047     QT_CONFIG="$QT_CONFIG mremap"
5048 fi
5049 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5050     QT_CONFIG="$QT_CONFIG getaddrinfo"
5051 fi
5052 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5053     QT_CONFIG="$QT_CONFIG ipv6ifname"
5054 fi
5055 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5056     QT_CONFIG="$QT_CONFIG getifaddrs"
5057 fi
5058 if [ "$CFG_INOTIFY" = "yes" ]; then
5059     QT_CONFIG="$QT_CONFIG inotify"
5060 fi
5061 if [ "$CFG_LIBJPEG" = "no" ]; then
5062     CFG_JPEG="no"
5063 elif [ "$CFG_LIBJPEG" = "system" ]; then
5064     QT_CONFIG="$QT_CONFIG system-jpeg"
5065 fi
5066 if [ "$CFG_JPEG" = "no" ]; then
5067     QT_CONFIG="$QT_CONFIG no-jpeg"
5068 elif [ "$CFG_JPEG" = "yes" ]; then
5069     QT_CONFIG="$QT_CONFIG jpeg"
5070 fi
5071 if [ "$CFG_LIBPNG" = "no" ]; then
5072     CFG_PNG="no"
5073 fi
5074 if [ "$CFG_LIBPNG" = "system" ]; then
5075     QT_CONFIG="$QT_CONFIG system-png"
5076 fi
5077 if [ "$CFG_PNG" = "no" ]; then
5078     QT_CONFIG="$QT_CONFIG no-png"
5079 elif [ "$CFG_PNG" = "yes" ]; then
5080     QT_CONFIG="$QT_CONFIG png"
5081 fi
5082 if [ "$CFG_GIF" = "no" ]; then
5083     QT_CONFIG="$QT_CONFIG no-gif"
5084 elif [ "$CFG_GIF" = "yes" ]; then
5085     QT_CONFIG="$QT_CONFIG gif"
5086 fi
5087 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5088     QT_CONFIG="$QT_CONFIG no-freetype"
5089     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5090 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5091     QT_CONFIG="$QT_CONFIG system-freetype"
5092 else
5093     QT_CONFIG="$QT_CONFIG freetype"
5094 fi
5095 if [ "$CFG_GUI" = "auto" ]; then
5096     CFG_GUI="yes"
5097 fi
5098 if [ "$CFG_GUI" = "no" ]; then
5099     QT_CONFIG="$QT_CONFIG no-gui"
5100     CFG_WIDGETS="no"
5101 fi
5102 if [ "$CFG_WIDGETS" = "no" ]; then
5103     QT_CONFIG="$QT_CONFIG no-widgets"
5104     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5105 fi
5106
5107 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5108     #On Mac we implicitly link against libz, so we
5109     #never use the 3rdparty stuff.
5110     [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5111 fi
5112 if [ "$CFG_ZLIB" = "yes" ]; then
5113     QT_CONFIG="$QT_CONFIG zlib"
5114 elif [ "$CFG_ZLIB" = "system" ]; then
5115     QT_CONFIG="$QT_CONFIG system-zlib"
5116 fi
5117
5118 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5119 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5120 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5121 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5122 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5123 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5124 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5125 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5126 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5127 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5128 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5129 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5130 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5131 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5132
5133 [ '!' -z "$D_FLAGS" ] && QMakeVar add DEFINES "$D_FLAGS"
5134 [ '!' -z "$L_FLAGS" ] && QMakeVar add QMAKE_LIBDIR_FLAGS "$L_FLAGS"
5135 [ '!' -z "$l_FLAGS" ] && QMakeVar add LIBS "$l_FLAGS"
5136
5137 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5138     if [ "$CFG_RPATH" = "yes" ]; then
5139        QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5140        # set the default rpath to the library installation directory
5141        RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5142     fi
5143 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5144     if [ -n "$RPATH_FLAGS" ]; then
5145         echo
5146         echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5147         echo "       undefined."
5148         echo
5149         exit 1
5150     elif [ "$CFG_RPATH" = "yes" ]; then
5151         RPATH_MESSAGE="        NOTE: This platform does not support runtime library paths, using -no-rpath."
5152         CFG_RPATH=no
5153     fi
5154 else
5155     if [ "$CFG_RPATH" = "yes" ]; then
5156         # set the default rpath to the library installation directory
5157         RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5158     fi
5159     if [ -n "$RPATH_FLAGS" ]; then
5160         # add the user defined rpaths
5161         QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5162     fi
5163 fi
5164
5165 if [ '!' -z "$I_FLAGS" ]; then
5166     # add the user define include paths
5167     QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5168     QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5169 fi
5170
5171 if [ '!' -z "$W_FLAGS" ]; then
5172     # add the user defined warning flags
5173     QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5174     QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5175     QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5176 fi
5177
5178 # turn off exceptions for the compilers that support it
5179 if [ "$XPLATFORM" != "$PLATFORM" ]; then
5180     COMPILER=`echo $XPLATFORM | cut -f 2- -d-`
5181 else
5182     COMPILER=`echo $PLATFORM | cut -f 2- -d-`
5183 fi
5184
5185 if [ "$CFG_EXCEPTIONS" != "no" ]; then
5186     QTCONFIG_CONFIG="$QTCONFIG_CONFIG exceptions"
5187 fi
5188
5189 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5190     # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5191     # Follow default behavior of configure.exe by overriding with "rtti".
5192     QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5193 fi
5194
5195 if [ "$CFG_ALSA" = "yes" ]; then
5196     QT_CONFIG="$QT_CONFIG alsa"
5197 fi
5198
5199 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5200     QT_CONFIG="$QT_CONFIG pulseaudio"
5201 fi
5202
5203 if [ "$CFG_COREWLAN" = "yes" ]; then
5204     QT_CONFIG="$QT_CONFIG corewlan"
5205 fi
5206
5207 if [ "$CFG_ICU" = "yes" ]; then
5208     QT_CONFIG="$QT_CONFIG icu"
5209 fi
5210
5211 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5212     QT_CONFIG="$QT_CONFIG force_asserts"
5213 fi
5214
5215 if [ "$CFG_PCRE" = "qt" ]; then
5216     QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5217 fi
5218
5219 #
5220 # Some Qt modules are too advanced in C++ for some old compilers
5221 # Detect here the platforms where they are known to work.
5222 #
5223 # See Qt documentation for more information on which features are
5224 # supported and on which compilers.
5225 #
5226 canBuildQtConcurrent="yes"
5227 canUseV8Snapshot="yes"
5228
5229 case "$XPLATFORM" in
5230     hpux-g++*)
5231         # PA-RISC's assembly is too limited
5232         # gcc 3.4 on that platform can't build QtXmlPatterns
5233         # the assembly it generates cannot be compiled
5234
5235         # Check gcc's version
5236         case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5237             4*)
5238                 ;;
5239             3.4*)
5240                 canBuildQtXmlPatterns="no"
5241                 ;;
5242             *)
5243                 canBuildWebKit="no"
5244                 canBuildQtXmlPatterns="no"
5245                 ;;
5246         esac
5247         ;;
5248     unsupported/vxworks-*-g++*)
5249         canBuildWebKit="no"
5250         ;;
5251     unsupported/vxworks-*-dcc*)
5252         canBuildWebKit="no"
5253         canBuildQtXmlPatterns="no"
5254         ;;
5255     *-g++*)
5256         # Check gcc's version
5257         case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5258             4*|3.4*)
5259                 ;;
5260             3.3*)
5261                 canBuildWebKit="no"
5262                 ;;
5263             *)
5264                 canBuildWebKit="no"
5265                 canBuildQtXmlPatterns="no"
5266                 ;;
5267         esac
5268         ;;
5269     solaris-cc*)
5270         # Check the compiler version
5271         case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5272             5.[012345678])
5273                 canBuildWebKit="no"
5274                 canBuildQtXmlPatterns="no"
5275                 canBuildQtConcurrent="no"
5276                 ;;
5277             5.*)
5278                 canBuildWebKit="no"
5279                 canBuildQtConcurrent="no"
5280                 ;;
5281         esac
5282         ;;
5283     hpux-acc*)
5284         canBuildWebKit="no"
5285         canBuildQtXmlPatterns="no"
5286         canBuildQtConcurrent="no"
5287         ;;
5288     hpuxi-acc*)
5289         canBuildWebKit="no"
5290         ;;
5291     aix-xlc*)
5292         # Get the xlC version
5293         cat > xlcver.c <<EOF
5294 #include <stdio.h>
5295 int main()
5296 {
5297     printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5298     return 0;
5299 }
5300 EOF
5301         xlcver=
5302         if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5303             xlcver=`./xlcver 2>/dev/null`
5304             rm -f ./xlcver
5305         fi
5306         if [ "$OPT_VERBOSE" = "yes" ]; then
5307             if [ -n "$xlcver" ]; then
5308                 echo Found IBM xlC version: $xlcver.
5309             else
5310                 echo Could not determine IBM xlC version, assuming oldest supported.
5311             fi
5312         fi
5313
5314         case "$xlcver" in
5315             [123456].*)
5316                 canBuildWebKit="no"
5317                 canBuildQtXmlPatterns="no"
5318                 canBuildQtConcurrent="no"
5319                 ;;
5320             *)
5321                 canBuildWebKit="no"
5322                 canBuildQtConcurrent="no"
5323                 ;;
5324         esac
5325         ;;
5326     irix-cc*)
5327         canBuildWebKit="no"
5328         canBuildQtConcurrent="no"
5329         ;;
5330 esac
5331
5332 if [ "$CFG_GUI" = "no" ]; then
5333     # WebKit requires QtGui
5334     canBuildWebKit="no"
5335 fi
5336
5337 if [ "$CFG_SHARED" = "no" ]; then
5338     echo
5339     echo "WARNING: Using static linking will disable the WebKit module."
5340     echo
5341     canBuildWebKit="no"
5342 fi
5343
5344 CFG_CONCURRENT="yes"
5345 if [ "$canBuildQtConcurrent" = "no" ]; then
5346     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5347     CFG_CONCURRENT="no"
5348 else
5349     QT_CONFIG="$QT_CONFIG concurrent"
5350 fi
5351
5352 # ### Vestige
5353 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5354     QT_CONFIG="$QT_CONFIG audio-backend"
5355 fi
5356
5357 # ### Vestige
5358 if [ "$CFG_WEBKIT" = "debug" ]; then
5359     QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5360 fi
5361
5362 # ### Vestige
5363 QT_CONFIG="$QT_CONFIG v8"
5364 # Detect snapshot support
5365 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5366     case "$CFG_HOST_ARCH,$CFG_ARCH" in
5367         i386,arm)
5368         ;;
5369     *) canUseV8Snapshot="no"
5370         ;;
5371     esac
5372 else
5373     if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5374         # QEMU crashes when building inside Scratchbox with an ARM target
5375         canUseV8Snapshot="no"
5376     fi
5377 fi
5378 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5379     CFG_V8SNAPSHOT="$canUseV8Snapshot"
5380 fi
5381 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5382     echo "Error: V8 snapshot was requested, but is not supported on this platform."
5383     exit 1
5384 fi
5385 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5386     QT_CONFIG="$QT_CONFIG v8snapshot"
5387 fi
5388
5389 # ### Vestige
5390 if [ "$CFG_QML_DEBUG" = "no" ]; then
5391     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5392 fi
5393
5394 if [ "$CFG_EXCEPTIONS" = "no" ]; then
5395     case "$COMPILER" in
5396     g++*)
5397         QMakeVar add QMAKE_CFLAGS -fno-exceptions
5398         QMakeVar add QMAKE_CXXFLAGS -fno-exceptions
5399         QMakeVar add QMAKE_LFLAGS -fno-exceptions
5400         ;;
5401     cc*)
5402         case "$PLATFORM" in
5403         irix-cc*)
5404             QMakeVar add QMAKE_CFLAGS -LANG:exceptions=off
5405             QMakeVar add QMAKE_CXXFLAGS -LANG:exceptions=off
5406             QMakeVar add QMAKE_LFLAGS -LANG:exceptions=off
5407             ;;
5408         *) ;;
5409         esac
5410         ;;
5411     *) ;;
5412     esac
5413     QMAKE_CONFIG="$QMAKE_CONFIG exceptions_off"
5414 fi
5415
5416 case "$COMPILER" in
5417 g++*)
5418     # GNU C++
5419     COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5420
5421     case "$COMPILER_VERSION" in
5422     *.*.*)
5423         QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5424         QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5425         QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5426         ;;
5427     *.*)
5428         QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5429         QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5430         QT_GCC_PATCH_VERSION=0
5431         ;;
5432     esac
5433
5434     ;;
5435 *)
5436     #
5437     ;;
5438 esac
5439
5440 #-------------------------------------------------------------------------------
5441 # part of configuration information goes into qconfig.h
5442 #-------------------------------------------------------------------------------
5443
5444 case "$CFG_QCONFIG" in
5445 full)
5446     echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5447     ;;
5448 *)
5449     tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5450     echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5451     if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5452         cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5453     elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5454         cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5455     fi
5456     echo "#endif" >>"$tmpconfig"
5457     ;;
5458 esac
5459
5460 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5461
5462 /* Qt Edition */
5463 #ifndef QT_EDITION
5464 #  define QT_EDITION $QT_EDITION
5465 #endif
5466 EOF
5467
5468 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5469 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5470
5471 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5472     echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5473 fi
5474
5475 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5476     echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5477 fi
5478
5479 if [ "$BUILD_ON_MAC" = "yes" ]; then
5480     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5481 #if defined(__LP64__)
5482 # define QT_POINTER_SIZE 8
5483 #else
5484 # define QT_POINTER_SIZE 4
5485 #endif
5486 EOF
5487 else
5488     "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5489     echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5490 fi
5491
5492 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5493 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5494     echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5495 fi
5496
5497
5498 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5499
5500 if [ "$CFG_DEV" = "yes" ]; then
5501     echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5502 fi
5503
5504 # Add QPA to config.h
5505 QCONFIG_FLAGS="$QCONFIG_FLAGS Q_WS_QPA QT_NO_QWS_QPF QT_NO_QWS_QPF2"
5506
5507 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5508     QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5509 fi
5510
5511 # Add turned on SQL drivers
5512 for DRIVER in $CFG_SQL_AVAILABLE; do
5513     eval "VAL=\$CFG_SQL_$DRIVER"
5514     case "$VAL" in
5515     qt)
5516         ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5517         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5518         SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5519     ;;
5520     plugin)
5521         SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5522     ;;
5523     esac
5524 done
5525
5526
5527 QMakeVar set sql-drivers "$SQL_DRIVERS"
5528 QMakeVar set sql-plugins "$SQL_PLUGINS"
5529
5530 # Add other configuration options to the qconfig.h file
5531 [ "$CFG_GIF" = "yes" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5532 [ "$CFG_PNG" != "yes" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5533 [ "$CFG_JPEG" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5534 [ "$CFG_ZLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5535 [ "$CFG_EXCEPTIONS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EXCEPTIONS"
5536 [ "$CFG_SXE" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SXE"
5537 [ "$CFG_DBUS" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5538
5539 # X11/Unix/Mac only configs
5540 [ "$CFG_CUPS" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5541 [ "$CFG_ICONV" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5542 [ "$CFG_GLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5543 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5544 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5545 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5546 [ "$CFG_MREMAP" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5547 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5548 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5549 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5550 [ "$CFG_INOTIFY" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5551 [ "$CFG_NIS" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5552 [ "$CFG_OPENSSL" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5553 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5554
5555 [ "$CFG_SM" = "no" ]         && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5556 [ "$CFG_XCURSOR" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5557 [ "$CFG_XFIXES" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5558 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5559 [ "$CFG_XINERAMA" = "no" ]   && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5560 [ "$CFG_XKB" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5561 [ "$CFG_XRANDR" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5562 [ "$CFG_XRENDER" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5563 [ "$CFG_MITSHM" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5564 [ "$CFG_XSHAPE" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5565 [ "$CFG_XVIDEO" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5566 [ "$CFG_XSYNC" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5567 [ "$CFG_XINPUT" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5568
5569 [ "$CFG_XCURSOR" = "runtime" ]   && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5570 [ "$CFG_XINERAMA" = "runtime" ]  && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5571 [ "$CFG_XFIXES" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5572 [ "$CFG_XRANDR" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5573 [ "$CFG_XINPUT" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5574 [ "$CFG_ALSA" = "no" ]           && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5575 [ "$CFG_PULSEAUDIO" = "no" ]          && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5576 [ "$CFG_COREWLAN" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5577
5578 # sort QCONFIG_FLAGS for neatness if we can
5579 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5580 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5581
5582 if [ -n "$QCONFIG_FLAGS" ]; then
5583 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5584 #ifndef QT_BOOTSTRAPPED
5585
5586 EOF
5587     for cfg in $QCONFIG_FLAGS; do
5588         cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5589         cfg=`echo $cfg | sed 's/=/ /'`    # turn first '=' into a space
5590         # figure out define logic, so we can output the correct
5591         # ifdefs to override the global defines in a project
5592         cfgdNeg=
5593         if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5594             # QT_NO_option can be forcefully turned on by QT_option
5595             cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5596         elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5597             # QT_option can be forcefully turned off by QT_NO_option
5598             cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5599         fi
5600
5601         if [ -z $cfgdNeg ]; then
5602 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5603 #ifndef $cfgd
5604 # define $cfg
5605 #endif
5606
5607 EOF
5608         else
5609 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5610 #if defined($cfgd) && defined($cfgdNeg)
5611 # undef $cfgd
5612 #elif !defined($cfgd) && !defined($cfgdNeg)
5613 # define $cfg
5614 #endif
5615
5616 EOF
5617         fi
5618     done
5619 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5620 #endif // QT_BOOTSTRAPPED
5621
5622 EOF
5623 fi
5624
5625 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5626 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5627 #define QT_VISIBILITY_AVAILABLE
5628
5629 EOF
5630 fi
5631
5632 if [ -n "$QT_LIBINFIX" ]; then
5633 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5634 #define QT_LIBINFIX "$QT_LIBINFIX"
5635
5636 EOF
5637 fi
5638
5639 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5640 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5641     rm -f "$outpath/src/corelib/global/qconfig.h.new"
5642 else
5643     [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5644     mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5645     chmod -w "$outpath/src/corelib/global/qconfig.h"
5646     if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5647         ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5648     fi
5649 fi
5650
5651 #-------------------------------------------------------------------------------
5652 # save configuration into qconfig.pri
5653 #-------------------------------------------------------------------------------
5654 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5655 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5656 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5657 if [ "$CFG_DEBUG" = "yes" ]; then
5658     QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5659     if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5660         QT_CONFIG="$QT_CONFIG release"
5661     fi
5662     QT_CONFIG="$QT_CONFIG debug"
5663 elif [ "$CFG_DEBUG" = "no" ]; then
5664     QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5665     if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5666         QT_CONFIG="$QT_CONFIG debug"
5667     fi
5668     QT_CONFIG="$QT_CONFIG release"
5669 fi
5670 if [ "$CFG_FRAMEWORK" = "no" ]; then
5671     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5672 else
5673     QT_CONFIG="$QT_CONFIG qt_framework"
5674     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5675 fi
5676 if [ "$CFG_DEV" = "yes" ]; then
5677     QT_CONFIG="$QT_CONFIG private_tests"
5678 fi
5679
5680 cat >>"$QTCONFIG.tmp" <<EOF
5681 #configuration
5682 CONFIG += $QTCONFIG_CONFIG
5683 QT_ARCH = $CFG_ARCH
5684 QT_HOST_ARCH = $CFG_HOST_ARCH
5685 QT_EDITION = $Edition
5686 QT_CONFIG += $QT_CONFIG
5687
5688 #versioning
5689 QT_VERSION = $QT_VERSION
5690 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5691 QT_MINOR_VERSION = $QT_MINOR_VERSION
5692 QT_PATCH_VERSION = $QT_PATCH_VERSION
5693
5694 #namespaces
5695 QT_LIBINFIX = $QT_LIBINFIX
5696 QT_NAMESPACE = $QT_NAMESPACE
5697
5698 EOF
5699 if [ -n "$CFG_SYSROOT" ]; then
5700     echo "# sysroot" >>"$QTCONFIG.tmp"
5701     echo `basename "$XQMAKESPEC"` \{ >>"$QTCONFIG.tmp"
5702     echo "    QMAKE_CFLAGS    += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5703     echo "    QMAKE_CXXFLAGS  += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5704     echo "    QMAKE_LFLAGS    += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5705     echo "}" >> "$QTCONFIG.tmp"
5706     echo >> "$QTCONFIG.tmp"
5707 fi
5708 if [ -n "$RPATH_FLAGS" ]; then
5709     echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
5710 fi
5711 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
5712     echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
5713     echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
5714     echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
5715 fi
5716
5717 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
5718     echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
5719     echo "QMAKE_INCDIR_OPENGL_ES2 = \"$QMAKE_INCDIR_OPENGL_ES2\"" >> "$QTCONFIG.tmp"
5720 fi
5721
5722 # replace qconfig.pri if it differs from the newly created temp file
5723 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
5724     rm -f "$QTCONFIG.tmp"
5725 else
5726     mv -f "$QTCONFIG.tmp" "$QTCONFIG"
5727 fi
5728
5729 #-------------------------------------------------------------------------------
5730 # save configuration into qmodule.pri
5731 #-------------------------------------------------------------------------------
5732 QTMODULE="$outpath/mkspecs/qmodule.pri"
5733
5734 echo "CONFIG += create_prl link_prl" >> "$QTMODULE.tmp"
5735
5736 # Ensure we can link to uninistalled libraries
5737 if [ "$BUILD_ON_MAC" != "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ] && linkerSupportsFlag -rpath-link "$outpath/lib"; then
5738     echo "QMAKE_LFLAGS    = -Wl,-rpath-link,\$\$QT_BUILD_TREE/lib \$\$QMAKE_LFLAGS" >> "$QTMODULE.tmp"
5739 fi
5740 if [ -n "$QT_CFLAGS_PSQL" ]; then
5741     echo "QT_CFLAGS_PSQL   = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
5742 fi
5743 if [ -n "$QT_LFLAGS_PSQL" ]; then
5744     echo "QT_LFLAGS_PSQL   = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
5745 fi
5746 if [ -n "$QT_CFLAGS_MYSQL" ]; then
5747     echo "QT_CFLAGS_MYSQL   = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
5748 fi
5749 if [ -n "$QT_LFLAGS_MYSQL" ]; then
5750     echo "QT_LFLAGS_MYSQL   = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
5751 fi
5752 if [ -n "$QT_CFLAGS_SQLITE" ]; then
5753     echo "QT_CFLAGS_SQLITE   = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
5754 fi
5755 if [ -n "$QT_LFLAGS_SQLITE" ]; then
5756     echo "QT_LFLAGS_SQLITE   = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
5757 fi
5758 if [ -n "$QT_LFLAGS_ODBC" ]; then
5759     echo "QT_LFLAGS_ODBC   = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
5760 fi
5761 if [ -n "$QT_LFLAGS_TDS" ]; then
5762     echo "QT_LFLAGS_TDS   = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
5763 fi
5764
5765 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
5766     echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
5767 fi
5768
5769 #dump in the OPENSSL_LIBS info
5770 if [ '!' -z "$OPENSSL_LIBS" ]; then
5771     echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
5772 elif [ "$CFG_OPENSSL" = "linked" ]; then
5773     echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
5774 fi
5775
5776 #dump in the SDK info
5777 if [ '!' -z "$CFG_SDK" ]; then
5778    echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
5779 fi
5780
5781 # cmdline args
5782 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
5783 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
5784
5785 # replace qmodule.pri if it differs from the newly created temp file
5786 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
5787     rm -f "$QTMODULE.tmp"
5788 else
5789     mv -f "$QTMODULE.tmp" "$QTMODULE"
5790 fi
5791
5792 #-------------------------------------------------------------------------------
5793 # save configuration into .qmake.cache
5794 #-------------------------------------------------------------------------------
5795
5796 CACHEFILE="$outpath/.qmake.cache"
5797 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
5798 cat >>"$CACHEFILE.tmp" <<EOF
5799 #paths
5800 QT_SOURCE_TREE = \$\$quote($relpath)
5801 QT_BUILD_TREE = \$\$quote($outpath)
5802 QT_BUILD_PARTS = $CFG_BUILD_PARTS
5803
5804 #local paths that cannot be queried from the QT_INSTALL_* properties while building QTDIR
5805 QMAKE_INCDIR_QT  = \$\$QT_BUILD_TREE/include
5806 QMAKE_LIBDIR_QT  = \$\$QT_BUILD_TREE/lib
5807
5808 include(\$\$PWD/mkspecs/qmodule.pri)
5809 CONFIG += $QMAKE_CONFIG dylib depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
5810
5811 EOF
5812
5813 #dump the qmake spec
5814 if [ -d "$outpath/mkspecs/$XPLATFORM" ]; then
5815    echo "QMAKESPEC = \$\$QT_BUILD_TREE/mkspecs/$XPLATFORM" >> "$CACHEFILE.tmp"
5816 else
5817    echo "QMAKESPEC = $XPLATFORM" >> "$CACHEFILE.tmp"
5818 fi
5819
5820 # replace .qmake.cache if it differs from the newly created temp file
5821 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
5822     rm -f "$CACHEFILE.tmp"
5823 else
5824     mv -f "$CACHEFILE.tmp" "$CACHEFILE"
5825 fi
5826
5827 #-------------------------------------------------------------------------------
5828 # give feedback on configuration
5829 #-------------------------------------------------------------------------------
5830 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
5831
5832 case "$COMPILER" in
5833 g++*)
5834     if [ "$CFG_EXCEPTIONS" != "no" ]; then
5835         cat <<EOF
5836
5837         This target is using the GNU C++ compiler ($PLATFORM).
5838
5839         Recent versions of this compiler automatically include code for
5840         exceptions, which increase both the size of the Qt libraries and
5841         the amount of memory taken by your applications.
5842
5843         You may choose to re-run `basename $0` with the -no-exceptions
5844         option to compile Qt without exceptions. This is completely binary
5845         compatible, and existing applications will continue to work.
5846
5847 EOF
5848     fi
5849     ;;
5850 cc*)
5851     case "$PLATFORM" in
5852     irix-cc*)
5853         if [ "$CFG_EXCEPTIONS" != "no" ]; then
5854             cat <<EOF
5855
5856         This target is using the MIPSpro C++ compiler ($PLATFORM).
5857
5858         You may choose to re-run `basename $0` with the -no-exceptions
5859         option to compile Qt without exceptions. This will make the
5860         size of the Qt library smaller and reduce the amount of memory
5861         taken by your applications.
5862
5863 EOF
5864         fi
5865         ;;
5866     *) ;;
5867     esac
5868     ;;
5869 *) ;;
5870 esac
5871
5872 echo
5873 if [ "$XPLATFORM" = "$PLATFORM" ]; then
5874     echo "Build type:    $PLATFORM"
5875 else
5876     echo "Building on:   $PLATFORM"
5877     echo "Building for:  $XPLATFORM"
5878 fi
5879
5880 echo "Architecture:  $CFG_ARCH"
5881 echo "Host architecture: $CFG_HOST_ARCH"
5882
5883 if [ -n "$PLATFORM_NOTES" ]; then
5884     echo "Platform notes:"
5885     echo "$PLATFORM_NOTES"
5886 else
5887     echo
5888 fi
5889
5890 if [ "$OPT_VERBOSE" = "yes" ]; then
5891     echo $ECHO_N "qmake vars .......... $ECHO_C"
5892     cat "$QMAKE_VARS_FILE" | tr '\n' ' '
5893     echo "qmake switches ......... $QMAKE_SWITCHES"
5894 fi
5895
5896 echo "Build .................. $CFG_BUILD_PARTS"
5897 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
5898 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5899    echo "Debug .................. yes (combined)"
5900    if [ "$CFG_DEBUG" = "yes" ]; then
5901        echo "Default Link ........... debug"
5902    else
5903        echo "Default Link ........... release"
5904    fi
5905 else
5906    echo "Debug .................. $CFG_DEBUG"
5907 fi
5908 if [ -n "$PKG_CONFIG" ]; then
5909     echo "pkg-config ............. yes"
5910 else
5911     echo "pkg-config ............. no"
5912 fi
5913 [ "$CFG_DBUS" = "no" ]     && echo "QtDBus module .......... no"
5914 [ "$CFG_DBUS" = "yes" ]    && echo "QtDBus module .......... yes (run-time)"
5915 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
5916 echo "QtConcurrent code ...... $CFG_CONCURRENT"
5917 echo "QtGui module ........... $CFG_GUI"
5918 echo "QtWidgets module ....... $CFG_WIDGETS"
5919 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5920     echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
5921 else
5922     echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
5923 fi
5924 echo "QML debugging .......... $CFG_QML_DEBUG"
5925 echo "PCH support ............ $CFG_PRECOMPILE"
5926 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
5927     echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
5928     echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
5929     echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
5930 elif [ "$CFG_ARCH" = "arm" ]; then
5931     echo "iWMMXt support ......... ${CFG_IWMMXT}"
5932     echo "NEON support ........... ${CFG_NEON}"
5933 fi
5934 if [ "$CFG_ARCH" = "mips" ]; then
5935     echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
5936 fi
5937 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
5938 echo "getaddrinfo support .... $CFG_GETADDRINFO"
5939 echo "getifaddrs support ..... $CFG_GETIFADDRS"
5940 echo "Accessibility .......... $CFG_ACCESSIBILITY"
5941 echo "NIS support ............ $CFG_NIS"
5942 echo "CUPS support ........... $CFG_CUPS"
5943 echo "Iconv support .......... $CFG_ICONV"
5944 echo "Glib support ........... $CFG_GLIB"
5945 echo "GStreamer support ...... $CFG_GSTREAMER"
5946 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
5947 echo "Large File support ..... $CFG_LARGEFILE"
5948 echo "GIF support ............ $CFG_GIF"
5949 if [ "$CFG_JPEG" = "no" ]; then
5950     echo "JPEG support ........... $CFG_JPEG"
5951 else
5952     echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
5953 fi
5954 if [ "$CFG_PNG" = "no" ]; then
5955     echo "PNG support ............ $CFG_PNG"
5956 else
5957     echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
5958 fi
5959 echo "zlib support ........... $CFG_ZLIB"
5960 echo "Session management ..... $CFG_SM"
5961 echo "libudev support ........ $CFG_LIBUDEV"
5962
5963 if [ "$CFG_OPENGL" = "desktop" ]; then
5964     echo "OpenGL support ......... yes (Desktop OpenGL)"
5965 elif [ "$CFG_OPENGL" = "es2" ]; then
5966     echo "OpenGL support ......... yes (OpenGL ES 2.x)"
5967 else
5968     echo "OpenGL support ......... no"
5969 fi
5970
5971 if [ "$CFG_OPENVG" ]; then
5972     if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5973         echo "OpenVG support ......... ShivaVG"
5974     else
5975         echo "OpenVG support ......... $CFG_OPENVG"
5976     fi
5977 fi
5978
5979 echo "XShape support ......... $CFG_XSHAPE"
5980 echo "XVideo support ......... $CFG_XVIDEO"
5981 echo "XSync support .......... $CFG_XSYNC"
5982 echo "Xinerama support ....... $CFG_XINERAMA"
5983 echo "Xcursor support ........ $CFG_XCURSOR"
5984 echo "Xfixes support ......... $CFG_XFIXES"
5985 echo "Xrandr support ......... $CFG_XRANDR"
5986 echo "Xi support ............. $CFG_XINPUT"
5987 echo "MIT-SHM support ........ $CFG_MITSHM"
5988 echo "FontConfig support ..... $CFG_FONTCONFIG"
5989 echo "XKB Support ............ $CFG_XKB"
5990 echo "immodule support ....... $CFG_IM"
5991 echo "GTK theme support ...... $CFG_QGTKSTYLE"
5992
5993 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
5994 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
5995 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
5996 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
5997 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
5998 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
5999 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6000 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6001 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6002
6003 OPENSSL_LINKAGE=""
6004 if [ "$CFG_OPENSSL" = "yes" ]; then
6005     OPENSSL_LINKAGE="(run-time)"
6006 elif [ "$CFG_OPENSSL" = "linked" ]; then
6007     OPENSSL_LINKAGE="(linked)"
6008 fi
6009 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6010 echo "Alsa support ........... $CFG_ALSA"
6011 if [ "$BUILD_ON_MAC" = "yes" ]; then
6012     echo "CoreWlan support ....... $CFG_COREWLAN"
6013 fi
6014 echo "libICU support ......... $CFG_ICU"
6015 echo "PCRE support ........... $CFG_PCRE"
6016 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6017     echo "Xcb support ............ limited (old version)"
6018 else
6019     echo "Xcb support ............ $CFG_XCB"
6020 fi
6021 echo "Xrender support ........ $CFG_XRENDER"
6022 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6023     echo "XInput2 support ........ $CFG_XINPUT2"
6024 fi
6025 echo "EGLFS support .......... $CFG_EGLFS"
6026 echo "DirectFB support ....... $CFG_DIRECTFB"
6027 echo
6028
6029 # complain about not being able to use dynamic plugins if we are using a static build
6030 if [ "$CFG_SHARED" = "no" ]; then
6031     echo
6032     echo "WARNING: Using static linking will disable the use of dynamically"
6033     echo "loaded plugins. Make sure to import all needed static plugins,"
6034     echo "or compile needed modules into the library."
6035     echo
6036 fi
6037 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6038     echo
6039     echo "NOTE: When linking against OpenSSL, you can override the default"
6040     echo "library names through OPENSSL_LIBS."
6041     echo "For example:"
6042     echo "    OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6043     echo
6044 fi
6045
6046 exec 1>&3 3>&- # restore stdout
6047 cat $outpath/config.summary # display config feedback to user
6048
6049 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6050     echo
6051     echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6052     echo "if you want a pure debug build."
6053     echo
6054     exit 1
6055 fi
6056
6057 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6058 PROCS=1
6059 EXEC=""
6060
6061
6062 #-------------------------------------------------------------------------------
6063 # build makefiles based on the configuration
6064 #-------------------------------------------------------------------------------
6065
6066 echo "Finding project files. Please wait..."
6067 if [ "$CFG_NOPROCESS" != "yes" ]; then
6068     "$outpath/bin/qmake" -prl -r "${relpath}/qtbase.pro"
6069     if [ -f "${relpath}/qtbase.pro" ]; then
6070         mkfile="${outpath}/Makefile"
6071         [ -f "$mkfile" ] && chmod +w "$mkfile"
6072         QTDIR="$outpath" "$outpath/bin/qmake" -spec "$XQMAKESPEC" "${relpath}/qtbase.pro" -o "$mkfile"
6073     fi
6074 fi
6075
6076 # .projects      -> projects to process
6077 # .projects.1    -> qt and moc
6078 # .projects.2    -> subdirs and libs
6079 # .projects.3    -> the rest
6080 rm -f .projects .projects.1 .projects.2 .projects.3
6081
6082 QMAKE_PROJECTS=`find "$relpath/." -name '*.pro' -print | sed 's-/\./-/-'`
6083 if [ -z "$AWK" ]; then
6084     for p in `echo $QMAKE_PROJECTS`; do
6085         echo "$p" >> .projects
6086     done
6087 else
6088     cat >projects.awk <<EOF
6089 BEGIN {
6090     files = 0
6091     target_file = ""
6092     input_file = ""
6093
6094     first = "./.projects.1.tmp"
6095     second = "./.projects.2.tmp"
6096     third = "./.projects.3.tmp"
6097 }
6098
6099 FNR == 1 {
6100     if ( input_file ) {
6101         if ( ! target_file )
6102             target_file = third
6103         print input_file >target_file
6104     }
6105
6106     matched_target = 0
6107     template_lib = 0
6108     input_file = FILENAME
6109     target_file = ""
6110 }
6111
6112 /^(TARGET.*=)/ {
6113     if ( \$3 == "moc" || \$3 ~ /^Qt/ ) {
6114         target_file = first
6115         matched_target = 1
6116     } else if ( \$3 == "lrelease" || \$3 == "qm_phony_target" ) {
6117         target_file = second
6118         matched_target = 1
6119     }
6120 }
6121
6122 matched_target == 0 && /^(TEMPLATE.*=)/ {
6123     if ( \$3 == "subdirs" )
6124         target_file = second
6125     else if ( \$3 == "lib" )
6126         template_lib = 1
6127     else
6128         target_file = third
6129 }
6130
6131 matched_target == 0 && template_lib == 1 && /^(CONFIG.*=)/ {
6132     if ( \$0 ~ /plugin/ )
6133         target_file = third
6134     else
6135         target_file = second
6136 }
6137
6138 END {
6139     if ( input_file ) {
6140         if ( ! target_file )
6141             target_file = third
6142         print input_file >>target_file
6143     }
6144 }
6145
6146 EOF
6147
6148     rm -f .projects.all
6149     for p in `echo $QMAKE_PROJECTS`; do
6150        echo "$p" >> .projects.all
6151     done
6152
6153     # if you get errors about the length of the command line to awk, change the -l arg
6154     # to split below
6155     split -l 100 .projects.all .projects.all.
6156     for p in .projects.all.*; do
6157        "$AWK" -f projects.awk `cat $p`
6158        [ -f .projects.1.tmp ] && cat .projects.1.tmp >> .projects.1
6159        [ -f .projects.2.tmp ] && cat .projects.2.tmp >> .projects.2
6160        [ -f .projects.3.tmp ] && cat .projects.3.tmp >> .projects.3
6161        rm -f .projects.1.tmp .projects.2.tmp .projects.3.tmp $p
6162     done
6163     rm -f .projects.all* projects.awk
6164
6165     [ -f .projects.1 ] && cat .projects.1 >>.projects
6166     [ -f .projects.2 ] && cat .projects.2 >>.projects
6167     rm -f .projects.1 .projects.2
6168     if [ -f .projects.3 ] && [ "$OPT_FAST" = "no" ]; then
6169        cat .projects.3 >>.projects
6170        rm -f .projects.3
6171     fi
6172 fi
6173 # don't sort Qt and MOC in with the other project files
6174 # also work around a segfaulting uniq(1)
6175 if [ -f .sorted.projects.2 ]; then
6176     sort .sorted.projects.2 > .sorted.projects.2.new
6177     mv -f .sorted.projects.2.new .sorted.projects.2
6178     cat .sorted.projects.2 >> .sorted.projects.1
6179 fi
6180 [ -f .sorted.projects.1 ] && sort .sorted.projects.1 >> .sorted.projects
6181 rm -f .sorted.projects.2 .sorted.projects.1
6182
6183 NORM_PROJECTS=0
6184 FAST_PROJECTS=0
6185 if [ -f .projects ]; then
6186    uniq .projects >.tmp
6187    mv -f .tmp .projects
6188    NORM_PROJECTS=`cat .projects | wc -l | sed -e "s, ,,g"`
6189 fi
6190 if [ -f .projects.3 ]; then
6191    uniq .projects.3 >.tmp
6192    mv -f .tmp .projects.3
6193    FAST_PROJECTS=`cat .projects.3 | wc -l | sed -e "s, ,,g"`
6194 fi
6195 echo "  `expr $NORM_PROJECTS + $FAST_PROJECTS` projects found."
6196 echo
6197
6198 PART_ROOTS=
6199 for part in $CFG_BUILD_PARTS; do
6200     case "$part" in
6201     tools) PART_ROOTS="$PART_ROOTS tools" ;;
6202     libs) PART_ROOTS="$PART_ROOTS src" ;;
6203     translations) PART_ROOTS="$PART_ROOTS translations" ;;
6204     examples) PART_ROOTS="$PART_ROOTS examples" ;;
6205     *) ;;
6206     esac
6207 done
6208
6209 if [ "$CFG_DEV" = "yes" ]; then
6210     PART_ROOTS="$PART_ROOTS tests"
6211 fi
6212
6213 echo "Creating makefiles. Please wait..."
6214 for file in .projects .projects.3; do
6215     [ '!' -f "$file" ] && continue
6216     for a in `cat $file`; do
6217         IN_ROOT=no
6218         for r in $PART_ROOTS; do
6219             if echo "$a" | grep "^$r" >/dev/null 2>&1 || echo "$a" | grep "^$relpath/$r" >/dev/null 2>&1; then
6220                 IN_ROOT=yes
6221                 break
6222             fi
6223         done
6224         [ "$IN_ROOT" = "no" ] && continue
6225
6226         case $a in
6227         *winmain/winmain.pro)
6228             if [ "$CFG_NOPROCESS" = "yes" ] || [ "$XPLATFORM_MINGW" != "yes" ]; then
6229                 continue
6230             fi
6231             SPEC=$XQMAKESPEC ;;
6232         */qmake/qmake.pro) continue ;;
6233         *tools/bootstrap*|*tools/moc*|*tools/rcc*|*tools/uic*|*tools/qdoc*|*tools/qdbusxml2cpp*|*tools/qdbuscpp2xml*) SPEC=$QMAKESPEC ;;
6234         *) if [ "$CFG_NOPROCESS" = "yes" ]; then
6235               continue
6236            else
6237               SPEC=$XQMAKESPEC
6238            fi;;
6239         esac
6240         dir=`dirname "$a" | sed -e "s;$sepath;.;g"`
6241         test -d "$dir" || mkdir -p "$dir"
6242         OUTDIR="$outpath/$dir"
6243         if [ -f "${OUTDIR}/Makefile" ] && [ "$OPT_FAST" = "yes" ]; then
6244             # fast configure - the makefile exists, skip it
6245             # since the makefile exists, it was generated by qmake, which means we
6246             # can skip it, since qmake has a rule to regenerate the makefile if the .pro
6247             # file changes...
6248             [ "$OPT_VERBOSE" = "yes" ] && echo "  skipping $a"
6249             continue;
6250         fi
6251         QMAKE_SPEC_ARGS="-spec $SPEC"
6252         echo $ECHO_N "  for $a$ECHO_C"
6253
6254         QMAKE="$outpath/bin/qmake"
6255         QMAKE_ARGS="$QMAKE_SWITCHES $QMAKE_SPEC_ARGS"
6256         if [ "$file" = ".projects.3" ]; then
6257             echo " (fast)"
6258
6259             cat >"${OUTDIR}/Makefile" <<EOF
6260 # ${OUTDIR}/Makefile: generated by configure
6261 #
6262 # WARNING: This makefile will be replaced with a real makefile.
6263 # All changes made to this file will be lost.
6264 EOF
6265             [ "$CFG_DEBUG_RELEASE" = "no" ] && echo "first_target: first" >>${OUTDIR}/Makefile
6266
6267             cat >>"${OUTDIR}/Makefile" <<EOF
6268 QMAKE = "$QMAKE"
6269 all clean install qmake first Makefile: FORCE
6270         \$(QMAKE) $QMAKE_ARGS -o "$OUTDIR" "$a"
6271         cd "$OUTDIR"
6272         \$(MAKE) \$@
6273
6274 FORCE:
6275
6276 EOF
6277         else
6278             if [ "$OPT_VERBOSE" = "yes" ]; then
6279                 echo " (`basename $SPEC`)"
6280                 echo "$QMAKE" $QMAKE_ARGS -o "$OUTDIR" "$a"
6281             else
6282                 echo
6283             fi
6284
6285             [ -f "${OUTDIR}/Makefile" ] && chmod +w "${OUTDIR}/Makefile"
6286             QTDIR="$outpath" "$QMAKE" $QMAKE_ARGS -o "$OUTDIR" "$a"
6287        fi
6288     done
6289 done
6290 rm -f .projects .projects.3
6291
6292 #-------------------------------------------------------------------------------
6293 # check for platforms that we don't yet know about
6294 #-------------------------------------------------------------------------------
6295 if [ "$CFG_ARCH" = "unknown" ]; then
6296 cat <<EOF
6297
6298         NOTICE: configure was unable to determine the architecture
6299         for the $XQMAKESPEC target.
6300
6301         Qt will not use a specialized implementation for any atomic
6302         operations. Instead a generic implemention based on either GCC
6303         intrinsics or C++11 std::atomic<T> will be used (when
6304         available). The generic implementations are generally as fast
6305         as and always as safe as a specialized implementation.
6306
6307         If no generic implementation is available, Qt will use a
6308         fallback UNIX implementation which uses a single
6309         pthread_mutex_t to protect all atomic operations. This
6310         implementation is the slow (but safe) fallback implementation
6311         for architectures Qt does not yet support.
6312 EOF
6313 fi
6314
6315 #-------------------------------------------------------------------------------
6316 # check if the user passed the -no-zlib option, which is no longer supported
6317 #-------------------------------------------------------------------------------
6318 if [ -n "$ZLIB_FORCED" ]; then
6319     which_zlib="supplied"
6320     if [ "$CFG_ZLIB" = "system" ]; then
6321         which_zlib="system"
6322     fi
6323
6324 cat <<EOF
6325
6326         NOTICE: The -no-zlib option was supplied but is no longer
6327         supported.
6328
6329         Qt now requires zlib support in all builds, so the -no-zlib
6330         option was ignored. Qt will be built using the $which_zlib
6331         zlib.
6332 EOF
6333 fi
6334
6335 #-------------------------------------------------------------------------------
6336 # check if the user passed the obsoleted -wayland or -no-wayland flag
6337 #-------------------------------------------------------------------------------
6338 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6339 cat <<EOF
6340
6341         NOTICE: The -wayland and -no-wayland flags are now obsolete
6342
6343         All configuring of QtWayland plugin and QtCompositor happens in the module
6344 EOF
6345 fi
6346
6347 #-------------------------------------------------------------------------------
6348 # check if the user passed the obsoleted -arch or -host-arch options
6349 #-------------------------------------------------------------------------------
6350 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6351 cat <<EOF
6352
6353         NOTICE: The -arch and -host-arch options are obsolete.
6354
6355         Qt now detects the target and host architectures based on compiler
6356         output. Qt will be built using $CFG_ARCH for the target architecture
6357         and $CFG_HOST_ARCH for the host architecture (note that these two
6358         will be the same unless you are cross-compiling).
6359 EOF
6360 fi
6361
6362 #-------------------------------------------------------------------------------
6363 # finally save the executed command to another script
6364 #-------------------------------------------------------------------------------
6365 if [ `basename $0` != "config.status" ]; then
6366     CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6367
6368     # add the system variables
6369     for varname in $SYSTEM_VARIABLES; do
6370         cmd=`echo \
6371 'if [ -n "\$'${varname}'" ]; then
6372     CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6373 fi'`
6374         eval "$cmd"
6375     done
6376
6377     echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6378
6379     [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6380     echo "#!/bin/sh" > "$outpath/config.status"
6381     [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6382         echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6383     [ -n "$PKG_CONFIG_LIBDIR" ] && \
6384         echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6385     echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6386     echo "  $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6387     echo "else" >> "$outpath/config.status"
6388     echo "  $CONFIG_STATUS" >> "$outpath/config.status"
6389     echo "fi" >> "$outpath/config.status"
6390     chmod +x "$outpath/config.status"
6391 fi
6392
6393 if [ -n "$RPATH_MESSAGE" ]; then
6394     echo
6395     echo "$RPATH_MESSAGE"
6396 fi
6397
6398 MAKE=`basename "$MAKE"`
6399 echo
6400 echo Qt is now configured for building. Just run \'$MAKE\'.
6401 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6402     echo Once everything is built, Qt is installed.
6403     echo You should not run \'$MAKE install\'.
6404 else
6405     echo Once everything is built, you must run \'$MAKE install\'.
6406     echo Qt will be installed into $QT_INSTALL_PREFIX
6407 fi
6408 echo
6409 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.
6410 echo