[docs] QApplication: fix keyboardInputDirection() docs
[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     -R <string> ........ Add an explicit runtime library path to the Qt
3178                          libraries.
3179     -l <string> ........ Add an explicit library.
3180
3181     -no-rpath .......... Do not use the library install path as a runtime
3182                          library path.
3183  +  -rpath ............. Link Qt libraries and executables using the library
3184                          install path as a runtime library path. Equivalent
3185                          to -R install_libpath
3186
3187     -continue .......... Continue as far as possible if an error occurs.
3188
3189     -verbose, -v ....... Print verbose information about each step of the
3190                          configure process.
3191
3192     -silent ............ Reduce the build output so that warnings and errors
3193                          can be seen more easily.
3194
3195  *  -no-optimized-qmake ... Do not build qmake optimized.
3196     -optimized-qmake ...... Build qmake optimized.
3197
3198     -no-gui ............ Don't build the Qt GUI library
3199
3200  $NSN  -no-nis ............ Do not compile NIS support.
3201  $NSY  -nis ............... Compile NIS support.
3202
3203  $CUN  -no-cups ........... Do not compile CUPS support.
3204  $CUY  -cups .............. Compile CUPS support.
3205                          Requires cups/cups.h and libcups.so.2.
3206
3207  $CIN  -no-iconv .......... Do not compile support for iconv(3).
3208  $CIY  -iconv ............. Compile support for iconv(3).
3209
3210     -no-icu ............ Do not compile support for ICU libraries.
3211  +  -icu ............... Compile support for ICU libraries.
3212
3213     -no-strip .......... Do not strip binaries and libraries of unneeded symbols.
3214  *  -strip ............. Strip binaries and libraries of unneeded symbols when installing.
3215
3216  $PHN  -no-pch ............ Do not use precompiled header support.
3217  $PHY  -pch ............... Use precompiled header support.
3218
3219  $DBN  -no-dbus ........... Do not compile the QtDBus module.
3220  $DBY  -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3221     -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3222
3223     -reduce-relocations ..... Reduce relocations in the libraries through extra
3224                               linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3225                               experimental; needs GNU ld >= 2.18).
3226
3227     -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3228
3229     -device <name> ............... Cross-compile for device <name> (experimental)
3230     -device-option <key=value> ... Add device specific options for the device mkspec
3231                                    (experimental)
3232
3233  $SBN  -no-separate-debug-info . Do not store debug information in a separate file.
3234  $SBY  -separate-debug-info .... Strip debug information into a separate .debug file.
3235
3236  $XCBN  -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3237  $XCBY  -xcb ............... Compile Xcb support.
3238
3239  $EGLFSN  -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3240  $EGLFSY  -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3241
3242  $DFBN  -no-directfb ....... Do not compile DirectFB support.
3243  $DFBY  -directfb .......... Compile DirectFB support.
3244
3245  $LFBN  -no-linuxfb ........ Do not compile Linux Framebuffer support.
3246  $LFBY  -linuxfb ........... Compile Linux Framebuffer support.
3247
3248  $KMSN  -no-kms ............ Do not compile KMS support.
3249  $KMSY  -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3250
3251     -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3252
3253     -xplatform target ... The target platform when cross-compiling.
3254
3255     -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3256     -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3257
3258     -no-feature-<feature> Do not compile in <feature>.
3259     -feature-<feature> .. Compile in <feature>. The available features
3260                           are described in src/corelib/global/qfeatures.txt
3261
3262     -no-freetype ........ Do not compile in Freetype2 support.
3263     -qt-freetype ........ Use the libfreetype bundled with Qt.
3264  *  -system-freetype .... Use libfreetype from the operating system.
3265                           See http://www.freetype.org/
3266
3267     -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3268                           default ($CFG_QCONFIG).
3269
3270     -no-opengl .......... Do not support OpenGL.
3271     -opengl <api> ....... Enable OpenGL support
3272                           With no parameter, this will attempt to auto-detect
3273                           OpenGL ES 2, or regular desktop OpenGL.
3274                           Use es2 for <api> to override auto-detection.
3275
3276  $GBN  -no-glib ........... Do not compile Glib support.
3277  $GBY  -glib .............. Compile Glib support.
3278 EOF
3279
3280 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3281     cat << EOF
3282
3283  $X2N  -no-xinput2......... Do not compile XInput2 support.
3284  $X2Y  -xinput2............ Compile XInput2 support.
3285
3286 EOF
3287
3288 fi
3289
3290 if [ "$BUILD_ON_MAC" = "yes" ]; then
3291     cat << EOF
3292
3293 Qt/Mac only:
3294
3295     -Fstring ........... Add an explicit framework path.
3296     -fw string ......... Add an explicit framework.
3297
3298  *  -framework ......... Build Qt as a series of frameworks and
3299                          link tools against those frameworks.
3300     -no-framework ...... Do not build Qt as a series of frameworks.
3301
3302     -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3303                          To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3304
3305     -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3306  *  -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3307                          QT_ENABLE_HARFBUZZ environment variable.
3308
3309 EOF
3310 fi
3311
3312    [ "x$ERROR" = "xyes" ] && exit 1
3313    exit 0
3314 fi # Help
3315
3316
3317 # -----------------------------------------------------------------------------
3318 # LICENSING, INTERACTIVE PART
3319 # -----------------------------------------------------------------------------
3320
3321 echo
3322 echo "This is the Qt ${EditionString} Edition."
3323 echo
3324
3325 if [ "$Edition" = "OpenSource" ]; then
3326     while true; do
3327         echo "You are licensed to use this software under the terms of"
3328         echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3329         if [ -f "$relpath/LICENSE.GPL3" ]; then
3330             echo "You are also licensed to use this software under the terms of"
3331             echo "the GNU General Public License (GPL) versions 3."
3332             affix="either"
3333         else
3334             affix="the"
3335         fi
3336         echo
3337         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3338             echo "You have already accepted the terms of the $LicenseType license."
3339             acceptance=yes
3340         else
3341             if [ -f "$relpath/LICENSE.GPL3" ]; then
3342                 echo "Type '3' to view the GNU General Public License version 3."
3343             fi
3344             echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3345             echo "Type 'yes' to accept this license offer."
3346             echo "Type 'no' to decline this license offer."
3347             echo
3348             echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3349             read acceptance
3350         fi
3351         echo
3352         if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3353             break
3354         elif [ "$acceptance" = "no" ]; then
3355             echo "You are not licensed to use this software."
3356             echo
3357             exit 1
3358         elif [ "$acceptance" = "3" ]; then
3359             more "$relpath/LICENSE.GPL3"
3360         elif [ "$acceptance" = "L" ]; then
3361             more "$relpath/LICENSE.LGPL"
3362         fi
3363     done
3364 elif [ "$Edition" = "Preview" ]; then
3365     TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3366     while true; do
3367
3368         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3369             echo "You have already accepted the terms of the $LicenseType license."
3370             acceptance=yes
3371         else
3372             echo "You are licensed to use this software under the terms of"
3373             echo "the $TheLicense"
3374             echo
3375             echo "Type '?' to read the Preview License."
3376             echo "Type 'yes' to accept this license offer."
3377             echo "Type 'no' to decline this license offer."
3378             echo
3379             echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3380             read acceptance
3381         fi
3382         echo
3383         if [ "$acceptance" = "yes" ]; then
3384             break
3385         elif [ "$acceptance" = "no" ] ;then
3386             echo "You are not licensed to use this software."
3387             echo
3388             exit 0
3389         elif [ "$acceptance" = "?" ]; then
3390             more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3391         fi
3392     done
3393 elif [ "$Edition" != "OpenSource" ]; then
3394     if [ -n "$ExpiryDate" ]; then
3395         ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3396         [ -z "$ExpiryDate" ] && ExpiryDate="0"
3397         Today=`date +%Y%m%d`
3398         if [ "$Today" -gt "$ExpiryDate" ]; then
3399             case "$LicenseType" in
3400             Commercial|Academic|Educational)
3401                 echo
3402                 echo "WARNING  WARNING  WARNING  WARNING"
3403                 echo
3404                 echo "  Your support and upgrade period has expired."
3405                 echo
3406                 echo "  You may continue to use your last licensed release"
3407                 echo "  of Qt under the terms of your existing license"
3408                 echo "  agreement. But you are not entitled to technical"
3409                 echo "  support, nor are you entitled to use any more recent"
3410                 echo "  Qt releases."
3411                 echo
3412                 echo "  Please use the contact form at http://qt.digia.com/contact-us"
3413                 echo "  to renew your support and upgrades for this license."
3414                 echo
3415                 echo "WARNING  WARNING  WARNING  WARNING"
3416                 echo
3417                 sleep 3
3418                 ;;
3419             Evaluation|*)
3420                 echo
3421                 echo "NOTICE  NOTICE  NOTICE  NOTICE"
3422                 echo
3423                 echo "  Your Evaluation license has expired."
3424                 echo
3425                 echo "  You are no longer licensed to use this software. Please"
3426                 echo "  use the contact form at http://qt.digia.com/contact-us to"
3427                 echo "  purchase license, or install the Qt Open Source Edition"
3428                 echo "  if you intend to develop free software."
3429                 echo
3430                 echo "NOTICE  NOTICE  NOTICE  NOTICE"
3431                 echo
3432                 exit 1
3433                 ;;
3434             esac
3435         fi
3436     fi
3437     TheLicense=`head -n 1 "$outpath/LICENSE"`
3438     while true; do
3439         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3440             echo "You have already accepted the terms of the $TheLicense."
3441             acceptance=yes
3442         else
3443             echo "You are licensed to use this software under the terms of"
3444             echo "the $TheLicense."
3445             echo
3446             echo "Type '?' to view the $TheLicense."
3447             echo "Type 'yes' to accept this license offer."
3448             echo "Type 'no' to decline this license offer."
3449             echo
3450             echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3451             read acceptance
3452         fi
3453         echo
3454         if [ "$acceptance" = "yes" ]; then
3455             break
3456         elif [ "$acceptance" = "no" ]; then
3457             echo "You are not licensed to use this software."
3458             echo
3459             exit 1
3460         else [ "$acceptance" = "?" ]
3461             more "$outpath/LICENSE"
3462         fi
3463     done
3464 fi
3465
3466 # this should be moved somewhere else
3467 case "$PLATFORM" in
3468 aix-*)
3469     AIX_VERSION=`uname -v`
3470     if [ "$AIX_VERSION" -lt "5" ]; then
3471         QMakeVar add QMAKE_LIBS_X11 -lbind
3472     fi
3473     ;;
3474 *)
3475     ;;
3476 esac
3477
3478 #-------------------------------------------------------------------------------
3479 # generate qconfig.cpp
3480 #-------------------------------------------------------------------------------
3481 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3482
3483 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3484 /* License Info */
3485 static const char qt_configure_licensee_str          [256 + 12] = "qt_lcnsuser=$Licensee";
3486 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3487
3488 /* Installation date */
3489 static const char qt_configure_installation          [12+11]    = "qt_instdate=`date +%Y-%m-%d`";
3490
3491 /* Installation Info */
3492 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3493     "qt_prfxpath=$QT_INSTALL_PREFIX",
3494     "qt_docspath=$QT_INSTALL_DOCS",
3495     "qt_hdrspath=$QT_INSTALL_HEADERS",
3496     "qt_libspath=$QT_INSTALL_LIBS",
3497     "qt_binspath=$QT_INSTALL_BINS",
3498     "qt_plugpath=$QT_INSTALL_PLUGINS",
3499     "qt_impspath=$QT_INSTALL_IMPORTS",
3500     "qt_datapath=$QT_INSTALL_DATA",
3501     "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3502     "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3503     "qt_tstspath=$QT_INSTALL_TESTS",
3504 #ifdef QT_BUILD_QMAKE
3505     "qt_ssrtpath=$CFG_SYSROOT",
3506     "qt_hpfxpath=$QT_HOST_PREFIX",
3507     "qt_hbinpath=$QT_HOST_BINS",
3508     "qt_hdatpath=$QT_HOST_DATA",
3509 #endif
3510 };
3511 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3512 EOF
3513
3514 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3515
3516 /* strlen( "qt_lcnsxxxx" ) == 12 */
3517 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3518 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3519
3520 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3521 EOF
3522
3523 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3524 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3525     rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3526 else
3527     [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3528     mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3529     chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3530 fi
3531
3532 # -----------------------------------------------------------------------------
3533 if [ "$LicenseType" = "Evaluation" ]; then
3534     EVALKEY=qt_qevalkey=$LicenseKeyExt
3535 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3536     EVALKEY=qt_qevalkey=
3537 fi
3538
3539 if [ -n "$EVALKEY" ]; then
3540     rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3541     cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3542 /* Evaluation license key */
3543 static const volatile char qt_eval_key_data                   [512 + 12] = "$EVALKEY";
3544 EOF
3545     chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3546 fi
3547
3548
3549 # -----------------------------------------------------------------------------
3550 # build qmake
3551 # -----------------------------------------------------------------------------
3552
3553 # symlink includes
3554 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3555     "$outpath/bin/syncqt" -minimal -module QtCore "$relpath" || exit 1
3556 fi
3557
3558 # $1: input variable name (awk regexp)
3559 # $2: optional output variable name
3560 # $3: optional value transformation (sed command)
3561 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3562 # is where the resulting variable is written to
3563 setBootstrapVariable()
3564 {
3565     getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3566 }
3567
3568 # build qmake
3569 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3570     echo "Creating qmake. Please wait..."
3571
3572     #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3573     rm -rf mkspecs/default mkspecs/default-host
3574     ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3575     ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3576     mkdir -p "$outpath/qmake" || exit
3577     # fix makefiles
3578     for mkfile in GNUmakefile Makefile; do
3579         EXTRA_LFLAGS=
3580         EXTRA_CFLAGS=
3581         in_mkfile="${mkfile}.in"
3582         if [ "$mkfile" = "Makefile" ]; then
3583 #           if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3584 #               (cd qmake && qmake) >/dev/null 2>&1 && continue
3585 #           fi
3586             in_mkfile="${mkfile}.unix"
3587         fi
3588         in_mkfile="$relpath/qmake/$in_mkfile"
3589         mkfile="$outpath/qmake/$mkfile"
3590         if [ -f "$mkfile" ]; then
3591             [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3592             rm -f "$mkfile"
3593         fi
3594         [ -f "$in_mkfile" ] || continue
3595
3596         echo "########################################################################" > "$mkfile"
3597         echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3598         echo "########################################################################" >> "$mkfile"
3599         EXTRA_OBJS=
3600         EXTRA_SRCS=
3601         EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3602         EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3603         EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3604
3605         if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3606             EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3607         fi
3608
3609         [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3610         setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3611         setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3612         setBootstrapVariable QMAKE_CFLAGS
3613         setBootstrapVariable QMAKE_CXXFLAGS
3614         setBootstrapVariable QMAKE_LFLAGS
3615
3616         if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3617             EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3618             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3619         fi
3620         if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3621             setBootstrapVariable QMAKE_CFLAGS_RELEASE
3622             setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3623             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3624             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3625         elif [ "$CFG_DEBUG" = "yes" ]; then
3626             setBootstrapVariable QMAKE_CFLAGS_DEBUG
3627             setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3628             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3629             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3630         fi
3631
3632         if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3633             setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3634             for rpath in $RPATH_FLAGS; do
3635                 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3636             done
3637         fi
3638         if [ "$BUILD_ON_MAC" = "yes" ]; then
3639             echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3640             echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3641             echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3642             EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3643             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3644             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3645             EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3646             EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3647             if [ '!' -z "$CFG_SDK" ]; then
3648                 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3649                 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3650                 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3651                 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3652                 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3653             fi
3654         fi
3655         if [ '!' -z "$D_FLAGS" ]; then
3656             EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3657         fi
3658         QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3659         [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3660         QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3661         [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3662         echo >>"$mkfile"
3663         adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3664         adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3665         adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3666         sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3667             -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3668             -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3669             -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3670             -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3671             -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3672             -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3673
3674         if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3675             (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3676             sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3677             sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3678             rm "$mkfile.tmp"
3679         fi
3680     done
3681
3682     (cd "$outpath/qmake"; "$MAKE") || exit 2
3683 fi # Build qmake
3684
3685 #-------------------------------------------------------------------------------
3686 # create a qt.conf for the Qt build tree itself
3687 #-------------------------------------------------------------------------------
3688
3689 QTCONFFILE="$outpath/bin/qt.conf"
3690 cat > "$QTCONFFILE" <<EOF
3691 [EffectivePaths]
3692 Prefix=..
3693 EOF
3694
3695 #-------------------------------------------------------------------------------
3696 # write out device config before we run the test.
3697 #-------------------------------------------------------------------------------
3698 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3699 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3700     rm -f "$DEVICE_VARS_FILE"
3701 else
3702     mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3703     DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3704 fi
3705
3706 #-------------------------------------------------------------------------------
3707 # Detect pkg-config
3708 #-------------------------------------------------------------------------------
3709 if [ -z "$PKG_CONFIG" ]; then
3710     # See if PKG_CONFIG is set in the mkspec:
3711     PKG_CONFIG="`"$outpath/bin/qmake" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" /dev/null 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`"
3712 fi
3713 if [ -z "$PKG_CONFIG" ]; then
3714     PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3715 fi
3716
3717 if [ "$CFG_PKGCONFIG" = "no" ]; then
3718     PKG_CONFIG=
3719 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3720     echo >&2 ""
3721     echo >&2 "You have asked to use pkg-config. Please make sure you have"
3722     echo >&2 "a correctly setup pkg-config environment!"
3723     echo >&2 ""
3724 elif [ -n "$PKG_CONFIG" ]; then
3725     # found a pkg-config
3726     if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3727         # when xcompiling, check environment to see if it's actually usable
3728         if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3729             if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3730                 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3731                 if [ -n "$GCC_MACHINE_DUMP" ]; then
3732                     PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3733                 fi
3734                 export PKG_CONFIG_LIBDIR
3735                 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3736             elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3737                 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3738                 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3739                 echo >&2 "Set this variable to the directory that contains target .pc files"
3740                 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3741                 echo >&2 "use -force-pkg-config to override this test."
3742                 exit 101
3743             else
3744                 PKG_CONFIG=
3745                 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3746             fi
3747         fi
3748         if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3749             if [ -n "$CFG_SYSROOT" ]; then
3750                 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3751                 export PKG_CONFIG_SYSROOT_DIR
3752                 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3753             elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3754                 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3755                 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3756                 echo >&2 "or use -force-pkg-config to override this test."
3757                 exit 101
3758             else
3759                 PKG_CONFIG=
3760                 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3761             fi
3762         fi
3763     fi
3764 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3765     echo >&2 "Could not detect pkg-config from mkspec or PATH."
3766     exit 101
3767 fi
3768
3769 if [ -z "$PKG_CONFIG" ]; then
3770     QT_CONFIG="$QT_CONFIG no-pkg-config"
3771 fi
3772
3773 #-------------------------------------------------------------------------------
3774 # tests that need qmake
3775 #-------------------------------------------------------------------------------
3776
3777 # parameters: path, name, extra args
3778 compileTest()
3779 {
3780     path=config.tests/$1
3781     name=$2
3782     shift 2
3783     "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_SDK_FLAG "$@"
3784 }
3785
3786 #-------------------------------------------------------------------------------
3787 # determine the target and host architectures
3788 #-------------------------------------------------------------------------------
3789
3790 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3791 OUTFILE=$outpath/arch.result
3792 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_SDK_FLAG
3793 if [ $? -eq 0 ]; then
3794     eval `cat "$OUTFILE"`
3795 else
3796     echo
3797     echo "Could not determine the target architecture!"
3798     echo "Turn on verbose messaging (-v) to see the final report."
3799 fi
3800 rm -f "$OUTFILE" 2>/dev/null
3801 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3802
3803 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3804     # Do the same test again, using the host compiler
3805     SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_SDK_FLAG
3806     if [ $? -eq 0 ]; then
3807         eval `cat "$OUTFILE"`
3808     else
3809         echo
3810         echo "Could not determine the host architecture!"
3811         echo "Turn on verbose messaging (-v) to see the final report."
3812     fi
3813     rm -f "$OUTFILE" 2>/dev/null
3814     [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3815 else
3816     # not cross compiling, host == target
3817     CFG_HOST_ARCH="$CFG_ARCH"
3818     CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3819 fi
3820 unset OUTFILE
3821
3822 if [ "$OPT_VERBOSE" = "yes" ]; then
3823     echo "System architecture: '$CFG_ARCH'"
3824     echo "Host architecture: '$CFG_HOST_ARCH'"
3825 fi
3826
3827 #-------------------------------------------------------------------------------
3828 # functionality tests
3829 #-------------------------------------------------------------------------------
3830
3831 # Detect C++11 support
3832 if [ "$CFG_CXX11" != "no" ]; then
3833     if compileTest common/c++11 "C++11"; then
3834         CFG_CXX11="yes"
3835     elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3836         echo "C++11 support cannot be enabled due to functionality tests!"
3837         echo " Turn on verbose messaging (-v) to $0 to see the final report."
3838         echo " If you believe this message is in error you may use the continue"
3839         echo " switch (-continue) to $0 to continue."
3840         exit 101
3841     else
3842         CFG_CXX11="no"
3843     fi
3844 fi
3845
3846 # detect availability of float math.h functions
3847 if compileTest unix/floatmath "floatmath"; then
3848     CFG_USE_FLOATMATH=yes
3849 else
3850     CFG_USE_FLOATMATH=no
3851 fi
3852
3853 # detect sse2 support
3854 if [ "${CFG_SSE2}" = "auto" ]; then
3855     if compileTest common/sse2 "sse2"; then
3856        CFG_SSE2=yes
3857     else
3858        CFG_SSE2=no
3859     fi
3860 fi
3861
3862 # detect sse3 support
3863 if [ "${CFG_SSE3}" = "auto" ]; then
3864     if compileTest common/sse3 "sse3"; then
3865        CFG_SSE3=yes
3866     else
3867        CFG_SSE3=no
3868     fi
3869 fi
3870
3871 # detect ssse3 support
3872 if [ "${CFG_SSSE3}" = "auto" ]; then
3873     if compileTest common/ssse3 "ssse3"; then
3874        CFG_SSSE3=yes
3875     else
3876        CFG_SSSE3=no
3877     fi
3878 fi
3879
3880 # detect sse4.1 support
3881 if [ "${CFG_SSE4_1}" = "auto" ]; then
3882     if compileTest common/sse4_1 "sse4_1"; then
3883        CFG_SSE4_1=yes
3884     else
3885        CFG_SSE4_1=no
3886     fi
3887 fi
3888
3889 # detect sse4.2 support
3890 if [ "${CFG_SSE4_2}" = "auto" ]; then
3891     if compileTest common/sse4_2 "sse4_2"; then
3892        CFG_SSE4_2=yes
3893     else
3894        CFG_SSE4_2=no
3895     fi
3896 fi
3897
3898 # detect avx support
3899 if [ "${CFG_AVX}" = "auto" ]; then
3900     if compileTest common/avx "avx"; then
3901        case "$XQMAKESPEC" in
3902            *g++*|*-clang*)
3903                # Some clang versions produce internal compiler errors compiling Qt AVX code
3904                case `$TEST_COMPILER --version` in
3905                    Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3906                        CFG_AVX=no
3907                        if [ "$OPT_VERBOSE" = "yes" ]; then
3908                            echo 'AVX support disabled for blacklisted clang compiler'
3909                        fi
3910                        ;;
3911                    *)
3912                        CFG_AVX=yes
3913                        ;;
3914                esac
3915                ;;
3916            *)
3917                CFG_AVX=yes
3918                ;;
3919        esac
3920     else
3921        CFG_AVX=no
3922     fi
3923 fi
3924
3925 # detect avx2 support
3926 if [ "${CFG_AVX}" = "no" ]; then
3927     CFG_AVX2=no
3928 fi
3929 if [ "${CFG_AVX2}" = "auto" ]; then
3930     if compileTest common/avx2 "avx2"; then
3931        CFG_AVX2=yes
3932     else
3933        CFG_AVX2=no
3934     fi
3935 fi
3936
3937 # check iWMMXt support
3938 if [ "$CFG_IWMMXT" = "yes" ]; then
3939     compileTest unix/iwmmxt "iwmmxt"
3940     if [ $? != "0" ]; then
3941         echo "The iWMMXt functionality test failed!"
3942         echo " Please make sure your compiler supports iWMMXt intrinsics!"
3943         exit 1
3944     fi
3945 fi
3946
3947 # detect neon support
3948 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3949     if compileTest unix/neon "neon"; then
3950         CFG_NEON=yes
3951     else
3952         CFG_NEON=no
3953     fi
3954 elif [ "$CFG_ARCH" != "arm" ]; then
3955     CFG_NEON=no
3956 fi
3957
3958 # detect mips_dsp support
3959 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
3960     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
3961         CFG_MIPS_DSP=yes
3962     else
3963         CFG_MIPS_DSP=no
3964     fi
3965 elif [ "$CFG_ARCH" != "mips" ]; then
3966     CFG_MIPS_DSP=no
3967 fi
3968
3969 # detect mips_dspr2 support
3970 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
3971     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
3972         CFG_MIPS_DSPR2=yes
3973     else
3974         CFG_MIPS_DSPR2=no
3975     fi
3976 elif [ "$CFG_ARCH" != "mips" ]; then
3977     CFG_MIPS_DSPR2=no
3978 fi
3979
3980 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3981
3982 # detect zlib
3983 if [ "$CFG_ZLIB" = "no" ]; then
3984     # Note: Qt no longer support builds without zlib
3985     # So we force a "no" to be "auto" here.
3986     # If you REALLY really need no zlib support, you can still disable
3987     # it by doing the following:
3988     #   add "no-zlib" to mkspecs/qconfig.pri
3989     #   #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
3990     #
3991     # There's no guarantee that Qt will build under those conditions
3992
3993     CFG_ZLIB=auto
3994     ZLIB_FORCED=yes
3995 fi
3996 if [ "$CFG_ZLIB" = "auto" ]; then
3997     if compileTest unix/zlib "zlib"; then
3998        CFG_ZLIB=system
3999     else
4000        CFG_ZLIB=yes
4001     fi
4002 fi
4003
4004 if [ "$CFG_LARGEFILE" = "auto" ]; then
4005     #Large files should be enabled for all Linux systems
4006     CFG_LARGEFILE=yes
4007 fi
4008
4009 if [ "$CFG_GUI" = "no" ]; then
4010     QPA_PLATFORM_GUARD=no
4011 fi
4012
4013 # detect how jpeg should be built
4014 if [ "$CFG_JPEG" = "auto" ]; then
4015     if [ "$CFG_SHARED" = "yes" ]; then
4016         CFG_JPEG=plugin
4017     else
4018         CFG_JPEG=yes
4019     fi
4020 fi
4021 # detect jpeg
4022 if [ "$CFG_LIBJPEG" = "auto" ]; then
4023     if compileTest unix/libjpeg "libjpeg"; then
4024        CFG_LIBJPEG=system
4025     else
4026        CFG_LIBJPEG=qt
4027     fi
4028 fi
4029
4030 # detect how gif should be built
4031 if [ "$CFG_GIF" = "auto" ]; then
4032     if [ "$CFG_SHARED" = "yes" ]; then
4033         CFG_GIF=plugin
4034     else
4035         CFG_GIF=yes
4036     fi
4037 fi
4038
4039 # detect png
4040 if [ "$CFG_LIBPNG" = "auto" ]; then
4041     if compileTest unix/libpng "libpng"; then
4042        CFG_LIBPNG=system
4043     else
4044        CFG_LIBPNG=qt
4045     fi
4046 fi
4047
4048 if [ "$CFG_EGLFS" = "yes" ]; then
4049     if [ "$CFG_EGL" = "no" ]; then
4050         echo "The EGLFS plugin requires EGL support and cannot be built"
4051         exit 101
4052     fi
4053     if [ "$CFG_OPENGL" != "es2" ]; then
4054         echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4055         exit 101
4056     fi
4057     CFG_OPENGL="es2"
4058     CFG_EGL=yes
4059 fi
4060
4061 if [ "$CFG_KMS" = "yes" ]; then
4062     if [ "$CFG_EGL" = "no" ]; then
4063         echo "The KMS plugin requires EGL support and cannot be built"
4064         exit 101
4065     fi
4066     if [ "$CFG_OPENGL" != "es2" ]; then
4067         echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4068         exit 101
4069     fi
4070 fi
4071
4072 # auto-detect SQL-modules support
4073 for _SQLDR in $CFG_SQL_AVAILABLE; do
4074         case $_SQLDR in
4075         mysql)
4076             if [ "$CFG_SQL_mysql" != "no" ]; then
4077                 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4078                 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4079                     QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4080                     QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4081                     QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4082                     QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4083                     QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4084                 fi
4085                 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4086                     if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4087                         echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4088                         echo " You need MySql 4 or higher."
4089                         echo " If you believe this message is in error you may use the continue"
4090                         echo " switch (-continue) to $0 to continue."
4091                         exit 101
4092                     else
4093                         CFG_SQL_mysql="no"
4094                         QT_LFLAGS_MYSQL=""
4095                         QT_LFLAGS_MYSQL_R=""
4096                         QT_CFLAGS_MYSQL=""
4097                     fi
4098                 else
4099                     if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4100                         QMakeVar add CONFIG use_libmysqlclient_r
4101                         if [ "$CFG_SQL_mysql" = "auto" ]; then
4102                             CFG_SQL_mysql=plugin
4103                         fi
4104                         QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4105                     elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4106                         if [ "$CFG_SQL_mysql" = "auto" ]; then
4107                             CFG_SQL_mysql=plugin
4108                         fi
4109                     else
4110                         if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4111                             echo "MySQL support cannot be enabled due to functionality tests!"
4112                             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4113                             echo " If you believe this message is in error you may use the continue"
4114                             echo " switch (-continue) to $0 to continue."
4115                             exit 101
4116                         else
4117                             CFG_SQL_mysql=no
4118                             QT_LFLAGS_MYSQL=""
4119                             QT_LFLAGS_MYSQL_R=""
4120                             QT_CFLAGS_MYSQL=""
4121                         fi
4122                     fi
4123                 fi
4124             fi
4125             ;;
4126         psql)
4127             if [ "$CFG_SQL_psql" != "no" ]; then
4128                 # Be careful not to use native pg_config when cross building.
4129                 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4130                     QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4131                     QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4132                 fi
4133                 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4134                 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4135                 # But, respect PSQL_LIBS if set
4136                 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4137                 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4138                     if [ "$CFG_SQL_psql" = "auto" ]; then
4139                         CFG_SQL_psql=plugin
4140                     fi
4141                 else
4142                     if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4143                         echo "PostgreSQL support cannot be enabled due to functionality tests!"
4144                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4145                         echo " If you believe this message is in error you may use the continue"
4146                         echo " switch (-continue) to $0 to continue."
4147                         exit 101
4148                     else
4149                         CFG_SQL_psql=no
4150                         QT_CFLAGS_PSQL=""
4151                         QT_LFLAGS_PSQL=""
4152                     fi
4153                 fi
4154             fi
4155         ;;
4156         odbc)
4157             if [ "$CFG_SQL_odbc" != "no" ]; then
4158                 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4159                     if [ "$CFG_SQL_odbc" = "auto" ]; then
4160                         CFG_SQL_odbc=plugin
4161                     fi
4162                 else
4163                     if compileTest unix/iodbc "iODBC"; then
4164                         QT_LFLAGS_ODBC="-liodbc"
4165                         if [ "$CFG_SQL_odbc" = "auto" ]; then
4166                             CFG_SQL_odbc=plugin
4167                         fi
4168                     else
4169                         if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4170                             echo "ODBC support cannot be enabled due to functionality tests!"
4171                             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4172                             echo " If you believe this message is in error you may use the continue"
4173                             echo " switch (-continue) to $0 to continue."
4174                             exit 101
4175                         else
4176                             CFG_SQL_odbc=no
4177                         fi
4178                     fi
4179                 fi
4180             fi
4181             ;;
4182         oci)
4183             if [ "$CFG_SQL_oci" != "no" ]; then
4184                 if compileTest unix/oci "OCI"; then
4185                     if [ "$CFG_SQL_oci" = "auto" ]; then
4186                         CFG_SQL_oci=plugin
4187                     fi
4188                 else
4189                     if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4190                         echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4191                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4192                         echo " If you believe this message is in error you may use the continue"
4193                         echo " switch (-continue) to $0 to continue."
4194                         exit 101
4195                     else
4196                         CFG_SQL_oci=no
4197                     fi
4198                 fi
4199             fi
4200             ;;
4201         tds)
4202             if [ "$CFG_SQL_tds" != "no" ]; then
4203                 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4204                 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4205                 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4206                     if [ "$CFG_SQL_tds" = "auto" ]; then
4207                         CFG_SQL_tds=plugin
4208                     fi
4209                 else
4210                     if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4211                         echo "TDS support cannot be enabled due to functionality tests!"
4212                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4213                         echo " If you believe this message is in error you may use the continue"
4214                         echo " switch (-continue) to $0 to continue."
4215                         exit 101
4216                     else
4217                         CFG_SQL_tds=no
4218                     fi
4219                 fi
4220             fi
4221             ;;
4222         db2)
4223             if [ "$CFG_SQL_db2" != "no" ]; then
4224                 if compileTest unix/db2 "DB2"; then
4225                     if [ "$CFG_SQL_db2" = "auto" ]; then
4226                         CFG_SQL_db2=plugin
4227                     fi
4228                 else
4229                     if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4230                         echo "ODBC support cannot be enabled due to functionality tests!"
4231                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4232                         echo " If you believe this message is in error you may use the continue"
4233                         echo " switch (-continue) to $0 to continue."
4234                         exit 101
4235                     else
4236                         CFG_SQL_db2=no
4237                     fi
4238                 fi
4239             fi
4240             ;;
4241         ibase)
4242             if [ "$CFG_SQL_ibase" != "no" ]; then
4243                 if compileTest unix/ibase "InterBase"; then
4244                     if [ "$CFG_SQL_ibase" = "auto" ]; then
4245                         CFG_SQL_ibase=plugin
4246                     fi
4247                 else
4248                     if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4249                         echo "InterBase support cannot be enabled due to functionality tests!"
4250                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4251                         echo " If you believe this message is in error you may use the continue"
4252                         echo " switch (-continue) to $0 to continue."
4253                         exit 101
4254                     else
4255                         CFG_SQL_ibase=no
4256                     fi
4257                 fi
4258             fi
4259             ;;
4260         sqlite2)
4261             if [ "$CFG_SQL_sqlite2" != "no" ]; then
4262                 if compileTest unix/sqlite2 "SQLite2"; then
4263                     if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4264                         CFG_SQL_sqlite2=plugin
4265                     fi
4266                 else
4267                     if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4268                         echo "SQLite2 support cannot be enabled due to functionality tests!"
4269                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4270                         echo " If you believe this message is in error you may use the continue"
4271                         echo " switch (-continue) to $0 to continue."
4272                         exit 101
4273                     else
4274                         CFG_SQL_sqlite2=no
4275                     fi
4276                 fi
4277             fi
4278             ;;
4279         sqlite)
4280             if [ "$CFG_SQL_sqlite" != "no" ]; then
4281                 SQLITE_AUTODETECT_FAILED="no"
4282                 if [ "$CFG_SQLITE" = "system" ]; then
4283                     if [ -n "$PKG_CONFIG" ]; then
4284                         QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4285                         QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4286                     else
4287                         QT_CFLAGS_SQLITE=
4288                         QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4289                     fi
4290                     if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4291                         if [ "$CFG_SQL_sqlite" = "auto" ]; then
4292                             CFG_SQL_sqlite=plugin
4293                         fi
4294                         QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4295                     else
4296                         SQLITE_AUTODETECT_FAILED="yes"
4297                         CFG_SQL_sqlite=no
4298                     fi
4299                 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4300                     if [ "$CFG_SQL_sqlite" = "auto" ]; then
4301                             CFG_SQL_sqlite=plugin
4302                     fi
4303                 else
4304                     SQLITE_AUTODETECT_FAILED="yes"
4305                     CFG_SQL_sqlite=no
4306                 fi
4307
4308                 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4309                     echo "SQLite support cannot be enabled due to functionality tests!"
4310                     echo " Turn on verbose messaging (-v) to $0 to see the final report."
4311                     echo " If you believe this message is in error you may use the continue"
4312                     echo " switch (-continue) to $0 to continue."
4313                     exit 101
4314                 fi
4315             fi
4316             ;;
4317         *)
4318             if [ "$OPT_VERBOSE" = "yes" ]; then
4319                 echo "unknown SQL driver: $_SQLDR"
4320             fi
4321             ;;
4322         esac
4323 done
4324
4325 # auto-detect NIS support
4326 if [ "$CFG_NIS" != "no" ]; then
4327     if compileTest unix/nis "NIS"; then
4328         CFG_NIS=yes
4329     else
4330         if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4331             echo "NIS support cannot be enabled due to functionality tests!"
4332             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4333             echo " If you believe this message is in error you may use the continue"
4334             echo " switch (-continue) to $0 to continue."
4335             exit 101
4336         else
4337             CFG_NIS=no
4338         fi
4339     fi
4340 fi
4341
4342 # auto-detect CUPS support
4343 if [ "$CFG_CUPS" != "no" ]; then
4344     if compileTest unix/cups "Cups"; then
4345         CFG_CUPS=yes
4346     else
4347         if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4348             echo "Cups support cannot be enabled due to functionality tests!"
4349             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4350             echo " If you believe this message is in error you may use the continue"
4351             echo " switch (-continue) to $0 to continue."
4352             exit 101
4353         else
4354             CFG_CUPS=no
4355         fi
4356     fi
4357 fi
4358
4359 # auto-detect iconv(3) support
4360 if [ "$CFG_ICONV" != "no" ]; then
4361     if [ "$XPLATFORM_MINGW" = "yes" ]; then
4362         CFG_ICONV=no
4363     elif compileTest unix/iconv "POSIX iconv"; then
4364         CFG_ICONV=yes
4365     elif compileTest unix/sun-libiconv "SUN libiconv"; then
4366         CFG_ICONV=sun
4367     elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4368         CFG_ICONV=gnu
4369     else
4370         if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4371             echo "Iconv support cannot be enabled due to functionality tests!"
4372             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4373             echo " If you believe this message is in error you may use the continue"
4374             echo " switch (-continue) to $0 to continue."
4375             exit 101
4376         else
4377             CFG_ICONV=no
4378         fi
4379     fi
4380 fi
4381
4382 # auto-detect libdbus-1 support
4383 if [ "$CFG_DBUS" != "no" ]; then
4384     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4385         QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4386         QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4387     fi
4388     if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4389         [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4390         QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4391         QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4392     else
4393         if [ "$CFG_DBUS" = "auto" ]; then
4394             CFG_DBUS=no
4395         elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4396             # CFG_DBUS is "yes" or "linked" here
4397
4398             echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4399             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4400             echo " If you believe this message is in error you may use the continue"
4401             echo " switch (-continue) to $0 to continue."
4402             exit 101
4403         fi
4404     fi
4405 fi
4406
4407 # auto-detect Glib support
4408 if [ "$CFG_GLIB" != "no" ]; then
4409     if [ -n "$PKG_CONFIG" ]; then
4410         QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4411         QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4412     fi
4413     if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4414         CFG_GLIB=yes
4415         QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4416         QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4417     else
4418         if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4419             echo "Glib support cannot be enabled due to functionality tests!"
4420             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4421             echo " If you believe this message is in error you may use the continue"
4422             echo " switch (-continue) to $0 to continue."
4423             exit 101
4424         else
4425             CFG_GLIB=no
4426         fi
4427     fi
4428 fi
4429
4430 # auto-detect GTK style support
4431 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4432     if [ -n "$PKG_CONFIG" ]; then
4433         QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4434         QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4435     fi
4436     if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4437         CFG_QGTKSTYLE=yes
4438         QT_CONFIG="$QT_CONFIG gtkstyle"
4439         QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4440         QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4441     else
4442         if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4443             echo "Gtk theme support cannot be enabled due to functionality tests!"
4444             echo " Turn on verbose messaging (-v) to $0 to see the fin  al report."
4445             echo " If you believe this message is in error you may use the continue"
4446             echo " switch (-continue) to $0 to continue."
4447             exit 101
4448         else
4449             CFG_QGTKSTYLE=no
4450         fi
4451     fi
4452 elif [ "$CFG_GLIB" = "no" ]; then
4453     CFG_QGTKSTYLE=no
4454 fi
4455
4456 # ### Vestige
4457 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4458     if [ -n "$PKG_CONFIG" ]; then
4459         QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4460         QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4461     fi
4462     if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4463         CFG_GSTREAMER=yes
4464         QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4465         QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4466     else
4467         if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4468             echo "Gstreamer support cannot be enabled due to functionality tests!"
4469             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4470             echo " If you believe this message is in error you may use the continue"
4471             echo " switch (-continue) to $0 to continue."
4472             exit 101
4473         else
4474             CFG_GSTREAMER=no
4475         fi
4476     fi
4477 elif [ "$CFG_GLIB" = "no" ]; then
4478     CFG_GSTREAMER=no
4479 fi
4480
4481 # auto-detect libicu support
4482 if [ "$CFG_ICU" != "no" ]; then
4483     if compileTest unix/icu "ICU"; then
4484         [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4485     else
4486         if [ "$CFG_ICU" = "auto" ]; then
4487             CFG_ICU=no
4488         elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4489             # CFG_ICU is "yes"
4490
4491             echo "The ICU library support cannot be enabled."
4492             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4493             echo " If you believe this message is in error you may use the continue"
4494             echo " switch (-continue) to $0 to continue."
4495             exit 101
4496         fi
4497     fi
4498 fi
4499
4500 # Auto-detect PulseAudio support
4501 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4502     if [ -n "$PKG_CONFIG" ]; then
4503         QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4504         QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4505     fi
4506     if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4507         CFG_PULSEAUDIO=yes
4508         QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4509         QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4510     else
4511         if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4512             echo "PulseAudio support cannot be enabled due to functionality tests!"
4513             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4514             echo " If you believe this message is in error you may use the continue"
4515             echo " switch (-continue) to $0 to continue."
4516             exit 101
4517         else
4518             CFG_PULSEAUDIO=no
4519         fi
4520     fi
4521 fi
4522
4523 # X11/MINGW OpenGL
4524 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4525     # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4526     if [ "$CFG_GUI" = "no" ]; then
4527         if [ "$CFG_OPENGL" = "auto" ]; then
4528             CFG_OPENGL=no
4529         fi
4530         if [ "$CFG_OPENGL" != "no" ]; then
4531             echo "OpenGL enabled, but GUI disabled."
4532             echo " You might need to either enable the GUI or disable OpenGL"
4533             exit 1
4534         fi
4535     fi
4536     if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4537         if compileTest x11/opengl "OpenGL"; then
4538             CFG_OPENGL=desktop
4539         elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4540             CFG_OPENGL=es2
4541         else
4542             if [ "$CFG_OPENGL" = "yes" ]; then
4543                 echo "All the OpenGL functionality tests failed!"
4544                 echo " You might need to modify the include and library search paths by editing"
4545                 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4546                 echo " ${XQMAKESPEC}."
4547                 exit 1
4548             fi
4549             CFG_OPENGL=no
4550         fi
4551         case "$PLATFORM" in
4552         hpux*)
4553             # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4554             if [ "$CFG_OPENGL" = "desktop" ]; then
4555                 compileTest x11/glxfbconfig "OpenGL"
4556                 if [ $? != "0" ]; then
4557                     QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4558                 fi
4559             fi
4560             ;;
4561         *)
4562             ;;
4563         esac
4564     elif [ "$CFG_OPENGL" = "es2" ]; then
4565         #OpenGL ES 2.x
4566         compileTest unix/opengles2 "OpenGL ES 2.x"
4567         if [ $? != "0" ]; then
4568             echo "The OpenGL ES 2.0 functionality test failed!"
4569             echo " You might need to modify the include and library search paths by editing"
4570             echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4571             echo " ${XQMAKESPEC}."
4572             exit 1
4573         fi
4574     elif [ "$CFG_OPENGL" = "desktop" ]; then
4575         # Desktop OpenGL support
4576         compileTest x11/opengl "OpenGL"
4577         if [ $? != "0" ]; then
4578             echo "The OpenGL functionality test failed!"
4579             echo " You might need to modify the include and library search paths by editing"
4580             echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4581             echo " ${XQMAKESPEC}."
4582             exit 1
4583         fi
4584         case "$PLATFORM" in
4585         hpux*)
4586             # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4587             compileTest x11/glxfbconfig "OpenGL"
4588             if [ $? != "0" ]; then
4589                 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4590             fi
4591             ;;
4592         *)
4593             ;;
4594         esac
4595     fi
4596 fi # X11/MINGW OpenGL
4597
4598 if [ "$BUILD_ON_MAC" = "yes" ]; then
4599     if [ "$CFG_COREWLAN" = "auto" ]; then
4600         if compileTest mac/corewlan "CoreWlan"; then
4601             CFG_COREWLAN=yes
4602         else
4603             CFG_COREWLAN=no
4604         fi
4605     fi
4606 fi
4607
4608 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4609 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4610     if compileTest unix/opengldesktop "OpenGL"; then
4611         CFG_OPENGL=desktop
4612     elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4613         CFG_OPENGL=es2
4614     else
4615         if [ "$CFG_OPENGL" = "yes" ]; then
4616             echo "All the OpenGL functionality tests failed!"
4617             echo " You might need to modify the include and library search paths by editing"
4618             echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4619             echo " ${XQMAKESPEC}."
4620             exit 1
4621         fi
4622         CFG_OPENGL=no
4623     fi
4624 elif [ "$CFG_OPENGL" = "es2" ]; then
4625     #OpenGL ES 2.x
4626     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4627         QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4628         QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4629         QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4630         QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4631         QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4632         QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4633         QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4634     fi
4635
4636     compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4637     if [ $? != "0" ]; then
4638         echo "The OpenGL ES 2.0 functionality test failed!"
4639         echo " You might need to modify the include and library search paths by editing"
4640         echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4641         echo " ${XQMAKESPEC}."
4642         exit 1
4643     fi
4644 elif [ "$CFG_OPENGL" = "desktop" ]; then
4645     # Desktop OpenGL support
4646     compileTest unix/opengldesktop "OpenGL"
4647     if [ $? != "0" ]; then
4648         echo "The OpenGL functionality test failed!"
4649         echo " You might need to modify the include and library search paths by editing"
4650         echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4651         echo " ${XQMAKESPEC}."
4652         exit 1
4653     fi
4654 fi
4655
4656 # auto-detect FontConfig support
4657 if [ "$CFG_FONTCONFIG" != "no" ]; then
4658     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4659         QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4660         QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4661     else
4662         QT_CFLAGS_FONTCONFIG=
4663         QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4664     fi
4665     if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4666         QT_CONFIG="$QT_CONFIG fontconfig"
4667         QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4668         QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4669         CFG_FONTCONFIG=yes
4670         CFG_LIBFREETYPE=system
4671     else
4672         CFG_FONTCONFIG=no
4673     fi
4674
4675 fi
4676
4677 # Save these for a check later
4678 ORIG_CFG_XCB="$CFG_XCB"
4679 ORIG_CFG_EGLFS="$CFG_EGLFS"
4680 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4681 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4682 ORIG_CFG_KMS="$CFG_KMS"
4683
4684 if [ "$CFG_LIBUDEV" != "no" ]; then
4685     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4686         QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4687         QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4688         QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4689         QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4690     fi
4691     if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4692         CFG_LIBUDEV=yes
4693         QT_CONFIG="$QT_CONFIG libudev"
4694     elif [ "$CFG_LIBUDEV" = "yes" ]; then
4695         echo "The libudev functionality test failed!"
4696         exit 1
4697     else
4698         CFG_LIBUDEV=no
4699     fi
4700 fi
4701 if [ "$CFG_LIBUDEV" = "no" ]; then
4702     QMakeVar add DEFINES QT_NO_LIBUDEV
4703 fi
4704
4705 if [ "$CFG_EVDEV" != "no" ]; then
4706     if compileTest unix/evdev "evdev"; then
4707         CFG_EVDEV=yes
4708         QT_CONFIG="$QT_CONFIG evdev"
4709     elif [ "$CFG_EVDEV" = "yes" ]; then
4710         echo "The evdev functionality test failed!"
4711         exit 1
4712     else
4713         CFG_EVDEV=no
4714     fi
4715 fi
4716 if [ "$CFG_EVDEV" = "no" ]; then
4717     QMakeVar add DEFINES QT_NO_EVDEV
4718 fi
4719
4720 # Check we actually have X11 :-)
4721 if compileTest x11/xlib "XLib"; then
4722     QT_CONFIG="$QT_CONFIG xlib"
4723 fi
4724
4725 # auto-detect Xrender support
4726 if [ "$CFG_XRENDER" != "no" ]; then
4727     if compileTest x11/xrender "Xrender"; then
4728         CFG_XRENDER=yes
4729         QT_CONFIG="$QT_CONFIG xrender"
4730     else
4731         if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4732             echo "Xrender support cannot be enabled due to functionality tests!"
4733             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4734             echo " If you believe this message is in error you may use the continue"
4735             echo " switch (-continue) to $0 to continue."
4736             exit 101
4737         else
4738             CFG_XRENDER=no
4739         fi
4740     fi
4741 fi
4742
4743 if [ "$CFG_XCB" != "no" ]; then
4744     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4745         QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4746         QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4747     fi
4748     if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4749         CFG_XCB=yes
4750         if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4751             QT_CONFIG="$QT_CONFIG xcb-render"
4752         fi
4753
4754         if compileTest qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4755             CFG_XCB_LIMITED=no
4756             QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4757         fi
4758
4759         if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4760             QT_CONFIG="$QT_CONFIG xcb-xlib"
4761         fi
4762
4763         # auto-detect XInput2 support. Needed by xcb too.
4764         if [ "$CFG_XINPUT2" != "no" ]; then
4765             if compileTest x11/xinput2 "XInput2"; then
4766                 CFG_XINPUT2=yes
4767                 CFG_XINPUT=no
4768             else
4769                 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4770                     echo "XInput2 support cannot be enabled due to functionality tests!"
4771                     echo " Turn on verbose messaging (-v) to $0 to see the final report."
4772                     echo " If you believe this message is in error you may use the continue"
4773                     echo " switch (-continue) to $0 to continue."
4774                     exit 101
4775                 else
4776                     CFG_XINPUT2=no
4777                 fi
4778             fi
4779         fi
4780     else
4781         if [ "$CFG_XCB" = "yes" ]; then
4782             echo "The XCB test failed!"
4783             echo " You might need to install dependency packages."
4784             echo " See src/plugins/platforms/xcb/README."
4785             exit 1
4786         fi
4787         CFG_XCB=no
4788     fi
4789 fi
4790 if [ "$CFG_XCB" = "no" ]; then
4791     QMakeVar add DEFINES QT_NO_XCB
4792 fi
4793
4794 if [ "$CFG_DIRECTFB" != "no" ]; then
4795     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4796         QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4797         QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4798         if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4799             CFG_DIRECTFB=yes
4800         elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4801             echo " DirectFB support cannot be enabled due to functionality tests!"
4802             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4803             echo " If you believe this message is in error you may use the continue"
4804             echo " switch (-continue) to $0 to continue."
4805             exit 101
4806         else
4807             CFG_DIRECTFB=no
4808         fi
4809     else
4810         CFG_DIRECTFB=no
4811     fi
4812 fi
4813
4814 if [ "$CFG_LINUXFB" != "no" ]; then
4815     if compileTest qpa/linuxfb "LinuxFB"; then
4816         CFG_LINUXFB=yes
4817     elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4818         echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4819         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4820         echo " If you believe this message is in error you may use the continue"
4821         echo " switch (-continue) to $0 to continue."
4822         exit 101
4823     else
4824         CFG_LINUXFB=no
4825     fi
4826 fi
4827
4828 if [ "$CFG_KMS" != "no" ]; then
4829     if compileTest qpa/kms "KMS"; then
4830         CFG_KMS=yes
4831     elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4832         echo " KMS support cannot be enabled due to functionality tests!"
4833         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4834         echo " If you believe this message is in error you may use the continue"
4835         echo " switch (-continue) to $0 to continue."
4836         exit 101
4837     else
4838         CFG_KMS=no
4839     fi
4840 fi
4841
4842 # Detect libxkbcommon
4843 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4844     QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4845     QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4846     QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4847     QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4848 else
4849     QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4850 fi
4851
4852 # EGL Support
4853 if [ "$CFG_EGL" != "no" ]; then
4854     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4855         QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4856         QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4857         QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4858         QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4859         QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4860     fi       # detect EGL support
4861     if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4862         CFG_EGL=yes
4863     elif [ "$CFG_EGL" = "yes" ]; then
4864         echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4865         echo " You might need to modify the include and library search paths by editing"
4866         echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4867         exit 1
4868     else
4869         CFG_EGL=no
4870     fi
4871 elif [ "$CFG_OPENGL" = "desktop" ]; then
4872     if [ "$CFG_EGL" = "yes" ]; then
4873         echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4874         echo "Either disable EGL support or enable OpenGL ES support."
4875         exit 101
4876     fi
4877     CFG_EGL=no
4878 fi
4879
4880 if [ "$CFG_EGLFS" != "no" ]; then
4881     if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4882         CFG_EGLFS="$CFG_EGL"
4883     else
4884         CFG_EGLFS="no"
4885     fi
4886 fi
4887
4888 if [ "$CFG_KMS" = "yes" ]; then
4889     if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4890         CFG_KMS="yes"
4891     else
4892         CFG_KMS="no"
4893     fi
4894 fi
4895
4896 # Detect accessibility support
4897 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4898     if [ "$CFG_XCB" = "no" ]; then
4899         CFG_ACCESSIBILITY=yes
4900     else
4901         # linux/xcb accessibility needs dbus and atspi-2
4902         if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "atspi-2" 2>/dev/null; then
4903             CFG_ACCESSIBILITY=yes
4904         else
4905             if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4906                 CFG_ACCESSIBILITY=no
4907             else
4908                 echo "Accessibility support needs pkg-config and libatspi2."
4909                 exit 101
4910             fi
4911         fi
4912     fi
4913 fi
4914
4915 # Determine the default QPA platform
4916 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4917     # check the mkspec
4918     QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4919     if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4920         if [ "$XPLATFORM_MINGW" = "yes" ]; then
4921             QT_QPA_DEFAULT_PLATFORM="windows"
4922         elif [ "$BUILD_ON_MAC" = "yes" ]; then
4923             QT_QPA_DEFAULT_PLATFORM="cocoa"
4924         elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4925             QT_QPA_DEFAULT_PLATFORM="qnx"
4926         else
4927             QT_QPA_DEFAULT_PLATFORM="xcb"
4928         fi
4929     fi
4930 fi
4931
4932 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4933     QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4934     QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4935     QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4936 fi
4937 if [ "$CFG_DIRECTFB" = "yes" ]; then
4938     QT_CONFIG="$QT_CONFIG directfb"
4939     QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4940     QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4941 fi
4942 if [ "$CFG_LINUXFB" = "yes" ]; then
4943     QT_CONFIG="$QT_CONFIG linuxfb"
4944 fi
4945 if [ "$CFG_KMS" = "yes" ]; then
4946     QT_CONFIG="$QT_CONFIG kms"
4947 fi
4948
4949 if [ "$BUILD_ON_MAC" = "yes" ]; then
4950     if compileTest mac/coreservices "CoreServices"; then
4951         QT_CONFIG="$QT_CONFIG coreservices"
4952     else
4953         QMakeVar add DEFINES QT_NO_CORESERVICES
4954     fi
4955 fi
4956
4957 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4958     if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
4959         if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4960             ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
4961         echo "No QPA platform plugin enabled!"
4962         echo " If you really want to build without a QPA platform plugin you must pass"
4963         echo " -no-qpa-platform-guard to configure. Doing this will"
4964         echo " produce a Qt that can not run GUI applications."
4965         echo " The dependencies needed for xcb to build are listed in"
4966         echo " src/plugins/platforms/xcb/README"
4967         exit 1
4968     fi
4969 fi
4970     fi
4971
4972 # freetype support
4973 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4974 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4975     if compileTest unix/freetype "FreeType"; then
4976         CFG_LIBFREETYPE=system
4977     else
4978         CFG_LIBFREETYPE=yes
4979     fi
4980 fi
4981
4982 if ! compileTest unix/stl "STL" &&
4983     [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4984     echo "STL functionality check failed! Cannot build Qt with this STL library."
4985     echo " Turn on verbose messaging (-v) to $0 to see the final report."
4986     exit 101
4987 fi
4988
4989
4990 # detect POSIX clock_gettime()
4991 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
4992     if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
4993         CFG_CLOCK_GETTIME=yes
4994     else
4995         CFG_CLOCK_GETTIME=no
4996     fi
4997 fi
4998
4999 # detect POSIX monotonic clocks
5000 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5001     if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5002         CFG_CLOCK_MONOTONIC=yes
5003     else
5004         CFG_CLOCK_MONOTONIC=no
5005     fi
5006 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5007     CFG_CLOCK_MONOTONIC=no
5008 fi
5009
5010 # detect mremap
5011 if [ "$CFG_MREMAP" = "auto" ]; then
5012     if compileTest unix/mremap "mremap"; then
5013         CFG_MREMAP=yes
5014     else
5015         CFG_MREMAP=no
5016     fi
5017 fi
5018
5019 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5020 if [ "$CFG_GETADDRINFO" != "no" ]; then
5021     if compileTest unix/getaddrinfo "getaddrinfo"; then
5022         CFG_GETADDRINFO=yes
5023     else
5024         if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5025             echo "getaddrinfo support cannot be enabled due to functionality tests!"
5026             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5027             echo " If you believe this message is in error you may use the continue"
5028             echo " switch (-continue) to $0 to continue."
5029             exit 101
5030         else
5031             CFG_GETADDRINFO=no
5032         fi
5033     fi
5034 fi
5035
5036 # find if the platform provides inotify
5037 if [ "$CFG_INOTIFY" != "no" ]; then
5038     if compileTest unix/inotify "inotify"; then
5039         CFG_INOTIFY=yes
5040     else
5041         if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5042             echo "inotify support cannot be enabled due to functionality tests!"
5043             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5044             echo " If you believe this message is in error you may use the continue"
5045             echo " switch (-continue) to $0 to continue."
5046             exit 101
5047         else
5048             CFG_INOTIFY=no
5049         fi
5050     fi
5051 fi
5052
5053 # find if the platform provides if_nametoindex (ipv6 interface name support)
5054 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5055     if compileTest unix/ipv6ifname "IPv6 interface name"; then
5056         CFG_IPV6IFNAME=yes
5057     else
5058         if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5059             echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5060             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5061             echo " If you believe this message is in error you may use the continue"
5062             echo " switch (-continue) to $0 to continue."
5063             exit 101
5064         else
5065             CFG_IPV6IFNAME=no
5066         fi
5067     fi
5068 fi
5069
5070 # find if the platform provides getifaddrs (network interface enumeration)
5071 if [ "$CFG_GETIFADDRS" != "no" ]; then
5072     if compileTest unix/getifaddrs "getifaddrs"; then
5073         CFG_GETIFADDRS=yes
5074     else
5075         if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5076             echo "getifaddrs support cannot be enabled due to functionality tests!"
5077             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5078             echo " If you believe this message is in error you may use the continue"
5079             echo " switch (-continue) to $0 to continue."
5080             exit 101
5081         else
5082             CFG_GETIFADDRS=no
5083         fi
5084     fi
5085 fi
5086
5087 # detect OpenSSL
5088 if [ "$CFG_OPENSSL" != "no" ]; then
5089     if compileTest unix/openssl "OpenSSL"; then
5090         if [ "$CFG_OPENSSL" = "auto" ]; then
5091             CFG_OPENSSL=yes
5092         fi
5093     else
5094         if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5095             echo "OpenSSL support cannot be enabled due to functionality tests!"
5096             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5097             echo " If you believe this message is in error you may use the continue"
5098             echo " switch (-continue) to $0 to continue."
5099             exit 101
5100         else
5101             CFG_OPENSSL=no
5102         fi
5103     fi
5104 fi
5105
5106 # detect PCRE
5107 if [ "$CFG_PCRE" != "qt" ]; then
5108     if compileTest unix/pcre "PCRE"; then
5109         CFG_PCRE=system
5110     else
5111         if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5112             echo "PCRE support cannot be enabled due to functionality tests!"
5113             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5114             echo " If you believe this message is in error you may use the continue"
5115             echo " switch (-continue) to $0 to continue."
5116             exit 101
5117         else
5118             CFG_PCRE=qt
5119         fi
5120     fi
5121 fi
5122
5123 # detect OpenVG support
5124 if [ "$CFG_OPENVG" != "no" ]; then
5125     if compileTest unix/openvg "OpenVG"; then
5126         if [ "$CFG_OPENVG" = "auto" ]; then
5127             CFG_OPENVG=yes
5128         fi
5129     elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5130         if [ "$CFG_OPENVG" = "auto" ]; then
5131             CFG_OPENVG=yes
5132         fi
5133         CFG_OPENVG_ON_OPENGL=yes
5134     elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5135         if [ "$CFG_OPENVG" = "auto" ]; then
5136             CFG_OPENVG=yes
5137         fi
5138         CFG_OPENVG_LC_INCLUDES=yes
5139     elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5140         if [ "$CFG_OPENVG" = "auto" ]; then
5141             CFG_OPENVG=yes
5142         fi
5143         CFG_OPENVG_LC_INCLUDES=yes
5144         CFG_OPENVG_ON_OPENGL=yes
5145     else
5146         if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5147             echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5148             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5149             echo " If you believe this message is in error you may use the continue"
5150             echo " switch (-continue) to $0 to continue."
5151             exit 101
5152         else
5153             CFG_OPENVG=no
5154         fi
5155     fi
5156     if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5157         CFG_OPENVG_SHIVA=yes
5158     fi
5159 fi
5160
5161 if [ "$CFG_ALSA" = "auto" ]; then
5162     if compileTest unix/alsa "alsa"; then
5163         CFG_ALSA=yes
5164     else
5165         CFG_ALSA=no
5166     fi
5167 fi
5168
5169 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then 
5170     if [ "$CFG_ARCH" = "arm" ]; then
5171        compileTest unix/javascriptcore-jit "javascriptcore-jit"
5172         if [ $? != "0" ]; then
5173            CFG_JAVASCRIPTCORE_JIT=no
5174         fi
5175     else
5176         case "$XPLATFORM" in
5177             linux-icc*)
5178                 CFG_JAVASCRIPTCORE_JIT=no
5179                 ;;
5180         esac
5181     fi
5182 fi
5183
5184 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5185     QMakeVar set JAVASCRIPTCORE_JIT yes
5186 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5187     QMakeVar set JAVASCRIPTCORE_JIT no
5188 fi
5189
5190 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5191     CFG_AUDIO_BACKEND=yes
5192 fi
5193
5194 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5195     echo "Warning: largefile support cannot be disabled for win32."
5196     CFG_LARGEFILE="yes"
5197 fi
5198
5199 #-------------------------------------------------------------------------------
5200 # ask for all that hasn't been auto-detected or specified in the arguments
5201 #-------------------------------------------------------------------------------
5202
5203 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5204
5205 # disable accessibility
5206 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5207     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5208 else
5209     QT_CONFIG="$QT_CONFIG accessibility"
5210 fi
5211
5212 # enable egl
5213 if [ "$CFG_EGL" = "yes" ]; then
5214     QT_CONFIG="$QT_CONFIG egl"
5215 else
5216     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5217 fi
5218
5219 # enable eglfs
5220 if [ "$CFG_EGLFS" = "yes" ]; then
5221     QT_CONFIG="$QT_CONFIG eglfs"
5222 else
5223     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5224 fi
5225
5226 # enable openvg
5227 if [ "$CFG_OPENVG" = "no" ]; then
5228     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5229 else
5230     QT_CONFIG="$QT_CONFIG openvg"
5231     if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5232         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5233     fi
5234     if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5235         QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5236     fi
5237     if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5238         QT_CONFIG="$QT_CONFIG shivavg"
5239         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5240     fi
5241 fi
5242
5243 # enable opengl
5244 if [ "$CFG_OPENGL" = "no" ]; then
5245     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5246 else
5247     QT_CONFIG="$QT_CONFIG opengl"
5248 fi
5249
5250 if [ "$CFG_OPENGL" = "es2" ]; then
5251     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5252 fi
5253
5254 if [ "$CFG_OPENGL" = "es2" ]; then
5255     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5256     QT_CONFIG="$QT_CONFIG opengles2"
5257 fi
5258
5259 # build up the variables for output
5260 if [ "$CFG_DEBUG" = "yes" ]; then
5261     QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5262 elif [ "$CFG_DEBUG" = "no" ]; then
5263     QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5264 fi
5265 if [ "$CFG_SHARED" = "yes" ]; then
5266     QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5267     QT_CONFIG="$QT_CONFIG shared"
5268 elif [ "$CFG_SHARED" = "no" ]; then
5269     QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5270     QT_CONFIG="$QT_CONFIG static"
5271 fi
5272
5273 #FIXME: qpa is implicit this should all be removed
5274 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5275 QT_CONFIG="$QT_CONFIG qpa"
5276 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5277 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5278
5279 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5280     # Do not set this here for Windows. Let qmake do it so
5281     # debug and release precompiled headers are kept separate.
5282     QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5283 fi
5284 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5285 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5286 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5287 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5288 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5289     QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5290 fi
5291 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5292     QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5293 fi
5294 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5295 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5296 [ "$CFG_STRIP" = "no" ] && QMAKE_CONFIG="$QMAKE_CONFIG nostrip"
5297 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5298 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5299     QMakeVar add QMAKE_CFLAGS -g
5300     QMakeVar add QMAKE_CXXFLAGS -g
5301     QT_CONFIG="$QT_CONFIG separate_debug_info"
5302 fi
5303 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5304     QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5305 fi
5306 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5307 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5308 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5309 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5310 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5311 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5312 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5313 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5314 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5315 if [ "$CFG_ARCH" = "mips" ]; then
5316     [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5317     [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5318 fi
5319 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5320     QT_CONFIG="$QT_CONFIG clock-gettime"
5321 fi
5322 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5323     QT_CONFIG="$QT_CONFIG clock-monotonic"
5324 fi
5325 if [ "$CFG_MREMAP" = "yes" ]; then
5326     QT_CONFIG="$QT_CONFIG mremap"
5327 fi
5328 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5329     QT_CONFIG="$QT_CONFIG getaddrinfo"
5330 fi
5331 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5332     QT_CONFIG="$QT_CONFIG ipv6ifname"
5333 fi
5334 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5335     QT_CONFIG="$QT_CONFIG getifaddrs"
5336 fi
5337 if [ "$CFG_INOTIFY" = "yes" ]; then
5338     QT_CONFIG="$QT_CONFIG inotify"
5339 fi
5340 if [ "$CFG_LIBJPEG" = "no" ]; then
5341     CFG_JPEG="no"
5342 elif [ "$CFG_LIBJPEG" = "system" ]; then
5343     QT_CONFIG="$QT_CONFIG system-jpeg"
5344 fi
5345 if [ "$CFG_JPEG" = "no" ]; then
5346     QT_CONFIG="$QT_CONFIG no-jpeg"
5347 elif [ "$CFG_JPEG" = "yes" ]; then
5348     QT_CONFIG="$QT_CONFIG jpeg"
5349 fi
5350 if [ "$CFG_LIBPNG" = "no" ]; then
5351     CFG_PNG="no"
5352 fi
5353 if [ "$CFG_LIBPNG" = "system" ]; then
5354     QT_CONFIG="$QT_CONFIG system-png"
5355 fi
5356 if [ "$CFG_PNG" = "no" ]; then
5357     QT_CONFIG="$QT_CONFIG no-png"
5358 elif [ "$CFG_PNG" = "yes" ]; then
5359     QT_CONFIG="$QT_CONFIG png"
5360 fi
5361 if [ "$CFG_GIF" = "no" ]; then
5362     QT_CONFIG="$QT_CONFIG no-gif"
5363 elif [ "$CFG_GIF" = "yes" ]; then
5364     QT_CONFIG="$QT_CONFIG gif"
5365 fi
5366 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5367     QT_CONFIG="$QT_CONFIG no-freetype"
5368     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5369 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5370     QT_CONFIG="$QT_CONFIG system-freetype"
5371 else
5372     QT_CONFIG="$QT_CONFIG freetype"
5373 fi
5374 if [ "$CFG_GUI" = "auto" ]; then
5375     CFG_GUI="yes"
5376 fi
5377 if [ "$CFG_GUI" = "no" ]; then
5378     QT_CONFIG="$QT_CONFIG no-gui"
5379     CFG_WIDGETS="no"
5380 fi
5381 if [ "$CFG_WIDGETS" = "no" ]; then
5382     QT_CONFIG="$QT_CONFIG no-widgets"
5383     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5384 fi
5385
5386 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5387     #On Mac we implicitly link against libz, so we
5388     #never use the 3rdparty stuff.
5389     [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5390 fi
5391 if [ "$CFG_ZLIB" = "yes" ]; then
5392     QT_CONFIG="$QT_CONFIG zlib"
5393 elif [ "$CFG_ZLIB" = "system" ]; then
5394     QT_CONFIG="$QT_CONFIG system-zlib"
5395 fi
5396
5397 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5398 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5399 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5400 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5401 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5402 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5403 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5404 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5405 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5406 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5407 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5408 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5409 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5410 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5411
5412 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5413 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5414
5415 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5416     if [ "$CFG_RPATH" = "yes" ]; then
5417        QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5418     fi
5419 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5420     if [ -n "$RPATH_FLAGS" ]; then
5421         echo
5422         echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5423         echo "       undefined."
5424         echo
5425         exit 1
5426     elif [ "$CFG_RPATH" = "yes" ]; then
5427         RPATH_MESSAGE="        NOTE: This platform does not support runtime library paths, using -no-rpath."
5428         CFG_RPATH=no
5429     fi
5430 else
5431     if [ -n "$RPATH_FLAGS" ]; then
5432         # add the user defined rpaths
5433         QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5434     fi
5435 fi
5436 if [ "$CFG_RPATH" = "yes" ]; then
5437     QT_CONFIG="$QT_CONFIG rpath"
5438 fi
5439
5440 if [ '!' -z "$I_FLAGS" ]; then
5441     # add the user define include paths
5442     QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5443     QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5444 fi
5445
5446 if [ '!' -z "$W_FLAGS" ]; then
5447     # add the user defined warning flags
5448     QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5449     QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5450     QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5451 fi
5452
5453 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5454     # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5455     # Follow default behavior of configure.exe by overriding with "rtti".
5456     QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5457 fi
5458
5459 if [ "$CFG_ALSA" = "yes" ]; then
5460     QT_CONFIG="$QT_CONFIG alsa"
5461 fi
5462
5463 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5464     QT_CONFIG="$QT_CONFIG pulseaudio"
5465 fi
5466
5467 if [ "$CFG_COREWLAN" = "yes" ]; then
5468     QT_CONFIG="$QT_CONFIG corewlan"
5469 fi
5470
5471 if [ "$CFG_ICU" = "yes" ]; then
5472     QT_CONFIG="$QT_CONFIG icu"
5473 fi
5474
5475 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5476     QT_CONFIG="$QT_CONFIG force_asserts"
5477 fi
5478
5479 if [ "$CFG_PCRE" = "qt" ]; then
5480     QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5481 fi
5482
5483 #
5484 # Some Qt modules are too advanced in C++ for some old compilers
5485 # Detect here the platforms where they are known to work.
5486 #
5487 # See Qt documentation for more information on which features are
5488 # supported and on which compilers.
5489 #
5490 canBuildQtConcurrent="yes"
5491 canUseV8Snapshot="yes"
5492
5493 case "$XPLATFORM" in
5494     hpux-g++*)
5495         # PA-RISC's assembly is too limited
5496         # gcc 3.4 on that platform can't build QtXmlPatterns
5497         # the assembly it generates cannot be compiled
5498
5499         # Check gcc's version
5500         case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5501             4*)
5502                 ;;
5503             3.4*)
5504                 canBuildQtXmlPatterns="no"
5505                 ;;
5506             *)
5507                 canBuildWebKit="no"
5508                 canBuildQtXmlPatterns="no"
5509                 ;;
5510         esac
5511         ;;
5512     unsupported/vxworks-*-g++*)
5513         canBuildWebKit="no"
5514         ;;
5515     unsupported/vxworks-*-dcc*)
5516         canBuildWebKit="no"
5517         canBuildQtXmlPatterns="no"
5518         ;;
5519     *-g++*)
5520         # Check gcc's version
5521         case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5522             4*|3.4*)
5523                 ;;
5524             3.3*)
5525                 canBuildWebKit="no"
5526                 ;;
5527             *)
5528                 canBuildWebKit="no"
5529                 canBuildQtXmlPatterns="no"
5530                 ;;
5531         esac
5532         ;;
5533     solaris-cc*)
5534         # Check the compiler version
5535         case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5536             5.[012345678])
5537                 canBuildWebKit="no"
5538                 canBuildQtXmlPatterns="no"
5539                 canBuildQtConcurrent="no"
5540                 ;;
5541             5.*)
5542                 canBuildWebKit="no"
5543                 canBuildQtConcurrent="no"
5544                 ;;
5545         esac
5546         ;;
5547     hpux-acc*)
5548         canBuildWebKit="no"
5549         canBuildQtXmlPatterns="no"
5550         canBuildQtConcurrent="no"
5551         ;;
5552     hpuxi-acc*)
5553         canBuildWebKit="no"
5554         ;;
5555     aix-xlc*)
5556         # Get the xlC version
5557         cat > xlcver.c <<EOF
5558 #include <stdio.h>
5559 int main()
5560 {
5561     printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5562     return 0;
5563 }
5564 EOF
5565         xlcver=
5566         if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5567             xlcver=`./xlcver 2>/dev/null`
5568             rm -f ./xlcver
5569         fi
5570         if [ "$OPT_VERBOSE" = "yes" ]; then
5571             if [ -n "$xlcver" ]; then
5572                 echo Found IBM xlC version: $xlcver.
5573             else
5574                 echo Could not determine IBM xlC version, assuming oldest supported.
5575             fi
5576         fi
5577
5578         case "$xlcver" in
5579             [123456].*)
5580                 canBuildWebKit="no"
5581                 canBuildQtXmlPatterns="no"
5582                 canBuildQtConcurrent="no"
5583                 ;;
5584             *)
5585                 canBuildWebKit="no"
5586                 canBuildQtConcurrent="no"
5587                 ;;
5588         esac
5589         ;;
5590     irix-cc*)
5591         canBuildWebKit="no"
5592         canBuildQtConcurrent="no"
5593         ;;
5594 esac
5595
5596 if [ "$CFG_GUI" = "no" ]; then
5597     # WebKit requires QtGui
5598     canBuildWebKit="no"
5599 fi
5600
5601 if [ "$CFG_SHARED" = "no" ]; then
5602     echo
5603     echo "WARNING: Using static linking will disable the WebKit module."
5604     echo
5605     canBuildWebKit="no"
5606 fi
5607
5608 CFG_CONCURRENT="yes"
5609 if [ "$canBuildQtConcurrent" = "no" ]; then
5610     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5611     CFG_CONCURRENT="no"
5612 else
5613     QT_CONFIG="$QT_CONFIG concurrent"
5614 fi
5615
5616 # ### Vestige
5617 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5618     QT_CONFIG="$QT_CONFIG audio-backend"
5619 fi
5620
5621 # ### Vestige
5622 if [ "$CFG_WEBKIT" = "debug" ]; then
5623     QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5624 fi
5625
5626 # ### Vestige
5627 QT_CONFIG="$QT_CONFIG v8"
5628 # Detect snapshot support
5629 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5630     case "$CFG_HOST_ARCH,$CFG_ARCH" in
5631         i386,arm)
5632         ;;
5633     *) canUseV8Snapshot="no"
5634         ;;
5635     esac
5636 else
5637     if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5638         # QEMU crashes when building inside Scratchbox with an ARM target
5639         canUseV8Snapshot="no"
5640     fi
5641 fi
5642 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5643     CFG_V8SNAPSHOT="$canUseV8Snapshot"
5644 fi
5645 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5646     echo "Error: V8 snapshot was requested, but is not supported on this platform."
5647     exit 1
5648 fi
5649 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5650     QT_CONFIG="$QT_CONFIG v8snapshot"
5651 fi
5652
5653 # ### Vestige
5654 if [ "$CFG_QML_DEBUG" = "no" ]; then
5655     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5656 fi
5657
5658 case "$QMAKE_CONF_COMPILER" in
5659 *g++*)
5660     # GNU C++
5661     COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5662
5663     case "$COMPILER_VERSION" in
5664     *.*.*)
5665         QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5666         QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5667         QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5668         ;;
5669     *.*)
5670         QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5671         QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5672         QT_GCC_PATCH_VERSION=0
5673         ;;
5674     esac
5675
5676     ;;
5677 *)
5678     #
5679     ;;
5680 esac
5681
5682 #-------------------------------------------------------------------------------
5683 # part of configuration information goes into qconfig.h
5684 #-------------------------------------------------------------------------------
5685
5686 case "$CFG_QCONFIG" in
5687 full)
5688     echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5689     ;;
5690 *)
5691     tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5692     echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5693     if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5694         cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5695     elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5696         cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5697     fi
5698     echo "#endif" >>"$tmpconfig"
5699     ;;
5700 esac
5701
5702 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5703
5704 /* Qt Edition */
5705 #ifndef QT_EDITION
5706 #  define QT_EDITION $QT_EDITION
5707 #endif
5708 EOF
5709
5710 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5711 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5712
5713 if [ "$CFG_SHARED" = "no" ]; then
5714     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5715 /* Qt was configured for a static build */
5716 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5717 # define QT_STATIC
5718 #endif
5719
5720 EOF
5721 fi
5722
5723 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5724     echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5725 fi
5726
5727 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5728     echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5729 fi
5730
5731 if [ "$BUILD_ON_MAC" = "yes" ]; then
5732     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5733 #if defined(__LP64__)
5734 # define QT_POINTER_SIZE 8
5735 #else
5736 # define QT_POINTER_SIZE 4
5737 #endif
5738 EOF
5739 else
5740     "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5741     echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5742 fi
5743
5744 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5745 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5746     echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5747 fi
5748
5749 # Add compiler sub-architecture support
5750 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5751 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5752 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5753     IWMMXT NEON \
5754     MIPS_DSP MIPS_DSPR2; do
5755     eval "VAL=\$CFG_$SUBARCH"
5756     case "$VAL" in
5757         yes)
5758             echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5759                 >>"$outpath/src/corelib/global/qconfig.h.new"
5760             ;;
5761     esac
5762 done
5763
5764 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5765
5766 if [ "$CFG_DEV" = "yes" ]; then
5767     echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5768 fi
5769
5770 # Add QPA to config.h
5771 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5772
5773 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5774     QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5775 fi
5776
5777 # Add turned on SQL drivers
5778 for DRIVER in $CFG_SQL_AVAILABLE; do
5779     eval "VAL=\$CFG_SQL_$DRIVER"
5780     case "$VAL" in
5781     qt)
5782         ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5783         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5784         SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5785     ;;
5786     plugin)
5787         SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5788     ;;
5789     esac
5790 done
5791
5792 QMakeVar set sql-drivers "$SQL_DRIVERS"
5793 QMakeVar set sql-plugins "$SQL_PLUGINS"
5794
5795 # Add other configuration options to the qconfig.h file
5796 [ "$CFG_GIF" = "yes" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5797 [ "$CFG_PNG" != "yes" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5798 [ "$CFG_JPEG" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5799 [ "$CFG_ZLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5800 [ "$CFG_DBUS" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5801
5802 # X11/Unix/Mac only configs
5803 [ "$CFG_CUPS" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5804 [ "$CFG_ICONV" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5805 [ "$CFG_GLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5806 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5807 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5808 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5809 [ "$CFG_MREMAP" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5810 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5811 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5812 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5813 [ "$CFG_INOTIFY" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5814 [ "$CFG_NIS" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5815 [ "$CFG_OPENSSL" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5816 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5817
5818 [ "$CFG_SM" = "no" ]         && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5819 [ "$CFG_XCURSOR" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5820 [ "$CFG_XFIXES" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5821 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5822 [ "$CFG_XINERAMA" = "no" ]   && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5823 [ "$CFG_XKB" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5824 [ "$CFG_XRANDR" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5825 [ "$CFG_XRENDER" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5826 [ "$CFG_MITSHM" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5827 [ "$CFG_XSHAPE" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5828 [ "$CFG_XVIDEO" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5829 [ "$CFG_XSYNC" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5830 [ "$CFG_XINPUT" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5831
5832 [ "$CFG_XCURSOR" = "runtime" ]   && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5833 [ "$CFG_XINERAMA" = "runtime" ]  && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5834 [ "$CFG_XFIXES" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5835 [ "$CFG_XRANDR" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5836 [ "$CFG_XINPUT" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5837 [ "$CFG_ALSA" = "no" ]           && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5838 [ "$CFG_PULSEAUDIO" = "no" ]          && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5839 [ "$CFG_COREWLAN" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5840
5841 # sort QCONFIG_FLAGS for neatness if we can
5842 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5843 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5844
5845 if [ -n "$QCONFIG_FLAGS" ]; then
5846 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5847 #ifndef QT_BOOTSTRAPPED
5848
5849 EOF
5850     for cfg in $QCONFIG_FLAGS; do
5851         cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5852         cfg=`echo $cfg | sed 's/=/ /'`    # turn first '=' into a space
5853         # figure out define logic, so we can output the correct
5854         # ifdefs to override the global defines in a project
5855         cfgdNeg=
5856         if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5857             # QT_NO_option can be forcefully turned on by QT_option
5858             cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5859         elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5860             # QT_option can be forcefully turned off by QT_NO_option
5861             cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5862         fi
5863
5864         if [ -z $cfgdNeg ]; then
5865 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5866 #ifndef $cfgd
5867 # define $cfg
5868 #endif
5869
5870 EOF
5871         else
5872 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5873 #if defined($cfgd) && defined($cfgdNeg)
5874 # undef $cfgd
5875 #elif !defined($cfgd) && !defined($cfgdNeg)
5876 # define $cfg
5877 #endif
5878
5879 EOF
5880         fi
5881     done
5882 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5883 #endif // QT_BOOTSTRAPPED
5884
5885 EOF
5886 fi
5887
5888 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5889 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5890 #define QT_VISIBILITY_AVAILABLE
5891
5892 EOF
5893 fi
5894
5895 if [ -n "$QT_LIBINFIX" ]; then
5896 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5897 #define QT_LIBINFIX "$QT_LIBINFIX"
5898
5899 EOF
5900 fi
5901
5902 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5903
5904 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5905 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5906     rm -f "$outpath/src/corelib/global/qconfig.h.new"
5907 else
5908     [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5909     mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5910     chmod -w "$outpath/src/corelib/global/qconfig.h"
5911     if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5912         ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5913     fi
5914 fi
5915
5916 #-------------------------------------------------------------------------------
5917 # save configuration into qconfig.pri
5918 #-------------------------------------------------------------------------------
5919 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5920 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5921 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5922 if [ "$CFG_DEBUG" = "yes" ]; then
5923     QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5924     if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5925         QT_CONFIG="$QT_CONFIG release"
5926     fi
5927     QT_CONFIG="$QT_CONFIG debug"
5928 elif [ "$CFG_DEBUG" = "no" ]; then
5929     QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5930     if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5931         QT_CONFIG="$QT_CONFIG debug"
5932     fi
5933     QT_CONFIG="$QT_CONFIG release"
5934 fi
5935 if [ "$CFG_FRAMEWORK" = "no" ]; then
5936     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5937 else
5938     QT_CONFIG="$QT_CONFIG qt_framework"
5939     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5940 fi
5941 if [ "$CFG_DEV" = "yes" ]; then
5942     QT_CONFIG="$QT_CONFIG private_tests"
5943 fi
5944
5945 cat >>"$QTCONFIG.tmp" <<EOF
5946 #configuration
5947 CONFIG += $QTCONFIG_CONFIG
5948 QT_ARCH = $CFG_ARCH
5949 QT_HOST_ARCH = $CFG_HOST_ARCH
5950 QT_CPU_FEATURES = $CFG_CPUFEATURES
5951 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5952 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5953 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5954 QT_EDITION = $Edition
5955 QT_CONFIG += $QT_CONFIG
5956
5957 #versioning
5958 QT_VERSION = $QT_VERSION
5959 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5960 QT_MINOR_VERSION = $QT_MINOR_VERSION
5961 QT_PATCH_VERSION = $QT_PATCH_VERSION
5962
5963 #namespaces
5964 QT_LIBINFIX = $QT_LIBINFIX
5965 QT_NAMESPACE = $QT_NAMESPACE
5966
5967 EOF
5968
5969 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5970     echo "# pkgconfig" >> "$QTCONFIG.tmp"
5971     echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5972     echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5973     echo >> "$QTCONFIG.tmp"
5974 fi
5975
5976 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
5977     echo "# sysroot" >>"$QTCONFIG.tmp"
5978     echo "!host_build {" >>"$QTCONFIG.tmp"
5979     echo "    QMAKE_CFLAGS    += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5980     echo "    QMAKE_CXXFLAGS  += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5981     echo "    QMAKE_LFLAGS    += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5982     echo "}" >> "$QTCONFIG.tmp"
5983     echo >> "$QTCONFIG.tmp"
5984 fi
5985 if [ -n "$RPATH_FLAGS" ]; then
5986     echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
5987 fi
5988 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
5989     echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
5990     echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
5991     echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
5992 fi
5993
5994 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
5995     echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
5996     echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
5997 fi
5998
5999 # replace qconfig.pri if it differs from the newly created temp file
6000 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6001     rm -f "$QTCONFIG.tmp"
6002 else
6003     mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6004 fi
6005
6006 #-------------------------------------------------------------------------------
6007 # save configuration into qmodule.pri
6008 #-------------------------------------------------------------------------------
6009 QTMODULE="$outpath/mkspecs/qmodule.pri"
6010
6011 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
6012 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6013
6014 if [ -n "$QT_CFLAGS_PSQL" ]; then
6015     echo "QT_CFLAGS_PSQL   = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6016 fi
6017 if [ -n "$QT_LFLAGS_PSQL" ]; then
6018     echo "QT_LFLAGS_PSQL   = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6019 fi
6020 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6021     echo "QT_CFLAGS_MYSQL   = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6022 fi
6023 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6024     echo "QT_LFLAGS_MYSQL   = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6025 fi
6026 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6027     echo "QT_CFLAGS_SQLITE   = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6028 fi
6029 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6030     echo "QT_LFLAGS_SQLITE   = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6031 fi
6032 if [ -n "$QT_LFLAGS_ODBC" ]; then
6033     echo "QT_LFLAGS_ODBC   = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6034 fi
6035 if [ -n "$QT_LFLAGS_TDS" ]; then
6036     echo "QT_LFLAGS_TDS   = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6037 fi
6038
6039 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6040     echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6041 fi
6042
6043 #dump in the OPENSSL_LIBS info
6044 if [ '!' -z "$OPENSSL_LIBS" ]; then
6045     echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6046 elif [ "$CFG_OPENSSL" = "linked" ]; then
6047     echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6048 fi
6049
6050 #dump in the SDK info
6051 if [ '!' -z "$CFG_SDK" ]; then
6052    echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6053 fi
6054
6055 # cmdline args
6056 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6057 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6058
6059 # replace qmodule.pri if it differs from the newly created temp file
6060 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6061     rm -f "$QTMODULE.tmp"
6062 else
6063     mv -f "$QTMODULE.tmp" "$QTMODULE"
6064 fi
6065
6066 #-------------------------------------------------------------------------------
6067 # save configuration into .qmake.cache
6068 #-------------------------------------------------------------------------------
6069
6070 CACHEFILE="$outpath/.qmake.cache"
6071 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6072 cat >>"$CACHEFILE.tmp" <<EOF
6073 #paths
6074 QT_SOURCE_TREE = \$\$quote($relpath)
6075 QT_BUILD_TREE = \$\$quote($outpath)
6076
6077 include(\$\$PWD/mkspecs/qmodule.pri)
6078 CONFIG += dylib fix_output_dirs no_private_qt_headers_warning QTDIR_build
6079
6080 EOF
6081
6082 # replace .qmake.cache if it differs from the newly created temp file
6083 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6084     rm -f "$CACHEFILE.tmp"
6085 else
6086     mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6087 fi
6088
6089 #-------------------------------------------------------------------------------
6090 # give feedback on configuration
6091 #-------------------------------------------------------------------------------
6092 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6093
6094 echo
6095 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6096     echo "Build type:    $PLATFORM"
6097 else
6098     echo "Building on:   $PLATFORM"
6099     echo "Building for:  $XPLATFORM"
6100 fi
6101
6102 # the missing space before $CFG_FEATURES is intentional
6103 echo "Architecture:  $CFG_ARCH, features:$CFG_CPUFEATURES"
6104 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6105
6106 if [ -n "$PLATFORM_NOTES" ]; then
6107     echo "Platform notes:"
6108     echo "$PLATFORM_NOTES"
6109 else
6110     echo
6111 fi
6112
6113 if [ "$OPT_VERBOSE" = "yes" ]; then
6114     echo $ECHO_N "qmake vars .......... $ECHO_C"
6115     cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6116     echo "qmake switches ......... $QMAKE_SWITCHES"
6117 fi
6118
6119 echo "Build .................. $CFG_BUILD_PARTS"
6120 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6121 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6122    echo "Debug .................. yes (combined)"
6123    if [ "$CFG_DEBUG" = "yes" ]; then
6124        echo "Default Link ........... debug"
6125    else
6126        echo "Default Link ........... release"
6127    fi
6128 else
6129    echo "Debug .................. $CFG_DEBUG"
6130 fi
6131 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6132     echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6133 fi
6134 echo "C++11 support .......... $CFG_CXX11"
6135 if [ -n "$PKG_CONFIG" ]; then
6136     echo "pkg-config ............. yes"
6137 else
6138     echo "pkg-config ............. no"
6139 fi
6140 [ "$CFG_DBUS" = "no" ]     && echo "QtDBus module .......... no"
6141 [ "$CFG_DBUS" = "yes" ]    && echo "QtDBus module .......... yes (run-time)"
6142 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6143 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6144 echo "QtGui module ........... $CFG_GUI"
6145 echo "QtWidgets module ....... $CFG_WIDGETS"
6146 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6147     echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6148 else
6149     echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6150 fi
6151 echo "QML debugging .......... $CFG_QML_DEBUG"
6152 echo "PCH support ............ $CFG_PRECOMPILE"
6153 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6154     echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6155     echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6156     echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6157 elif [ "$CFG_ARCH" = "arm" ]; then
6158     echo "iWMMXt support ......... ${CFG_IWMMXT}"
6159     echo "NEON support ........... ${CFG_NEON}"
6160 fi
6161 if [ "$CFG_ARCH" = "mips" ]; then
6162     echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6163 fi
6164 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6165 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6166 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6167 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6168 echo "NIS support ............ $CFG_NIS"
6169 echo "CUPS support ........... $CFG_CUPS"
6170 echo "Iconv support .......... $CFG_ICONV"
6171 echo "Glib support ........... $CFG_GLIB"
6172 echo "GStreamer support ...... $CFG_GSTREAMER"
6173 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6174 echo "Large File support ..... $CFG_LARGEFILE"
6175 echo "GIF support ............ $CFG_GIF"
6176 if [ "$CFG_JPEG" = "no" ]; then
6177     echo "JPEG support ........... $CFG_JPEG"
6178 else
6179     echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6180 fi
6181 if [ "$CFG_PNG" = "no" ]; then
6182     echo "PNG support ............ $CFG_PNG"
6183 else
6184     echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6185 fi
6186 echo "zlib support ........... $CFG_ZLIB"
6187 echo "Session management ..... $CFG_SM"
6188 echo "libudev support ........ $CFG_LIBUDEV"
6189
6190 if [ "$CFG_OPENGL" = "desktop" ]; then
6191     echo "OpenGL support ......... yes (Desktop OpenGL)"
6192 elif [ "$CFG_OPENGL" = "es2" ]; then
6193     echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6194 else
6195     echo "OpenGL support ......... no"
6196 fi
6197
6198 if [ "$CFG_OPENVG" ]; then
6199     if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6200         echo "OpenVG support ......... ShivaVG"
6201     else
6202         echo "OpenVG support ......... $CFG_OPENVG"
6203     fi
6204 fi
6205
6206 echo "XShape support ......... $CFG_XSHAPE"
6207 echo "XVideo support ......... $CFG_XVIDEO"
6208 echo "XSync support .......... $CFG_XSYNC"
6209 echo "Xinerama support ....... $CFG_XINERAMA"
6210 echo "Xcursor support ........ $CFG_XCURSOR"
6211 echo "Xfixes support ......... $CFG_XFIXES"
6212 echo "Xrandr support ......... $CFG_XRANDR"
6213 echo "Xi support ............. $CFG_XINPUT"
6214 echo "Xi2 support ............ $CFG_XINPUT2"
6215 echo "MIT-SHM support ........ $CFG_MITSHM"
6216 echo "FontConfig support ..... $CFG_FONTCONFIG"
6217 echo "XKB Support ............ $CFG_XKB"
6218 echo "immodule support ....... $CFG_IM"
6219 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6220
6221 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6222 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6223 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6224 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6225 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6226 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6227 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6228 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6229 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6230
6231 OPENSSL_LINKAGE=""
6232 if [ "$CFG_OPENSSL" = "yes" ]; then
6233     OPENSSL_LINKAGE="(run-time)"
6234 elif [ "$CFG_OPENSSL" = "linked" ]; then
6235     OPENSSL_LINKAGE="(linked)"
6236 fi
6237 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6238 echo "Alsa support ........... $CFG_ALSA"
6239 if [ "$BUILD_ON_MAC" = "yes" ]; then
6240     echo "CoreWlan support ....... $CFG_COREWLAN"
6241 fi
6242 echo "libICU support ......... $CFG_ICU"
6243 echo "PCRE support ........... $CFG_PCRE"
6244 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6245     echo "Xcb support ............ limited (old version)"
6246 else
6247     echo "Xcb support ............ $CFG_XCB"
6248 fi
6249 echo "Xrender support ........ $CFG_XRENDER"
6250 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6251     echo "XInput2 support ........ $CFG_XINPUT2"
6252 fi
6253 echo "EGLFS support .......... $CFG_EGLFS"
6254 echo "DirectFB support ....... $CFG_DIRECTFB"
6255 echo "LinuxFB support ........ $CFG_LINUXFB"
6256 echo "KMS support ............ $CFG_KMS"
6257 echo
6258
6259 # complain about not being able to use dynamic plugins if we are using a static build
6260 if [ "$CFG_SHARED" = "no" ]; then
6261     echo
6262     echo "WARNING: Using static linking will disable the use of dynamically"
6263     echo "loaded plugins. Make sure to import all needed static plugins,"
6264     echo "or compile needed modules into the library."
6265     echo
6266 fi
6267 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6268     echo
6269     echo "NOTE: When linking against OpenSSL, you can override the default"
6270     echo "library names through OPENSSL_LIBS."
6271     echo "For example:"
6272     echo "    OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6273     echo
6274 fi
6275
6276 exec 1>&3 3>&- # restore stdout
6277 cat $outpath/config.summary # display config feedback to user
6278
6279 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6280     echo
6281     echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6282     echo "if you want a pure debug build."
6283     echo
6284     exit 1
6285 fi
6286
6287 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6288 PROCS=1
6289 EXEC=""
6290
6291
6292 #-------------------------------------------------------------------------------
6293 # build makefiles based on the configuration
6294 #-------------------------------------------------------------------------------
6295
6296 if [ "$CFG_PROCESS" != "no" ]; then
6297
6298     if [ "$CFG_PROCESS" = "full" ]; then
6299         echo "Creating makefiles. Please wait..."
6300         "$outpath/bin/qmake" -r "$relpath"
6301         echo "Done"
6302     else
6303         "$outpath/bin/qmake" "$relpath"
6304     fi
6305
6306     if [ "$OPT_FAST" = "yes" ]; then
6307         PART_ROOTS=
6308         for part in $CFG_BUILD_PARTS; do
6309             case "$part" in
6310             examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6311             esac
6312         done
6313         if [ "x$PART_ROOTS" != "x" ]; then
6314             echo
6315             echo "Creating stub makefiles. Please wait..."
6316             QMAKE="$outpath/bin/qmake"
6317             [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6318             (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6319                 d=${p%/*}
6320                 test -f "$outpath/$d/Makefile" && continue
6321                 echo "  for $relpath/$p"
6322
6323                 mkdir -p "$outpath/$d" || exit
6324                 cat > "$outpath/$d/Makefile" <<EOF || exit
6325 # $outpath/$d/Makefile: generated by configure
6326 #
6327 # WARNING: This makefile will be replaced with a real makefile.
6328 # All changes made to this file will be lost.
6329
6330 QMAKE = "$QMAKE"
6331
6332 $first_tgt
6333 all clean install qmake first Makefile: FORCE
6334         \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6335         \$(MAKE) \$@
6336 FORCE:
6337 EOF
6338             done || exit
6339             echo "Done"
6340         fi
6341     fi
6342 fi
6343
6344 #-------------------------------------------------------------------------------
6345 # check for platforms that we don't yet know about
6346 #-------------------------------------------------------------------------------
6347 if [ "$CFG_ARCH" = "unknown" ]; then
6348 cat <<EOF
6349
6350         NOTICE: configure was unable to determine the architecture
6351         for the $XQMAKESPEC target.
6352
6353         Qt will not use a specialized implementation for any atomic
6354         operations. Instead a generic implemention based on either GCC
6355         intrinsics or C++11 std::atomic<T> will be used (when
6356         available). The generic implementations are generally as fast
6357         as and always as safe as a specialized implementation.
6358
6359         If no generic implementation is available, Qt will use a
6360         fallback UNIX implementation which uses a single
6361         pthread_mutex_t to protect all atomic operations. This
6362         implementation is the slow (but safe) fallback implementation
6363         for architectures Qt does not yet support.
6364 EOF
6365 fi
6366
6367 #-------------------------------------------------------------------------------
6368 # check if the user passed the -no-zlib option, which is no longer supported
6369 #-------------------------------------------------------------------------------
6370 if [ -n "$ZLIB_FORCED" ]; then
6371     which_zlib="supplied"
6372     if [ "$CFG_ZLIB" = "system" ]; then
6373         which_zlib="system"
6374     fi
6375
6376 cat <<EOF
6377
6378         NOTICE: The -no-zlib option was supplied but is no longer
6379         supported.
6380
6381         Qt now requires zlib support in all builds, so the -no-zlib
6382         option was ignored. Qt will be built using the $which_zlib
6383         zlib.
6384 EOF
6385 fi
6386
6387 #-------------------------------------------------------------------------------
6388 # check if the user passed the obsoleted -wayland or -no-wayland flag
6389 #-------------------------------------------------------------------------------
6390 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6391 cat <<EOF
6392
6393         NOTICE: The -wayland and -no-wayland flags are now obsolete
6394
6395         All configuring of QtWayland plugin and QtCompositor happens in the module
6396 EOF
6397 fi
6398
6399 #-------------------------------------------------------------------------------
6400 # check if the user passed the obsoleted -arch or -host-arch options
6401 #-------------------------------------------------------------------------------
6402 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6403 cat <<EOF
6404
6405         NOTICE: The -arch and -host-arch options are obsolete.
6406
6407         Qt now detects the target and host architectures based on compiler
6408         output. Qt will be built using $CFG_ARCH for the target architecture
6409         and $CFG_HOST_ARCH for the host architecture (note that these two
6410         will be the same unless you are cross-compiling).
6411 EOF
6412 fi
6413
6414 #-------------------------------------------------------------------------------
6415 # finally save the executed command to another script
6416 #-------------------------------------------------------------------------------
6417 if [ `basename $0` != "config.status" ]; then
6418     CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6419
6420     # add the system variables
6421     for varname in $SYSTEM_VARIABLES; do
6422         cmd=`echo \
6423 'if [ -n "\$'${varname}'" ]; then
6424     CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6425 fi'`
6426         eval "$cmd"
6427     done
6428
6429     echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6430
6431     [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6432     echo "#!/bin/sh" > "$outpath/config.status"
6433     [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6434         echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6435     [ -n "$PKG_CONFIG_LIBDIR" ] && \
6436         echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6437     echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6438     echo "  $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6439     echo "else" >> "$outpath/config.status"
6440     echo "  $CONFIG_STATUS" >> "$outpath/config.status"
6441     echo "fi" >> "$outpath/config.status"
6442     chmod +x "$outpath/config.status"
6443 fi
6444
6445 if [ -n "$RPATH_MESSAGE" ]; then
6446     echo
6447     echo "$RPATH_MESSAGE"
6448 fi
6449
6450 MAKE=`basename "$MAKE"`
6451 echo
6452 echo Qt is now configured for building. Just run \'$MAKE\'.
6453 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6454     echo Once everything is built, Qt is installed.
6455     echo You should not run \'$MAKE install\'.
6456 else
6457     echo Once everything is built, you must run \'$MAKE install\'.
6458     echo Qt will be installed into $QT_INSTALL_PREFIX
6459 fi
6460 echo
6461 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.
6462 echo