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