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