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