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