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