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