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