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