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