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