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