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