Blackberry mkspecs: Refine compiler options
[profile/ivi/qtbase.git] / configure
1 #!/bin/sh
2 #############################################################################
3 ##
4 ## Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
5 ## Contact: http://www.qt-project.org/legal
6 ##
7 ## This file is the build configuration utility of the Qt Toolkit.
8 ##
9 ## $QT_BEGIN_LICENSE:LGPL$
10 ## Commercial License Usage
11 ## Licensees holding valid commercial Qt licenses may use this file in
12 ## accordance with the commercial license agreement provided with the
13 ## Software or, alternatively, in accordance with the terms contained in
14 ## a written agreement between you and Digia.  For licensing terms and
15 ## conditions see http://qt.digia.com/licensing.  For further information
16 ## use the contact form at http://qt.digia.com/contact-us.
17 ##
18 ## GNU Lesser General Public License Usage
19 ## Alternatively, this file may be used under the terms of the GNU Lesser
20 ## General Public License version 2.1 as published by the Free Software
21 ## Foundation and appearing in the file LICENSE.LGPL included in the
22 ## packaging of this file.  Please review the following information to
23 ## ensure the GNU Lesser General Public License version 2.1 requirements
24 ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
25 ##
26 ## In addition, as a special exception, Digia gives you certain additional
27 ## rights.  These rights are described in the Digia Qt LGPL Exception
28 ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
29 ##
30 ## GNU General Public License Usage
31 ## Alternatively, this file may be used under the terms of the GNU
32 ## General Public License version 3.0 as published by the Free Software
33 ## Foundation and appearing in the file LICENSE.GPL included in the
34 ## packaging of this file.  Please review the following information to
35 ## ensure the GNU General Public License version 3.0 requirements will be
36 ## met: http://www.gnu.org/copyleft/gpl.html.
37 ##
38 ##
39 ## $QT_END_LICENSE$
40 ##
41 #############################################################################
42
43 #-------------------------------------------------------------------------------
44 # script initialization
45 #-------------------------------------------------------------------------------
46
47 # the name of this script
48 relconf=`basename $0`
49 # the directory of this script is the "source tree"
50 relpath=`dirname $0`
51 relpath=`(cd "$relpath"; /bin/pwd)`
52 # the current directory is the "build tree" or "object tree"
53 outpath=`/bin/pwd`
54
55 #license file location
56 LICENSE_FILE="$QT_LICENSE_FILE"
57 [ -z "$LICENSE_FILE" ] && LICENSE_FILE="$HOME/.qt-license"
58 if [ -f "$LICENSE_FILE" ]; then
59     tr -d '\r' <"$LICENSE_FILE" >"${LICENSE_FILE}.tmp"
60     diff "${LICENSE_FILE}.tmp" "${LICENSE_FILE}" >/dev/null 2>&1 || LICENSE_FILE="${LICENSE_FILE}.tmp"
61 fi
62
63 # later cache the command line in config.status
64 OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
65
66 # initialize global variables
67 QMAKE_SWITCHES=
68 QMAKE_VARS=
69 QMAKE_CONFIG=
70 QTCONFIG_CONFIG=
71 QT_CONFIG=
72 SUPPORTED=
73 QMAKE_VARS_FILE=.qmake.vars
74 DEVICE_VARS_FILE=.device.vars
75
76 :> "$QMAKE_VARS_FILE"
77 :> "$DEVICE_VARS_FILE"
78
79 #-------------------------------------------------------------------------------
80 # utility functions
81 #-------------------------------------------------------------------------------
82
83 shellEscape()
84 {
85     echo "$@" | sed 's/ /\ /g'
86 }
87
88 # Adds a new qmake variable to the cache
89 # Usage: QMakeVar mode varname contents
90 #   where mode is one of: set, add, del
91 QMakeVar()
92 {
93     case "$1" in
94         set)
95             eq="="
96             ;;
97         add)
98             eq="+="
99             ;;
100         del)
101             eq="-="
102             ;;
103         *)
104             echo >&2 "BUG: wrong command to QMakeVar: $1"
105             ;;
106     esac
107
108     echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
109 }
110
111 shellArgumentListToQMakeListHelper()
112 {
113     local retval
114     for arg in "$@"; do retval="$retval \"$arg\""; done
115     echo "$retval"
116 }
117
118 # Convert a string usable on a shell command line into word-by-word quoted
119 # qmake list.
120 shellArgumentListToQMakeList()
121 {
122     # eval is needed for the shell to interpret the backslash escape sequences
123     eval shellArgumentListToQMakeListHelper "$@"
124 }
125
126 # Helper function for getQMakeConf. It parses include statements in
127 # qmake.conf and prints out the expanded file
128 getQMakeConf1()
129 {
130     while read line; do case "$line" in
131         include*)
132             inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"`
133             current_dir=`dirname "$1"`
134             conf_file="$current_dir/$inc_file"
135             if [ ! -f  "$conf_file" ]; then
136                 echo "WARNING: Unable to find file $conf_file" >&2
137                 continue
138             fi
139             getQMakeConf1 "$conf_file"
140         ;;
141         *load\(device_config\)*)
142             conf_file="$DEVICE_VARS_FILE"
143             if [ ! -f  "$conf_file" ]; then
144                 echo "WARNING: Unable to find file $conf_file" >&2
145                 continue
146             fi
147             getQMakeConf1 "$conf_file"
148         ;;
149         *)
150             echo "$line"
151         ;;
152     esac; done < "$1"
153 }
154
155 getQMakeConf2()
156 {
157     $AWK '
158 BEGIN {
159     values["LITERAL_WHITESPACE"] = " "
160     values["LITERAL_DOLLAR"] = "$"
161 }
162 /^[_A-Z0-9.]+[ \t]*\+?=/ {
163     valStart = index($0, "=") + 1
164
165     append = 0
166     if (substr($0, valStart - 2, 1) == "+") {
167         append = 1
168     }
169
170     variable = substr($0, 0, valStart - 2 - append)
171     value = substr($0, valStart)
172     gsub("[ \t]+", "", variable)
173     gsub("^[ \t]+", "", value)
174     gsub("[ \t]+$", "", value)
175
176     ovalue = ""
177     while (match(value, /\$\$(\{[_A-Z0-9.]+\}|[_A-Z0-9.]+)/)) {
178         ovalue = ovalue substr(value, 1, RSTART - 1)
179         var = substr(value, RSTART + 2, RLENGTH - 2)
180         value = substr(value, RSTART + RLENGTH)
181         if (var ~ /^\{/) {
182             var = substr(var, 2, length(var) - 2)
183         }
184         ovalue = ovalue values[var]
185     }
186     ovalue = ovalue value
187
188     combinedValue = values[variable]
189     if (append == 1 && length(combinedValue) > 0) {
190         combinedValue = combinedValue " " ovalue
191     } else {
192         combinedValue = ovalue
193     }
194     values[variable] = combinedValue
195 }
196 END {
197     for (var in values) {
198         print var "=" values[var]
199     }
200 }
201 '
202 }
203
204 getQMakeConf3()
205 {
206     echo "$2" | $AWK "/^($1)=/ { print substr(\$0, index(\$0, \"=\") + 1) }"
207 }
208
209 # relies on $QMAKESPEC being set correctly. parses include statements in
210 # qmake.conf and prints out the expanded file
211 getQMakeConf()
212 {
213     if [ -z "$specvals" ]; then
214         specvals=`getQMakeConf1 "$QMAKESPEC/qmake.conf" | getQMakeConf2`
215     fi
216     getQMakeConf3 "$1" "$specvals"
217 }
218
219 getXQMakeConf()
220 {
221     if [ -z "$xspecvals" ]; then
222         xspecvals=`getQMakeConf1 "$XQMAKESPEC/qmake.conf" | getQMakeConf2`
223     fi
224     getQMakeConf3 "$1" "$xspecvals"
225 }
226
227 # relies on $TEST_COMPILER being set correctly
228 compilerSupportsFlag()
229 {
230     cat >conftest.cpp <<EOF
231 int main() { return 0; }
232 EOF
233     $TEST_COMPILER "$@" -o conftest-out.o conftest.cpp
234     ret=$?
235     rm -f conftest.cpp conftest-out.o
236     return $ret
237 }
238
239 # relies on $TEST_COMPILER being set correctly
240 linkerSupportsFlag()
241 {
242     lflags=-Wl
243     for flag
244     do
245         safe_flag=`shellEscape "$flag"`
246         lflags=$lflags,$safe_flag
247     done
248     compilerSupportsFlag "$lflags" >/dev/null 2>&1
249 }
250
251 # $1: newline-separated list of default paths
252 # stdin: input path
253 # stdout: input path or nothing
254 filterDefaultPaths()
255 {
256     local path
257     path=`cat`
258     echo "$1" | grep "^$path\$" > /dev/null || echo "$path"
259 }
260
261 filterIncludePath()
262 {
263     filterDefaultPaths "$DEFAULT_INCDIRS"
264 }
265
266 filterLibraryPath()
267 {
268     filterDefaultPaths "$DEFAULT_LIBDIRS"
269 }
270
271 filterPathOptionsHelper()
272 {
273     local flag defpaths sep p path
274     flag=$1; shift
275     defpaths=$1; shift
276     sep=
277     for p in "$@"; do
278         path=${p#$flag}
279         if [ "x$path" != "x$p" ]; then
280             path=`echo "$path" | filterDefaultPaths "$defpaths"`
281             test -z "$path" && continue
282         fi
283         # Re-quote for shell & qmake
284         p=`echo "$p" | sed 's,[^ ]* .*,"&",g'`
285         printf "%s%s" "$sep" "$p"
286         sep=" "
287     done
288     echo
289 }
290
291 # $1: flag
292 # $2: newline-separated list of default paths
293 # stdin: list of command line options
294 # sdout: stdin without the options naming default paths
295 filterPathOptions()
296 {
297     # The eval does escape interpretation for us
298     eval filterPathOptionsHelper $1 "\"$2\"" "`cat`"
299 }
300
301 filterIncludeOptions()
302 {
303     filterPathOptions -I "$DEFAULT_INCDIRS"
304 }
305
306 filterLibraryOptions()
307 {
308     filterPathOptions -L "$DEFAULT_LIBDIRS"
309 }
310
311 #-------------------------------------------------------------------------------
312 # device options
313 #-------------------------------------------------------------------------------
314 DeviceVar()
315 {
316     case "$1" in
317         set)
318             eq="="
319             ;;
320         *)
321             echo >&2 "BUG: wrong command to QMakeVar: $1"
322             ;;
323     esac
324
325     echo "$2" "$eq" "$3" >> "$DEVICE_VARS_FILE"
326 }
327
328 resolveDeviceMkspec()
329 {
330     result=$(find "$relpath/mkspecs/devices/" -type d -name "*$1*" | sed "s,^$relpath/mkspecs/,,")
331     match_count=$(echo "$result" | wc -w)
332     if [ "$match_count" -gt 1 ]; then
333         echo >&2 "Error: Multiple matches for device '$1'. Candidates are:"
334         tabbed_result=$(echo "$result" | sed "s,^,    ,")
335         echo >&2 "$tabbed_result"
336         echo "undefined"
337     elif [ "$match_count" -eq 0 ]; then
338         echo >&2 "Error: No device matching '$1'"
339         echo "undefined"
340     else
341         echo "$result"
342     fi
343 }
344
345 #-------------------------------------------------------------------------------
346 # operating system detection
347 #-------------------------------------------------------------------------------
348
349 # need that throughout the script
350 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
351 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
352 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
353 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
354
355 # detect the "echo without newline" style. usage: echo $ECHO_N "<string>$ECHO_C"
356 if echo '\c' | grep '\c' >/dev/null; then
357     ECHO_N=-n
358 else
359     ECHO_C='\c'
360 fi
361
362 #-------------------------------------------------------------------------------
363 # window system detection
364 #-------------------------------------------------------------------------------
365
366 BUILD_ON_MAC=no
367 PLATFORM_MAC=no
368 if [ -d /System/Library/Frameworks/Carbon.framework ]; then
369     BUILD_ON_MAC=yes
370     PLATFORM_MAC=maybe
371 fi
372
373 #-----------------------------------------------------------------------------
374 # Qt version detection
375 #-----------------------------------------------------------------------------
376 QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
377 QT_MAJOR_VERSION=
378 QT_MINOR_VERSION=0
379 QT_PATCH_VERSION=0
380 if [ -n "$QT_VERSION" ]; then
381    QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
382    MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
383    if [ -n "$MAJOR" ]; then
384      MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
385       PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
386       QT_MAJOR_VERSION="$MAJOR"
387       [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
388       [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
389    fi
390 fi
391 if [ -z "$QT_MAJOR_VERSION" ]; then
392    echo "Cannot process version from qglobal.h: $QT_VERSION"
393    echo "Cannot proceed."
394    exit 1
395 fi
396
397 #-------------------------------------------------------------------------------
398 # check the license
399 #-------------------------------------------------------------------------------
400 COMMERCIAL_USER=ask
401 CFG_DEV=no
402 CFG_RTOS_ENABLED=yes
403 EditionString=Commercial
404
405 earlyArgParse()
406 {
407     # parse the arguments, setting things to "yes" or "no"
408     while [ "$#" -gt 0 ]; do
409         CURRENT_OPT="$1"
410         UNKNOWN_ARG=no
411         case "$1" in
412         #Autoconf style options
413         --enable-*)
414             VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
415             VAL=yes
416             ;;
417         --disable-*)
418             VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
419             VAL=no
420             ;;
421         --*=*)
422             VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
423             VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
424             ;;
425         --no-*)
426             VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
427             VAL=no
428             ;;
429         -h|help|--help|-help)
430             if [ "$VAL" = "yes" ]; then
431                 OPT_HELP="$VAL"
432                 COMMERCIAL_USER="no" #doesn't matter we will display the help
433             else
434                 UNKNOWN_OPT=yes
435                 COMMERCIAL_USER="no" #doesn't matter we will display the help
436             fi
437             ;;
438         --*)
439             VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
440             VAL=yes
441             ;;
442         -*)
443             VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
444             VAL="unknown"
445             ;;
446         *)
447             UNKNOWN_ARG=yes
448             ;;
449         esac
450         if [ "$UNKNOWN_ARG" = "yes" ]; then
451             shift
452             continue
453         fi
454         shift
455
456         UNKNOWN_OPT=no
457         case "$VAR" in
458         developer-build)
459             CFG_DEV="yes"
460             ;;
461         commercial)
462             COMMERCIAL_USER="yes"
463             ;;
464         opensource)
465             COMMERCIAL_USER="no"
466             ;;
467         *)
468             UNKNOWN_OPT=yes
469             ;;
470         esac
471     done
472 }
473
474 earlyArgParse "$@"
475
476 if [ "$COMMERCIAL_USER" = "ask" ]; then
477     while true; do
478         echo "Which edition of Qt do you want to use ?"
479         echo
480         echo "Type 'c' if you want to use the Commercial Edition."
481         echo "Type 'o' if you want to use the Open Source Edition."
482         echo
483         read commercial
484         echo
485         if [ "$commercial" = "c" ]; then
486             COMMERCIAL_USER="yes"
487             break
488         elif [ "$commercial" = "o" ]; then
489             COMMERCIAL_USER="no"
490             break
491         fi
492     done
493 fi
494
495 if [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
496     # Commercial preview release
497     [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
498     Licensee="Preview"
499     Edition="Preview"
500     QT_EDITION="QT_EDITION_DESKTOP"
501     LicenseType="Technology Preview"
502 elif [ $COMMERCIAL_USER = "yes" ]; then
503     # one of commercial editions
504     [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
505
506     # read in the license file
507     if [ -f "$LICENSE_FILE" ]; then
508         . "$LICENSE_FILE" >/dev/null 2>&1
509         if [ -z "$LicenseKeyExt" ]; then
510             echo
511             echo "You are using an old license file."
512             echo
513             echo "Please install the license file supplied by Digia,"
514             echo "or install the Qt Open Source Edition if you intend to"
515             echo "develop free software."
516             exit 1
517         fi
518         if [ -z "$Licensee" ]; then
519             echo
520             echo "Invalid license key. Please check the license key."
521             exit 1
522         fi
523     else
524         if [ -z "$LicenseKeyExt" ]; then
525             echo
526             echo $ECHO_N "Please enter your license key: $ECHO_C"
527             read LicenseKeyExt
528             Licensee="Unknown user"
529         fi
530     fi
531
532     # Key verification
533     echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
534         && LicenseValid="yes" \
535         || LicenseValid="no"
536     if [ "$LicenseValid" != "yes" ]; then
537         echo
538         echo "Invalid license key. Please check the license key."
539         exit 1
540     fi
541     ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
542     PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d -`
543     LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
544     LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
545
546     # determine which edition we are licensed to use
547     case "$LicenseTypeCode" in
548     F4M)
549         LicenseType="Commercial"
550         case $ProductCode in
551         F)
552             Edition="Universal"
553             QT_EDITION="QT_EDITION_UNIVERSAL"
554             ;;
555         B)
556             Edition="FullFramework"
557             EditionString="Full Framework"
558             QT_EDITION="QT_EDITION_DESKTOP"
559             ;;
560         L)
561             Edition="GUIFramework"
562             EditionString="GUI Framework"
563             QT_EDITION="QT_EDITION_DESKTOPLIGHT"
564             ;;
565         esac
566         ;;
567     Z4M|R4M|Q4M)
568         LicenseType="Evaluation"
569         QMakeVar add DEFINES QT_EVAL
570         case $ProductCode in
571          B)
572             Edition="Evaluation"
573             QT_EDITION="QT_EDITION_EVALUATION"
574             ;;
575         esac
576         ;;
577     esac
578     if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
579         echo
580         echo "Invalid license key. Please check the license key."
581         exit 1
582     fi
583
584     # verify that we are licensed to use Qt on this platform
585     LICENSE_EXTENSION=
586     case "$PlatformCode" in
587         *L)
588             CFG_RTOS_ENABLED=yes
589             PlatformCode=`echo "$PlatformCode" | sed 'h;y/8NPQRTZ/UCWX9M7/;x;G;s/\(.\)....\(.\)./\1\2/'`
590             ;;
591         *)
592             CFG_RTOS_ENABLED=no
593             PlatformCode=`echo "$PlatformCode" | sed 's/.$//'`
594             ;;
595     esac
596     ### EMBEDDED_QPA logic missing ###
597     case "$PlatformCode,$PLATFORM_MAC" in
598         X9,* | XC,* | XU,* | XW,* | XM,*)
599             # Qt All-OS
600             LICENSE_EXTENSION="-ALLOS"
601             ;;
602         8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*)
603             # Qt for Embedded Linux
604             LICENSE_EXTENSION="-EMBEDDED"
605             ;;
606         6M,* | N7,* | N9,* | NX,*)
607             # Embedded no-deploy
608             LICENSE_EXTENSION="-EMBEDDED"
609             ;;
610         FM,* | LM,yes | ZM,no)
611             # Desktop
612             LICENSE_EXTENSION="-DESKTOP"
613             ;;
614         *)
615             Platform=Linux/X11
616             [ "$PLATFORM_MAC" = "yes" ] && Platform='Mac OS X'
617             echo
618             echo "You are not licensed for the $Platform platform."
619             echo
620             echo "Please use the contact form at http://qt.digia.com/contact-us"
621             echo "to upgrade your license to include the $Platform platform, or install"
622             echo "the Qt Open Source Edition if you intend to develop free software."
623             exit 1
624             ;;
625     esac
626
627     if test -r "$relpath/.LICENSE"; then
628         # Generic, non-final license
629         LICENSE_EXTENSION=""
630         line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
631         case "$line" in
632             *BETA*)
633                 Edition=Beta
634                 ;;
635             *TECHNOLOGY?PREVIEW*)
636                 Edition=Preview
637                 ;;
638             *EVALUATION*)
639                 Edition=Evaluation
640                 ;;
641             *)
642                 echo >&2 "Invalid license files; cannot continue"
643                 exit 1
644                 ;;
645         esac
646         Licensee="$Edition"
647         EditionString="$Edition"
648         QT_EDITION="QT_EDITION_DESKTOP"
649     fi
650
651     case "$LicenseFeatureCode" in
652     B|G|L|Y)
653         # US
654         case "$LicenseType" in
655         Commercial)
656             cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
657             ;;
658         Evaluation)
659             cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
660             ;;
661         esac
662         ;;
663     2|4|5|F)
664         # non-US
665         case "$LicenseType" in
666         Commercial)
667             cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
668             ;;
669         Evaluation)
670             cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
671             ;;
672         esac
673         ;;
674     *)
675         echo
676         echo "Invalid license key. Please check the license key."
677         exit 1
678         ;;
679     esac
680     case "$LicenseFeatureCode" in
681         4|B|F|Y)
682             CFG_RTOS_ENABLED=yes
683             ;;
684         2|5|G|L)
685             CFG_RTOS_ENABLED=no
686             ;;
687     esac
688     if [ '!' -f "$outpath/LICENSE" ]; then
689         echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
690         echo "this software has disappeared."
691         echo
692         echo "Sorry, you are not licensed to use this software."
693         echo "Try re-installing."
694         echo
695         exit 1
696     fi
697 elif [ $COMMERCIAL_USER = "no" ]; then
698     # Open Source edition - may only be used under the terms of the GPL or LGPL.
699     [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
700     Licensee="Open Source"
701     Edition="OpenSource"
702     EditionString="Open Source"
703     QT_EDITION="QT_EDITION_OPENSOURCE"
704 fi
705
706 #-------------------------------------------------------------------------------
707 # initalize variables
708 #-------------------------------------------------------------------------------
709
710 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
711 for varname in $SYSTEM_VARIABLES; do
712     qmakevarname="${varname}"
713     # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
714     if [ "${varname}" = "LDFLAGS" ]; then
715         qmakevarname="LFLAGS"
716     elif [ "${varname}" = "LD" ]; then
717         qmakevarname="LINK"
718     fi
719     cmd=`echo \
720 'if [ -n "\$'${varname}'" ]; then
721     QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
722 fi'`
723     eval "$cmd"
724 done
725 # Use CC/CXX to run config.tests
726 mkdir -p "$outpath/config.tests"
727 rm -f "$outpath/config.tests/.qmake.cache"
728 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
729
730 QMakeVar add styles "cde mac motif plastique cleanlooks windows"
731
732 # QTDIR may be set and point to an old or system-wide Qt installation
733 unset QTDIR
734
735 # the minimum version of libdbus-1 that we require:
736 MIN_DBUS_1_VERSION=0.93
737
738 # initalize internal variables
739 CFG_CONFIGURE_EXIT_ON_ERROR=yes
740 CFG_PROFILE=no
741 CFG_STRIP=yes
742 CFG_GUI=auto # (yes|no|auto)
743 CFG_WIDGETS=yes
744 CFG_QCONFIG=full
745 CFG_DEBUG=auto
746 CFG_MYSQL_CONFIG=
747 CFG_DEBUG_RELEASE=no
748 CFG_FORCEDEBUGINFO=no
749 CFG_SHARED=yes
750 CFG_SM=auto
751 CFG_XSHAPE=auto
752 CFG_XSYNC=auto
753 CFG_XVIDEO=auto
754 CFG_XINERAMA=runtime
755 CFG_XFIXES=runtime
756 CFG_ZLIB=auto
757 CFG_SQLITE=qt
758 CFG_GIF=auto
759 CFG_PNG=yes
760 CFG_LIBPNG=auto
761 CFG_JPEG=auto
762 CFG_LIBJPEG=auto
763 CFG_XCURSOR=runtime
764 CFG_XRANDR=runtime
765 CFG_XRENDER=auto
766 CFG_MITSHM=auto
767 CFG_OPENGL=auto
768 CFG_OPENVG=auto
769 CFG_OPENVG_LC_INCLUDES=no
770 CFG_OPENVG_SHIVA=auto
771 CFG_OPENVG_ON_OPENGL=auto
772 CFG_EGL=auto
773 CFG_SSE=auto
774 CFG_FONTCONFIG=auto
775 CFG_LIBFREETYPE=auto
776 CFG_SQL_AVAILABLE=
777 QT_DEFAULT_BUILD_PARTS="libs tools examples"
778 CFG_BUILD_PARTS=""
779 CFG_NOBUILD_PARTS=""
780 CFG_RELEASE_QMAKE=no
781 CFG_AUDIO_BACKEND=auto
782 CFG_V8SNAPSHOT=auto
783 CFG_QML_DEBUG=yes
784 CFG_JAVASCRIPTCORE_JIT=auto
785 CFG_PKGCONFIG=auto
786 CFG_STACK_PROTECTOR_STRONG=auto
787
788 # Target architecture
789 CFG_ARCH=
790 CFG_CPUFEATURES=
791 # Host architecture, same as CFG_ARCH when not cross-compiling
792 CFG_HOST_ARCH=
793 CFG_HOST_CPUFEATURES=
794 # Set when the -arch or -host-arch arguments are used
795 OPT_OBSOLETE_HOST_ARG=no
796
797 CFG_USE_GNUMAKE=no
798 CFG_IM=yes
799 CFG_XINPUT2=auto
800 CFG_XINPUT=runtime
801 CFG_XKB=auto
802 CFG_XCB=auto
803 CFG_XCB_LIMITED=yes
804 CFG_EGLFS=auto
805 CFG_DIRECTFB=auto
806 CFG_LINUXFB=auto
807 CFG_KMS=auto
808 CFG_LIBUDEV=auto
809 CFG_OBSOLETE_WAYLAND=no
810 CFG_EVDEV=auto
811 CFG_NIS=auto
812 CFG_CUPS=auto
813 CFG_ICONV=auto
814 CFG_DBUS=auto
815 CFG_GLIB=auto
816 CFG_GSTREAMER=auto
817 CFG_QGTKSTYLE=auto
818 CFG_LARGEFILE=auto
819 CFG_OPENSSL=auto
820 CFG_PRECOMPILE=auto
821 CFG_SEPARATE_DEBUG_INFO=no
822 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
823 CFG_REDUCE_EXPORTS=auto
824 CFG_SSE2=auto
825 CFG_SSE3=auto
826 CFG_SSSE3=auto
827 CFG_SSE4_1=auto
828 CFG_SSE4_2=auto
829 CFG_AVX=auto
830 CFG_AVX2=auto
831 CFG_REDUCE_RELOCATIONS=auto
832 CFG_ACCESSIBILITY=auto
833 CFG_IWMMXT=no
834 CFG_NEON=auto
835 CFG_MIPS_DSP=auto
836 CFG_MIPS_DSPR2=auto
837 CFG_CLOCK_GETTIME=auto
838 CFG_CLOCK_MONOTONIC=auto
839 CFG_MREMAP=auto
840 CFG_GETADDRINFO=auto
841 CFG_IPV6IFNAME=auto
842 CFG_GETIFADDRS=auto
843 CFG_INOTIFY=auto
844 CFG_RPATH=yes
845 CFG_FRAMEWORK=auto
846 CFG_MAC_HARFBUZZ=no
847 CFG_PREFIX_INSTALL=yes
848 CFG_SDK=
849 DEFINES=
850 D_FLAGS=
851 I_FLAGS=
852 L_FLAGS=
853 RPATH_FLAGS=
854 W_FLAGS=
855 QCONFIG_FLAGS=
856 XPLATFORM=              # This seems to be the QMAKESPEC, like "linux-g++"
857 XPLATFORM_MINGW=no      # Whether target platform is MinGW (win32-g++*)
858 XPLATFORM_MAEMO=no
859 XPLATFORM_QNX=no
860 PLATFORM=$QMAKESPEC
861 QT_CROSS_COMPILE=no
862 OPT_CONFIRM_LICENSE=no
863 OPT_SHADOW=maybe
864 OPT_FAST=auto
865 OPT_VERBOSE=no
866 OPT_HELP=
867 CFG_SILENT=no
868 CFG_ALSA=auto
869 CFG_PULSEAUDIO=auto
870 CFG_COREWLAN=auto
871 CFG_PROCESS=yes
872 CFG_ICU=auto
873 CFG_FORCE_ASSERTS=no
874 CFG_PCRE=auto
875 QPA_PLATFORM_GUARD=yes
876 CFG_CXX11=auto
877
878 # initalize variables used for installation
879 QT_INSTALL_PREFIX=
880 QT_INSTALL_DOCS=
881 QT_INSTALL_HEADERS=
882 QT_INSTALL_LIBS=
883 QT_INSTALL_BINS=
884 QT_INSTALL_PLUGINS=
885 QT_INSTALL_IMPORTS=
886 QT_INSTALL_DATA=
887 QT_INSTALL_TRANSLATIONS=
888 QT_INSTALL_SETTINGS=
889 QT_INSTALL_EXAMPLES=
890 QT_INSTALL_TESTS=
891 CFG_SYSROOT=
892 CFG_GCC_SYSROOT="yes"
893 QT_HOST_PREFIX=
894 QT_HOST_BINS=
895 QT_HOST_DATA=
896
897 #flags for SQL drivers
898 QT_CFLAGS_PSQL=
899 QT_LFLAGS_PSQL=
900 QT_CFLAGS_MYSQL=
901 QT_LFLAGS_MYSQL=
902 QT_LFLAGS_MYSQL_R=
903 QT_CFLAGS_SQLITE=
904 QT_LFLAGS_SQLITE=
905 QT_LFLAGS_ODBC="-lodbc"
906 QT_LFLAGS_TDS=
907
908 # flags for libdbus-1
909 QT_CFLAGS_DBUS=
910 QT_LIBS_DBUS=
911
912 # flags for Glib (X11 only)
913 QT_CFLAGS_GLIB=
914 QT_LIBS_GLIB=
915
916 # flags for GStreamer (X11 only)
917 QT_CFLAGS_GSTREAMER=
918 QT_LIBS_GSTREAMER=
919
920 # default qpa platform
921 QT_QPA_DEFAULT_PLATFORM=
922
923 #-------------------------------------------------------------------------------
924 # check SQL drivers available in this package
925 #-------------------------------------------------------------------------------
926
927 # opensource version removes some drivers, so force them to be off
928 CFG_SQL_tds=no
929 CFG_SQL_oci=no
930 CFG_SQL_db2=no
931
932 CFG_SQL_AVAILABLE=
933 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
934   for a in "$relpath/src/plugins/sqldrivers/"*; do
935      if [ -d "$a" ]; then
936          base_a=`basename "$a"`
937          CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
938          eval "CFG_SQL_${base_a}=auto"
939      fi
940   done
941 fi
942
943 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
944 if [ -d "$relpath/src/plugins/imageformats" ]; then
945     for a in "$relpath/src/plugins/imageformats/"*; do
946         if [ -d "$a" ]; then
947             base_a=`basename "$a"`
948             CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
949         fi
950     done
951 fi
952
953 #-------------------------------------------------------------------------------
954 # parse command line arguments
955 #-------------------------------------------------------------------------------
956
957 # parse the arguments, setting things to "yes" or "no"
958 while [ "$#" -gt 0 ]; do
959     CURRENT_OPT="$1"
960     UNKNOWN_ARG=no
961     case "$1" in
962     #Autoconf style options
963     --enable-*)
964         VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
965         VAL=yes
966         ;;
967     --disable-*)
968         VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
969         VAL=no
970         ;;
971     --*=*)
972         VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
973         VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
974         ;;
975     --no-*)
976         VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
977         VAL=no
978         ;;
979     --*)
980         VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
981         VAL=yes
982         ;;
983     #Qt plugin options
984     -no-*-*|-plugin-*-*|-qt-*-*)
985         VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
986         VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
987         ;;
988     #Qt style no options
989     -no-*)
990         VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
991         VAL=no
992         ;;
993     #Qt style options that pass an argument
994     -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)
995         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
996         shift
997         VAL="$1"
998         ;;
999     #Qt style complex options in one command
1000     -enable-*|-disable-*)
1001         VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1002         VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1003         ;;
1004     #Qt Builtin/System style options
1005     -no-*|-system-*|-qt-*)
1006         VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1007         VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1008         ;;
1009     #Options that cannot be generalized
1010     -k|-continue)
1011         VAR=fatal_error
1012         VAL=no
1013         ;;
1014     -opengl)
1015         VAR=opengl
1016         # this option may or may not be followed by an argument
1017         if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1018             VAL=yes
1019         else
1020             shift;
1021             VAL=$1
1022         fi
1023         ;;
1024     -openvg)
1025         VAR=openvg
1026         # this option may or may not be followed by an argument
1027         if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1028             VAL=yes
1029         else
1030             shift;
1031             VAL=$1
1032         fi
1033         ;;
1034     -hostprefix)
1035         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1036         # this option may or may not be followed by an argument
1037         if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1038             VAL=$outpath
1039         else
1040             shift;
1041             VAL=$1
1042         fi
1043         ;;
1044     -qtnamespace)
1045         VAR="qtnamespace"
1046         shift
1047         VAL="$1"
1048         ;;
1049     -qtlibinfix)
1050         VAR="qtlibinfix"
1051         shift
1052         VAL="$1"
1053         ;;
1054     -D?*|-D)
1055         VAR="add_define"
1056         if [ "$1" = "-D" ]; then
1057             shift
1058             VAL="$1"
1059         else
1060             VAL=`echo $1 | sed 's,-D,,'`
1061         fi
1062         ;;
1063     -fpu)
1064         VAR="fpu"
1065         # this option may or may not be followed by an argument
1066         if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1067             VAL=no
1068         else
1069             shift
1070             VAL=$1
1071         fi
1072         ;;
1073     -I?*|-I)
1074         VAR="add_ipath"
1075         if [ "$1" = "-I" ]; then
1076             shift
1077             VAL="$1"
1078         else
1079             VAL=`echo $1 | sed 's,-I,,'`
1080         fi
1081         ;;
1082     -L?*|-L)
1083         VAR="add_lpath"
1084         if [ "$1" = "-L" ]; then
1085             shift
1086             VAL="$1"
1087         else
1088             VAL=`echo $1 | sed 's,-L,,'`
1089         fi
1090         ;;
1091     -R?*|-R)
1092         VAR="add_rpath"
1093         if [ "$1" = "-R" ]; then
1094             shift
1095             VAL="$1"
1096         else
1097             VAL=`echo $1 | sed 's,-R,,'`
1098         fi
1099         ;;
1100     -l?*|-l)
1101         VAR="add_link"
1102         if [ "$1" = "-l" ]; then
1103             shift
1104             VAL="$1"
1105         else
1106             VAL=`echo $1 | sed 's,-l,,'`
1107         fi
1108         ;;
1109     -F?*|-F)
1110         VAR="add_fpath"
1111         if [ "$1" = "-F" ]; then
1112             shift
1113             VAL="$1"
1114         else
1115             VAL=`echo $1 | sed 's,-F,,'`
1116         fi
1117         ;;
1118     -fw?*|-fw)
1119         VAR="add_framework"
1120         if [ "$1" = "-fw" ]; then
1121             shift
1122             VAL="$1"
1123         else
1124             VAL=`echo $1 | sed 's,-fw,,'`
1125         fi
1126         ;;
1127     -W*)
1128         VAR="add_warn"
1129         VAL="$1"
1130         ;;
1131     #General options, including Qt style yes options
1132     -*)
1133         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1134         VAL="yes"
1135         ;;
1136     *)
1137         UNKNOWN_ARG=yes
1138         ;;
1139     esac
1140     if [ "$UNKNOWN_ARG" = "yes" ]; then
1141         echo "$1: unknown argument"
1142         OPT_HELP=yes
1143         ERROR=yes
1144         shift
1145         continue
1146      fi
1147     shift
1148
1149     UNKNOWN_OPT=no
1150     case "$VAR" in
1151     accessibility)
1152         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1153             CFG_ACCESSIBILITY="$VAL"
1154         else
1155             UNKNOWN_OPT=yes
1156         fi
1157         ;;
1158     license)
1159         LICENSE_FILE="$VAL"
1160         ;;
1161     gnumake)
1162         CFG_USE_GNUMAKE="$VAL"
1163         ;;
1164     mysql_config)
1165         CFG_MYSQL_CONFIG="$VAL"
1166         ;;
1167     prefix)
1168         QT_INSTALL_PREFIX="$VAL"
1169         ;;
1170     hostprefix)
1171         QT_HOST_PREFIX="$VAL"
1172         ;;
1173     hostdatadir)
1174         QT_HOST_DATA="$VAL"
1175         ;;
1176     hostbindir)
1177         QT_HOST_BINS="$VAL"
1178         ;;
1179     pkg-config)
1180         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1181             CFG_PKGCONFIG="$VAL"
1182         else
1183             UNKNOWN_OPT=yes
1184         fi
1185         ;;
1186     force-pkg-config)
1187         CFG_PKGCONFIG="force"
1188         ;;
1189     docdir)
1190         QT_INSTALL_DOCS="$VAL"
1191         ;;
1192     headerdir)
1193         QT_INSTALL_HEADERS="$VAL"
1194         ;;
1195     plugindir)
1196         QT_INSTALL_PLUGINS="$VAL"
1197         ;;
1198     importdir)
1199         QT_INSTALL_IMPORTS="$VAL"
1200         ;;
1201     datadir)
1202         QT_INSTALL_DATA="$VAL"
1203         ;;
1204     libdir)
1205         QT_INSTALL_LIBS="$VAL"
1206         ;;
1207     qtnamespace)
1208         QT_NAMESPACE="$VAL"
1209         ;;
1210     qtlibinfix)
1211         QT_LIBINFIX="$VAL"
1212         ;;
1213     translationdir)
1214         QT_INSTALL_TRANSLATIONS="$VAL"
1215         ;;
1216     sysconfdir|settingsdir)
1217         QT_INSTALL_SETTINGS="$VAL"
1218         ;;
1219     examplesdir)
1220         QT_INSTALL_EXAMPLES="$VAL"
1221         ;;
1222     testsdir)
1223         QT_INSTALL_TESTS="$VAL"
1224         ;;
1225     qconfig)
1226         CFG_QCONFIG="$VAL"
1227         ;;
1228     sysroot)
1229         CFG_SYSROOT="$VAL"
1230         ;;
1231     gcc-sysroot)
1232         CFG_GCC_SYSROOT="$VAL"
1233         ;;
1234     bindir)
1235         QT_INSTALL_BINS="$VAL"
1236         ;;
1237     sse)
1238         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1239             CFG_SSE="$VAL"
1240         else
1241             UNKNOWN_OPT=yes
1242         fi
1243         ;;
1244     opengl)
1245         if  [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1246             [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1247             [ "$VAL" = "es2" ]; then
1248             CFG_OPENGL="$VAL"
1249         else
1250             UNKNOWN_OPT=yes
1251         fi
1252         ;;
1253     openvg)
1254         if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1255             CFG_OPENVG="$VAL"
1256         else
1257             UNKNOWN_OPT=yes
1258         fi
1259         ;;
1260     nomake)
1261         CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1262         ;;
1263     make)
1264         CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1265         ;;
1266     sdk)
1267         if [ "$BUILD_ON_MAC" = "yes" ]; then
1268             CFG_SDK="$VAL"
1269         else
1270             UNKNOWN_OPT=yes
1271         fi
1272         ;;
1273     arch|host-arch)
1274         OPT_OBSOLETE_HOST_ARG=yes
1275         ;;
1276     harfbuzz)
1277         if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1278             CFG_MAC_HARFBUZZ="$VAL"
1279         else
1280             UNKNOWN_OPT=yes
1281         fi
1282         ;;
1283
1284     framework)
1285         if [ "$BUILD_ON_MAC" = "yes" ]; then
1286             CFG_FRAMEWORK="$VAL"
1287         else
1288             UNKNOWN_OPT=yes
1289         fi
1290         ;;
1291     profile)
1292         if [ "$VAL" = "yes" ]; then
1293             CFG_PROFILE=yes
1294             QMakeVar add QMAKE_CFLAGS -pg
1295             QMakeVar add QMAKE_CXXFLAGS -pg
1296             QMakeVar add QMAKE_LFLAGS -pg
1297             QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1298         else
1299             UNKNOWN_OPT=yes
1300         fi
1301         ;;
1302     strip)
1303         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1304             CFG_STRIP=$VAL
1305         else
1306             UNKNOWN_OPT=yes
1307         fi
1308         ;;
1309     testcocoon)
1310         if [ "$VAL" = "yes" ]; then
1311             QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1312         fi
1313         ;;
1314     platform)
1315         PLATFORM="$VAL"
1316         # keep compatibility with old platform names
1317         case $PLATFORM in
1318         aix-64)
1319             PLATFORM=aix-xlc-64
1320             ;;
1321         hpux-o64)
1322             PLATFORM=hpux-acc-o64
1323             ;;
1324         hpux-n64)
1325             PLATFORM=hpux-acc-64
1326             ;;
1327         hpux-acc-n64)
1328             PLATFORM=hpux-acc-64
1329             ;;
1330         irix-n32)
1331             PLATFORM=irix-cc
1332             ;;
1333         irix-64)
1334             PLATFORM=irix-cc-64
1335             ;;
1336         irix-cc-n64)
1337             PLATFORM=irix-cc-64
1338             ;;
1339         reliant-64)
1340             PLATFORM=reliant-cds-64
1341             ;;
1342         solaris-64)
1343             PLATFORM=solaris-cc-64
1344             ;;
1345         openunix-cc)
1346             PLATFORM=unixware-cc
1347             ;;
1348         openunix-g++)
1349             PLATFORM=unixware-g++
1350             ;;
1351         unixware7-cc)
1352             PLATFORM=unixware-cc
1353             ;;
1354         unixware7-g++)
1355             PLATFORM=unixware-g++
1356             ;;
1357         macx-g++-64)
1358             PLATFORM=macx-g++
1359             NATIVE_64_ARCH=
1360             case `uname -p` in
1361             i386) NATIVE_64_ARCH="x86_64" ;;
1362             powerpc) NATIVE_64_ARCH="ppc64" ;;
1363             *)   echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1364             esac
1365             if [ ! -z "$NATIVE_64_ARCH" ]; then
1366                 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1367             fi
1368             ;;
1369         esac
1370         ;;
1371     xplatform)
1372         XPLATFORM="$VAL"
1373         case `basename "$XPLATFORM"` in win32-g++*)
1374             XPLATFORM_MINGW=yes
1375             CFG_RPATH=no
1376             CFG_REDUCE_EXPORTS=no
1377             ;;
1378         esac
1379         ;;
1380     device)
1381         XPLATFORM=`resolveDeviceMkspec $VAL`
1382         [ "$XPLATFORM" = "undefined" ] && exit 101
1383         ;;
1384     device-option)
1385         DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1386         DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1387         DeviceVar set $DEV_VAR $DEV_VAL
1388         ;;
1389     qpa)
1390         QT_QPA_DEFAULT_PLATFORM="$VAL"
1391         ;;
1392     debug-and-release)
1393         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1394             CFG_DEBUG_RELEASE="$VAL"
1395         else
1396             UNKNOWN_OPT=yes
1397         fi
1398         ;;
1399     optimized-qmake)
1400         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1401             CFG_RELEASE_QMAKE="$VAL"
1402         else
1403             UNKNOWN_OPT=yes
1404         fi
1405         ;;
1406     release)
1407         if [ "$VAL" = "yes" ]; then
1408             CFG_DEBUG=no
1409         elif [ "$VAL" = "no" ]; then
1410             CFG_DEBUG=yes
1411         else
1412             UNKNOWN_OPT=yes
1413         fi
1414         ;;
1415     prefix-install)
1416         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1417             CFG_PREFIX_INSTALL="$VAL"
1418         else
1419             UNKNOWN_OPT=yes
1420         fi
1421         ;;
1422     debug)
1423         CFG_DEBUG="$VAL"
1424         ;;
1425     force-debug-info)
1426         CFG_FORCEDEBUGINFO="$VAL"
1427         ;;
1428     developer-build|commercial|opensource)
1429         # These switches have been dealt with already
1430         ;;
1431     static)
1432         if [ "$VAL" = "yes" ]; then
1433             CFG_SHARED=no
1434         elif [ "$VAL" = "no" ]; then
1435             CFG_SHARED=yes
1436         else
1437             UNKNOWN_OPT=yes
1438         fi
1439         ;;
1440     fatal_error)
1441         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1442             CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1443         else
1444             UNKNOWN_OPT=yes
1445         fi
1446         ;;
1447     feature-*)
1448             FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1449             if [ "$VAL" = "no" ]; then
1450                 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1451             elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1452                 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1453             else
1454                 UNKNOWN_OPT=yes
1455             fi
1456         ;;
1457     shared)
1458         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1459             CFG_SHARED="$VAL"
1460         else
1461             UNKNOWN_OPT=yes
1462         fi
1463         ;;
1464     gif)
1465         if [ "$VAL" = "no" ]; then
1466             CFG_GIF="$VAL"
1467         else
1468             UNKNOWN_OPT=yes
1469         fi
1470         ;;
1471     sm)
1472         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1473             CFG_SM="$VAL"
1474         else
1475             UNKNOWN_OPT=yes
1476         fi
1477
1478         ;;
1479     xinerama)
1480         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1481             CFG_XINERAMA="$VAL"
1482         else
1483             UNKNOWN_OPT=yes
1484         fi
1485         ;;
1486     xshape)
1487         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1488             CFG_XSHAPE="$VAL"
1489         else
1490             UNKNOWN_OPT=yes
1491         fi
1492         ;;
1493     xvideo)
1494         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1495             CFG_XVIDEO="$VAL"
1496         else
1497             UNKNOWN_OPT=yes
1498         fi
1499         ;;
1500     xsync)
1501         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1502             CFG_XSYNC="$VAL"
1503         else
1504             UNKNOWN_OPT=yes
1505         fi
1506         ;;
1507      xinput2)
1508         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1509             CFG_XINPUT2="$VAL"
1510         else
1511             UNKNOWN_OPT=yes
1512         fi
1513         ;;
1514     xinput)
1515         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1516             CFG_XINPUT="$VAL"
1517         else
1518             UNKNOWN_OPT=yes
1519         fi
1520         ;;
1521     egl)
1522         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1523             CFG_EGL="$VAL"
1524         else
1525             UNKNOWN_OPT=yes
1526         fi
1527         ;;
1528     pch)
1529         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1530             CFG_PRECOMPILE="$VAL"
1531         else
1532             UNKNOWN_OPT=yes
1533         fi
1534         ;;
1535     separate-debug-info)
1536         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1537             CFG_SEPARATE_DEBUG_INFO="$VAL"
1538         elif [ "$VAL" = "nocopy" ] ; then
1539             CFG_SEPARATE_DEBUG_INFO="yes"
1540             CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1541         else
1542             UNKNOWN_OPT=yes
1543         fi
1544         ;;
1545     reduce-exports)
1546         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1547             CFG_REDUCE_EXPORTS="$VAL"
1548         else
1549             UNKNOWN_OPT=yes
1550         fi
1551         ;;
1552     sse2)
1553         if [ "$VAL" = "no" ]; then
1554             CFG_SSE2="$VAL"
1555         else
1556             UNKNOWN_OPT=yes
1557         fi
1558         ;;
1559     sse3)
1560         if [ "$VAL" = "no" ]; then
1561             CFG_SSE3="$VAL"
1562         else
1563             UNKNOWN_OPT=yes
1564         fi
1565         ;;
1566     ssse3)
1567         if [ "$VAL" = "no" ]; then
1568             CFG_SSSE3="$VAL"
1569         else
1570             UNKNOWN_OPT=yes
1571         fi
1572         ;;
1573     sse4.1)
1574         if [ "$VAL" = "no" ]; then
1575             CFG_SSE4_1="$VAL"
1576         else
1577             UNKNOWN_OPT=yes
1578         fi
1579         ;;
1580     sse4.2)
1581         if [ "$VAL" = "no" ]; then
1582             CFG_SSE4_2="$VAL"
1583         else
1584             UNKNOWN_OPT=yes
1585         fi
1586         ;;
1587     avx)
1588         if [ "$VAL" = "no" ]; then
1589             CFG_AVX="$VAL"
1590         else
1591             UNKNOWN_OPT=yes
1592         fi
1593         ;;
1594     avx2)
1595         if [ "$VAL" = "no" ]; then
1596             CFG_AVX2="$VAL"
1597         else
1598             UNKNOWN_OPT=yes
1599         fi
1600         ;;
1601     iwmmxt)
1602         CFG_IWMMXT="yes"
1603         ;;
1604     neon)
1605         if [ "$VAL" = "no" ]; then
1606             CFG_NEON="$VAL"
1607         else
1608             UNKNOWN_OPT=yes
1609         fi
1610         ;;
1611     mips_dsp)
1612         if [ "$VAL" = "no" ]; then
1613             CFG_MIPS_DSP="$VAL"
1614         else
1615             UNKNOWN_OPT=yes
1616         fi
1617         ;;
1618     mips_dspr2)
1619         if [ "$VAL" = "no" ]; then
1620             CFG_MIPS_DSPR2="$VAL"
1621         else
1622             UNKNOWN_OPT=yes
1623         fi
1624         ;;
1625     reduce-relocations)
1626         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1627             CFG_REDUCE_RELOCATIONS="$VAL"
1628         else
1629             UNKNOWN_OPT=yes
1630         fi
1631         ;;
1632     zlib)
1633         [ "$VAL" = "qt" ] && VAL=yes
1634         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1635             CFG_ZLIB="$VAL"
1636         else
1637             UNKNOWN_OPT=yes
1638         fi
1639         # No longer supported:
1640         #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1641         ;;
1642     sqlite)
1643         if [ "$VAL" = "system" ]; then
1644             CFG_SQLITE=system
1645         else
1646             UNKNOWN_OPT=yes
1647         fi
1648         ;;
1649     libpng)
1650         [ "$VAL" = "yes" ] && VAL=qt
1651         if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1652             CFG_LIBPNG="$VAL"
1653         else
1654             UNKNOWN_OPT=yes
1655         fi
1656         ;;
1657     libjpeg)
1658         [ "$VAL" = "yes" ] && VAL=qt
1659         if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1660             CFG_LIBJPEG="$VAL"
1661         else
1662             UNKNOWN_OPT=yes
1663         fi
1664         ;;
1665     xcursor)
1666         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1667             CFG_XCURSOR="$VAL"
1668         else
1669             UNKNOWN_OPT=yes
1670         fi
1671         ;;
1672     xfixes)
1673         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1674             CFG_XFIXES="$VAL"
1675         else
1676             UNKNOWN_OPT=yes
1677         fi
1678         ;;
1679     xrandr)
1680         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1681             CFG_XRANDR="$VAL"
1682         else
1683             UNKNOWN_OPT=yes
1684         fi
1685         ;;
1686     xrender)
1687         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1688             CFG_XRENDER="$VAL"
1689         else
1690             UNKNOWN_OPT=yes
1691         fi
1692         ;;
1693     mitshm)
1694         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1695             CFG_MITSHM="$VAL"
1696         else
1697             UNKNOWN_OPT=yes
1698         fi
1699         ;;
1700     fontconfig)
1701         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1702             CFG_FONTCONFIG="$VAL"
1703         else
1704             UNKNOWN_OPT=yes
1705         fi
1706         ;;
1707     xkb)
1708         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1709             CFG_XKB="$VAL"
1710         else
1711             UNKNOWN_OPT=yes
1712         fi
1713         ;;
1714     xcb)
1715         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1716             CFG_XCB="$VAL"
1717         else
1718             UNKNOWN_OPT=yes
1719         fi
1720         ;;
1721     wayland)
1722         CFG_OBSOLETE_WAYLAND=yes
1723         ;;
1724     eglfs)
1725         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1726             CFG_EGLFS="$VAL"
1727         else
1728             UNKNOWN_OPT=yes
1729         fi
1730         ;;
1731     directfb)
1732         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1733             CFG_DIRECTFB="$VAL"
1734         else
1735             UNKNOWN_OPT=yes
1736         fi
1737         ;;
1738     linuxfb)
1739         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1740             CFG_LINUXFB="$VAL"
1741         else
1742             UNKNOWN_OPT=yes
1743         fi
1744         ;;
1745     kms)
1746         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1747             CFG_KMS="$VAL"
1748         else
1749             UNKNOWN_OPT=yes
1750         fi
1751         ;;
1752     libudev)
1753         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1754             CFG_LIBUDEV="$VAL"
1755         else
1756             UNKNOWN_OPT=yes
1757         fi
1758         ;;
1759     evdev)
1760         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1761             CFG_EVDEV="$VAL"
1762         else
1763             UNKNOWN_OPT=yes
1764         fi
1765         ;;
1766     cups)
1767         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1768             CFG_CUPS="$VAL"
1769         else
1770             UNKNOWN_OPT=yes
1771         fi
1772         ;;
1773     iconv)
1774         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1775             CFG_ICONV="$VAL"
1776         else
1777             UNKNOWN_OPT=yes
1778         fi
1779         ;;
1780     glib)
1781         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1782             CFG_GLIB="$VAL"
1783         else
1784             UNKNOWN_OPT=yes
1785         fi
1786         ;;
1787     gstreamer)
1788         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1789             CFG_GSTREAMER="$VAL"
1790         else
1791             UNKNOWN_OPT=yes
1792         fi
1793         ;;
1794     gtkstyle)
1795         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1796             CFG_QGTKSTYLE="$VAL"
1797         else
1798             UNKNOWN_OPT=yes
1799         fi
1800         ;;
1801     gui)
1802         if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1803             CFG_GUI="yes"
1804         else
1805             if [ "$VAL" = "no" ]; then
1806                 CFG_GUI="no"
1807             else
1808                 UNKNOWN_OPT=yes
1809             fi
1810         fi
1811         ;;
1812     widgets)
1813         if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1814             CFG_WIDGETS="yes"
1815         elif [ "$VAL" = "no" ]; then
1816             CFG_WIDGETS="no"
1817         else
1818             UNKNOWN_OPT=yes
1819         fi
1820         ;;
1821     qpa-platform-guard)
1822         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1823             QPA_PLATFORM_GUARD="$VAL"
1824         else
1825             UNKNOWN_OPT=yes
1826         fi
1827         ;;
1828     dbus)
1829         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1830             CFG_DBUS="$VAL"
1831         elif [ "$VAL" = "runtime" ]; then
1832             CFG_DBUS="yes"
1833         else
1834             UNKNOWN_OPT=yes
1835         fi
1836         ;;
1837     dbus-linked)
1838         if [ "$VAL" = "yes" ]; then
1839             CFG_DBUS="linked"
1840         else
1841             UNKNOWN_OPT=yes
1842         fi
1843         ;;
1844     nis)
1845         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1846             CFG_NIS="$VAL"
1847         else
1848             UNKNOWN_OPT=yes
1849         fi
1850         ;;
1851     largefile)
1852         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1853             CFG_LARGEFILE="$VAL"
1854         else
1855             UNKNOWN_OPT=yes
1856         fi
1857         ;;
1858     openssl)
1859         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1860             CFG_OPENSSL="$VAL"
1861         else
1862             UNKNOWN_OPT=yes
1863         fi
1864         ;;
1865     openssl-linked)
1866         if [ "$VAL" = "yes" ]; then
1867             CFG_OPENSSL="linked"
1868         else
1869             UNKNOWN_OPT=yes
1870         fi
1871         ;;
1872     qml-debug)
1873         if [ "$VAL" = "yes" ]; then
1874             CFG_QML_DEBUG="yes"
1875         else
1876             if [ "$VAL" = "no" ]; then
1877                 CFG_QML_DEBUG="no"
1878             else
1879                 UNKNOWN_OPT=yes
1880             fi
1881         fi
1882         ;;
1883     javascript-jit)
1884         if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then 
1885             CFG_JAVASCRIPTCORE_JIT="$VAL"
1886         else
1887             UNKNOWN_OPT=yes
1888         fi
1889         ;;
1890     confirm-license)
1891         if [ "$VAL" = "yes" ]; then
1892             OPT_CONFIRM_LICENSE="$VAL"
1893         else
1894             UNKNOWN_OPT=yes
1895         fi
1896         ;;
1897     h|help)
1898         if [ "$VAL" = "yes" ]; then
1899             OPT_HELP="$VAL"
1900         else
1901             UNKNOWN_OPT=yes
1902         fi
1903         ;;
1904     sql-*|imageformat-*)
1905         # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1906         # if autoconf style options were used, $VAL can be "yes" or "no"
1907         [ "$VAL" = "yes" ] && VAL=qt
1908         # now $VAL should be "no", "qt", or "plugin"... double-check
1909         if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1910             UNKNOWN_OPT=yes
1911         fi
1912         # now $VAL is "no", "qt", or "plugin"
1913         OPT="$VAL"
1914         VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1915         VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1916
1917         # Grab the available values
1918         case "$VAR" in
1919         sql)
1920             avail="$CFG_SQL_AVAILABLE"
1921             ;;
1922         imageformat)
1923             avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1924             if [ "$OPT" != "plugin" ]; then
1925                 # png is always built in
1926                 avail="$avail png"
1927             fi
1928             ;;
1929         *)
1930             avail=""
1931             echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1932             ;;
1933         esac
1934
1935         # Check that that user's value is available.
1936         found=no
1937         for d in $avail; do
1938             if [ "$VAL" = "$d" ]; then
1939                 found=yes
1940                 break
1941             fi
1942         done
1943         [ "$found" = yes ] || ERROR=yes
1944
1945         if [ "$VAR" = "sql" ]; then
1946             # set the CFG_SQL_driver
1947             eval "CFG_SQL_$VAL=\$OPT"
1948             continue
1949         elif [ "$VAR" = "imageformat" ]; then
1950             [ "$OPT" = "qt" ] && OPT=yes
1951             VAL="`echo $VAL |tr a-z A-Z`"
1952             eval "CFG_$VAL=$OPT"
1953             continue
1954         fi
1955
1956         if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1957             if [ "$OPT" = "plugin" ]; then
1958                 VAR="${VAR}-${OPT}"
1959             fi
1960             QMakeVar add "${VAR}s" "${VAL}"
1961         elif [ "$OPT" = "no" ]; then
1962             PLUG_VAR="${VAR}-plugin"
1963             IN_VAR="${VAR}"
1964             QMakeVar del "${IN_VAR}s" "$VAL"
1965             QMakeVar del "${PLUG_VAR}s" "$VAL"
1966         fi
1967         if [ "$ERROR" = "yes" ]; then
1968            echo "$CURRENT_OPT: unknown argument"
1969            OPT_HELP=yes
1970         fi
1971         ;;
1972     v|verbose)
1973         if [ "$VAL" = "yes" ]; then
1974             if [ "$OPT_VERBOSE" = "$VAL" ]; then            # takes two verboses to turn on qmake debugs
1975                 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1976             else
1977                 OPT_VERBOSE=yes
1978             fi
1979         elif [ "$VAL" = "no" ]; then
1980             if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1981                 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1982             else
1983                 OPT_VERBOSE=no
1984             fi
1985         else
1986             UNKNOWN_OPT=yes
1987         fi
1988         ;;
1989     fast)
1990         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1991             OPT_FAST="$VAL"
1992         else
1993             UNKNOWN_OPT=yes
1994         fi
1995         ;;
1996     rpath)
1997         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1998             CFG_RPATH="$VAL"
1999         else
2000             UNKNOWN_OPT=yes
2001         fi
2002         ;;
2003     add_define)
2004         DEFINES="$DEFINES \"$VAL\""
2005         D_FLAGS="$D_FLAGS -D\"$VAL\""
2006         ;;
2007     add_ipath)
2008         I_FLAGS="$I_FLAGS -I\"${VAL}\""
2009         ;;
2010     add_lpath)
2011         L_FLAGS="$L_FLAGS -L\"${VAL}\""
2012         ;;
2013     add_rpath)
2014         RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2015         ;;
2016     add_link)
2017         L_FLAGS="$L_FLAGS -l\"${VAL}\""
2018         ;;
2019     add_fpath)
2020         if [ "$BUILD_ON_MAC" = "yes" ]; then
2021             L_FLAGS="$L_FLAGS -F\"${VAL}\""
2022             I_FLAGS="$I_FLAGS -F\"${VAL}\""
2023         else
2024             UNKNOWN_OPT=yes
2025         fi
2026         ;;
2027     add_framework)
2028         if [ "$BUILD_ON_MAC" = "yes" ]; then
2029             L_FLAGS="$L_FLAGS -framework \"${VAL}\""
2030         else
2031             UNKNOWN_OPT=yes
2032         fi
2033         ;;
2034     add_warn)
2035         W_FLAGS="$W_FLAGS \"${VAL}\""
2036         ;;
2037     silent)
2038         CFG_SILENT="$VAL"
2039         ;;
2040     dont-process)
2041         CFG_PROCESS=no
2042         ;;
2043     process)
2044         CFG_PROCESS=partial
2045         ;;
2046     fully-process)
2047         CFG_PROCESS=full
2048         ;;
2049     audio-backend)
2050         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2051             CFG_AUDIO_BACKEND="$VAL"
2052         else
2053             UNKNOWN_OPT=yes
2054         fi
2055         ;;
2056     icu)
2057         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2058             CFG_ICU="$VAL"
2059         else
2060             UNKNOWN_OPT=yes
2061         fi
2062         ;;
2063     force-asserts)
2064         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2065             CFG_FORCE_ASSERTS="$VAL"
2066         else
2067             UNKNOWN_OPT=yes
2068         fi
2069         ;;
2070     pcre)
2071         if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2072             CFG_PCRE="$VAL"
2073         else
2074             UNKNOWN_OPT=yes
2075         fi
2076         ;;
2077     c++11)
2078         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2079             CFG_CXX11="$VAL"
2080         else
2081             UNKNOWN_OPT=yes
2082         fi
2083         ;;
2084     *)
2085         UNKNOWN_OPT=yes
2086         ;;
2087     esac
2088     if [ "$UNKNOWN_OPT" = "yes" ]; then
2089         echo "${CURRENT_OPT}: invalid command-line switch"
2090         OPT_HELP=yes
2091         ERROR=yes
2092     fi
2093 done
2094
2095 # update QT_CONFIG to show our current predefined configuration
2096 case "$CFG_QCONFIG" in
2097 minimal|small|medium|large|full)
2098     # these are a sequence of increasing functionality
2099     for c in minimal small medium large full; do
2100         QT_CONFIG="$QT_CONFIG $c-config"
2101         [ "$CFG_QCONFIG" = $c ] && break
2102     done
2103     ;;
2104 *)
2105     # not known to be sufficient for anything
2106     if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2107         echo >&2 "Error: configuration file not found:"
2108         echo >&2 "  $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2109         echo >&2 "  or"
2110         echo >&2 "  `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2111         OPT_HELP=yes
2112     fi
2113 esac
2114
2115 #-------------------------------------------------------------------------------
2116 # build tree initialization
2117 #-------------------------------------------------------------------------------
2118
2119 # where to find which..
2120 unixtests="$relpath/config.tests/unix"
2121 mactests="$relpath/config.tests/mac"
2122 WHICH="$unixtests/which.test"
2123
2124 PERL=`$WHICH perl 2>/dev/null`
2125
2126 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2127 AWK=
2128 for e in gawk nawk awk; do
2129     if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2130         AWK=$e
2131         break
2132     fi
2133 done
2134
2135 # find perl
2136 PERL="/usr/bin/perl"
2137 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2138     PERL=`$WHICH perl`
2139 fi
2140
2141 ### skip this if the user just needs help...
2142 if [ "$OPT_HELP" != "yes" ]; then
2143
2144 # is this a shadow build?
2145 if [ "$OPT_SHADOW" = "maybe" ]; then
2146     OPT_SHADOW=no
2147     if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2148         if [ -h "$outpath" ]; then
2149             [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2150         else
2151             OPT_SHADOW=yes
2152         fi
2153     fi
2154 fi
2155 if [ "$OPT_SHADOW" = "yes" ]; then
2156     if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2157         echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2158         echo >&2 "Cannot proceed."
2159         exit 1
2160     fi
2161     [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2162 fi
2163
2164 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2165     echo
2166     echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2167     echo "Qt can be built in release mode with separate debug information, so"
2168     echo "-debug-and-release is not necessary anymore"
2169     echo
2170 fi
2171
2172 if [ "$CFG_SILENT" = "yes" ]; then
2173     QMAKE_CONFIG="$QMAKE_CONFIG silent"
2174 fi
2175
2176 # if the source tree is different from the build tree,
2177 # symlink or copy part of the sources
2178 if [ "$OPT_SHADOW" = "yes" ]; then
2179     echo "Preparing build tree..."
2180
2181     if [ -z "$PERL" ]; then
2182         echo
2183         echo "You need perl in your PATH to make a shadow build."
2184         echo "Cannot proceed."
2185         exit 1
2186     fi
2187
2188     [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2189
2190     # make a syncqt script that can be used in the shadow
2191     rm -f "$outpath/bin/syncqt"
2192     if [ -x "$relpath/bin/syncqt" ]; then
2193         mkdir -p "$outpath/bin"
2194         echo "#!/bin/sh" >"$outpath/bin/syncqt"
2195         echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2196         chmod 755 "$outpath/bin/syncqt"
2197     fi
2198
2199     for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2200         rm -f "$outpath/bin/$i"
2201         if [ -x "$relpath/bin/$i" ]; then
2202             mkdir -p "$outpath/bin"
2203             echo "#!/bin/sh" >"$outpath/bin/$i"
2204             echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2205             echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2206             chmod 755 "$outpath/bin/$i"
2207         fi
2208     done
2209
2210     # save a pre-existing mkspecs/modules dir
2211     test -d "$outpath/mkspecs/modules" && \
2212         mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2213     # ditto for mkspecs/modules-inst
2214     test -d "$outpath/mkspecs/modules-inst" && \
2215         mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2216
2217     # symlink the mkspecs directory
2218     mkdir -p "$outpath/mkspecs"
2219     rm -rf "$outpath"/mkspecs/*
2220     ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2221     rm -f "$outpath/mkspecs/default"
2222
2223     ShadowMkspecs()
2224     {
2225         rm -rf "$outpath/mkspecs/$1"
2226         find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2227         find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2228     }
2229
2230     # Special case for mkspecs/features directory.
2231     # To be able to place .prf files into a shadow build directory,
2232     # we're creating links for files only. The directory structure is reproduced.
2233     ShadowMkspecs features
2234
2235     # The modules dir is special, too.
2236     if test -d "$outpath/mkspecs-modules"; then
2237         rm -rf "$outpath/mkspecs/modules"
2238         mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2239     else
2240         ShadowMkspecs modules
2241     fi
2242
2243     # The modules-inst dir is not quite as special, but still.
2244     if test -d "$outpath/mkspecs-modules-inst"; then
2245         rm -rf "$outpath/mkspecs/modules-inst"
2246         mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2247     fi
2248
2249     # symlink the doc directory
2250     rm -rf "$outpath/doc"
2251     ln -s "$relpath/doc" "$outpath/doc"
2252 fi
2253
2254 # symlink fonts to be able to run application from build directory
2255 if [ ! -d "${outpath}/lib/fonts" ]; then
2256     if [ "$PLATFORM" = "$XPLATFORM" ]; then
2257         mkdir -p "${outpath}/lib"
2258         ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2259     fi
2260 fi
2261
2262 if [ "$OPT_FAST" = "auto" ]; then
2263    if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2264        OPT_FAST=yes
2265    else
2266        OPT_FAST=no
2267    fi
2268 fi
2269
2270 # find a make command
2271 if [ -z "$MAKE" ]; then
2272     MAKE=
2273     for mk in gmake make; do
2274         if "$WHICH" $mk >/dev/null 2>&1; then
2275             MAKE=`"$WHICH" $mk`
2276             break
2277         fi
2278     done
2279     if [ -z "$MAKE" ]; then
2280         echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2281         echo >&2 "Cannot proceed."
2282         exit 1
2283     fi
2284     # export MAKE, we need it later in the config.tests
2285     export MAKE
2286 fi
2287
2288 fi ### help
2289
2290 #-------------------------------------------------------------------------------
2291 # auto-detect all that hasn't been specified in the arguments
2292 #-------------------------------------------------------------------------------
2293
2294 if [ -z "$PLATFORM" ]; then
2295     PLATFORM_NOTES=
2296     case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2297      Darwin:*)
2298          OSX_VERSION=`uname -r | cut -d. -f1`
2299          # Select compiler. Use g++ unless we find a usable Clang version
2300          PLATFORM=macx-g++
2301          if [ "$OSX_VERSION" -ge 12 ]; then
2302             # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2303             PLATFORM=macx-clang
2304          elif [ "$OSX_VERSION" -eq 11 ]; then
2305              # We're on Lion. Check if we have a supported Clang version
2306              case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2307                  3.*)
2308                      PLATFORM=macx-clang
2309                      PLATFORM_NOTES="\n    - Also available for Mac OS X: macx-g++\n"
2310                      ;;
2311              esac
2312          fi
2313          ;;
2314      AIX:*)
2315         #PLATFORM=aix-g++
2316         #PLATFORM=aix-g++-64
2317         PLATFORM=aix-xlc
2318         #PLATFORM=aix-xlc-64
2319         PLATFORM_NOTES="
2320             - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2321         "
2322         ;;
2323      GNU:*)
2324         PLATFORM=hurd-g++
2325         ;;
2326      dgux:*)
2327         PLATFORM=dgux-g++
2328         ;;
2329 #     DYNIX/ptx:4*)
2330 #       PLATFORM=dynix-g++
2331 #       ;;
2332      ULTRIX:*)
2333         PLATFORM=ultrix-g++
2334         ;;
2335      FreeBSD:*)
2336         PLATFORM=freebsd-g++
2337         PLATFORM_NOTES="
2338             - Also available for FreeBSD: freebsd-icc
2339         "
2340         ;;
2341      OpenBSD:*)
2342         PLATFORM=openbsd-g++
2343         ;;
2344      NetBSD:*)
2345         PLATFORM=netbsd-g++
2346         ;;
2347      BSD/OS:*|BSD/386:*)
2348         PLATFORM=bsdi-g++
2349         ;;
2350      IRIX*:*)
2351         #PLATFORM=irix-g++
2352         PLATFORM=irix-cc
2353         #PLATFORM=irix-cc-64
2354         PLATFORM_NOTES="
2355             - Also available for IRIX: irix-g++ irix-cc-64
2356         "
2357         ;;
2358      HP-UX:*)
2359         case "$UNAME_MACHINE" in
2360             ia64)
2361                 #PLATFORM=hpuxi-acc-32
2362                 PLATFORM=hpuxi-acc-64
2363                 PLATFORM_NOTES="
2364                     - Also available for HP-UXi: hpuxi-acc-32
2365                 "
2366             ;;
2367             *)
2368                 #PLATFORM=hpux-g++
2369                 PLATFORM=hpux-acc
2370                 #PLATFORM=hpux-acc-64
2371                 #PLATFORM=hpux-cc
2372                 #PLATFORM=hpux-acc-o64
2373                 PLATFORM_NOTES="
2374                     - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2375                 "
2376             ;;
2377         esac
2378         ;;
2379      OSF1:*)
2380         #PLATFORM=tru64-g++
2381         PLATFORM=tru64-cxx
2382         PLATFORM_NOTES="
2383             - Also available for Tru64: tru64-g++
2384         "
2385         ;;
2386      Linux:*)
2387         case "$UNAME_MACHINE" in
2388             x86_64|s390x|ppc64)
2389                 PLATFORM=linux-g++-64
2390                 ;;
2391             *)
2392                 PLATFORM=linux-g++
2393                 ;;
2394         esac
2395         PLATFORM_NOTES="
2396             - Also available for Linux: linux-kcc linux-icc linux-cxx
2397         "
2398         ;;
2399      SunOS:5*)
2400         if [ "$XPLATFORM_MINGW" = "yes" ]; then
2401             PLATFORM="solaris-g++"
2402         else
2403             #PLATFORM=solaris-g++
2404             PLATFORM=solaris-cc
2405             #PLATFORM=solaris-cc64
2406         fi
2407         PLATFORM_NOTES="
2408             - Also available for Solaris: solaris-g++ solaris-cc-64
2409         "
2410         ;;
2411      ReliantUNIX-*:*|SINIX-*:*)
2412         PLATFORM=reliant-cds
2413         #PLATFORM=reliant-cds-64
2414         PLATFORM_NOTES="
2415             - Also available for Reliant UNIX: reliant-cds-64
2416         "
2417         ;;
2418      CYGWIN*:*)
2419         PLATFORM=cygwin-g++
2420         ;;
2421      LynxOS*:*)
2422         PLATFORM=lynxos-g++
2423         ;;
2424      OpenUNIX:*)
2425         #PLATFORM=unixware-g++
2426         PLATFORM=unixware-cc
2427         PLATFORM_NOTES="
2428             - Also available for OpenUNIX: unixware-g++
2429         "
2430         ;;
2431      UnixWare:*)
2432         #PLATFORM=unixware-g++
2433         PLATFORM=unixware-cc
2434         PLATFORM_NOTES="
2435             - Also available for UnixWare: unixware-g++
2436         "
2437         ;;
2438      SCO_SV:*)
2439         #PLATFORM=sco-g++
2440         PLATFORM=sco-cc
2441         PLATFORM_NOTES="
2442             - Also available for SCO OpenServer: sco-g++
2443         "
2444         ;;
2445      UNIX_SV:*)
2446         PLATFORM=unixware-g++
2447         ;;
2448      QNX:*)
2449         PLATFORM=unsupported/qnx-g++
2450         ;;
2451      *)
2452         if [ "$OPT_HELP" != "yes" ]; then
2453             echo >&2
2454             echo "   The build script does not currently recognize all" >&2
2455             echo "   platforms supported by Qt." >&2
2456             echo "   Rerun this script with a -platform option listed to" >&2
2457             echo "   set the system/compiler combination you use." >&2
2458             echo >&2
2459             exit 2
2460         fi
2461     esac
2462 fi
2463
2464 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2465
2466 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2467 case "$XPLATFORM" in *-maemo*) XPLATFORM_MAEMO=yes;; esac
2468 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2469
2470 if [ -d "$PLATFORM" ]; then
2471   QMAKESPEC="$PLATFORM"
2472 else
2473   QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2474 fi
2475 if [ -d "$XPLATFORM" ]; then
2476   XQMAKESPEC="$XPLATFORM"
2477 else
2478   XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2479 fi
2480 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2481     QT_CROSS_COMPILE=yes
2482     QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2483     QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2484 fi
2485
2486 if [ "$BUILD_ON_MAC" = "yes" ]; then
2487    if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2488       echo >&2
2489       echo "   Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2490       echo "   Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2491       echo "   use mac-xcode on your application code it can link to a Qt/Mac" >&2
2492       echo "   built with 'macx-g++'" >&2
2493       echo >&2
2494       exit 2
2495     fi
2496 fi
2497
2498 # check specified platforms are supported
2499 if [ '!' -d "$QMAKESPEC" ]; then
2500     echo
2501     echo "   The specified system/compiler is not supported:"
2502     echo
2503     echo "      $QMAKESPEC"
2504     echo
2505     echo "   Please see the README file for a complete list."
2506     echo
2507     exit 2
2508 fi
2509 if [ '!' -d "$XQMAKESPEC" ]; then
2510     echo
2511     echo "   The specified system/compiler is not supported:"
2512     echo
2513     echo "      $XQMAKESPEC"
2514     echo
2515     echo "   Please see the README file for a complete list."
2516     echo
2517     exit 2
2518 fi
2519 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2520     echo
2521     echo "   The specified system/compiler port is not complete:"
2522     echo
2523     echo "      $XQMAKESPEC/qplatformdefs.h"
2524     echo
2525     echo "   Please use the contact form at http://qt.digia.com/contact-us"
2526     echo
2527     exit 2
2528 fi
2529
2530 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2531     # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2532     if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2533         sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2534         mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2535     fi
2536 fi
2537
2538 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2539     case `basename "$XPLATFORM"` in
2540         qnx-* | vxworks-*)
2541             echo ""
2542             echo "You are not licensed for Qt for `basename $XPLATFORM`."
2543             echo ""
2544             echo "Please use the contact form at http://qt.digia.com/contact-us"
2545             echo "to upgrade your license to include this platform, or install"
2546             echo "the Qt Open Source Edition if you intend to develop free software."
2547             exit 1
2548             ;;
2549     esac
2550 fi
2551
2552 #-------------------------------------------------------------------------------
2553 # tests that don't need qmake (must be run before displaying help)
2554 #-------------------------------------------------------------------------------
2555
2556 # detect build style
2557 if [ "$CFG_DEBUG" = "auto" ]; then
2558     if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2559         CFG_DEBUG_RELEASE=yes
2560         CFG_DEBUG=yes
2561     elif [ "$CFG_DEV" = "yes" ]; then
2562         CFG_DEBUG_RELEASE=no
2563         CFG_DEBUG=yes
2564     else
2565         CFG_DEBUG_RELEASE=no
2566         CFG_DEBUG=no
2567     fi
2568 fi
2569 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2570     QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2571 fi
2572
2573 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2574     QT_CONFIG="$QT_CONFIG force_debug_info"
2575 fi
2576
2577 # pass on $CFG_SDK to the arch/configure tests.
2578 if [ -n "$CFG_SDK" ]; then
2579     MAC_SDK_FLAG="-sdk $CFG_SDK"
2580 else
2581     MAC_SDK_FLAG=
2582 fi
2583
2584 # find the default framework value
2585 if [ "$BUILD_ON_MAC" = "yes" ]; then
2586     if [ "$CFG_FRAMEWORK" = "auto" ]; then
2587         CFG_FRAMEWORK="$CFG_SHARED"
2588     elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2589         echo
2590         echo "WARNING: Using static linking will disable the use of Mac frameworks."
2591         echo
2592         CFG_FRAMEWORK="no"
2593     fi
2594 else
2595     CFG_FRAMEWORK=no
2596 fi
2597
2598 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2599
2600 TEST_COMPILER=$QMAKE_CONF_COMPILER
2601 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2602     if [ -z "$TEST_COMPILER" ]; then
2603         echo "ERROR: Cannot set the compiler for the configuration tests"
2604         exit 1
2605     fi
2606 fi
2607 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2608
2609 GCC_MACHINE_DUMP=
2610 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2611 if [ -n "$GCC_MACHINE_DUMP" ]; then
2612     DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2613 fi
2614
2615 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2616     SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2617 else
2618     SYSROOT_FLAG=
2619 fi
2620 export SYSROOT_FLAG    # used by config.tests/unix/{compile.test,arch.test}
2621
2622 # auto-detect precompiled header support
2623 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2624     if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2625        CFG_PRECOMPILE=no
2626     else
2627        CFG_PRECOMPILE=yes
2628     fi
2629 fi
2630
2631 # auto-detect support for separate debug info in objcopy
2632 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2633     TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2634     COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2635     if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2636        CFG_SEPARATE_DEBUG_INFO=no
2637     else
2638        case "$PLATFORM" in
2639        hpux-*)
2640            # binutils on HP-UX is buggy; default to no.
2641            CFG_SEPARATE_DEBUG_INFO=no
2642            ;;
2643        *)
2644            CFG_SEPARATE_DEBUG_INFO=yes
2645            ;;
2646        esac
2647     fi
2648 fi
2649
2650 # auto-detect -fvisibility support
2651 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2652     if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2653        if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2654            echo "-reduce-exports was requested but this compiler does not support it"
2655            echo "Re-run configure with -v for more information"
2656            exit 1
2657        fi
2658        CFG_REDUCE_EXPORTS=no
2659     else
2660        CFG_REDUCE_EXPORTS=yes
2661     fi
2662 fi
2663
2664 # auto-detect -fstack-protector-strong support (for QNX only currently)
2665 if [ "$XPLATFORM_QNX" = "yes" ]; then
2666     if compilerSupportsFlag -fstack-protector-strong; then
2667        CFG_STACK_PROTECTOR_STRONG=yes
2668     else
2669        CFG_STACK_PROTECTOR_STRONG=no
2670     fi
2671 else
2672    CFG_STACK_PROTECTOR_STRONG=no
2673 fi
2674
2675 # detect the availability of the -Bsymbolic-functions linker optimization
2676 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2677     if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2678        if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2679            echo "-reduce-relocations was requested but this compiler does not support it"
2680            echo "Re-run configure with -v for more information"
2681            exit 1
2682        fi
2683         CFG_REDUCE_RELOCATIONS=no
2684     else
2685         CFG_REDUCE_RELOCATIONS=yes
2686     fi
2687 fi
2688
2689 # auto-detect GNU make support
2690 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2691    CFG_USE_GNUMAKE=yes
2692 fi
2693
2694 # find the default framework value
2695 if [ "$BUILD_ON_MAC" = "yes" ]; then
2696     if [ "$CFG_FRAMEWORK" = "auto" ]; then
2697         CFG_FRAMEWORK="$CFG_SHARED"
2698     elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2699         echo
2700         echo "WARNING: Using static linking will disable the use of Mac frameworks."
2701         echo
2702         CFG_FRAMEWORK="no"
2703     fi
2704 else
2705     CFG_FRAMEWORK=no
2706 fi
2707
2708 # auto-detect default include and library search paths
2709 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2710 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2711 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2712 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2713 /^End of search/ { yup=0 }
2714 yup { print substr($0, 2) }
2715 /^\#include </ { yup=1 }
2716 ' | sort -u`
2717 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2718 /usr/lib"
2719 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2720 /usr/local/include"
2721
2722 #setup the build parts
2723 if [ -z "$CFG_BUILD_PARTS" ]; then
2724     CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2725
2726     # build tests by default, if a developer build
2727     if [ "$CFG_DEV" = "yes" ]; then
2728         CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2729     fi
2730
2731     # don't build tools by default when cross-compiling
2732     if [ "$PLATFORM" != "$XPLATFORM" ]; then
2733         CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2734     fi
2735 fi
2736 for nobuild in $CFG_NOBUILD_PARTS; do
2737     CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2738 done
2739 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2740 #    echo
2741 #    echo "WARNING: libs is a required part of the build."
2742 #    echo
2743     CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2744 fi
2745
2746 #-------------------------------------------------------------------------------
2747 # post process QT_INSTALL_* variables
2748 #-------------------------------------------------------------------------------
2749
2750 if [ -z "$QT_INSTALL_PREFIX" ]; then
2751     if [ "$CFG_DEV" = "yes" ]; then
2752         QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2753     else
2754         QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2755     fi
2756 fi
2757 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2758
2759 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2760     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2761         if [ "$BUILD_ON_MAC" = "yes" ]; then
2762             QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2763         fi
2764     fi
2765     [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2766
2767 fi
2768 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2769
2770 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2771     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2772         if [ "$BUILD_ON_MAC" = "yes" ]; then
2773             if [ "$CFG_FRAMEWORK" = "yes" ]; then
2774                 QT_INSTALL_HEADERS=
2775             fi
2776         fi
2777     fi
2778     [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2779
2780 fi
2781 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2782
2783 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2784     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2785         if [ "$BUILD_ON_MAC" = "yes" ]; then
2786             if [ "$CFG_FRAMEWORK" = "yes" ]; then
2787                 QT_INSTALL_LIBS="/Library/Frameworks"
2788             fi
2789         fi
2790     fi
2791     [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2792 fi
2793 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2794
2795 if [ -z "$QT_INSTALL_BINS" ]; then #default
2796     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2797         if [ "$BUILD_ON_MAC" = "yes" ]; then
2798             QT_INSTALL_BINS="/Developer/Applications/Qt"
2799         fi
2800     fi
2801     [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2802 fi
2803 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2804
2805 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2806     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2807         if [ "$BUILD_ON_MAC" = "yes" ]; then
2808             QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2809         fi
2810     fi
2811     [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2812 fi
2813 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2814
2815 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2816     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2817         if [ "$BUILD_ON_MAC" = "yes" ]; then
2818             QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2819         fi
2820     fi
2821     [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2822 fi
2823 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2824
2825 if [ -z "$QT_INSTALL_DATA" ]; then #default
2826     QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2827 fi
2828 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2829
2830 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2831     QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2832 fi
2833 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2834
2835 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2836     if [ "$BUILD_ON_MAC" = "yes" ]; then
2837         QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2838     else
2839         QT_INSTALL_SETTINGS=/etc/xdg
2840     fi
2841 fi
2842 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2843
2844 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2845     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2846         if [ "$BUILD_ON_MAC" = "yes" ]; then
2847             QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2848         fi
2849     fi
2850     [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2851 fi
2852 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2853
2854 #tests
2855 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2856     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2857         if [ "$BUILD_ON_MAC" = "yes" ]; then
2858             QT_INSTALL_TESTS="/Developer/Tests/Qt"
2859         fi
2860     fi
2861     [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2862 fi
2863 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2864
2865 #------- host paths --------
2866
2867 if [ -z "$QT_HOST_PREFIX" ]; then
2868     QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2869     haveHpx=false
2870 else
2871     QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2872     haveHpx=true
2873 fi
2874
2875 if [ -z "$QT_HOST_BINS" ]; then #default
2876     if $haveHpx; then
2877         if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2878             if [ "$BUILD_ON_MAC" = "yes" ]; then
2879                 QT_HOST_BINS="/Developer/Applications/Qt"
2880             fi
2881         fi
2882         [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2883     else
2884         QT_HOST_BINS="$QT_INSTALL_BINS"
2885     fi
2886 fi
2887 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2888
2889 if [ -z "$QT_HOST_DATA" ]; then #default
2890     if $haveHpx; then
2891         QT_HOST_DATA="$QT_HOST_PREFIX"
2892     else
2893         QT_HOST_DATA="$QT_INSTALL_DATA"
2894     fi
2895 else
2896     QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2897 fi
2898
2899 #-------------------------------------------------------------------------------
2900 # help - interactive parts of the script _after_ this section please
2901 #-------------------------------------------------------------------------------
2902
2903 # next, emit a usage message if something failed.
2904 if [ "$OPT_HELP" = "yes" ]; then
2905     [ "x$ERROR" = "xyes" ] && echo
2906     if [ "$CFG_NIS" = "no" ]; then
2907         NSY=" "
2908         NSN="*"
2909     else
2910         NSY="*"
2911         NSN=" "
2912     fi
2913     if [ "$CFG_CUPS" = "no" ]; then
2914         CUY=" "
2915         CUN="*"
2916     else
2917         CUY="*"
2918         CUN=" "
2919     fi
2920     if [ "$CFG_ICONV" = "no" ]; then
2921         CIY=" "
2922         CIN="*"
2923     else
2924         CIY="*"
2925         CIN=" "
2926     fi
2927     if [ "$CFG_LARGEFILE" = "no" ]; then
2928         LFSY=" "
2929         LFSN="*"
2930     else
2931         LFSY="*"
2932         LFSN=" "
2933     fi
2934     if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2935         PHY=" "
2936         PHN="*"
2937     else
2938         PHY="*"
2939         PHN=" "
2940     fi
2941
2942     if [ "$CFG_XCB" = "no" ]; then
2943         XCBY=" "
2944         XCBN="*"
2945     else
2946         XCBY="*"
2947         XCBN=" "
2948     fi
2949
2950     if [ "$CFG_EGLFS" = "no" ]; then
2951         EGLFSY=" "
2952         EGLFSN="*"
2953     else
2954         EGLFSY="*"
2955         EGLFSN=" "
2956     fi
2957
2958     if [ "$CFG_DIRECTFB" = "no" ]; then
2959         DFBY=" "
2960         DFBN="*"
2961     else
2962         DFBY="*"
2963         DFBN=" "
2964     fi
2965
2966     if [ "$CFG_LINUXFB" = "no" ]; then
2967         LFBY=" "
2968         LFBN="*"
2969     else
2970         LFBY="*"
2971         LFBN=" "
2972     fi
2973
2974     if [ "$CFG_KMS" = "no" ]; then
2975         KMSY=" "
2976         KMSN="*"
2977     else
2978         KMSY="*"
2979         KMSN=" "
2980     fi
2981
2982     if [ "$CFG_XINPUT2" = "no" ]; then
2983         X2Y=" "
2984         X2N="*"
2985     else
2986         X2Y="*"
2987         X2N=" "
2988     fi
2989
2990     if [ "$CFG_DBUS" = "no" ]; then
2991         DBY=" "
2992         DBN="+"
2993     else
2994         DBY="+"
2995         DBN=" "
2996     fi
2997
2998     if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2999         SBY=" "
3000         SBN="*"
3001     else
3002         SBY="*"
3003         SBN=" "
3004     fi
3005
3006     if [ "$CFG_GLIB" = "no" ]; then
3007         GBY=" "
3008         GBN="+"
3009     else
3010         GBY="+"
3011         GBN=" "
3012     fi
3013
3014     cat <<EOF
3015 Usage:  $relconf [options]
3016
3017 Installation options:
3018
3019  These are optional, but you may specify install directories.
3020
3021     -prefix <dir> ...... This will install everything relative to <dir>
3022                          (default $QT_INSTALL_PREFIX)
3023
3024     -hostprefix [dir] .. Tools and libraries needed when developing
3025                          applications are installed in [dir]. If [dir] is
3026                          not given, the current build directory will be used.
3027                          (default PREFIX)
3028
3029   * -prefix-install .... Force a sandboxed "local" installation of
3030                          Qt. This will install into
3031                          $QT_INSTALL_PREFIX, if this option is
3032                          disabled then some platforms will attempt a
3033                          "system" install by placing default values
3034                          in a system location other than PREFIX.
3035
3036  You may use these to separate different parts of the install:
3037
3038     -bindir <dir> ......... Executables will be installed to <dir>
3039                             (default PREFIX/bin)
3040     -libdir <dir> ......... Libraries will be installed to <dir>
3041                             (default PREFIX/lib)
3042     -docdir <dir> ......... Documentation will be installed to <dir>
3043                             (default PREFIX/doc)
3044     -headerdir <dir> ...... Headers will be installed to <dir>
3045                             (default PREFIX/include)
3046     -plugindir <dir> ...... Plugins will be installed to <dir>
3047                             (default PREFIX/plugins)
3048     -importdir <dir> ...... Imports for QML will be installed to <dir>
3049                             (default PREFIX/imports)
3050     -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3051                             (default PREFIX)
3052     -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3053                             (default PREFIX/translations)
3054     -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3055                             (default PREFIX/etc/settings)
3056     -examplesdir <dir> .... Examples will be installed to <dir>
3057                             (default PREFIX/examples)
3058     -testsdir <dir> ....... Tests will be installed to <dir>
3059                             (default PREFIX/tests)
3060
3061     -hostbindir <dir> .. Host executables will be installed to <dir>
3062                          (default HOSTPREFIX/bin)
3063     -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3064                          (default HOSTPREFIX)
3065
3066 Configure options:
3067
3068  The defaults (*) are usually acceptable. A plus (+) denotes a default value
3069  that needs to be evaluated. If the evaluation succeeds, the feature is
3070  included. Here is a short explanation of each option:
3071
3072  *  -release ........... Compile and link Qt with debugging turned off.
3073     -debug ............. Compile and link Qt with debugging turned on.
3074     -debug-and-release . Compile and link two versions of Qt, with and without
3075                          debugging turned on (Mac only).
3076
3077     -force-debug-info .. Create symbol files for release builds.
3078
3079     -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3080
3081     -opensource ........ Compile and link the Open-Source Edition of Qt.
3082     -commercial ........ Compile and link the Commercial Edition of Qt.
3083
3084     -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3085  +  -c++11 ............. Compile Qt with C++11 support enabled.
3086
3087  *  -shared ............ Create and use shared Qt libraries.
3088     -static ............ Create and use static Qt libraries.
3089
3090  *  -process ........... Generate only a top-level Makefile.
3091     -fully-process ..... Generate Makefiles for the entire Qt tree.
3092     -dont-process ...... Do not generate any Makefiles.
3093
3094  *  -no-fast ........... Configure Qt normally by generating Makefiles for all
3095                          project files.
3096     -fast .............. Configure Qt quickly by generating Makefiles only for
3097                          library and subdirectory targets.  All other Makefiles
3098                          are created as wrappers, which will in turn run qmake.
3099
3100     -no-largefile ...... Disables large file support.
3101  +  -largefile ......... Enables Qt to access files larger than 4 GB.
3102
3103     -no-accessibility .. Do not compile Accessibility support.
3104  +  -accessibility ..... Compile Accessibility support.
3105
3106     -no-sql-<driver> ... Disable SQL <driver> entirely.
3107     -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3108                          none are turned on.
3109     -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3110                          at run time.
3111
3112                          Possible values for <driver>:
3113                          [ $CFG_SQL_AVAILABLE ]
3114
3115     -system-sqlite ..... Use sqlite from the operating system.
3116
3117     -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3118  +  -javascript-jit .... Build the JavaScriptCore JIT compiler.
3119
3120     -no-qml-debug ...... Do not build the in-process QML debugging support.
3121  +  -qml-debug ......... Build the QML debugging support.
3122
3123     -platform target ... The operating system and compiler you are building
3124                          on ($PLATFORM).
3125
3126                          See the README file for a list of supported
3127                          operating systems and compilers.
3128
3129     -no-sse2 ........... Do not compile with use of SSE2 instructions.
3130     -no-sse3 ........... Do not compile with use of SSE3 instructions.
3131     -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3132     -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3133     -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3134     -no-avx ............ Do not compile with use of AVX instructions.
3135     -no-avx2 ........... Do not compile with use of AVX2 instructions.
3136     -no-neon ........... Do not compile with use of NEON instructions.
3137     -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3138     -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3139
3140     -qtnamespace <name>  Wraps all Qt library code in 'namespace <name> {...}'.
3141     -qtlibinfix <infix>  Renames all libQt*.so to libQt*<infix>.so.
3142
3143     -testcocoon          Instrument Qt with the TestCocoon code coverage tool.
3144
3145     -D <string> ........ Add an explicit define to the preprocessor.
3146     -I <string> ........ Add an explicit include path.
3147     -L <string> ........ Add an explicit library path.
3148
3149  +  -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3150                          configure determines whether to use pkg-config or not with
3151                          some heuristics such as checking the environment variables.
3152     -no-pkg-config ..... Disable use of pkg-config.
3153     -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3154                          detection heuristic).
3155
3156     -help, -h .......... Display this information.
3157
3158 Third Party Libraries:
3159
3160     -qt-zlib ........... Use the zlib bundled with Qt.
3161  +  -system-zlib ....... Use zlib from the operating system.
3162                          See http://www.gzip.org/zlib
3163
3164     -no-gif ............ Do not compile GIF reading support.
3165
3166     -no-libpng ......... Do not compile PNG support.
3167     -qt-libpng ......... Use the libpng bundled with Qt.
3168  +  -system-libpng ..... Use libpng from the operating system.
3169                          See http://www.libpng.org/pub/png
3170
3171     -no-libjpeg ........ Do not compile JPEG support.
3172     -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3173  +  -system-libjpeg .... Use libjpeg from the operating system.
3174                          See http://www.ijg.org
3175
3176     -no-openssl ........ Do not compile support for OpenSSL.
3177  +  -openssl ........... Enable run-time OpenSSL support.
3178     -openssl-linked .... Enabled linked OpenSSL support.
3179
3180     -qt-pcre ........... Use the PCRE library bundled with Qt.
3181  +  -system-pcre ....... Use the PCRE library from the operating system.
3182
3183 Additional options:
3184
3185     -make <part> ....... Add part to the list of parts to be built at make time.
3186                          ($QT_DEFAULT_BUILD_PARTS)
3187     -nomake <part> ..... Exclude part from the list of parts to be built.
3188
3189     -no-gui ............ Don't build the QtGui library and dependencies.
3190  +  -gui ............... Build the QtGui library and dependencies.
3191
3192     -no-widgets ........ Don't build the QtWidgets library and dependencies.
3193  +  -widgets ........... Build the QtWidgets library and dependencies.
3194
3195     -R <string> ........ Add an explicit runtime library path to the Qt
3196                          libraries.
3197     -l <string> ........ Add an explicit library.
3198
3199     -no-rpath .......... Do not use the library install path as a runtime
3200                          library path.
3201  +  -rpath ............. Link Qt libraries and executables using the library
3202                          install path as a runtime library path. Equivalent
3203                          to -R install_libpath
3204
3205     -continue .......... Continue as far as possible if an error occurs.
3206
3207     -verbose, -v ....... Print verbose information about each step of the
3208                          configure process.
3209
3210     -silent ............ Reduce the build output so that warnings and errors
3211                          can be seen more easily.
3212
3213  *  -no-optimized-qmake ... Do not build qmake optimized.
3214     -optimized-qmake ...... Build qmake optimized.
3215
3216  $NSN  -no-nis ............ Do not compile NIS support.
3217  $NSY  -nis ............... Compile NIS support.
3218
3219  $CUN  -no-cups ........... Do not compile CUPS support.
3220  $CUY  -cups .............. Compile CUPS support.
3221                          Requires cups/cups.h and libcups.so.2.
3222
3223  $CIN  -no-iconv .......... Do not compile support for iconv(3).
3224  $CIY  -iconv ............. Compile support for iconv(3).
3225
3226     -no-icu ............ Do not compile support for ICU libraries.
3227  +  -icu ............... Compile support for ICU libraries.
3228
3229     -no-strip .......... Do not strip binaries and libraries of unneeded symbols.
3230  *  -strip ............. Strip binaries and libraries of unneeded symbols when installing.
3231
3232  $PHN  -no-pch ............ Do not use precompiled header support.
3233  $PHY  -pch ............... Use precompiled header support.
3234
3235  $DBN  -no-dbus ........... Do not compile the QtDBus module.
3236  $DBY  -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3237     -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3238
3239     -reduce-relocations ..... Reduce relocations in the libraries through extra
3240                               linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3241                               experimental; needs GNU ld >= 2.18).
3242
3243     -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3244
3245     -device <name> ............... Cross-compile for device <name> (experimental)
3246     -device-option <key=value> ... Add device specific options for the device mkspec
3247                                    (experimental)
3248
3249  $SBN  -no-separate-debug-info . Do not store debug information in a separate file.
3250  $SBY  -separate-debug-info .... Strip debug information into a separate .debug file.
3251
3252  $XCBN  -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3253  $XCBY  -xcb ............... Compile Xcb support.
3254
3255  $EGLFSN  -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3256  $EGLFSY  -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3257
3258  $DFBN  -no-directfb ....... Do not compile DirectFB support.
3259  $DFBY  -directfb .......... Compile DirectFB support.
3260
3261  $LFBN  -no-linuxfb ........ Do not compile Linux Framebuffer support.
3262  $LFBY  -linuxfb ........... Compile Linux Framebuffer support.
3263
3264  $KMSN  -no-kms ............ Do not compile KMS support.
3265  $KMSY  -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3266
3267     -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3268
3269     -xplatform target ... The target platform when cross-compiling.
3270
3271     -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3272     -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3273
3274     -no-feature-<feature> Do not compile in <feature>.
3275     -feature-<feature> .. Compile in <feature>. The available features
3276                           are described in src/corelib/global/qfeatures.txt
3277
3278     -no-freetype ........ Do not compile in Freetype2 support.
3279     -qt-freetype ........ Use the libfreetype bundled with Qt.
3280  *  -system-freetype .... Use libfreetype from the operating system.
3281                           See http://www.freetype.org/
3282
3283     -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3284                           default ($CFG_QCONFIG).
3285
3286     -no-opengl .......... Do not support OpenGL.
3287     -opengl <api> ....... Enable OpenGL support
3288                           With no parameter, this will attempt to auto-detect
3289                           OpenGL ES 2, or regular desktop OpenGL.
3290                           Use es2 for <api> to override auto-detection.
3291
3292  $GBN  -no-glib ........... Do not compile Glib support.
3293  $GBY  -glib .............. Compile Glib support.
3294 EOF
3295
3296 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3297     cat << EOF
3298
3299  $X2N  -no-xinput2......... Do not compile XInput2 support.
3300  $X2Y  -xinput2............ Compile XInput2 support.
3301
3302 EOF
3303
3304 fi
3305
3306 if [ "$BUILD_ON_MAC" = "yes" ]; then
3307     cat << EOF
3308
3309 Qt/Mac only:
3310
3311     -Fstring ........... Add an explicit framework path.
3312     -fw string ......... Add an explicit framework.
3313
3314  *  -framework ......... Build Qt as a series of frameworks and
3315                          link tools against those frameworks.
3316     -no-framework ...... Do not build Qt as a series of frameworks.
3317
3318     -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3319                          To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3320
3321     -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3322  *  -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3323                          QT_ENABLE_HARFBUZZ environment variable.
3324
3325 EOF
3326 fi
3327
3328    [ "x$ERROR" = "xyes" ] && exit 1
3329    exit 0
3330 fi # Help
3331
3332
3333 # -----------------------------------------------------------------------------
3334 # LICENSING, INTERACTIVE PART
3335 # -----------------------------------------------------------------------------
3336
3337 echo
3338 echo "This is the Qt ${EditionString} Edition."
3339 echo
3340
3341 if [ "$Edition" = "OpenSource" ]; then
3342     while true; do
3343         echo "You are licensed to use this software under the terms of"
3344         echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3345         if [ -f "$relpath/LICENSE.GPL3" ]; then
3346             echo "You are also licensed to use this software under the terms of"
3347             echo "the GNU General Public License (GPL) versions 3."
3348             affix="either"
3349         else
3350             affix="the"
3351         fi
3352         echo
3353         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3354             echo "You have already accepted the terms of the $LicenseType license."
3355             acceptance=yes
3356         else
3357             if [ -f "$relpath/LICENSE.GPL3" ]; then
3358                 echo "Type '3' to view the GNU General Public License version 3."
3359             fi
3360             echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3361             echo "Type 'yes' to accept this license offer."
3362             echo "Type 'no' to decline this license offer."
3363             echo
3364             echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3365             read acceptance
3366         fi
3367         echo
3368         if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3369             break
3370         elif [ "$acceptance" = "no" ]; then
3371             echo "You are not licensed to use this software."
3372             echo
3373             exit 1
3374         elif [ "$acceptance" = "3" ]; then
3375             more "$relpath/LICENSE.GPL3"
3376         elif [ "$acceptance" = "L" ]; then
3377             more "$relpath/LICENSE.LGPL"
3378         fi
3379     done
3380 elif [ "$Edition" = "Preview" ]; then
3381     TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3382     while true; do
3383
3384         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3385             echo "You have already accepted the terms of the $LicenseType license."
3386             acceptance=yes
3387         else
3388             echo "You are licensed to use this software under the terms of"
3389             echo "the $TheLicense"
3390             echo
3391             echo "Type '?' to read the Preview License."
3392             echo "Type 'yes' to accept this license offer."
3393             echo "Type 'no' to decline this license offer."
3394             echo
3395             echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3396             read acceptance
3397         fi
3398         echo
3399         if [ "$acceptance" = "yes" ]; then
3400             break
3401         elif [ "$acceptance" = "no" ] ;then
3402             echo "You are not licensed to use this software."
3403             echo
3404             exit 0
3405         elif [ "$acceptance" = "?" ]; then
3406             more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3407         fi
3408     done
3409 elif [ "$Edition" != "OpenSource" ]; then
3410     if [ -n "$ExpiryDate" ]; then
3411         ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3412         [ -z "$ExpiryDate" ] && ExpiryDate="0"
3413         Today=`date +%Y%m%d`
3414         if [ "$Today" -gt "$ExpiryDate" ]; then
3415             case "$LicenseType" in
3416             Commercial|Academic|Educational)
3417                 echo
3418                 echo "WARNING  WARNING  WARNING  WARNING"
3419                 echo
3420                 echo "  Your support and upgrade period has expired."
3421                 echo
3422                 echo "  You may continue to use your last licensed release"
3423                 echo "  of Qt under the terms of your existing license"
3424                 echo "  agreement. But you are not entitled to technical"
3425                 echo "  support, nor are you entitled to use any more recent"
3426                 echo "  Qt releases."
3427                 echo
3428                 echo "  Please use the contact form at http://qt.digia.com/contact-us"
3429                 echo "  to renew your support and upgrades for this license."
3430                 echo
3431                 echo "WARNING  WARNING  WARNING  WARNING"
3432                 echo
3433                 sleep 3
3434                 ;;
3435             Evaluation|*)
3436                 echo
3437                 echo "NOTICE  NOTICE  NOTICE  NOTICE"
3438                 echo
3439                 echo "  Your Evaluation license has expired."
3440                 echo
3441                 echo "  You are no longer licensed to use this software. Please"
3442                 echo "  use the contact form at http://qt.digia.com/contact-us to"
3443                 echo "  purchase license, or install the Qt Open Source Edition"
3444                 echo "  if you intend to develop free software."
3445                 echo
3446                 echo "NOTICE  NOTICE  NOTICE  NOTICE"
3447                 echo
3448                 exit 1
3449                 ;;
3450             esac
3451         fi
3452     fi
3453     TheLicense=`head -n 1 "$outpath/LICENSE"`
3454     while true; do
3455         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3456             echo "You have already accepted the terms of the $TheLicense."
3457             acceptance=yes
3458         else
3459             echo "You are licensed to use this software under the terms of"
3460             echo "the $TheLicense."
3461             echo
3462             echo "Type '?' to view the $TheLicense."
3463             echo "Type 'yes' to accept this license offer."
3464             echo "Type 'no' to decline this license offer."
3465             echo
3466             echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3467             read acceptance
3468         fi
3469         echo
3470         if [ "$acceptance" = "yes" ]; then
3471             break
3472         elif [ "$acceptance" = "no" ]; then
3473             echo "You are not licensed to use this software."
3474             echo
3475             exit 1
3476         else [ "$acceptance" = "?" ]
3477             more "$outpath/LICENSE"
3478         fi
3479     done
3480 fi
3481
3482 # this should be moved somewhere else
3483 case "$PLATFORM" in
3484 aix-*)
3485     AIX_VERSION=`uname -v`
3486     if [ "$AIX_VERSION" -lt "5" ]; then
3487         QMakeVar add QMAKE_LIBS_X11 -lbind
3488     fi
3489     ;;
3490 *)
3491     ;;
3492 esac
3493
3494 #-------------------------------------------------------------------------------
3495 # generate qconfig.cpp
3496 #-------------------------------------------------------------------------------
3497 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3498
3499 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3500 /* License Info */
3501 static const char qt_configure_licensee_str          [256 + 12] = "qt_lcnsuser=$Licensee";
3502 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3503
3504 /* Installation date */
3505 static const char qt_configure_installation          [12+11]    = "qt_instdate=`date +%Y-%m-%d`";
3506
3507 /* Installation Info */
3508 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3509     "qt_prfxpath=$QT_INSTALL_PREFIX",
3510     "qt_docspath=$QT_INSTALL_DOCS",
3511     "qt_hdrspath=$QT_INSTALL_HEADERS",
3512     "qt_libspath=$QT_INSTALL_LIBS",
3513     "qt_binspath=$QT_INSTALL_BINS",
3514     "qt_plugpath=$QT_INSTALL_PLUGINS",
3515     "qt_impspath=$QT_INSTALL_IMPORTS",
3516     "qt_datapath=$QT_INSTALL_DATA",
3517     "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3518     "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3519     "qt_tstspath=$QT_INSTALL_TESTS",
3520 #ifdef QT_BUILD_QMAKE
3521     "qt_ssrtpath=$CFG_SYSROOT",
3522     "qt_hpfxpath=$QT_HOST_PREFIX",
3523     "qt_hbinpath=$QT_HOST_BINS",
3524     "qt_hdatpath=$QT_HOST_DATA",
3525 #endif
3526 };
3527 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3528 EOF
3529
3530 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3531
3532 /* strlen( "qt_lcnsxxxx" ) == 12 */
3533 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3534 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3535
3536 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3537 EOF
3538
3539 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3540 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3541     rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3542 else
3543     [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3544     mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3545     chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3546 fi
3547
3548 # -----------------------------------------------------------------------------
3549 if [ "$LicenseType" = "Evaluation" ]; then
3550     EVALKEY=qt_qevalkey=$LicenseKeyExt
3551 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3552     EVALKEY=qt_qevalkey=
3553 fi
3554
3555 if [ -n "$EVALKEY" ]; then
3556     rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3557     cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3558 /* Evaluation license key */
3559 static const volatile char qt_eval_key_data                   [512 + 12] = "$EVALKEY";
3560 EOF
3561     chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3562 fi
3563
3564
3565 # -----------------------------------------------------------------------------
3566 # build qmake
3567 # -----------------------------------------------------------------------------
3568
3569 # symlink includes
3570 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3571     "$outpath/bin/syncqt" -minimal -module QtCore "$relpath" || exit 1
3572 fi
3573
3574 # $1: input variable name (awk regexp)
3575 # $2: optional output variable name
3576 # $3: optional value transformation (sed command)
3577 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3578 # is where the resulting variable is written to
3579 setBootstrapVariable()
3580 {
3581     getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3582 }
3583
3584 # build qmake
3585 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3586     echo "Creating qmake. Please wait..."
3587
3588     #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3589     rm -rf mkspecs/default mkspecs/default-host
3590     ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3591     ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3592     mkdir -p "$outpath/qmake" || exit
3593     # fix makefiles
3594     for mkfile in GNUmakefile Makefile; do
3595         EXTRA_LFLAGS=
3596         EXTRA_CFLAGS=
3597         in_mkfile="${mkfile}.in"
3598         if [ "$mkfile" = "Makefile" ]; then
3599 #           if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3600 #               (cd qmake && qmake) >/dev/null 2>&1 && continue
3601 #           fi
3602             in_mkfile="${mkfile}.unix"
3603         fi
3604         in_mkfile="$relpath/qmake/$in_mkfile"
3605         mkfile="$outpath/qmake/$mkfile"
3606         if [ -f "$mkfile" ]; then
3607             [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3608             rm -f "$mkfile"
3609         fi
3610         [ -f "$in_mkfile" ] || continue
3611
3612         echo "########################################################################" > "$mkfile"
3613         echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3614         echo "########################################################################" >> "$mkfile"
3615         EXTRA_OBJS=
3616         EXTRA_SRCS=
3617         EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3618         EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3619         EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3620
3621         if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3622             EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3623         fi
3624
3625         [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3626         setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3627         setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3628         setBootstrapVariable QMAKE_CFLAGS
3629         setBootstrapVariable QMAKE_CXXFLAGS
3630         setBootstrapVariable QMAKE_LFLAGS
3631
3632         if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3633             EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3634             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3635         fi
3636         if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3637             setBootstrapVariable QMAKE_CFLAGS_RELEASE
3638             setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3639             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3640             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3641         elif [ "$CFG_DEBUG" = "yes" ]; then
3642             setBootstrapVariable QMAKE_CFLAGS_DEBUG
3643             setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3644             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3645             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3646         fi
3647
3648         if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3649             setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3650             for rpath in $RPATH_FLAGS; do
3651                 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3652             done
3653         fi
3654         if [ "$BUILD_ON_MAC" = "yes" ]; then
3655             echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3656             echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3657             echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3658             EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3659             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3660             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3661             EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3662             EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3663             if [ '!' -z "$CFG_SDK" ]; then
3664                 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3665                 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3666                 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3667                 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3668                 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3669             fi
3670         fi
3671         if [ '!' -z "$D_FLAGS" ]; then
3672             EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3673         fi
3674         QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3675         [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3676         QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3677         [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3678         echo >>"$mkfile"
3679         adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3680         adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3681         adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3682         sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3683             -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3684             -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3685             -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3686             -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3687             -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3688             -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3689
3690         if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3691             (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3692             sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3693             sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3694             rm "$mkfile.tmp"
3695         fi
3696     done
3697
3698     (cd "$outpath/qmake"; "$MAKE") || 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 # write out device config before we run the test.
3713 #-------------------------------------------------------------------------------
3714 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3715 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3716     rm -f "$DEVICE_VARS_FILE"
3717 else
3718     mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3719     DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3720 fi
3721
3722 #-------------------------------------------------------------------------------
3723 # Detect pkg-config
3724 #-------------------------------------------------------------------------------
3725 if [ -z "$PKG_CONFIG" ]; then
3726     # See if PKG_CONFIG is set in the mkspec:
3727     PKG_CONFIG="`"$outpath/bin/qmake" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" /dev/null 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`"
3728 fi
3729 if [ -z "$PKG_CONFIG" ]; then
3730     PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3731 fi
3732
3733 if [ "$CFG_PKGCONFIG" = "no" ]; then
3734     PKG_CONFIG=
3735 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3736     echo >&2 ""
3737     echo >&2 "You have asked to use pkg-config. Please make sure you have"
3738     echo >&2 "a correctly setup pkg-config environment!"
3739     echo >&2 ""
3740 elif [ -n "$PKG_CONFIG" ]; then
3741     # found a pkg-config
3742     if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3743         # when xcompiling, check environment to see if it's actually usable
3744         if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3745             if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3746                 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3747                 if [ -n "$GCC_MACHINE_DUMP" ]; then
3748                     PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3749                 fi
3750                 export PKG_CONFIG_LIBDIR
3751                 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3752             elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3753                 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3754                 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3755                 echo >&2 "Set this variable to the directory that contains target .pc files"
3756                 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3757                 echo >&2 "use -force-pkg-config to override this test."
3758                 exit 101
3759             else
3760                 PKG_CONFIG=
3761                 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3762             fi
3763         fi
3764         if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3765             if [ -n "$CFG_SYSROOT" ]; then
3766                 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3767                 export PKG_CONFIG_SYSROOT_DIR
3768                 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3769             elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3770                 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3771                 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3772                 echo >&2 "or use -force-pkg-config to override this test."
3773                 exit 101
3774             else
3775                 PKG_CONFIG=
3776                 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3777             fi
3778         fi
3779     fi
3780 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3781     echo >&2 "Could not detect pkg-config from mkspec or PATH."
3782     exit 101
3783 fi
3784
3785 if [ -z "$PKG_CONFIG" ]; then
3786     QT_CONFIG="$QT_CONFIG no-pkg-config"
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_SDK_FLAG "$@"
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_SDK_FLAG
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_SDK_FLAG
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 common/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" ]; 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_STACK_PROTECTOR_STRONG" = "yes" ] && QT_CONFIG="$QT_CONFIG stack-protector-strong"
5312 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5313 [ "$CFG_STRIP" = "no" ] && QMAKE_CONFIG="$QMAKE_CONFIG nostrip"
5314 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5315 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5316     QMakeVar add QMAKE_CFLAGS -g
5317     QMakeVar add QMAKE_CXXFLAGS -g
5318     QT_CONFIG="$QT_CONFIG separate_debug_info"
5319 fi
5320 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5321     QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5322 fi
5323 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5324 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5325 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5326 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5327 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5328 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5329 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5330 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5331 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5332 if [ "$CFG_ARCH" = "mips" ]; then
5333     [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5334     [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5335 fi
5336 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5337     QT_CONFIG="$QT_CONFIG clock-gettime"
5338 fi
5339 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5340     QT_CONFIG="$QT_CONFIG clock-monotonic"
5341 fi
5342 if [ "$CFG_MREMAP" = "yes" ]; then
5343     QT_CONFIG="$QT_CONFIG mremap"
5344 fi
5345 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5346     QT_CONFIG="$QT_CONFIG getaddrinfo"
5347 fi
5348 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5349     QT_CONFIG="$QT_CONFIG ipv6ifname"
5350 fi
5351 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5352     QT_CONFIG="$QT_CONFIG getifaddrs"
5353 fi
5354 if [ "$CFG_INOTIFY" = "yes" ]; then
5355     QT_CONFIG="$QT_CONFIG inotify"
5356 fi
5357 if [ "$CFG_LIBJPEG" = "no" ]; then
5358     CFG_JPEG="no"
5359 elif [ "$CFG_LIBJPEG" = "system" ]; then
5360     QT_CONFIG="$QT_CONFIG system-jpeg"
5361 fi
5362 if [ "$CFG_JPEG" = "no" ]; then
5363     QT_CONFIG="$QT_CONFIG no-jpeg"
5364 elif [ "$CFG_JPEG" = "yes" ]; then
5365     QT_CONFIG="$QT_CONFIG jpeg"
5366 fi
5367 if [ "$CFG_LIBPNG" = "no" ]; then
5368     CFG_PNG="no"
5369 fi
5370 if [ "$CFG_LIBPNG" = "system" ]; then
5371     QT_CONFIG="$QT_CONFIG system-png"
5372 fi
5373 if [ "$CFG_PNG" = "no" ]; then
5374     QT_CONFIG="$QT_CONFIG no-png"
5375 elif [ "$CFG_PNG" = "yes" ]; then
5376     QT_CONFIG="$QT_CONFIG png"
5377 fi
5378 if [ "$CFG_GIF" = "no" ]; then
5379     QT_CONFIG="$QT_CONFIG no-gif"
5380 elif [ "$CFG_GIF" = "yes" ]; then
5381     QT_CONFIG="$QT_CONFIG gif"
5382 fi
5383 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5384     QT_CONFIG="$QT_CONFIG no-freetype"
5385     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5386 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5387     QT_CONFIG="$QT_CONFIG system-freetype"
5388 else
5389     QT_CONFIG="$QT_CONFIG freetype"
5390 fi
5391 if [ "$CFG_GUI" = "auto" ]; then
5392     CFG_GUI="yes"
5393 fi
5394 if [ "$CFG_GUI" = "no" ]; then
5395     QT_CONFIG="$QT_CONFIG no-gui"
5396     CFG_WIDGETS="no"
5397 fi
5398 if [ "$CFG_WIDGETS" = "no" ]; then
5399     QT_CONFIG="$QT_CONFIG no-widgets"
5400     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5401 fi
5402
5403 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5404     #On Mac we implicitly link against libz, so we
5405     #never use the 3rdparty stuff.
5406     [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5407 fi
5408 if [ "$CFG_ZLIB" = "yes" ]; then
5409     QT_CONFIG="$QT_CONFIG zlib"
5410 elif [ "$CFG_ZLIB" = "system" ]; then
5411     QT_CONFIG="$QT_CONFIG system-zlib"
5412 fi
5413
5414 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5415 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5416 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5417 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5418 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5419 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5420 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5421 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5422 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5423 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5424 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5425 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5426 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5427 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5428
5429 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5430 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5431
5432 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5433     if [ "$CFG_RPATH" = "yes" ]; then
5434        QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5435     fi
5436 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5437     if [ -n "$RPATH_FLAGS" ]; then
5438         echo
5439         echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5440         echo "       undefined."
5441         echo
5442         exit 1
5443     elif [ "$CFG_RPATH" = "yes" ]; then
5444         RPATH_MESSAGE="        NOTE: This platform does not support runtime library paths, using -no-rpath."
5445         CFG_RPATH=no
5446     fi
5447 else
5448     if [ -n "$RPATH_FLAGS" ]; then
5449         # add the user defined rpaths
5450         QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5451     fi
5452 fi
5453 if [ "$CFG_RPATH" = "yes" ]; then
5454     QT_CONFIG="$QT_CONFIG rpath"
5455 fi
5456
5457 if [ '!' -z "$I_FLAGS" ]; then
5458     # add the user define include paths
5459     QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5460     QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5461 fi
5462
5463 if [ '!' -z "$W_FLAGS" ]; then
5464     # add the user defined warning flags
5465     QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5466     QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5467     QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5468 fi
5469
5470 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5471     # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5472     # Follow default behavior of configure.exe by overriding with "rtti".
5473     QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5474 fi
5475
5476 if [ "$CFG_ALSA" = "yes" ]; then
5477     QT_CONFIG="$QT_CONFIG alsa"
5478 fi
5479
5480 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5481     QT_CONFIG="$QT_CONFIG pulseaudio"
5482 fi
5483
5484 if [ "$CFG_COREWLAN" = "yes" ]; then
5485     QT_CONFIG="$QT_CONFIG corewlan"
5486 fi
5487
5488 if [ "$CFG_ICU" = "yes" ]; then
5489     QT_CONFIG="$QT_CONFIG icu"
5490 fi
5491
5492 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5493     QT_CONFIG="$QT_CONFIG force_asserts"
5494 fi
5495
5496 if [ "$CFG_PCRE" = "qt" ]; then
5497     QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5498 fi
5499
5500 #
5501 # Some Qt modules are too advanced in C++ for some old compilers
5502 # Detect here the platforms where they are known to work.
5503 #
5504 # See Qt documentation for more information on which features are
5505 # supported and on which compilers.
5506 #
5507 canBuildQtConcurrent="yes"
5508 canUseV8Snapshot="yes"
5509
5510 case "$XPLATFORM" in
5511     hpux-g++*)
5512         # PA-RISC's assembly is too limited
5513         # gcc 3.4 on that platform can't build QtXmlPatterns
5514         # the assembly it generates cannot be compiled
5515
5516         # Check gcc's version
5517         case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5518             4*)
5519                 ;;
5520             3.4*)
5521                 canBuildQtXmlPatterns="no"
5522                 ;;
5523             *)
5524                 canBuildWebKit="no"
5525                 canBuildQtXmlPatterns="no"
5526                 ;;
5527         esac
5528         ;;
5529     unsupported/vxworks-*-g++*)
5530         canBuildWebKit="no"
5531         ;;
5532     unsupported/vxworks-*-dcc*)
5533         canBuildWebKit="no"
5534         canBuildQtXmlPatterns="no"
5535         ;;
5536     *-g++*)
5537         # Check gcc's version
5538         case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5539             4*|3.4*)
5540                 ;;
5541             3.3*)
5542                 canBuildWebKit="no"
5543                 ;;
5544             *)
5545                 canBuildWebKit="no"
5546                 canBuildQtXmlPatterns="no"
5547                 ;;
5548         esac
5549         ;;
5550     solaris-cc*)
5551         # Check the compiler version
5552         case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5553             5.[012345678])
5554                 canBuildWebKit="no"
5555                 canBuildQtXmlPatterns="no"
5556                 canBuildQtConcurrent="no"
5557                 ;;
5558             5.*)
5559                 canBuildWebKit="no"
5560                 canBuildQtConcurrent="no"
5561                 ;;
5562         esac
5563         ;;
5564     hpux-acc*)
5565         canBuildWebKit="no"
5566         canBuildQtXmlPatterns="no"
5567         canBuildQtConcurrent="no"
5568         ;;
5569     hpuxi-acc*)
5570         canBuildWebKit="no"
5571         ;;
5572     aix-xlc*)
5573         # Get the xlC version
5574         cat > xlcver.c <<EOF
5575 #include <stdio.h>
5576 int main()
5577 {
5578     printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5579     return 0;
5580 }
5581 EOF
5582         xlcver=
5583         if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5584             xlcver=`./xlcver 2>/dev/null`
5585             rm -f ./xlcver
5586         fi
5587         if [ "$OPT_VERBOSE" = "yes" ]; then
5588             if [ -n "$xlcver" ]; then
5589                 echo Found IBM xlC version: $xlcver.
5590             else
5591                 echo Could not determine IBM xlC version, assuming oldest supported.
5592             fi
5593         fi
5594
5595         case "$xlcver" in
5596             [123456].*)
5597                 canBuildWebKit="no"
5598                 canBuildQtXmlPatterns="no"
5599                 canBuildQtConcurrent="no"
5600                 ;;
5601             *)
5602                 canBuildWebKit="no"
5603                 canBuildQtConcurrent="no"
5604                 ;;
5605         esac
5606         ;;
5607     irix-cc*)
5608         canBuildWebKit="no"
5609         canBuildQtConcurrent="no"
5610         ;;
5611 esac
5612
5613 if [ "$CFG_GUI" = "no" ]; then
5614     # WebKit requires QtGui
5615     canBuildWebKit="no"
5616 fi
5617
5618 if [ "$CFG_SHARED" = "no" ]; then
5619     echo
5620     echo "WARNING: Using static linking will disable the WebKit module."
5621     echo
5622     canBuildWebKit="no"
5623 fi
5624
5625 CFG_CONCURRENT="yes"
5626 if [ "$canBuildQtConcurrent" = "no" ]; then
5627     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5628     CFG_CONCURRENT="no"
5629 else
5630     QT_CONFIG="$QT_CONFIG concurrent"
5631 fi
5632
5633 # ### Vestige
5634 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5635     QT_CONFIG="$QT_CONFIG audio-backend"
5636 fi
5637
5638 # ### Vestige
5639 if [ "$CFG_WEBKIT" = "debug" ]; then
5640     QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5641 fi
5642
5643 # ### Vestige
5644 QT_CONFIG="$QT_CONFIG v8"
5645 # Detect snapshot support
5646 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5647     case "$CFG_HOST_ARCH,$CFG_ARCH" in
5648         i386,arm)
5649         ;;
5650     *) canUseV8Snapshot="no"
5651         ;;
5652     esac
5653 else
5654     if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5655         # QEMU crashes when building inside Scratchbox with an ARM target
5656         canUseV8Snapshot="no"
5657     fi
5658 fi
5659 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5660     CFG_V8SNAPSHOT="$canUseV8Snapshot"
5661 fi
5662 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5663     echo "Error: V8 snapshot was requested, but is not supported on this platform."
5664     exit 1
5665 fi
5666 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5667     QT_CONFIG="$QT_CONFIG v8snapshot"
5668 fi
5669
5670 # ### Vestige
5671 if [ "$CFG_QML_DEBUG" = "no" ]; then
5672     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5673 fi
5674
5675 case "$QMAKE_CONF_COMPILER" in
5676 *g++*)
5677     # GNU C++
5678     COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5679
5680     case "$COMPILER_VERSION" in
5681     *.*.*)
5682         QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5683         QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5684         QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5685         ;;
5686     *.*)
5687         QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5688         QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5689         QT_GCC_PATCH_VERSION=0
5690         ;;
5691     esac
5692
5693     ;;
5694 *)
5695     #
5696     ;;
5697 esac
5698
5699 #-------------------------------------------------------------------------------
5700 # part of configuration information goes into qconfig.h
5701 #-------------------------------------------------------------------------------
5702
5703 case "$CFG_QCONFIG" in
5704 full)
5705     echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5706     ;;
5707 *)
5708     tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5709     echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5710     if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5711         cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5712     elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5713         cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5714     fi
5715     echo "#endif" >>"$tmpconfig"
5716     ;;
5717 esac
5718
5719 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5720
5721 /* Qt Edition */
5722 #ifndef QT_EDITION
5723 #  define QT_EDITION $QT_EDITION
5724 #endif
5725 EOF
5726
5727 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5728 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5729
5730 if [ "$CFG_SHARED" = "no" ]; then
5731     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5732 /* Qt was configured for a static build */
5733 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5734 # define QT_STATIC
5735 #endif
5736
5737 EOF
5738 fi
5739
5740 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5741     echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5742 fi
5743
5744 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5745     echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5746 fi
5747
5748 if [ "$BUILD_ON_MAC" = "yes" ]; then
5749     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5750 #if defined(__LP64__)
5751 # define QT_POINTER_SIZE 8
5752 #else
5753 # define QT_POINTER_SIZE 4
5754 #endif
5755 EOF
5756 else
5757     "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5758     echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5759 fi
5760
5761 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5762 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5763     echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5764 fi
5765
5766 # Add compiler sub-architecture support
5767 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5768 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5769 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5770     IWMMXT NEON \
5771     MIPS_DSP MIPS_DSPR2; do
5772     eval "VAL=\$CFG_$SUBARCH"
5773     case "$VAL" in
5774         yes)
5775             echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5776                 >>"$outpath/src/corelib/global/qconfig.h.new"
5777             ;;
5778     esac
5779 done
5780
5781 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5782
5783 if [ "$CFG_DEV" = "yes" ]; then
5784     echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5785 fi
5786
5787 # Add QPA to config.h
5788 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5789
5790 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5791     QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5792 fi
5793
5794 # Add turned on SQL drivers
5795 for DRIVER in $CFG_SQL_AVAILABLE; do
5796     eval "VAL=\$CFG_SQL_$DRIVER"
5797     case "$VAL" in
5798     qt)
5799         ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5800         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5801         SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5802     ;;
5803     plugin)
5804         SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5805     ;;
5806     esac
5807 done
5808
5809 QMakeVar set sql-drivers "$SQL_DRIVERS"
5810 QMakeVar set sql-plugins "$SQL_PLUGINS"
5811
5812 # Add other configuration options to the qconfig.h file
5813 [ "$CFG_GIF" = "yes" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5814 [ "$CFG_PNG" != "yes" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5815 [ "$CFG_JPEG" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5816 [ "$CFG_ZLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5817 [ "$CFG_DBUS" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5818
5819 # X11/Unix/Mac only configs
5820 [ "$CFG_CUPS" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5821 [ "$CFG_ICONV" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5822 [ "$CFG_GLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5823 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5824 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5825 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5826 [ "$CFG_MREMAP" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5827 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5828 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5829 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5830 [ "$CFG_INOTIFY" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5831 [ "$CFG_NIS" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5832 [ "$CFG_OPENSSL" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5833 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5834
5835 [ "$CFG_SM" = "no" ]         && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5836 [ "$CFG_XCURSOR" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5837 [ "$CFG_XFIXES" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5838 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5839 [ "$CFG_XINERAMA" = "no" ]   && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5840 [ "$CFG_XKB" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5841 [ "$CFG_XRANDR" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5842 [ "$CFG_XRENDER" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5843 [ "$CFG_MITSHM" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5844 [ "$CFG_XSHAPE" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5845 [ "$CFG_XVIDEO" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5846 [ "$CFG_XSYNC" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5847 [ "$CFG_XINPUT" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5848
5849 [ "$CFG_XCURSOR" = "runtime" ]   && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5850 [ "$CFG_XINERAMA" = "runtime" ]  && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5851 [ "$CFG_XFIXES" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5852 [ "$CFG_XRANDR" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5853 [ "$CFG_XINPUT" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5854 [ "$CFG_ALSA" = "no" ]           && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5855 [ "$CFG_PULSEAUDIO" = "no" ]          && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5856 [ "$CFG_COREWLAN" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5857
5858 # sort QCONFIG_FLAGS for neatness if we can
5859 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5860 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5861
5862 if [ -n "$QCONFIG_FLAGS" ]; then
5863 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5864 #ifndef QT_BOOTSTRAPPED
5865
5866 EOF
5867     for cfg in $QCONFIG_FLAGS; do
5868         cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5869         cfg=`echo $cfg | sed 's/=/ /'`    # turn first '=' into a space
5870         # figure out define logic, so we can output the correct
5871         # ifdefs to override the global defines in a project
5872         cfgdNeg=
5873         if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5874             # QT_NO_option can be forcefully turned on by QT_option
5875             cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5876         elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5877             # QT_option can be forcefully turned off by QT_NO_option
5878             cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5879         fi
5880
5881         if [ -z $cfgdNeg ]; then
5882 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5883 #ifndef $cfgd
5884 # define $cfg
5885 #endif
5886
5887 EOF
5888         else
5889 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5890 #if defined($cfgd) && defined($cfgdNeg)
5891 # undef $cfgd
5892 #elif !defined($cfgd) && !defined($cfgdNeg)
5893 # define $cfg
5894 #endif
5895
5896 EOF
5897         fi
5898     done
5899 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5900 #endif // QT_BOOTSTRAPPED
5901
5902 EOF
5903 fi
5904
5905 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5906 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5907 #define QT_VISIBILITY_AVAILABLE
5908
5909 EOF
5910 fi
5911
5912 if [ -n "$QT_LIBINFIX" ]; then
5913 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5914 #define QT_LIBINFIX "$QT_LIBINFIX"
5915
5916 EOF
5917 fi
5918
5919 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5920
5921 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5922 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5923     rm -f "$outpath/src/corelib/global/qconfig.h.new"
5924 else
5925     [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5926     mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5927     chmod -w "$outpath/src/corelib/global/qconfig.h"
5928     if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5929         ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5930     fi
5931 fi
5932
5933 #-------------------------------------------------------------------------------
5934 # save configuration into qconfig.pri
5935 #-------------------------------------------------------------------------------
5936 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5937 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5938 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5939 if [ "$CFG_DEBUG" = "yes" ]; then
5940     QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5941     if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5942         QT_CONFIG="$QT_CONFIG release"
5943     fi
5944     QT_CONFIG="$QT_CONFIG debug"
5945 elif [ "$CFG_DEBUG" = "no" ]; then
5946     QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5947     if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5948         QT_CONFIG="$QT_CONFIG debug"
5949     fi
5950     QT_CONFIG="$QT_CONFIG release"
5951 fi
5952 if [ "$CFG_FRAMEWORK" = "no" ]; then
5953     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5954 else
5955     QT_CONFIG="$QT_CONFIG qt_framework"
5956     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5957 fi
5958 if [ "$CFG_DEV" = "yes" ]; then
5959     QT_CONFIG="$QT_CONFIG private_tests"
5960 fi
5961
5962 cat >>"$QTCONFIG.tmp" <<EOF
5963 #configuration
5964 CONFIG += $QTCONFIG_CONFIG
5965 QT_ARCH = $CFG_ARCH
5966 QT_HOST_ARCH = $CFG_HOST_ARCH
5967 QT_CPU_FEATURES = $CFG_CPUFEATURES
5968 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5969 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5970 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5971 QT_EDITION = $Edition
5972 QT_CONFIG += $QT_CONFIG
5973
5974 #versioning
5975 QT_VERSION = $QT_VERSION
5976 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5977 QT_MINOR_VERSION = $QT_MINOR_VERSION
5978 QT_PATCH_VERSION = $QT_PATCH_VERSION
5979
5980 #namespaces
5981 QT_LIBINFIX = $QT_LIBINFIX
5982 QT_NAMESPACE = $QT_NAMESPACE
5983
5984 EOF
5985
5986 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5987     echo "# pkgconfig" >> "$QTCONFIG.tmp"
5988     echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5989     echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5990     echo >> "$QTCONFIG.tmp"
5991 fi
5992
5993 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
5994     echo "# sysroot" >>"$QTCONFIG.tmp"
5995     echo "!host_build {" >>"$QTCONFIG.tmp"
5996     echo "    QMAKE_CFLAGS    += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5997     echo "    QMAKE_CXXFLAGS  += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5998     echo "    QMAKE_LFLAGS    += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5999     echo "}" >> "$QTCONFIG.tmp"
6000     echo >> "$QTCONFIG.tmp"
6001 fi
6002 if [ -n "$RPATH_FLAGS" ]; then
6003     echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
6004 fi
6005 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6006     echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6007     echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6008     echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6009 fi
6010
6011 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6012     echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6013     echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6014 fi
6015
6016 # replace qconfig.pri if it differs from the newly created temp file
6017 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6018     rm -f "$QTCONFIG.tmp"
6019 else
6020     mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6021 fi
6022
6023 #-------------------------------------------------------------------------------
6024 # save configuration into qmodule.pri
6025 #-------------------------------------------------------------------------------
6026 QTMODULE="$outpath/mkspecs/qmodule.pri"
6027
6028 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
6029 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6030
6031 if [ -n "$QT_CFLAGS_PSQL" ]; then
6032     echo "QT_CFLAGS_PSQL   = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6033 fi
6034 if [ -n "$QT_LFLAGS_PSQL" ]; then
6035     echo "QT_LFLAGS_PSQL   = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6036 fi
6037 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6038     echo "QT_CFLAGS_MYSQL   = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6039 fi
6040 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6041     echo "QT_LFLAGS_MYSQL   = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6042 fi
6043 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6044     echo "QT_CFLAGS_SQLITE   = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6045 fi
6046 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6047     echo "QT_LFLAGS_SQLITE   = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6048 fi
6049 if [ -n "$QT_LFLAGS_ODBC" ]; then
6050     echo "QT_LFLAGS_ODBC   = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6051 fi
6052 if [ -n "$QT_LFLAGS_TDS" ]; then
6053     echo "QT_LFLAGS_TDS   = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6054 fi
6055
6056 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6057     echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6058 fi
6059
6060 #dump in the OPENSSL_LIBS info
6061 if [ '!' -z "$OPENSSL_LIBS" ]; then
6062     echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6063 elif [ "$CFG_OPENSSL" = "linked" ]; then
6064     echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6065 fi
6066
6067 #dump in the SDK info
6068 if [ '!' -z "$CFG_SDK" ]; then
6069    echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6070 fi
6071
6072 # cmdline args
6073 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6074 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6075
6076 # replace qmodule.pri if it differs from the newly created temp file
6077 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6078     rm -f "$QTMODULE.tmp"
6079 else
6080     mv -f "$QTMODULE.tmp" "$QTMODULE"
6081 fi
6082
6083 #-------------------------------------------------------------------------------
6084 # save configuration into .qmake.cache
6085 #-------------------------------------------------------------------------------
6086
6087 CACHEFILE="$outpath/.qmake.cache"
6088 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6089 cat >>"$CACHEFILE.tmp" <<EOF
6090 #paths
6091 QT_SOURCE_TREE = \$\$quote($relpath)
6092 QT_BUILD_TREE = \$\$quote($outpath)
6093
6094 include(\$\$PWD/mkspecs/qmodule.pri)
6095 CONFIG += dylib fix_output_dirs no_private_qt_headers_warning QTDIR_build
6096
6097 EOF
6098
6099 # replace .qmake.cache if it differs from the newly created temp file
6100 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6101     rm -f "$CACHEFILE.tmp"
6102 else
6103     mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6104 fi
6105
6106 #-------------------------------------------------------------------------------
6107 # give feedback on configuration
6108 #-------------------------------------------------------------------------------
6109 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6110
6111 echo
6112 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6113     echo "Build type:    $PLATFORM"
6114 else
6115     echo "Building on:   $PLATFORM"
6116     echo "Building for:  $XPLATFORM"
6117 fi
6118
6119 # the missing space before $CFG_FEATURES is intentional
6120 echo "Architecture:  $CFG_ARCH, features:$CFG_CPUFEATURES"
6121 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6122
6123 if [ -n "$PLATFORM_NOTES" ]; then
6124     echo "Platform notes:"
6125     echo "$PLATFORM_NOTES"
6126 else
6127     echo
6128 fi
6129
6130 if [ "$OPT_VERBOSE" = "yes" ]; then
6131     echo $ECHO_N "qmake vars .......... $ECHO_C"
6132     cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6133     echo "qmake switches ......... $QMAKE_SWITCHES"
6134 fi
6135
6136 echo "Build .................. $CFG_BUILD_PARTS"
6137 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6138 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6139    echo "Debug .................. yes (combined)"
6140    if [ "$CFG_DEBUG" = "yes" ]; then
6141        echo "Default Link ........... debug"
6142    else
6143        echo "Default Link ........... release"
6144    fi
6145 else
6146    echo "Debug .................. $CFG_DEBUG"
6147 fi
6148 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6149     echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6150 fi
6151 echo "C++11 support .......... $CFG_CXX11"
6152 if [ -n "$PKG_CONFIG" ]; then
6153     echo "pkg-config ............. yes"
6154 else
6155     echo "pkg-config ............. no"
6156 fi
6157 [ "$CFG_DBUS" = "no" ]     && echo "QtDBus module .......... no"
6158 [ "$CFG_DBUS" = "yes" ]    && echo "QtDBus module .......... yes (run-time)"
6159 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6160 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6161 echo "QtGui module ........... $CFG_GUI"
6162 echo "QtWidgets module ....... $CFG_WIDGETS"
6163 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6164     echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6165 else
6166     echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6167 fi
6168 echo "QML debugging .......... $CFG_QML_DEBUG"
6169 echo "PCH support ............ $CFG_PRECOMPILE"
6170 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6171     echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6172     echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6173     echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6174 elif [ "$CFG_ARCH" = "arm" ]; then
6175     echo "iWMMXt support ......... ${CFG_IWMMXT}"
6176     echo "NEON support ........... ${CFG_NEON}"
6177 fi
6178 if [ "$CFG_ARCH" = "mips" ]; then
6179     echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6180 fi
6181 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6182 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6183 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6184 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6185 echo "NIS support ............ $CFG_NIS"
6186 echo "CUPS support ........... $CFG_CUPS"
6187 echo "Iconv support .......... $CFG_ICONV"
6188 echo "Glib support ........... $CFG_GLIB"
6189 echo "GStreamer support ...... $CFG_GSTREAMER"
6190 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6191 echo "Large File support ..... $CFG_LARGEFILE"
6192 echo "GIF support ............ $CFG_GIF"
6193 if [ "$CFG_JPEG" = "no" ]; then
6194     echo "JPEG support ........... $CFG_JPEG"
6195 else
6196     echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6197 fi
6198 if [ "$CFG_PNG" = "no" ]; then
6199     echo "PNG support ............ $CFG_PNG"
6200 else
6201     echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6202 fi
6203 echo "zlib support ........... $CFG_ZLIB"
6204 echo "Session management ..... $CFG_SM"
6205 echo "libudev support ........ $CFG_LIBUDEV"
6206
6207 if [ "$CFG_OPENGL" = "desktop" ]; then
6208     echo "OpenGL support ......... yes (Desktop OpenGL)"
6209 elif [ "$CFG_OPENGL" = "es2" ]; then
6210     echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6211 else
6212     echo "OpenGL support ......... no"
6213 fi
6214
6215 if [ "$CFG_OPENVG" ]; then
6216     if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6217         echo "OpenVG support ......... ShivaVG"
6218     else
6219         echo "OpenVG support ......... $CFG_OPENVG"
6220     fi
6221 fi
6222
6223 echo "XShape support ......... $CFG_XSHAPE"
6224 echo "XVideo support ......... $CFG_XVIDEO"
6225 echo "XSync support .......... $CFG_XSYNC"
6226 echo "Xinerama support ....... $CFG_XINERAMA"
6227 echo "Xcursor support ........ $CFG_XCURSOR"
6228 echo "Xfixes support ......... $CFG_XFIXES"
6229 echo "Xrandr support ......... $CFG_XRANDR"
6230 echo "Xi support ............. $CFG_XINPUT"
6231 echo "Xi2 support ............ $CFG_XINPUT2"
6232 echo "MIT-SHM support ........ $CFG_MITSHM"
6233 echo "FontConfig support ..... $CFG_FONTCONFIG"
6234 echo "XKB Support ............ $CFG_XKB"
6235 echo "immodule support ....... $CFG_IM"
6236 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6237
6238 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6239 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6240 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6241 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6242 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6243 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6244 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6245 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6246 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6247
6248 OPENSSL_LINKAGE=""
6249 if [ "$CFG_OPENSSL" = "yes" ]; then
6250     OPENSSL_LINKAGE="(run-time)"
6251 elif [ "$CFG_OPENSSL" = "linked" ]; then
6252     OPENSSL_LINKAGE="(linked)"
6253 fi
6254 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6255 echo "Alsa support ........... $CFG_ALSA"
6256 if [ "$BUILD_ON_MAC" = "yes" ]; then
6257     echo "CoreWlan support ....... $CFG_COREWLAN"
6258 fi
6259 echo "libICU support ......... $CFG_ICU"
6260 echo "PCRE support ........... $CFG_PCRE"
6261 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6262     echo "Xcb support ............ limited (old version)"
6263 else
6264     echo "Xcb support ............ $CFG_XCB"
6265 fi
6266 echo "Xrender support ........ $CFG_XRENDER"
6267 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6268     echo "XInput2 support ........ $CFG_XINPUT2"
6269 fi
6270 echo "EGLFS support .......... $CFG_EGLFS"
6271 echo "DirectFB support ....... $CFG_DIRECTFB"
6272 echo "LinuxFB support ........ $CFG_LINUXFB"
6273 echo "KMS support ............ $CFG_KMS"
6274 echo
6275
6276 # complain about not being able to use dynamic plugins if we are using a static build
6277 if [ "$CFG_SHARED" = "no" ]; then
6278     echo
6279     echo "WARNING: Using static linking will disable the use of dynamically"
6280     echo "loaded plugins. Make sure to import all needed static plugins,"
6281     echo "or compile needed modules into the library."
6282     echo
6283 fi
6284 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6285     echo
6286     echo "NOTE: When linking against OpenSSL, you can override the default"
6287     echo "library names through OPENSSL_LIBS."
6288     echo "For example:"
6289     echo "    OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6290     echo
6291 fi
6292
6293 exec 1>&3 3>&- # restore stdout
6294 cat $outpath/config.summary # display config feedback to user
6295
6296 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6297     echo
6298     echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6299     echo "if you want a pure debug build."
6300     echo
6301     exit 1
6302 fi
6303
6304 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6305 PROCS=1
6306 EXEC=""
6307
6308
6309 #-------------------------------------------------------------------------------
6310 # build makefiles based on the configuration
6311 #-------------------------------------------------------------------------------
6312
6313 if [ "$CFG_PROCESS" != "no" ]; then
6314
6315     if [ "$CFG_PROCESS" = "full" ]; then
6316         echo "Creating makefiles. Please wait..."
6317         "$outpath/bin/qmake" -r "$relpath"
6318         echo "Done"
6319     else
6320         "$outpath/bin/qmake" "$relpath"
6321     fi
6322
6323     if [ "$OPT_FAST" = "yes" ]; then
6324         PART_ROOTS=
6325         for part in $CFG_BUILD_PARTS; do
6326             case "$part" in
6327             examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6328             esac
6329         done
6330         if [ "x$PART_ROOTS" != "x" ]; then
6331             echo
6332             echo "Creating stub makefiles. Please wait..."
6333             QMAKE="$outpath/bin/qmake"
6334             [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6335             (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6336                 d=${p%/*}
6337                 test -f "$outpath/$d/Makefile" && continue
6338                 echo "  for $relpath/$p"
6339
6340                 mkdir -p "$outpath/$d" || exit
6341                 cat > "$outpath/$d/Makefile" <<EOF || exit
6342 # $outpath/$d/Makefile: generated by configure
6343 #
6344 # WARNING: This makefile will be replaced with a real makefile.
6345 # All changes made to this file will be lost.
6346
6347 QMAKE = "$QMAKE"
6348
6349 $first_tgt
6350 all clean install qmake first Makefile: FORCE
6351         \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6352         \$(MAKE) \$@
6353 FORCE:
6354 EOF
6355             done || exit
6356             echo "Done"
6357         fi
6358     fi
6359 fi
6360
6361 #-------------------------------------------------------------------------------
6362 # check for platforms that we don't yet know about
6363 #-------------------------------------------------------------------------------
6364 if [ "$CFG_ARCH" = "unknown" ]; then
6365 cat <<EOF
6366
6367         NOTICE: configure was unable to determine the architecture
6368         for the $XQMAKESPEC target.
6369
6370         Qt will not use a specialized implementation for any atomic
6371         operations. Instead a generic implemention based on either GCC
6372         intrinsics or C++11 std::atomic<T> will be used (when
6373         available). The generic implementations are generally as fast
6374         as and always as safe as a specialized implementation.
6375
6376         If no generic implementation is available, Qt will use a
6377         fallback UNIX implementation which uses a single
6378         pthread_mutex_t to protect all atomic operations. This
6379         implementation is the slow (but safe) fallback implementation
6380         for architectures Qt does not yet support.
6381 EOF
6382 fi
6383
6384 #-------------------------------------------------------------------------------
6385 # check if the user passed the -no-zlib option, which is no longer supported
6386 #-------------------------------------------------------------------------------
6387 if [ -n "$ZLIB_FORCED" ]; then
6388     which_zlib="supplied"
6389     if [ "$CFG_ZLIB" = "system" ]; then
6390         which_zlib="system"
6391     fi
6392
6393 cat <<EOF
6394
6395         NOTICE: The -no-zlib option was supplied but is no longer
6396         supported.
6397
6398         Qt now requires zlib support in all builds, so the -no-zlib
6399         option was ignored. Qt will be built using the $which_zlib
6400         zlib.
6401 EOF
6402 fi
6403
6404 #-------------------------------------------------------------------------------
6405 # check if the user passed the obsoleted -wayland or -no-wayland flag
6406 #-------------------------------------------------------------------------------
6407 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6408 cat <<EOF
6409
6410         NOTICE: The -wayland and -no-wayland flags are now obsolete
6411
6412         All configuring of QtWayland plugin and QtCompositor happens in the module
6413 EOF
6414 fi
6415
6416 #-------------------------------------------------------------------------------
6417 # check if the user passed the obsoleted -arch or -host-arch options
6418 #-------------------------------------------------------------------------------
6419 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6420 cat <<EOF
6421
6422         NOTICE: The -arch and -host-arch options are obsolete.
6423
6424         Qt now detects the target and host architectures based on compiler
6425         output. Qt will be built using $CFG_ARCH for the target architecture
6426         and $CFG_HOST_ARCH for the host architecture (note that these two
6427         will be the same unless you are cross-compiling).
6428 EOF
6429 fi
6430
6431 #-------------------------------------------------------------------------------
6432 # finally save the executed command to another script
6433 #-------------------------------------------------------------------------------
6434 if [ `basename $0` != "config.status" ]; then
6435     CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6436
6437     # add the system variables
6438     for varname in $SYSTEM_VARIABLES; do
6439         cmd=`echo \
6440 'if [ -n "\$'${varname}'" ]; then
6441     CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6442 fi'`
6443         eval "$cmd"
6444     done
6445
6446     echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6447
6448     [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6449     echo "#!/bin/sh" > "$outpath/config.status"
6450     [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6451         echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6452     [ -n "$PKG_CONFIG_LIBDIR" ] && \
6453         echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6454     echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6455     echo "  $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6456     echo "else" >> "$outpath/config.status"
6457     echo "  $CONFIG_STATUS" >> "$outpath/config.status"
6458     echo "fi" >> "$outpath/config.status"
6459     chmod +x "$outpath/config.status"
6460 fi
6461
6462 if [ -n "$RPATH_MESSAGE" ]; then
6463     echo
6464     echo "$RPATH_MESSAGE"
6465 fi
6466
6467 MAKE=`basename "$MAKE"`
6468 echo
6469 echo Qt is now configured for building. Just run \'$MAKE\'.
6470 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6471     echo Once everything is built, Qt is installed.
6472     echo You should not run \'$MAKE install\'.
6473 else
6474     echo Once everything is built, you must run \'$MAKE install\'.
6475     echo Qt will be installed into $QT_INSTALL_PREFIX
6476 fi
6477 echo
6478 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.
6479 echo