1
#!/bin/sh
2
#############################################################################
3
##
4
## Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
5
## All rights reserved.
6
## Contact: Nokia Corporation (qt-info@nokia.com)
7
##
8
## This file is the build configuration utility of the Qt Toolkit.
9
##
10
## $QT_BEGIN_LICENSE:LGPL$
11
## No Commercial Usage
12
## This file contains pre-release code and may not be distributed.
13
## You may use this file in accordance with the terms and conditions
14
## contained in the Technology Preview License Agreement accompanying
15
## this package.
16
##
17
## GNU Lesser General Public License Usage
18
## Alternatively, this file may be used under the terms of the GNU Lesser
19
## General Public License version 2.1 as published by the Free Software
20
## Foundation and appearing in the file LICENSE.LGPL included in the
21
## packaging of this file.  Please review the following information to
22
## ensure the GNU Lesser General Public License version 2.1 requirements
23
## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24
##
25
## In addition, as a special exception, Nokia gives you certain additional
26
## rights.  These rights are described in the Nokia Qt LGPL Exception
27
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28
##
29
## If you have questions regarding the use of this file, please contact
30
## Nokia at qt-info@nokia.com.
31
##
32
##
33
##
34
##
35
##
36
##
37
##
38
##
39
## $QT_END_LICENSE$
40
##
41
#############################################################################
42
43
#-------------------------------------------------------------------------------
44
# script initialization
45
#-------------------------------------------------------------------------------
46
47
# the name of this script
48
relconf=`basename $0`
49
# the directory of this script is the "source tree"
50
relpath=`dirname $0`
51
relpath=`(cd "$relpath"; /bin/pwd)`
52
# the current directory is the "build tree" or "object tree"
53
outpath=`/bin/pwd`
54
55
#license file location
56
LICENSE_FILE="$QT_LICENSE_FILE"
57
[ -z "$LICENSE_FILE" ] && LICENSE_FILE="$HOME/.qt-license"
58
if [ -f "$LICENSE_FILE" ]; then
59
    tr -d '\r' <"$LICENSE_FILE" >"${LICENSE_FILE}.tmp"
60
    diff "${LICENSE_FILE}.tmp" "${LICENSE_FILE}" >/dev/null 2>&1 || LICENSE_FILE="${LICENSE_FILE}.tmp"
61
fi
62
63
# later cache the command line in config.status
64
OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
65
66
# initialize global variables
67
QMAKE_SWITCHES=
68
QMAKE_VARS=
69
QMAKE_CONFIG=
70
QTCONFIG_CONFIG=
71
QT_CONFIG=
72
SUPPORTED=
73
QMAKE_VARS_FILE=.qmake.vars
74
75
:> "$QMAKE_VARS_FILE"
76
77
#-------------------------------------------------------------------------------
78
# utility functions
79
#-------------------------------------------------------------------------------
80
81
shellEscape()
82
{
83
    echo "$@" | sed 's/ /\ /g'
84
}
85
86
# Adds a new qmake variable to the cache
87
# Usage: QMakeVar mode varname contents
88
#   where mode is one of: set, add, del
89
QMakeVar()
90
{
91
    case "$1" in
92
	set)
93
	    eq="="
94
	    ;;
95
	add)
96
	    eq="+="
97
	    ;;
98
	del)
99
	    eq="-="
100
	    ;;
101
	*)
102
	    echo >&2 "BUG: wrong command to QMakeVar: $1"
103
	    ;;
104
    esac
105
106
    echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
107
}
108
109
# relies on $QMAKESPEC being set correctly. parses include statements in
110
# qmake.conf and prints out the expanded file
111
getQMakeConf()
112
{
113
    tmpSPEC="$QMAKESPEC"
114
    if [ -n "$1" ]; then
115
        tmpSPEC="$1"
116
    fi
117
    $AWK -v "QMAKESPEC=$tmpSPEC" '
118
/^include\(.+\)$/{
119
    fname = QMAKESPEC "/" substr($0, 9, length($0) - 9)
120
    while ((getline line < fname) > 0)
121
        print line
122
    close(fname)
123
    next
124
}
125
{ print }' "$tmpSPEC/qmake.conf"
126
}
127
128
# relies on $TEST_COMPILER being set correctly
129
compilerSupportsFlag()
130
{
131
    cat >conftest.cpp <<EOF
132
int main() { return 0; }
133
EOF
134
    "$TEST_COMPILER" "$@" -o /dev/null conftest.cpp
135
    ret=$?
136
    rm -f conftest.cpp conftest.o
137
    return $ret
138
}
139
140
# relies on $TEST_COMPILER being set correctly
141
linkerSupportsFlag()
142
{
143
    lflags=-Wl
144
    for flag
145
    do
146
	safe_flag=`shellEscape "$flag"`
147
	lflags=$lflags,$safe_flag
148
    done
149
    compilerSupportsFlag "$lflags" >/dev/null 2>&1
150
}
151
152
#-------------------------------------------------------------------------------
153
# operating system detection
154
#-------------------------------------------------------------------------------
155
156
# need that throughout the script
157
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
158
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
159
UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
160
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
161
162
163
#-------------------------------------------------------------------------------
164
# window system detection
165
#-------------------------------------------------------------------------------
166
167
PLATFORM_X11=no
168
PLATFORM_MAC=no
169
PLATFORM_QWS=no
170
171
if [ -f "$relpath"/src/gui/kernel/qapplication_mac.mm ] && [ -d /System/Library/Frameworks/Carbon.framework ]; then
172
    # Qt/Mac
173
    # ~ the Carbon SDK exists
174
    # ~ src/gui/base/qapplication_mac.cpp is present
175
    # ~ this is the internal edition and Qt/Mac sources exist
176
    PLATFORM_MAC=maybe
177
elif [ -f "$relpath"/src/gui/kernel/qapplication_qws.cpp ]; then
178
    # Qt Embedded
179
    # ~ src/gui/base/qapplication_qws.cpp is present
180
    # ~ this is the free or commercial edition
181
    # ~ this is the internal edition and Qt Embedded is explicitly enabled
182
    if [ -f "$relpath"/src/gui/kernel/qapplication_mac.mm ]; then
183
        # This is a depot build, or an all-platforms package
184
        PLATFORM_QWS=maybe
185
    else
186
        # This must be the embedded package, since the Qt/Mac source files are not present
187
	PLATFORM_QWS=yes
188
    fi
189
fi
190
191
#-----------------------------------------------------------------------------
192
# Qt version detection
193
#-----------------------------------------------------------------------------
194
QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
195
QT_MAJOR_VERSION=
196
QT_MINOR_VERSION=0
197
QT_PATCH_VERSION=0
198
if [ -n "$QT_VERSION" ]; then
199
   QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
200
   MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
201
   if [ -n "$MAJOR" ]; then
202
     MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
203
      PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
204
      QT_MAJOR_VERSION="$MAJOR"
205
      [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
206
      [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
207
   fi
208
fi
209
if [ -z "$QT_MAJOR_VERSION" ]; then
210
   echo "Cannot process version from qglobal.h: $QT_VERSION"
211
   echo "Cannot proceed."
212
   exit 1
213
fi
214
215
QT_PACKAGEDATE=`grep '^# *define *QT_PACKAGEDATE_STR' "$relpath"/src/corelib/global/qglobal.h | sed -e 's,^# *define *QT_PACKAGEDATE_STR *"\([^ ]*\)"$,\1,' -e s,-,,g`
216
if [ -z "$QT_PACKAGEDATE" ]; then
217
   echo "Unable to determine package date from qglobal.h: '$QT_PACKAGEDATE'"
218
   echo "Cannot proceed"
219
   exit 1
220
fi
221
222
#-------------------------------------------------------------------------------
223
# check the license
224
#-------------------------------------------------------------------------------
225
COMMERCIAL_USER=ask
226
CFG_DEV=no
227
CFG_NOKIA=no
228
CFG_EMBEDDED=no
229
EditionString=Commercial
230
231
earlyArgParse()
232
{
233
    # parse the arguments, setting things to "yes" or "no"
234
    while [ "$#" -gt 0 ]; do
235
        CURRENT_OPT="$1"
236
        UNKNOWN_ARG=no
237
        case "$1" in
238
        #Autoconf style options
239
        --enable-*)
240
            VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
241
            VAL=yes
242
            ;;
243
        --disable-*)
244
            VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
245
            VAL=no
246
            ;;
247
        --*=*)
248
            VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
249
            VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
250
            ;;
251
        --no-*)
252
            VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
253
            VAL=no
254
            ;;
255
        -embedded)
256
            VAR=embedded
257
            # this option may or may not be followed by an argument
258
            if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
259
                VAL=auto
260
            else
261
                shift;
262
                VAL=$1
263
            fi
264
            ;;
265
        -h|help|--help|-help)
266
            if [ "$VAL" = "yes" ]; then
267
                OPT_HELP="$VAL"
268
                COMMERCIAL_USER="no" #doesn't matter we will display the help
269
            else
270
                UNKNOWN_OPT=yes
271
                COMMERCIAL_USER="no" #doesn't matter we will display the help
272
            fi
273
            ;;
274
        --*)
275
            VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
276
            VAL=yes
277
            ;;
278
        -*)
279
            VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
280
            VAL="unknown"
281
            ;;
282
        *)
283
            UNKNOWN_ARG=yes
284
            ;;
285
        esac
286
        if [ "$UNKNOWN_ARG" = "yes" ]; then
287
            shift
288
            continue
289
        fi
290
        shift
291
292
        UNKNOWN_OPT=no
293
        case "$VAR" in
294
        embedded)
295
            CFG_EMBEDDED="$VAL"
296
            if [ "$PLATFORM_QWS" != "no" ]; then
297
                if [ "$PLATFORM_QWS" = "maybe" ]; then
298
                    PLATFORM_X11=no
299
                    PLATFORM_MAC=no
300
                    PLATFORM_QWS=yes
301
                fi
302
            else
303
                echo "No license exists to enable Qt for Embedded Linux. Disabling."
304
                CFG_EMBEDDED=no
305
            fi
306
            ;;
307
        developer-build)
308
            CFG_DEV="yes"
309
            ;;
310
        nokia-developer)
311
            CFG_DEV="yes"
312
            CFG_NOKIA="yes"
313
            COMMERCIAL_USER="no"
314
            ;;
315
        commercial)
316
            COMMERCIAL_USER="yes"
317
            ;;
318
        opensource)
319
            COMMERCIAL_USER="no"
320
            ;;
321
        *)
322
            UNKNOWN_OPT=yes
323
            ;;
324
        esac
325
    done
326
}
327
328
earlyArgParse "$@"
329
330
if [ "$COMMERCIAL_USER" = "ask" ]; then
331
    while true; do
332
        echo "Which edition of Qt do you want to use ?"
333
        echo
334
        echo "Type 'c' if you want to use the Commercial Edition."
335
        echo "Type 'o' if you want to use the Open Source Edition."
336
        echo
337
        read commercial
338
        echo
339
        if [ "$commercial" = "c" ]; then
340
            COMMERCIAL_USER="yes"
341
            break
342
        elif [ "$commercial" = "o" ]; then
343
            COMMERCIAL_USER="no"
344
            break
345
        fi
346
    done
347
fi
348
349
if [ "$CFG_NOKIA" = "yes" ]; then
350
    Licensee="Nokia"
351
    Edition="NokiaInternalBuild"
352
    EditionString="Nokia Internal Build"
353
    QT_EDITION="QT_EDITION_OPENSOURCE"
354
    [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
355
elif [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
356
    # Commercial preview release
357
    [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
358
    Licensee="Preview"
359
    Edition="Preview"
360
    QT_EDITION="QT_EDITION_DESKTOP"
361
    LicenseType="Technology Preview"
362
elif [ $COMMERCIAL_USER = "yes" ]; then
363
    # one of commercial editions
364
    [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
365
    [ "$PLATFORM_QWS" = "maybe" ] && PLATFORM_QWS=yes
366
367
    # read in the license file
368
    if [ -f "$LICENSE_FILE" ]; then
369
        . "$LICENSE_FILE" >/dev/null 2>&1
370
        if [ -z "$LicenseKeyExt" ]; then
371
            echo
372
            echo "You are using an old license file."
373
            echo
374
            echo "Please install the license file supplied by Nokia,"
375
            echo "or install the Qt Open Source Edition if you intend to"
376
            echo "develop free software."
377
            exit 1
378
        fi
379
	if [ -z "$Licensee" ]; then
380
	    echo
381
	    echo "Invalid license key. Please check the license key."
382
	    exit 1
383
	fi
384
    else
385
        if [ -z "$LicenseKeyExt" ]; then
386
            echo
387
            if echo '\c' | grep '\c' >/dev/null; then
388
                echo -n "Please enter your license key: "
389
            else
390
                echo "Please enter your license key: \c"
391
            fi
392
            read LicenseKeyExt
393
            Licensee="Unknown user"
394
        fi
395
    fi
396
397
    # Key verification
398
    echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
399
        && LicenseValid="yes" \
400
        || LicenseValid="no"
401
    if [ "$LicenseValid" != "yes" ]; then
402
        echo
403
        echo "Invalid license key. Please check the license key."
404
        exit 1
405
    fi
406
    ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
407
    PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d - | cut -b 1`
408
    LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
409
    LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
410
411
    # determine which edition we are licensed to use
412
    case "$LicenseTypeCode" in
413
    F4M)
414
        LicenseType="Commercial"
415
        case $ProductCode in
416
        F)
417
            Edition="Universal"
418
            QT_EDITION="QT_EDITION_UNIVERSAL"
419
            ;;
420
        B)
421
            Edition="FullFramework"
422
            EditionString="Full Framework"
423
            QT_EDITION="QT_EDITION_DESKTOP"
424
            ;;
425
        L)
426
            Edition="GUIFramework"
427
            EditionString="GUI Framework"
428
            QT_EDITION="QT_EDITION_DESKTOPLIGHT"
429
            ;;
430
        esac
431
        ;;
432
    Z4M|R4M|Q4M)
433
        LicenseType="Evaluation"
434
        case $ProductCode in
435
         B)
436
            Edition="Evaluation"
437
            QT_EDITION="QT_EDITION_EVALUATION"
438
            ;;
439
        esac
440
        ;;
441
    esac
442
    if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
443
        echo
444
        echo "Invalid license key. Please check the license key."
445
        exit 1
446
    fi
447
448
    # verify that we are licensed to use Qt on this platform
449
    LICENSE_EXTENSION=
450
    if [ "$PlatformCode" = "X" ]; then
451
	# Qt All-OS
452
	LICENSE_EXTENSION="-ALLOS"
453
    elif [ "$PLATFORM_QWS" = "yes" ]; then
454
        case $PlatformCode in
455
        2|4|8|A|B|E|G|J|K|P|Q|S|U|V|W)
456
            # Qt for Embedded Linux
457
            LICENSE_EXTENSION="-EMBEDDED"
458
            ;;
459
        *)
460
            echo
461
            echo "You are not licensed for Qt for Embedded Linux."
462
            echo
463
            echo "Please contact qt-info@nokia.com to upgrade your license"
464
            echo "to include Qt for Embedded Linux, or install the"
465
            echo "Qt Open Source Edition if you intend to develop free software."
466
            exit 1
467
            ;;
468
        esac
469
    elif [ "$PLATFORM_MAC" = "yes" ]; then
470
        case $PlatformCode in
471
        2|4|5|7|9|B|C|E|F|G|L|M|U|W|Y)
472
            # Qt/Mac
473
            LICENSE_EXTENSION="-DESKTOP"
474
            ;;
475
        3|6|8|A|D|H|J|K|P|Q|S|V)
476
            # Embedded no-deploy
477
            LICENSE_EXTENSION="-EMBEDDED"
478
	    ;;
479
        *)
480
            echo
481
            echo "You are not licensed for the Qt/Mac platform."
482
            echo
483
            echo "Please contact qt-info@nokia.com to upgrade your license"
484
            echo "to include the Qt/Mac platform."
485
            exit 1
486
            ;;
487
        esac
488
     else
489
         case $PlatformCode in
490
         2|3|4|5|7|D|E|F|J|M|Q|S|T|V|Z)
491
             # Qt/X11
492
             LICENSE_EXTENSION="-DESKTOP"
493
             ;;
494
         6|8|9|A|B|C|G|H|K|P|U|W)
495
             # Embedded no-deploy
496
             LICENSE_EXTENSION="-EMBEDDED"
497
             ;;
498
         *)
499
             echo
500
             echo "You are not licensed for the Qt/X11 platform."
501
             echo
502
             echo "Please contact qt-info@nokia.com to upgrade your license to"
503
             echo "include the Qt/X11 platform, or install the Qt Open Source Edition"
504
             echo "if you intend to develop free software."
505
             exit 1
506
             ;;
507
        esac
508
    fi
509
510
    if test -r "$relpath/.LICENSE"; then
511
	# Generic, non-final license
512
	LICENSE_EXTENSION=""
513
	line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
514
	case "$line" in
515
	    *BETA*)
516
		Edition=Beta
517
		;;
518
	    *TECHNOLOGY?PREVIEW*)
519
		Edition=Preview
520
		;;
521
	    *EVALUATION*)
522
		Edition=Evaluation
523
		;;
524
	    *)
525
		echo >&2 "Invalid license files; cannot continue"
526
		exit 1
527
		;;
528
	esac
529
	Licensee="$Edition"
530
	EditionString="$Edition"
531
	QT_EDITION="QT_EDITION_DESKTOP"
532
    fi
533
534
    case "$LicenseFeatureCode" in
535
    G|L)
536
        # US
537
        case "$LicenseType" in
538
        Commercial)
539
            cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
540
            ;;
541
        Evaluation)
542
            cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
543
            ;;
544
        esac
545
        ;;
546
    2|5)
547
        # non-US
548
        case "$LicenseType" in
549
        Commercial)
550
            cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
551
            ;;
552
        Evaluation)
553
            cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
554
            ;;
555
        esac
556
        ;;
557
    *)
558
        echo
559
        echo "Invalid license key. Please check the license key."
560
        exit 1
561
        ;;
562
    esac
563
    if [ '!' -f "$outpath/LICENSE" ]; then
564
        echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
565
        echo "this software has disappeared."
566
        echo
567
        echo "Sorry, you are not licensed to use this software."
568
        echo "Try re-installing."
569
        echo
570
        exit 1
571
    fi
572
elif [ $COMMERCIAL_USER = "no" ]; then
573
    # Open Source edition - may only be used under the terms of the GPL or LGPL.
574
    [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
575
    Licensee="Open Source"
576
    Edition="OpenSource"
577
    EditionString="Open Source"
578
    QT_EDITION="QT_EDITION_OPENSOURCE"
579
fi
580
581
#-------------------------------------------------------------------------------
582
# initalize variables
583
#-------------------------------------------------------------------------------
584
585
SYSTEM_VARIABLES="CC CXX CFLAGS CXXFLAGS LDFLAGS"
586
for varname in $SYSTEM_VARIABLES; do
587
    qmakevarname="${varname}"
588
    # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
589
    if [ "${varname}" = "LDFLAGS" ]; then
590
        qmakevarname="LFLAGS"
591
    fi
592
    cmd=`echo \
593
'if [ -n "\$'${varname}'" ]; then
594
    QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
595
fi'`
596
    eval "$cmd"
597
done
598
# Use CC/CXX to run config.tests
599
mkdir -p "$outpath/config.tests"
600
rm -f "$outpath/config.tests/.qmake.cache"
601
cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
602
603
QMakeVar add styles "cde mac motif plastique cleanlooks windows"
604
QMakeVar add decorations "default windows styled"
605
QMakeVar add mouse-drivers "pc"
606
if [ "$UNAME_SYSTEM" = "Linux" ] ; then
607
    QMakeVar add gfx-drivers "linuxfb"
608
    QMakeVar add mouse-drivers "linuxtp"
609
fi
610
QMakeVar add kbd-drivers "tty"
611
612
if [ "$CFG_DEV" = "yes" ]; then
613
    QMakeVar add kbd-drivers "um"
614
fi
615
616
# QTDIR may be set and point to an old or system-wide Qt installation
617
unset QTDIR
618
619
# the minimum version of libdbus-1 that we require:
620
MIN_DBUS_1_VERSION=0.93
621
622
# initalize internal variables
623
CFG_CONFIGURE_EXIT_ON_ERROR=yes
624
CFG_PROFILE=no
625
CFG_EXCEPTIONS=unspecified
626
CFG_SCRIPT=auto # (yes|no|auto)
627
CFG_SCRIPTTOOLS=auto # (yes|no|auto)
628
CFG_XMLPATTERNS=auto # (yes|no|auto)
629
CFG_INCREMENTAL=auto
630
CFG_QCONFIG=full
631
CFG_DEBUG=auto
632
CFG_MYSQL_CONFIG=
633
CFG_DEBUG_RELEASE=no
634
CFG_SHARED=yes
635
CFG_SM=auto
636
CFG_XSHAPE=auto
637
CFG_XSYNC=auto
638
CFG_XINERAMA=runtime
639
CFG_XFIXES=runtime
640
CFG_ZLIB=auto
641
CFG_SQLITE=qt
642
CFG_GIF=auto
643
CFG_TIFF=auto
644
CFG_LIBTIFF=auto
645
CFG_PNG=yes
646
CFG_LIBPNG=auto
647
CFG_JPEG=auto
648
CFG_LIBJPEG=auto
649
CFG_MNG=auto
650
CFG_LIBMNG=auto
651
CFG_XCURSOR=runtime
652
CFG_XRANDR=runtime
653
CFG_XRENDER=auto
654
CFG_MITSHM=auto
655
CFG_OPENGL=auto
656
CFG_OPENVG=no
657
CFG_OPENVG_LC_INCLUDES=no
658
CFG_OPENVG_SHIVA=no
659
CFG_OPENVG_ON_OPENGL=no
660
CFG_EGL=no
661
CFG_EGL_GLES_INCLUDES=no
662
CFG_SSE=auto
663
CFG_FONTCONFIG=auto
664
CFG_QWS_FREETYPE=auto
665
CFG_LIBFREETYPE=auto
666
CFG_SQL_AVAILABLE=
667
QT_DEFAULT_BUILD_PARTS="libs tools examples demos docs translations"
668
CFG_BUILD_PARTS=""
669
CFG_NOBUILD_PARTS=""
670
CFG_RELEASE_QMAKE=no
671
CFG_PHONON=auto
672
CFG_PHONON_BACKEND=yes
673
CFG_MULTIMEDIA=yes
674
CFG_SVG=yes
675
CFG_WEBKIT=auto # (yes|no|auto)
676
CFG_JAVASCRIPTCORE_JIT=auto
677
678
CFG_GFX_AVAILABLE="linuxfb transformed qvfb vnc multiscreen directfb"
679
CFG_GFX_ON="linuxfb multiscreen"
680
CFG_GFX_PLUGIN_AVAILABLE=
681
CFG_GFX_PLUGIN=
682
CFG_GFX_OFF=
683
CFG_KBD_AVAILABLE="tty linuxinput qvfb"
684
CFG_KBD_ON="tty"    #default, see QMakeVar above
685
CFG_MOUSE_AVAILABLE="pc linuxtp linuxinput tslib qvfb"
686
CFG_MOUSE_ON="pc linuxtp"   #default, see QMakeVar above
687
688
if [ -f "$relpath/src/gui/embedded/qscreenqnx_qws.cpp" ]; then
689
    CFG_KBD_AVAILABLE="${CFG_KBD_AVAILABLE} qnx"
690
    CFG_MOUSE_AVAILABLE="${CFG_MOUSE_AVAILABLE} qnx"
691
    CFG_GFX_AVAILABLE="${CFG_GFX_AVAILABLE} qnx"
692
fi
693
694
CFG_ARCH=
695
CFG_HOST_ARCH=
696
CFG_KBD_PLUGIN_AVAILABLE=
697
CFG_KBD_PLUGIN=
698
CFG_KBD_OFF=
699
CFG_MOUSE_PLUGIN_AVAILABLE=
700
CFG_MOUSE_PLUGIN=
701
CFG_MOUSE_OFF=
702
CFG_USE_GNUMAKE=no
703
CFG_IM=yes
704
CFG_DECORATION_AVAILABLE="styled windows default"
705
CFG_DECORATION_ON="${CFG_DECORATION_AVAILABLE}" # all on by default
706
CFG_DECORATION_PLUGIN_AVAILABLE=
707
CFG_DECORATION_PLUGIN=
708
CFG_XINPUT=runtime
709
CFG_XKB=auto
710
CFG_NIS=auto
711
CFG_CUPS=auto
712
CFG_ICONV=auto
713
CFG_DBUS=auto
714
CFG_GLIB=auto
715
CFG_GSTREAMER=auto
716
CFG_QGTKSTYLE=auto
717
CFG_LARGEFILE=auto
718
CFG_OPENSSL=auto
719
CFG_PTMALLOC=no
720
CFG_STL=auto
721
CFG_PRECOMPILE=auto
722
CFG_SEPARATE_DEBUG_INFO=auto
723
CFG_REDUCE_EXPORTS=auto
724
CFG_MMX=auto
725
CFG_3DNOW=auto
726
CFG_SSE=auto
727
CFG_SSE2=auto
728
CFG_REDUCE_RELOCATIONS=no
729
CFG_IPV6=auto
730
CFG_NAS=no
731
CFG_QWS_DEPTHS=all
732
CFG_USER_BUILD_KEY=
733
CFG_ACCESSIBILITY=auto
734
CFG_QT3SUPPORT=yes
735
CFG_ENDIAN=auto
736
CFG_HOST_ENDIAN=auto
737
CFG_DOUBLEFORMAT=auto
738
CFG_ARMFPA=auto
739
CFG_IWMMXT=no
740
CFG_CLOCK_GETTIME=auto
741
CFG_CLOCK_MONOTONIC=auto
742
CFG_MREMAP=auto
743
CFG_GETADDRINFO=auto
744
CFG_IPV6IFNAME=auto
745
CFG_GETIFADDRS=auto
746
CFG_INOTIFY=auto
747
CFG_RPATH=yes
748
CFG_FRAMEWORK=auto
749
CFG_MAC_ARCHS=
750
MAC_CONFIG_TEST_COMMANDLINE=  # used to make the configure tests run with the correct arch's and SDK settings
751
CFG_MAC_DWARF2=auto
752
CFG_MAC_XARCH=auto
753
CFG_MAC_CARBON=yes
754
CFG_MAC_COCOA=auto
755
COMMANDLINE_MAC_COCOA=no
756
CFG_SXE=no
757
CFG_PREFIX_INSTALL=yes
758
CFG_SDK=
759
D_FLAGS=
760
I_FLAGS=
761
L_FLAGS=
762
RPATH_FLAGS=
763
l_FLAGS=
764
QCONFIG_FLAGS=
765
XPLATFORM=              # This seems to be the QMAKESPEC, like "linux-g++"
766
PLATFORM=$QMAKESPEC
767
QT_CROSS_COMPILE=no
768
OPT_CONFIRM_LICENSE=no
769
OPT_SHADOW=maybe
770
OPT_FAST=auto
771
OPT_VERBOSE=no
772
OPT_HELP=
773
CFG_SILENT=no
774
CFG_GRAPHICS_SYSTEM=default
775
CFG_ALSA=auto
776
777
# initalize variables used for installation
778
QT_INSTALL_PREFIX=
779
QT_INSTALL_DOCS=
780
QT_INSTALL_HEADERS=
781
QT_INSTALL_LIBS=
782
QT_INSTALL_BINS=
783
QT_INSTALL_PLUGINS=
784
QT_INSTALL_DATA=
785
QT_INSTALL_TRANSLATIONS=
786
QT_INSTALL_SETTINGS=
787
QT_INSTALL_EXAMPLES=
788
QT_INSTALL_DEMOS=
789
QT_HOST_PREFIX=
790
791
#flags for SQL drivers
792
QT_CFLAGS_PSQL=
793
QT_LFLAGS_PSQL=
794
QT_CFLAGS_MYSQL=
795
QT_LFLAGS_MYSQL=
796
QT_LFLAGS_MYSQL_R=
797
QT_CFLAGS_SQLITE=
798
QT_LFLAGS_SQLITE=
799
QT_LFLAGS_ODBC="-lodbc"
800
801
# flags for libdbus-1
802
QT_CFLAGS_DBUS=
803
QT_LIBS_DBUS=
804
805
# flags for Glib (X11 only)
806
QT_CFLAGS_GLIB=
807
QT_LIBS_GLIB=
808
809
# flags for GStreamer (X11 only)
810
QT_CFLAGS_GSTREAMER=
811
QT_LIBS_GSTREAMER=
812
813
#-------------------------------------------------------------------------------
814
# check SQL drivers, mouse drivers and decorations available in this package
815
#-------------------------------------------------------------------------------
816
817
# opensource version removes some drivers, so force them to be off
818
CFG_SQL_tds=no
819
CFG_SQL_oci=no
820
CFG_SQL_db2=no
821
822
CFG_SQL_AVAILABLE=
823
if [ -d "$relpath/src/plugins/sqldrivers" ]; then
824
  for a in "$relpath/src/plugins/sqldrivers/"*; do
825
     if [ -d "$a" ]; then
826
	 base_a=`basename "$a"`
827
  	 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
828
	 eval "CFG_SQL_${base_a}=auto"
829
     fi
830
  done
831
fi
832
833
CFG_DECORATION_PLUGIN_AVAILABLE=
834
if [ -d "$relpath/src/plugins/decorations" ]; then
835
  for a in "$relpath/src/plugins/decorations/"*; do
836
     if [ -d "$a" ]; then
837
	 base_a=`basename "$a"`
838
  	 CFG_DECORATION_PLUGIN_AVAILABLE="${CFG_DECORATION_PLUGIN_AVAILABLE} ${base_a}"
839
     fi
840
  done
841
fi
842
843
CFG_KBD_PLUGIN_AVAILABLE=
844
if [ -d "$relpath/src/plugins/kbddrivers" ]; then
845
  for a in "$relpath/src/plugins/kbddrivers/"*; do
846
     if [ -d "$a" ]; then
847
	 base_a=`basename "$a"`
848
  	 CFG_KBD_PLUGIN_AVAILABLE="${CFG_KBD_PLUGIN_AVAILABLE} ${base_a}"
849
     fi
850
  done
851
fi
852
853
CFG_MOUSE_PLUGIN_AVAILABLE=
854
if [ -d "$relpath/src/plugins/mousedrivers" ]; then
855
  for a in "$relpath/src/plugins/mousedrivers/"*; do
856
     if [ -d "$a" ]; then
857
	 base_a=`basename "$a"`
858
  	 CFG_MOUSE_PLUGIN_AVAILABLE="${CFG_MOUSE_PLUGIN_AVAILABLE} ${base_a}"
859
     fi
860
  done
861
fi
862
863
CFG_GFX_PLUGIN_AVAILABLE=
864
if [ -d "$relpath/src/plugins/gfxdrivers" ]; then
865
  for a in "$relpath/src/plugins/gfxdrivers/"*; do
866
     if [ -d "$a" ]; then
867
	 base_a=`basename "$a"`
868
  	 CFG_GFX_PLUGIN_AVAILABLE="${CFG_GFX_PLUGIN_AVAILABLE} ${base_a}"
869
     fi
870
  done
871
  CFG_GFX_OFF="$CFG_GFX_AVAILABLE" # assume all off
872
fi
873
874
#-------------------------------------------------------------------------------
875
# parse command line arguments
876
#-------------------------------------------------------------------------------
877
878
# parse the arguments, setting things to "yes" or "no"
879
while [ "$#" -gt 0 ]; do
880
    CURRENT_OPT="$1"
881
    UNKNOWN_ARG=no
882
    case "$1" in
883
    #Autoconf style options
884
    --enable-*)
885
        VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
886
        VAL=yes
887
        ;;
888
    --disable-*)
889
        VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
890
        VAL=no
891
        ;;
892
    --*=*)
893
        VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
894
        VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
895
        ;;
896
    --no-*)
897
        VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
898
        VAL=no
899
        ;;
900
    --*)
901
        VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
902
        VAL=yes
903
        ;;
904
    #Qt plugin options
905
    -no-*-*|-plugin-*-*|-qt-*-*)
906
        VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
907
        VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
908
        ;;
909
    #Qt style no options
910
    -no-*)
911
        VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
912
        VAL=no
913
        ;;
914
    #Qt style yes options
915
        -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xinput|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-universal|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-multimedia|-svg|-webkit|-javascript-jit|-script|-scripttools|-rpath|-force-pkg-config)
916
        VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
917
        VAL=yes
918
        ;;
919
    #Qt style options that pass an argument
920
    -qconfig)
921
        if [ "$PLATFORM_QWS" != "yes" ]; then
922
            echo
923
            echo "WARNING: -qconfig is only tested and supported on Qt for Embedded Linux."
924
            echo
925
        fi
926
        CFG_QCONFIG="$VAL"
927
        VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
928
        shift
929
        VAL=$1
930
        ;;
931
    -prefix|-docdir|-headerdir|-plugindir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-demosdir|-depths|-make|-nomake|-platform|-xplatform|-buildkey|-sdk|-arch|-host-arch|-mysql_config)
932
        VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
933
        shift
934
        VAL="$1"
935
        ;;
936
    #Qt style complex options in one command
937
    -enable-*|-disable-*)
938
        VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
939
        VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
940
        ;;
941
    #Qt Builtin/System style options
942
    -no-*|-system-*|-qt-*)
943
        VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
944
        VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
945
        ;;
946
    #Options that cannot be generalized
947
    -k|-continue)
948
        VAR=fatal_error
949
        VAL=no
950
        ;;
951
    -embedded)
952
        VAR=embedded
953
        # this option may or may not be followed by an argument
954
        if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
955
            VAL=auto
956
        else
957
            shift;
958
            VAL=$1
959
        fi
960
	;;
961
    -opengl)
962
        VAR=opengl
963
        # this option may or may not be followed by an argument
964
        if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
965
            VAL=yes
966
        else
967
            shift;
968
            VAL=$1
969
        fi
970
	;;
971
    -openvg)
972
        VAR=openvg
973
        # this option may or may not be followed by an argument
974
        if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
975
            VAL=yes
976
        else
977
            shift;
978
            VAL=$1
979
        fi
980
	;;
981
    -hostprefix)
982
        VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
983
        # this option may or may not be followed by an argument
984
        if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
985
            VAL=$outpath
986
        else
987
            shift;
988
            VAL=$1
989
        fi
990
        ;;
991
    -host-*-endian)
992
        VAR=host_endian
993
        VAL=`echo $1 | sed "s,^-.*-\(.*\)-.*,\1,"`
994
        ;;
995
    -*-endian)
996
        VAR=endian
997
        VAL=`echo $1 | sed "s,^-\(.*\)-.*,\1,"`
998
        ;;
999
    -qtnamespace)
1000
        VAR="qtnamespace"
1001
        shift
1002
        VAL="$1"
1003
        ;;
1004
    -graphicssystem)
1005
	VAR="graphicssystem"
1006
	shift
1007
	VAL=$1
1008
	;;
1009
    -qtlibinfix)
1010
        VAR="qtlibinfix"
1011
        shift
1012
        VAL="$1"
1013
        ;;
1014
    -D?*|-D)
1015
        VAR="add_define"
1016
        if [ "$1" = "-D" ]; then
1017
            shift
1018
            VAL="$1"
1019
        else
1020
            VAL=`echo $1 | sed 's,-D,,'`
1021
        fi
1022
        ;;
1023
    -I?*|-I)
1024
        VAR="add_ipath"
1025
        if [ "$1" = "-I" ]; then
1026
            shift
1027
            VAL="$1"
1028
        else
1029
            VAL=`echo $1 | sed 's,-I,,'`
1030
        fi
1031
        ;;
1032
    -L?*|-L)
1033
        VAR="add_lpath"
1034
        if [ "$1" = "-L" ]; then
1035
            shift
1036
            VAL="$1"
1037
        else
1038
            VAL=`echo $1 | sed 's,-L,,'`
1039
        fi
1040
        ;;
1041
    -R?*|-R)
1042
        VAR="add_rpath"
1043
        if [ "$1" = "-R" ]; then
1044
            shift
1045
            VAL="$1"
1046
        else
1047
            VAL=`echo $1 | sed 's,-R,,'`
1048
        fi
1049
        ;;
1050
    -l?*)
1051
        VAR="add_link"
1052
        VAL=`echo $1 | sed 's,-l,,'`
1053
        ;;
1054
    -F?*|-F)
1055
        VAR="add_fpath"
1056
        if [ "$1" = "-F" ]; then
1057
            shift
1058
            VAL="$1"
1059
        else
1060
            VAL=`echo $1 | sed 's,-F,,'`
1061
        fi
1062
        ;;
1063
    -fw?*|-fw)
1064
        VAR="add_framework"
1065
        if [ "$1" = "-fw" ]; then
1066
            shift
1067
            VAL="$1"
1068
        else
1069
            VAL=`echo $1 | sed 's,-fw,,'`
1070
        fi
1071
        ;;
1072
    -*)
1073
        VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1074
        VAL="unknown"
1075
        ;;
1076
    *)
1077
        UNKNOWN_ARG=yes
1078
        ;;
1079
    esac
1080
    if [ "$UNKNOWN_ARG" = "yes" ]; then
1081
        echo "$1: unknown argument"
1082
        OPT_HELP=yes
1083
        ERROR=yes
1084
        shift
1085
        continue
1086
     fi
1087
    shift
1088
1089
    UNKNOWN_OPT=no
1090
    case "$VAR" in
1091
    qt3support)
1092
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1093
            CFG_QT3SUPPORT="$VAL"
1094
        else
1095
            UNKNOWN_OPT=yes
1096
        fi
1097
        ;;
1098
    accessibility)
1099
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1100
            CFG_ACCESSIBILITY="$VAL"
1101
        else
1102
            UNKNOWN_OPT=yes
1103
        fi
1104
        ;;
1105
    license)
1106
	LICENSE_FILE="$VAL"
1107
	;;
1108
    gnumake)
1109
        CFG_USE_GNUMAKE="$VAL"
1110
        ;;
1111
    mysql_config)
1112
	CFG_MYSQL_CONFIG="$VAL"
1113
	;;
1114
    prefix)
1115
        QT_INSTALL_PREFIX="$VAL"
1116
        ;;
1117
    hostprefix)
1118
	QT_HOST_PREFIX="$VAL"
1119
	;;
1120
    force-pkg-config)
1121
        QT_FORCE_PKGCONFIG=yes
1122
        ;;
1123
    docdir)
1124
        QT_INSTALL_DOCS="$VAL"
1125
        ;;
1126
    headerdir)
1127
        QT_INSTALL_HEADERS="$VAL"
1128
        ;;
1129
    plugindir)
1130
        QT_INSTALL_PLUGINS="$VAL"
1131
        ;;
1132
    datadir)
1133
        QT_INSTALL_DATA="$VAL"
1134
        ;;
1135
    libdir)
1136
        QT_INSTALL_LIBS="$VAL"
1137
        ;;
1138
    qtnamespace)
1139
        QT_NAMESPACE="$VAL"
1140
        ;;
1141
    qtlibinfix)
1142
        QT_LIBINFIX="$VAL"
1143
        ;;
1144
    translationdir)
1145
        QT_INSTALL_TRANSLATIONS="$VAL"
1146
        ;;
1147
    sysconfdir|settingsdir)
1148
        QT_INSTALL_SETTINGS="$VAL"
1149
        ;;
1150
    examplesdir)
1151
        QT_INSTALL_EXAMPLES="$VAL"
1152
        ;;
1153
    demosdir)
1154
        QT_INSTALL_DEMOS="$VAL"
1155
        ;;
1156
    qconfig)
1157
        CFG_QCONFIG="$VAL"
1158
        ;;
1159
    bindir)
1160
        QT_INSTALL_BINS="$VAL"
1161
        ;;
1162
    buildkey)
1163
        CFG_USER_BUILD_KEY="$VAL"
1164
        ;;
1165
    sxe)
1166
	CFG_SXE="$VAL"
1167
        ;;
1168
    embedded)
1169
        CFG_EMBEDDED="$VAL"
1170
        if [ "$PLATFORM_QWS" != "no" ]; then
1171
            if [ "$PLATFORM_QWS" = "maybe" ]; then
1172
                PLATFORM_X11=no
1173
                PLATFORM_MAC=no
1174
                PLATFORM_QWS=yes
1175
            fi
1176
        else
1177
            echo "No license exists to enable Qt for Embedded Linux. Disabling."
1178
            CFG_EMBEDDED=no
1179
        fi
1180
        ;;
1181
    sse)
1182
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1183
            CFG_SSE="$VAL"
1184
        else
1185
            UNKNOWN_OPT=yes
1186
        fi
1187
	;;
1188
    endian)
1189
        if [ "$VAL" = "little" ]; then
1190
            CFG_ENDIAN="Q_LITTLE_ENDIAN"
1191
        elif [ "$VAL" = "big" ]; then
1192
            CFG_ENDIAN="Q_BIG_ENDIAN"
1193
        else
1194
            UNKNOWN_OPT=yes
1195
        fi
1196
        ;;
1197
    host_endian)
1198
        if [ "$VAL" = "little" ]; then
1199
            CFG_HOST_ENDIAN="Q_LITTLE_ENDIAN"
1200
        elif [ "$VAL" = "big" ]; then
1201
            CFG_HOST_ENDIAN="Q_BIG_ENDIAN"
1202
        else
1203
            UNKNOWN_OPT=yes
1204
        fi
1205
        ;;
1206
    armfpa)
1207
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1208
            CFG_ARMFPA="$VAL"
1209
        else
1210
            UNKNOWN_OPT=yes
1211
        fi
1212
        ;;
1213
    depths)
1214
        CFG_QWS_DEPTHS="$VAL"
1215
        ;;
1216
    opengl)
1217
        if  [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1218
            [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1219
            [ "$VAL" = "es1cl" ] || [ "$VAL" = "es1" ] || [ "$VAL" = "es2" ]; then
1220
            CFG_OPENGL="$VAL"
1221
        else
1222
            UNKNOWN_OPT=yes
1223
        fi
1224
        ;;
1225
    openvg)
1226
        if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1227
            CFG_OPENVG="$VAL"
1228
        else
1229
            UNKNOWN_OPT=yes
1230
        fi
1231
        ;;
1232
    graphicssystem)
1233
        if [ "$PLATFORM_QWS" = "yes" ]; then
1234
            echo "Error: Graphics System plugins are not supported on QWS."
1235
            echo "   On QWS, the graphics system API is part of the QScreen plugin architecture "
1236
            echo "   rather than existing as a separate plugin."
1237
            echo ""
1238
            UNKNOWN_OPT=yes
1239
        else
1240
            if  [ "$VAL" = "opengl" ]; then
1241
                CFG_GRAPHICS_SYSTEM="opengl"
1242
            elif [ "$VAL" = "openvg" ]; then
1243
                CFG_GRAPHICS_SYSTEM="openvg"
1244
            elif [ "$VAL" = "raster" ]; then
1245
                CFG_GRAPHICS_SYSTEM="raster"
1246
            else
1247
                UNKNOWN_OPT=yes
1248
            fi
1249
        fi
1250
	;;
1251
1252
    qvfb) # left for commandline compatibility, not documented
1253
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1254
            if [ "$VAL" = "yes" ]; then
1255
		QMakeVar add gfx-drivers qvfb
1256
		QMakeVar add kbd-drivers qvfb
1257
		QMakeVar add mouse-drivers qvfb
1258
                CFG_GFX_ON="$CFG_GFX_ON qvfb"
1259
                CFG_KBD_ON="$CFG_KBD_ON qvfb"
1260
                CFG_MOUSE_ON="$CFG_MOUSE_ON qvfb"
1261
            fi
1262
        else
1263
            UNKNOWN_OPT=yes
1264
        fi
1265
        ;;
1266
    nomake)
1267
	CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1268
        ;;
1269
    make)
1270
	CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1271
        ;;
1272
    x11)
1273
        if [ "$PLATFORM_MAC" = "yes" ]; then
1274
            PLATFORM_MAC=no
1275
        elif [ "$PLATFORM_QWS" = "yes" ]; then
1276
            PLATFORM_QWS=no
1277
        fi
1278
        if [ "$CFG_FRAMEWORK" = "auto" ]; then
1279
            CFG_FRAMEWORK=no
1280
        fi
1281
        PLATFORM_X11=yes
1282
        ;;
1283
    sdk)
1284
        if [ "$PLATFORM_MAC" = "yes" ]; then
1285
            CFG_SDK="$VAL"
1286
        else
1287
            UNKNOWN_OPT=yes
1288
        fi
1289
	;;
1290
     dwarf2)
1291
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1292
            CFG_MAC_DWARF2="$VAL"
1293
        else
1294
            UNKNOWN_OPT=yes
1295
        fi
1296
	;;
1297
    arch)
1298
        if [ "$PLATFORM_MAC" = "yes" ]; then
1299
            CFG_MAC_ARCHS="$CFG_MAC_ARCHS $VAL"
1300
        else
1301
            CFG_ARCH=$VAL
1302
        fi
1303
        ;;
1304
    host-arch)
1305
        CFG_HOST_ARCH=$VAL
1306
        ;;
1307
    universal)
1308
        if [ "$PLATFORM_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1309
            CFG_MAC_ARCHS="$CFG_MAC_ARCHS x86 ppc"
1310
        else
1311
            UNKNOWN_OPT=yes
1312
        fi
1313
        ;;
1314
    cocoa)
1315
        if [ "$PLATFORM_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1316
            CFG_MAC_COCOA="$VAL"
1317
            COMMANDLINE_MAC_COCOA="$VAL"
1318
        else
1319
            UNKNOWN_OPT=yes
1320
        fi
1321
        ;;
1322
    framework)
1323
        if [ "$PLATFORM_MAC" = "yes" ]; then
1324
            CFG_FRAMEWORK="$VAL"
1325
        else
1326
            UNKNOWN_OPT=yes
1327
        fi
1328
        ;;
1329
    profile)
1330
        if [ "$VAL" = "yes" ]; then
1331
            CFG_PROFILE=yes
1332
	    QMakeVar add QMAKE_CFLAGS -pg
1333
	    QMakeVar add QMAKE_CXXFLAGS -pg
1334
	    QMakeVar add QMAKE_LFLAGS -pg
1335
            QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1336
        else
1337
            UNKNOWN_OPT=yes
1338
        fi
1339
        ;;
1340
    exceptions|g++-exceptions)
1341
        if [ "$VAL" = "no" ]; then
1342
            CFG_EXCEPTIONS=no
1343
        elif [ "$VAL" = "yes" ]; then
1344
            CFG_EXCEPTIONS=yes
1345
        else
1346
            UNKNOWN_OPT=yes
1347
        fi
1348
        ;;
1349
    platform)
1350
        PLATFORM="$VAL"
1351
        # keep compatibility with old platform names
1352
        case $PLATFORM in
1353
        aix-64)
1354
            PLATFORM=aix-xlc-64
1355
            ;;
1356
        hpux-o64)
1357
            PLATFORM=hpux-acc-o64
1358
            ;;
1359
        hpux-n64)
1360
            PLATFORM=hpux-acc-64
1361
            ;;
1362
        hpux-acc-n64)
1363
            PLATFORM=hpux-acc-64
1364
            ;;
1365
        irix-n32)
1366
            PLATFORM=irix-cc
1367
            ;;
1368
        irix-64)
1369
            PLATFORM=irix-cc-64
1370
            ;;
1371
        irix-cc-n64)
1372
            PLATFORM=irix-cc-64
1373
            ;;
1374
        reliant-64)
1375
            PLATFORM=reliant-cds-64
1376
            ;;
1377
        solaris-64)
1378
            PLATFORM=solaris-cc-64
1379
            ;;
1380
        solaris-64)
1381
            PLATFORM=solaris-cc-64
1382
            ;;
1383
        openunix-cc)
1384
            PLATFORM=unixware-cc
1385
            ;;
1386
        openunix-g++)
1387
            PLATFORM=unixware-g++
1388
            ;;
1389
        unixware7-cc)
1390
            PLATFORM=unixware-cc
1391
            ;;
1392
        unixware7-g++)
1393
            PLATFORM=unixware-g++
1394
            ;;
1395
        macx-g++-64)
1396
            PLATFORM=macx-g++
1397
	    NATIVE_64_ARCH=
1398
            case `uname -p` in
1399
            i386) NATIVE_64_ARCH="x86_64" ;;
1400
            powerpc) NATIVE_64_ARCH="ppc64" ;;
1401
            *)   echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1402
            esac
1403
	    if [ ! -z "$NATIVE_64_ARCH" ]; then
1404
		QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1405
		CFG_MAC_ARCHS="$CFG_MAC_ARCHS $NATIVE_64_ARCH"
1406
            fi
1407
            ;;
1408
        esac
1409
        ;;
1410
    xplatform)
1411
        XPLATFORM="$VAL"
1412
        ;;
1413
    debug-and-release)
1414
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1415
            CFG_DEBUG_RELEASE="$VAL"
1416
        else
1417
            UNKNOWN_OPT=yes
1418
        fi
1419
        ;;
1420
    optimized-qmake)
1421
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1422
            CFG_RELEASE_QMAKE="$VAL"
1423
        else
1424
            UNKNOWN_OPT=yes
1425
        fi
1426
        ;;
1427
    release)
1428
        if [ "$VAL" = "yes" ]; then
1429
            CFG_DEBUG=no
1430
        elif [ "$VAL" = "no" ]; then
1431
            CFG_DEBUG=yes
1432
        else
1433
            UNKNOWN_OPT=yes
1434
        fi
1435
        ;;
1436
    prefix-install)
1437
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1438
	    CFG_PREFIX_INSTALL="$VAL"
1439
        else
1440
            UNKNOWN_OPT=yes
1441
        fi
1442
	;;
1443
    debug)
1444
        CFG_DEBUG="$VAL"
1445
        ;;
1446
    developer-build|commercial|opensource|nokia-developer)
1447
        # These switches have been dealt with already
1448
        ;;
1449
    static)
1450
        if [ "$VAL" = "yes" ]; then
1451
            CFG_SHARED=no
1452
        elif [ "$VAL" = "no" ]; then
1453
            CFG_SHARED=yes
1454
        else
1455
            UNKNOWN_OPT=yes
1456
        fi
1457
        ;;
1458
    incremental)
1459
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1460
            CFG_INCREMENTAL="$VAL"
1461
        else
1462
            UNKNOWN_OPT=yes
1463
        fi
1464
        ;;
1465
    fatal_error)
1466
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1467
            CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1468
        else
1469
            UNKNOWN_OPT=yes
1470
        fi
1471
        ;;
1472
    feature-*)
1473
        if [ "$PLATFORM_QWS" = "yes" ]; then
1474
            FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1475
            if [ "$VAL" = "no" ]; then
1476
                QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1477
            elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1478
                QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1479
            else
1480
                UNKNOWN_OPT=yes
1481
            fi
1482
        else
1483
            UNKNOWN_OPT=yes
1484
        fi
1485
        ;;
1486
    shared)
1487
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1488
            CFG_SHARED="$VAL"
1489
        else
1490
            UNKNOWN_OPT=yes
1491
        fi
1492
        ;;
1493
    gif)
1494
        [ "$VAL" = "qt" ] && VAL=yes
1495
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1496
            CFG_GIF="$VAL"
1497
        else
1498
            UNKNOWN_OPT=yes
1499
        fi
1500
        ;;
1501
    sm)
1502
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1503
            CFG_SM="$VAL"
1504
        else
1505
            UNKNOWN_OPT=yes
1506
        fi
1507
1508
        ;;
1509
    xinerama)
1510
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1511
            CFG_XINERAMA="$VAL"
1512
        else
1513
            UNKNOWN_OPT=yes
1514
        fi
1515
        ;;
1516
    xshape)
1517
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1518
            CFG_XSHAPE="$VAL"
1519
        else
1520
            UNKNOWN_OPT=yes
1521
        fi
1522
        ;;
1523
    xsync)
1524
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1525
            CFG_XSYNC="$VAL"
1526
        else
1527
            UNKNOWN_OPT=yes
1528
        fi
1529
        ;;
1530
    xinput)
1531
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1532
            CFG_XINPUT="$VAL"
1533
        else
1534
            UNKNOWN_OPT=yes
1535
        fi
1536
        ;;
1537
    stl)
1538
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1539
            CFG_STL="$VAL"
1540
        else
1541
            UNKNOWN_OPT=yes
1542
        fi
1543
        ;;
1544
    pch)
1545
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1546
            CFG_PRECOMPILE="$VAL"
1547
        else
1548
            UNKNOWN_OPT=yes
1549
        fi
1550
        ;;
1551
    separate-debug-info)
1552
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1553
            CFG_SEPARATE_DEBUG_INFO="$VAL"
1554
        else
1555
            UNKNOWN_OPT=yes
1556
        fi
1557
        ;;
1558
    reduce-exports)
1559
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1560
            CFG_REDUCE_EXPORTS="$VAL"
1561
        else
1562
            UNKNOWN_OPT=yes
1563
        fi
1564
        ;;
1565
    mmx)
1566
        if [ "$VAL" = "no" ]; then
1567
            CFG_MMX="$VAL"
1568
        else
1569
            UNKNOWN_OPT=yes
1570
        fi
1571
        ;;
1572
    3dnow)
1573
        if [ "$VAL" = "no" ]; then
1574
            CFG_3DNOW="$VAL"
1575
        else
1576
            UNKNOWN_OPT=yes
1577
        fi
1578
        ;;
1579
    sse)
1580
        if [ "$VAL" = "no" ]; then
1581
            CFG_SSE="$VAL"
1582
        else
1583
            UNKNOWN_OPT=yes
1584
        fi
1585
        ;;
1586
    sse2)
1587
        if [ "$VAL" = "no" ]; then
1588
            CFG_SSE2="$VAL"
1589
        else
1590
            UNKNOWN_OPT=yes
1591
        fi
1592
        ;;
1593
    iwmmxt)
1594
	CFG_IWMMXT="yes"
1595
	;;
1596
    reduce-relocations)
1597
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1598
            CFG_REDUCE_RELOCATIONS="$VAL"
1599
        else
1600
            UNKNOWN_OPT=yes
1601
        fi
1602
        ;;
1603
    freetype)
1604
        [ "$VAL" = "qt" ] && VAL=yes
1605
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1606
            CFG_QWS_FREETYPE="$VAL"
1607
        else
1608
            UNKNOWN_OPT=yes
1609
        fi
1610
        ;;
1611
    zlib)
1612
        [ "$VAL" = "qt" ] && VAL=yes
1613
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1614
            CFG_ZLIB="$VAL"
1615
        else
1616
            UNKNOWN_OPT=yes
1617
        fi
1618
        # No longer supported:
1619
        #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1620
        ;;
1621
    sqlite)
1622
        if [ "$VAL" = "system" ]; then
1623
            CFG_SQLITE=system
1624
        else
1625
            UNKNOWN_OPT=yes
1626
        fi
1627
        ;;
1628
    libpng)
1629
        [ "$VAL" = "yes" ] && VAL=qt
1630
        if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1631
            CFG_LIBPNG="$VAL"
1632
        else
1633
            UNKNOWN_OPT=yes
1634
        fi
1635
        ;;
1636
    libjpeg)
1637
        [ "$VAL" = "yes" ] && VAL=qt
1638
        if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1639
            CFG_LIBJPEG="$VAL"
1640
        else
1641
            UNKNOWN_OPT=yes
1642
        fi
1643
        ;;
1644
    libmng)
1645
        [ "$VAL" = "yes" ] && VAL=qt
1646
        if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1647
            CFG_LIBMNG="$VAL"
1648
        else
1649
            UNKNOWN_OPT=yes
1650
        fi
1651
        ;;
1652
    libtiff)
1653
        [ "$VAL" = "yes" ] && VAL=qt
1654
        if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1655
            CFG_LIBTIFF="$VAL"
1656
        else
1657
            UNKNOWN_OPT=yes
1658
        fi
1659
        ;;
1660
    nas-sound)
1661
        if [ "$VAL" = "system" ] || [ "$VAL" = "no" ]; then
1662
            CFG_NAS="$VAL"
1663
        else
1664
            UNKNOWN_OPT=yes
1665
        fi
1666
        ;;
1667
    xcursor)
1668
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1669
            CFG_XCURSOR="$VAL"
1670
        else
1671
            UNKNOWN_OPT=yes
1672
        fi
1673
        ;;
1674
    xfixes)
1675
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1676
            CFG_XFIXES="$VAL"
1677
        else
1678
            UNKNOWN_OPT=yes
1679
        fi
1680
        ;;
1681
    xrandr)
1682
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1683
            CFG_XRANDR="$VAL"
1684
        else
1685
            UNKNOWN_OPT=yes
1686
        fi
1687
        ;;
1688
    xrender)
1689
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1690
            CFG_XRENDER="$VAL"
1691
        else
1692
            UNKNOWN_OPT=yes
1693
        fi
1694
        ;;
1695
    mitshm)
1696
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1697
            CFG_MITSHM="$VAL"
1698
        else
1699
            UNKNOWN_OPT=yes
1700
        fi
1701
        ;;
1702
    fontconfig)
1703
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1704
            CFG_FONTCONFIG="$VAL"
1705
        else
1706
            UNKNOWN_OPT=yes
1707
        fi
1708
        ;;
1709
    xkb)
1710
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1711
            CFG_XKB="$VAL"
1712
        else
1713
            UNKNOWN_OPT=yes
1714
        fi
1715
        ;;
1716
    cups)
1717
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1718
            CFG_CUPS="$VAL"
1719
        else
1720
            UNKNOWN_OPT=yes
1721
        fi
1722
        ;;
1723
    iconv)
1724
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1725
            CFG_ICONV="$VAL"
1726
        else
1727
            UNKNOWN_OPT=yes
1728
        fi
1729
        ;;
1730
    glib)
1731
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1732
            CFG_GLIB="$VAL"
1733
        else
1734
            UNKNOWN_OPT=yes
1735
        fi
1736
        ;;
1737
    gstreamer)
1738
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1739
            CFG_GSTREAMER="$VAL"
1740
        else
1741
            UNKNOWN_OPT=yes
1742
        fi
1743
        ;;
1744
    gtkstyle)
1745
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1746
            CFG_QGTKSTYLE="$VAL"
1747
        else
1748
            UNKNOWN_OPT=yes
1749
        fi
1750
        ;;
1751
    qdbus|dbus)
1752
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1753
            CFG_DBUS="$VAL"
1754
	elif [ "$VAL" = "runtime" ]; then
1755
	    CFG_DBUS="yes"
1756
        else
1757
            UNKNOWN_OPT=yes
1758
        fi
1759
        ;;
1760
    dbus-linked)
1761
        if [ "$VAL" = "yes" ]; then
1762
	    CFG_DBUS="linked"
1763
	else
1764
            UNKNOWN_OPT=yes
1765
        fi
1766
        ;;
1767
    nis)
1768
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1769
            CFG_NIS="$VAL"
1770
        else
1771
            UNKNOWN_OPT=yes
1772
        fi
1773
        ;;
1774
    largefile)
1775
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1776
            CFG_LARGEFILE="$VAL"
1777
        else
1778
            UNKNOWN_OPT=yes
1779
        fi
1780
        ;;
1781
    openssl)
1782
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1783
            CFG_OPENSSL="$VAL"
1784
        else
1785
            UNKNOWN_OPT=yes
1786
        fi
1787
        ;;
1788
    openssl-linked)
1789
        if [ "$VAL" = "yes" ]; then
1790
            CFG_OPENSSL="linked"
1791
        else
1792
            UNKNOWN_OPT=yes
1793
        fi
1794
        ;;
1795
    ptmalloc)
1796
        if [ "$VAL" = "yes" ]; then
1797
            CFG_PTMALLOC="yes"
1798
        else
1799
            UNKNOWN_OPT=yes
1800
        fi
1801
        ;;
1802
1803
    xmlpatterns)
1804
        if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1805
            CFG_XMLPATTERNS="yes"
1806
        else
1807
            if [ "$VAL" = "no" ]; then
1808
                CFG_XMLPATTERNS="no"
1809
            else
1810
                UNKNOWN_OPT=yes
1811
            fi
1812
        fi
1813
        ;;
1814
    script)
1815
        if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1816
            CFG_SCRIPT="yes"
1817
        else
1818
            if [ "$VAL" = "no" ]; then
1819
                CFG_SCRIPT="no"
1820
            else
1821
                UNKNOWN_OPT=yes
1822
            fi
1823
        fi
1824
        ;;
1825
    scripttools)
1826
        if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1827
            CFG_SCRIPTTOOLS="yes"
1828
        else
1829
            if [ "$VAL" = "no" ]; then
1830
                CFG_SCRIPTTOOLS="no"
1831
            else
1832
                UNKNOWN_OPT=yes
1833
            fi
1834
        fi
1835
        ;;
1836
    svg)
1837
        if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1838
            CFG_SVG="yes"
1839
        else
1840
            if [ "$VAL" = "no" ]; then
1841
                CFG_SVG="no"
1842
            else
1843
                UNKNOWN_OPT=yes
1844
            fi
1845
        fi
1846
	;;
1847
    webkit)
1848
        if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1849
            CFG_WEBKIT="yes"
1850
        else
1851
            if [ "$VAL" = "no" ]; then
1852
                CFG_WEBKIT="no"
1853
            else
1854
                UNKNOWN_OPT=yes
1855
            fi
1856
        fi
1857
        ;;
1858
    javascript-jit)
1859
        if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then 
1860
            CFG_JAVASCRIPTCORE_JIT="$VAL"
1861
        else
1862
            UNKNOWN_OPT=yes
1863
        fi
1864
        ;;
1865
    confirm-license)
1866
        if [ "$VAL" = "yes" ]; then
1867
            OPT_CONFIRM_LICENSE="$VAL"
1868
        else
1869
            UNKNOWN_OPT=yes
1870
        fi
1871
        ;;
1872
    h|help)
1873
        if [ "$VAL" = "yes" ]; then
1874
            OPT_HELP="$VAL"
1875
        else
1876
            UNKNOWN_OPT=yes
1877
        fi
1878
        ;;
1879
    sql-*|gfx-*|decoration-*|kbd-*|mouse-*)
1880
        # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1881
        # if autoconf style options were used, $VAL can be "yes" or "no"
1882
        [ "$VAL" = "yes" ] && VAL=qt
1883
        # now $VAL should be "no", "qt", or "plugin"... double-check
1884
        if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1885
            UNKNOWN_OPT=yes
1886
        fi
1887
        # now $VAL is "no", "qt", or "plugin"
1888
        OPT="$VAL"
1889
        VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1890
        VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1891
1892
        # Grab the available values
1893
        case "$VAR" in
1894
        sql)
1895
            avail="$CFG_SQL_AVAILABLE"
1896
            ;;
1897
        gfx)
1898
            avail="$CFG_GFX_AVAILABLE"
1899
	    if [ "$OPT" = "plugin" ]; then
1900
		avail="$CFG_GFX_PLUGIN_AVAILABLE"
1901
	    fi
1902
            ;;
1903
        decoration)
1904
            avail="$CFG_DECORATION_AVAILABLE"
1905
	    if [ "$OPT" = "plugin" ]; then
1906
		avail="$CFG_DECORATION_PLUGIN_AVAILABLE"
1907
	    fi
1908
            ;;
1909
        kbd)
1910
            avail="$CFG_KBD_AVAILABLE"
1911
	    if [ "$OPT" = "plugin" ]; then
1912
		avail="$CFG_KBD_PLUGIN_AVAILABLE"
1913
	    fi
1914
            ;;
1915
        mouse)
1916
            avail="$CFG_MOUSE_AVAILABLE"
1917
	    if [ "$OPT" = "plugin" ]; then
1918
		avail="$CFG_MOUSE_PLUGIN_AVAILABLE"
1919
	    fi
1920
            ;;
1921
        *)
1922
            avail=""
1923
            echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1924
            ;;
1925
        esac
1926
1927
        # Check that that user's value is available.
1928
        found=no
1929
        for d in $avail; do
1930
            if [ "$VAL" = "$d" ]; then
1931
                found=yes
1932
                break
1933
            fi
1934
        done
1935
        [ "$found" = yes ] || ERROR=yes
1936
1937
        if [ "$VAR" = "sql" ]; then
1938
            # set the CFG_SQL_driver
1939
            eval "CFG_SQL_$VAL=\$OPT"
1940
            continue
1941
        fi
1942
1943
        if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1944
            if [ "$OPT" = "plugin" ]; then
1945
                [ "$VAR" = "decoration" ] && QMakeVar del "${VAR}s" "$VAL"
1946
                [ "$VAR" = "decoration" ] && CFG_DECORATION_ON=`echo "${CFG_DECORATION_ON} " | sed "s,${VAL} ,,g"` && CFG_DECORATION_PLUGIN="$CFG_DECORATION_PLUGIN ${VAL}"
1947
                [ "$VAR" = "kbd" ] && QMakeVar del "${VAR}s" "$VAL"
1948
                [ "$VAR" = "kbd" ] && CFG_KBD_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"` && CFG_KBD_PLUGIN="$CFG_KBD_PLUGIN ${VAL}"
1949
                [ "$VAR" = "mouse" ] && QMakeVar del "${VAR}s" "$VAL"
1950
                [ "$VAR" = "mouse" ] && CFG_MOUSE_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"` && CFG_MOUSE_PLUGIN="$CFG_MOUSE_PLUGIN ${VAL}"
1951
                [ "$VAR" = "gfx" ] && QMakeVar del "${VAR}s" "$VAL"
1952
                [ "$VAR" = "gfx" ] && CFG_GFX_ON=`echo "${CFG_GFX_ON} " | sed "s,${VAL} ,,g"` && CFG_GFX_PLUGIN="${CFG_GFX_PLUGIN} ${VAL}"
1953
                VAR="${VAR}-${OPT}"
1954
            else
1955
                if [ "$VAR" = "gfx" ] || [ "$VAR" = "kbd" ] || [ "$VAR" = "decoration" ] || [ "$VAR" = "mouse" ]; then
1956
                    [ "$VAR" = "gfx" ] && CFG_GFX_ON="$CFG_GFX_ON $VAL"
1957
                    [ "$VAR" = "kbd" ] && CFG_KBD_ON="$CFG_KBD_ON $VAL"
1958
		    [ "$VAR" = "decoration" ] && CFG_DECORATION_ON="$CFG_DECORATION_ON $VAL"
1959
                    [ "$VAR" = "mouse" ] && CFG_MOUSE_ON="$CFG_MOUSE_ON $VAL"
1960
                    VAR="${VAR}-driver"
1961
                fi
1962
            fi
1963
	    QMakeVar add "${VAR}s" "${VAL}"
1964
        elif [ "$OPT" = "no" ]; then
1965
            PLUG_VAR="${VAR}-plugin"
1966
            if [ "$VAR" = "gfx" ] || [ "$VAR" = "kbd" ] || [ "$VAR" = "mouse" ]; then
1967
                IN_VAR="${VAR}-driver"
1968
            else
1969
                IN_VAR="${VAR}"
1970
            fi
1971
            [ "$VAR" = "decoration" ] && CFG_DECORATION_ON=`echo "${CFG_DECORATION_ON} " | sed "s,${VAL} ,,g"`
1972
            [ "$VAR" = "gfx" ] && CFG_GFX_ON=`echo "${CFG_GFX_ON} " | sed "s,${VAL} ,,g"`
1973
            [ "$VAR" = "kbd" ] && CFG_KBD_ON=`echo "${CFG_KBD_ON} " | sed "s,${VAL} ,,g"`
1974
            [ "$VAR" = "mouse" ] && CFG_MOUSE_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"`
1975
	    QMakeVar del "${IN_VAR}s" "$VAL"
1976
	    QMakeVar del "${PLUG_VAR}s" "$VAL"
1977
        fi
1978
        if [ "$ERROR" = "yes" ]; then
1979
           echo "$CURRENT_OPT: unknown argument"
1980
           OPT_HELP=yes
1981
        fi
1982
        ;;
1983
    v|verbose)
1984
        if [ "$VAL" = "yes" ]; then
1985
            if [ "$OPT_VERBOSE" = "$VAL" ]; then            # takes two verboses to turn on qmake debugs
1986
                QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1987
            else
1988
                OPT_VERBOSE=yes
1989
            fi
1990
        elif [ "$VAL" = "no" ]; then
1991
            if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1992
                QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1993
            else
1994
                OPT_VERBOSE=no
1995
            fi
1996
        else
1997
            UNKNOWN_OPT=yes
1998
        fi
1999
        ;;
2000
    fast)
2001
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2002
            OPT_FAST="$VAL"
2003
        else
2004
            UNKNOWN_OPT=yes
2005
        fi
2006
        ;;
2007
    rpath)
2008
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2009
            CFG_RPATH="$VAL"
2010
        else
2011
            UNKNOWN_OPT=yes
2012
        fi
2013
        ;;
2014
    add_define)
2015
        D_FLAGS="$D_FLAGS \"$VAL\""
2016
        ;;
2017
    add_ipath)
2018
        I_FLAGS="$I_FLAGS -I\"${VAL}\""
2019
        ;;
2020
    add_lpath)
2021
        L_FLAGS="$L_FLAGS -L\"${VAL}\""
2022
        ;;
2023
    add_rpath)
2024
        RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2025
        ;;
2026
    add_link)
2027
        l_FLAGS="$l_FLAGS -l\"${VAL}\""
2028
        ;;
2029
    add_fpath)
2030
        if [ "$PLATFORM_MAC" = "yes" ]; then
2031
            L_FLAGS="$L_FLAGS -F\"${VAL}\""
2032
            I_FLAGS="$I_FLAGS -F\"${VAL}\""
2033
        else
2034
            UNKNOWN_OPT=yes
2035
        fi
2036
        ;;
2037
    add_framework)
2038
        if [ "$PLATFORM_MAC" = "yes" ]; then
2039
            l_FLAGS="$l_FLAGS -framework \"${VAL}\""
2040
        else
2041
            UNKNOWN_OPT=yes
2042
        fi
2043
        ;;
2044
    silent)
2045
        CFG_SILENT="$VAL"
2046
        ;;
2047
    phonon)
2048
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2049
            CFG_PHONON="$VAL"
2050
        else
2051
            UNKNOWN_OPT=yes
2052
        fi
2053
        ;;
2054
    phonon-backend)
2055
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2056
            CFG_PHONON_BACKEND="$VAL"
2057
        else
2058
            UNKNOWN_OPT=yes
2059
        fi
2060
        ;;
2061
    multimedia)
2062
        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2063
            CFG_MULTIMEDIA="$VAL"
2064
        else
2065
            UNKNOWN_OPT=yes
2066
        fi
2067
        ;;
2068
    *)
2069
        UNKNOWN_OPT=yes
2070
        ;;
2071
    esac
2072
    if [ "$UNKNOWN_OPT" = "yes" ]; then
2073
        echo "${CURRENT_OPT}: invalid command-line switch"
2074
        OPT_HELP=yes
2075
        ERROR=yes
2076
    fi
2077
done
2078
2079
if [ "$CFG_QCONFIG" != "full" ] && [ "$CFG_QT3SUPPORT" = "yes" ]; then
2080
    echo "Warning: '-qconfig $CFG_QCONFIG' will disable the qt3support library."
2081
    CFG_QT3SUPPORT="no"
2082
fi
2083
2084
# update QT_CONFIG to show our current predefined configuration
2085
case "$CFG_QCONFIG" in
2086
minimal|small|medium|large|full)
2087
    # these are a sequence of increasing functionality
2088
    for c in minimal small medium large full; do
2089
        QT_CONFIG="$QT_CONFIG $c-config"
2090
        [ "$CFG_QCONFIG" = $c ] && break
2091
    done
2092
    ;;
2093
*)
2094
    # not known to be sufficient for anything
2095
    if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ]; then
2096
        echo >&2 "Error: configuration file not found:"
2097
        echo >&2 "  $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2098
        OPT_HELP=yes
2099
    fi
2100
esac
2101
2102
#-------------------------------------------------------------------------------
2103
# build tree initialization
2104
#-------------------------------------------------------------------------------
2105
2106
# where to find which..
2107
unixtests="$relpath/config.tests/unix"
2108
mactests="$relpath/config.tests/mac"
2109
WHICH="$unixtests/which.test"
2110
2111
PERL=`$WHICH perl 2>/dev/null`
2112
2113
# find out which awk we want to use, prefer gawk, then nawk, then regular awk
2114
AWK=
2115
for e in gawk nawk awk; do
2116
    if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2117
        AWK=$e
2118
        break
2119
    fi
2120
done
2121
2122
# find perl
2123
PERL="/usr/bin/perl"
2124
if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2125
    PERL=`$WHICH perl`
2126
fi
2127
2128
### skip this if the user just needs help...
2129
if [ "$OPT_HELP" != "yes" ]; then
2130
2131
# is this a shadow build?
2132
if [ "$OPT_SHADOW" = "maybe" ]; then
2133
    OPT_SHADOW=no
2134
    if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2135
        if [ -h "$outpath" ]; then
2136
            [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2137
        else
2138
            OPT_SHADOW=yes
2139
        fi
2140
    fi
2141
fi
2142
if [ "$OPT_SHADOW" = "yes" ]; then
2143
    if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" ]; then
2144
        echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2145
        echo >&2 "Cannot proceed."
2146
        exit 1
2147
    fi
2148
    [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2149
fi
2150
2151
if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2152
    echo
2153
    echo "WARNING: -debug-and-release is not supported anymore on Qt/X11 and Qt for Embedded Linux"
2154
    echo "By default, Qt is built in release mode with separate debug information, so"
2155
    echo "-debug-and-release is not necessary anymore"
2156
    echo
2157
fi
2158
2159
# detect build style
2160
if [ "$CFG_DEBUG" = "auto" ]; then
2161
    if [ "$PLATFORM_MAC" = "yes" ]; then
2162
        CFG_DEBUG_RELEASE=yes
2163
        CFG_DEBUG=yes
2164
    elif [ "$CFG_DEV" = "yes" ]; then
2165
        CFG_DEBUG_RELEASE=no
2166
        CFG_DEBUG=yes
2167
    else
2168
        CFG_DEBUG_RELEASE=no
2169
        CFG_DEBUG=no
2170
    fi
2171
fi
2172
if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2173
    QMAKE_CONFIG="$QMAKE_CONFIG build_all"
2174
fi
2175
2176
if [ "$CFG_SILENT" = "yes" ]; then
2177
    QMAKE_CONFIG="$QMAKE_CONFIG silent"
2178
fi
2179
2180
# if the source tree is different from the build tree,
2181
# symlink or copy part of the sources
2182
if [ "$OPT_SHADOW" = "yes" ]; then
2183
    echo "Preparing build tree..."
2184
2185
    if [ -z "$PERL" ]; then
2186
        echo
2187
        echo "You need perl in your PATH to make a shadow build."
2188
        echo "Cannot proceed."
2189
        exit 1
2190
    fi
2191
2192
    [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2193
2194
    # symlink the qmake directory
2195
    find "$relpath/qmake" | while read a; do
2196
        my_a=`echo "$a" | sed "s,^${relpath}/,${outpath}/,"`
2197
        if [ '!' -f "$my_a" ]; then
2198
            if [ -d "$a" ]; then
2199
                # directories are created...
2200
                mkdir -p "$my_a"
2201
            else
2202
                a_dir=`dirname "$my_a"`
2203
                [ -d "$a_dir" ] || mkdir -p "$a_dir"
2204
                # ... and files are symlinked
2205
                case `basename "$a"` in
2206
                *.o|*.d|GNUmakefile*|qmake)
2207
                    ;;
2208
                *)
2209
                    rm -f "$my_a"
2210
                    ln -s "$a" "$my_a"
2211
                    ;;
2212
                esac
2213
            fi
2214
        fi
2215
    done
2216
2217
    # make a syncqt script that can be used in the shadow
2218
    rm -f "$outpath/bin/syncqt"
2219
    if [ -x "$relpath/bin/syncqt" ]; then
2220
        mkdir -p "$outpath/bin"
2221
        echo "#!/bin/sh" >"$outpath/bin/syncqt"
2222
        echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/syncqt"
2223
        echo "perl \"$relpath/bin/syncqt\" -outdir \"$outpath\" $*" >>"$outpath/bin/syncqt"
2224
        chmod 755 "$outpath/bin/syncqt"
2225
    fi
2226
2227
    # symlink the mkspecs directory
2228
    mkdir -p "$outpath/mkspecs"
2229
    rm -f "$outpath"/mkspecs/*
2230
    ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2231
    rm -f "$outpath/mkspecs/default"
2232
2233
    # symlink the doc directory
2234
    rm -rf "$outpath/doc"
2235
    ln -s "$relpath/doc" "$outpath/doc"
2236
2237
    # make sure q3porting.xml can be found
2238
    mkdir -p "$outpath/tools/porting/src"
2239
    rm -f "$outpath/tools/porting/src/q3porting.xml"
2240
    ln -s "$relpath/tools/porting/src/q3porting.xml" "$outpath/tools/porting/src"
2241
fi
2242
2243
# symlink fonts to be able to run application from build directory
2244
if [ "$PLATFORM_QWS" = "yes" ] && [ ! -e "${outpath}/lib/fonts" ]; then
2245
    if [ "$PLATFORM" = "$XPLATFORM" ]; then
2246
        mkdir -p "${outpath}/lib"
2247
        ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2248
    fi
2249
fi
2250
2251
if [ "$OPT_FAST" = "auto" ]; then
2252
   if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2253
       OPT_FAST=yes
2254
   else
2255
       OPT_FAST=no
2256
   fi
2257
fi
2258
2259
# find a make command
2260
if [ -z "$MAKE" ]; then
2261
    MAKE=
2262
    for mk in gmake make; do
2263
        if "$WHICH" $mk >/dev/null 2>&1; then
2264
            MAKE=`"$WHICH" $mk`
2265
            break
2266
        fi
2267
    done
2268
    if [ -z "$MAKE" ]; then
2269
        echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2270
        echo >&2 "Cannot proceed."
2271
        exit 1
2272
    fi
2273
    # export MAKE, we need it later in the config.tests
2274
    export MAKE
2275
fi
2276
2277
fi ### help
2278
2279
#-------------------------------------------------------------------------------
2280
# auto-detect all that hasn't been specified in the arguments
2281
#-------------------------------------------------------------------------------
2282
2283
[ "$PLATFORM_QWS" = "yes" -a "$CFG_EMBEDDED" = "no" ] && CFG_EMBEDDED=auto
2284
if [ "$CFG_EMBEDDED" != "no" ]; then
2285
    case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2286
    Darwin:*)
2287
        [ -z "$PLATFORM" ] && PLATFORM=qws/macx-generic-g++
2288
        if [ -z "$XPLATFORM" ]; then
2289
            [ "$CFG_EMBEDDED" = "auto" ] && CFG_EMBEDDED=generic
2290
            XPLATFORM="qws/macx-$CFG_EMBEDDED-g++"
2291
        fi
2292
        ;;
2293
    FreeBSD:*)
2294
        [ -z "$PLATFORM" ] && PLATFORM=qws/freebsd-generic-g++
2295
        if [ -z "$XPLATFORM" ]; then
2296
            [ "$CFG_EMBEDDED" = "auto" ] && CFG_EMBEDDED=generic
2297
            XPLATFORM="qws/freebsd-$CFG_EMBEDDED-g++"
2298
        fi
2299
        ;;
2300
    SunOS:5*)
2301
        [ -z "$PLATFORM" ] && PLATFORM=qws/solaris-generic-g++
2302
        if [ -z "$XPLATFORM" ]; then
2303
            [ "$CFG_EMBEDDED" = "auto" ] && CFG_EMBEDDED=generic
2304
            XPLATFORM="qws/solaris-$CFG_EMBEDDED-g++"
2305
        fi
2306
        ;;
2307
    Linux:*)
2308
        if [ -z "$PLATFORM" ]; then
2309
            case "$UNAME_MACHINE" in
2310
            *86)
2311
                PLATFORM=qws/linux-x86-g++
2312
                ;;
2313
            *86_64)
2314
                PLATFORM=qws/linux-x86_64-g++
2315
                ;;
2316
            *)
2317
                PLATFORM=qws/linux-generic-g++
2318
                ;;
2319
            esac
2320
        fi
2321
        if [ -z "$XPLATFORM" ]; then
2322
            if [ "$CFG_EMBEDDED" = "auto" ]; then
2323
                if [ -n "$CFG_ARCH" ]; then
2324
                    CFG_EMBEDDED=$CFG_ARCH
2325
                else
2326
                    case "$UNAME_MACHINE" in
2327
                    *86)
2328
                        CFG_EMBEDDED=x86
2329
                        ;;
2330
                    *86_64)
2331
                        CFG_EMBEDDED=x86_64
2332
                        ;;
2333
                    *)
2334
                        CFG_EMBEDDED=generic
2335
                        ;;
2336
                    esac
2337
                fi
2338
            fi
2339
            XPLATFORM="qws/linux-$CFG_EMBEDDED-g++"
2340
        fi
2341
        ;;
2342
    QNX:*)
2343
        [ -z "$PLATFORM" ] && PLATFORM=unsupported/qws/qnx-generic-g++
2344
        if [ -z "$XPLATFORM" ]; then
2345
            [ "$CFG_EMBEDDED" = "auto" ] && CFG_EMBEDDED=generic
2346
            XPLATFORM="unsupported/qws/qnx-$CFG_EMBEDDED-g++"
2347
        fi
2348
        ;;
2349
    CYGWIN*:*)
2350
	CFG_EMBEDDED=x86
2351
	;;
2352
    *)
2353
        echo "Qt for Embedded Linux is not supported on this platform. Disabling."
2354
        CFG_EMBEDDED=no
2355
        PLATFORM_QWS=no
2356
        ;;
2357
    esac
2358
fi
2359
if [ -z "$PLATFORM" ]; then
2360
    PLATFORM_NOTES=
2361
    case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2362
     Darwin:*)
2363
        if [ "$PLATFORM_MAC" = "yes" ]; then
2364
          PLATFORM=macx-g++
2365
        # PLATFORM=macx-xcode
2366
        else
2367
          PLATFORM=darwin-g++
2368
        fi
2369
        ;;
2370
     AIX:*)
2371
        #PLATFORM=aix-g++
2372
        #PLATFORM=aix-g++-64
2373
        PLATFORM=aix-xlc
2374
        #PLATFORM=aix-xlc-64
2375
        PLATFORM_NOTES="
2376
            - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2377
        "
2378
        ;;
2379
     GNU:*)
2380
        PLATFORM=hurd-g++
2381
        ;;
2382
     dgux:*)
2383
        PLATFORM=dgux-g++
2384
        ;;
2385
#     DYNIX/ptx:4*)
2386
#       PLATFORM=dynix-g++
2387
#       ;;
2388
     ULTRIX:*)
2389
        PLATFORM=ultrix-g++
2390
        ;;
2391
     FreeBSD:*)
2392
        PLATFORM=freebsd-g++
2393
        PLATFORM_NOTES="
2394
            - Also available for FreeBSD: freebsd-icc
2395
        "
2396
        ;;
2397
     OpenBSD:*)
2398
        PLATFORM=openbsd-g++
2399
        ;;
2400
     NetBSD:*)
2401
        PLATFORM=netbsd-g++
2402
        ;;
2403
     BSD/OS:*|BSD/386:*)
2404
        PLATFORM=bsdi-g++
2405
        ;;
2406
     IRIX*:*)
2407
        #PLATFORM=irix-g++
2408
        PLATFORM=irix-cc
2409
        #PLATFORM=irix-cc-64
2410
        PLATFORM_NOTES="
2411
            - Also available for IRIX: irix-g++ irix-cc-64
2412
        "
2413
        ;;
2414
     HP-UX:*)
2415
        case "$UNAME_MACHINE" in
2416
            ia64)
2417
                #PLATFORM=hpuxi-acc-32
2418
                PLATFORM=hpuxi-acc-64
2419
                PLATFORM_NOTES="
2420
                    - Also available for HP-UXi: hpuxi-acc-32
2421
                "
2422
            ;;
2423
            *)
2424
                #PLATFORM=hpux-g++
2425
                PLATFORM=hpux-acc
2426
                #PLATFORM=hpux-acc-64
2427
                #PLATFORM=hpux-cc
2428
                #PLATFORM=hpux-acc-o64
2429
                PLATFORM_NOTES="
2430
                    - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2431
                "
2432
            ;;
2433
        esac
2434
        ;;
2435
     OSF1:*)
2436
        #PLATFORM=tru64-g++
2437
        PLATFORM=tru64-cxx
2438
        PLATFORM_NOTES="
2439
            - Also available for Tru64: tru64-g++
2440
        "
2441
        ;;
2442
     Linux:*)
2443
        case "$UNAME_MACHINE" in
2444
            x86_64|s390x|ppc64)
2445
                PLATFORM=linux-g++-64
2446
                ;;
2447
            *)
2448
                PLATFORM=linux-g++
2449
                ;;
2450
        esac
2451
        PLATFORM_NOTES="
2452
            - Also available for Linux: linux-kcc linux-icc linux-cxx
2453
        "
2454
        ;;
2455
     SunOS:5*)
2456
        #PLATFORM=solaris-g++
2457
        PLATFORM=solaris-cc
2458
        #PLATFORM=solaris-cc64
2459
        PLATFORM_NOTES="
2460
            - Also available for Solaris: solaris-g++ solaris-cc-64
2461
        "
2462
        ;;
2463
     ReliantUNIX-*:*|SINIX-*:*)
2464
        PLATFORM=reliant-cds
2465
        #PLATFORM=reliant-cds-64
2466
        PLATFORM_NOTES="
2467
            - Also available for Reliant UNIX: reliant-cds-64
2468
        "
2469
        ;;
2470
     CYGWIN*:*)
2471
        PLATFORM=cygwin-g++
2472
        ;;
2473
     LynxOS*:*)
2474
        PLATFORM=lynxos-g++
2475
        ;;
2476
     OpenUNIX:*)
2477
        #PLATFORM=unixware-g++
2478
        PLATFORM=unixware-cc
2479
        PLATFORM_NOTES="
2480
            - Also available for OpenUNIX: unixware-g++
2481
        "
2482
        ;;
2483
     UnixWare:*)
2484
        #PLATFORM=unixware-g++
2485
        PLATFORM=unixware-cc
2486
        PLATFORM_NOTES="
2487
            - Also available for UnixWare: unixware-g++
2488
        "
2489
        ;;
2490
     SCO_SV:*)
2491
        #PLATFORM=sco-g++
2492
        PLATFORM=sco-cc
2493
        PLATFORM_NOTES="
2494
            - Also available for SCO OpenServer: sco-g++
2495
        "
2496
        ;;
2497
     UNIX_SV:*)
2498
        PLATFORM=unixware-g++
2499
        ;;
2500
     QNX:*)
2501
        PLATFORM=unsupported/qnx-g++
2502
        ;;
2503
     *)
2504
        if [ "$OPT_HELP" != "yes" ]; then
2505
            echo
2506
            for p in $PLATFORMS; do
2507
                echo "    $relconf $* -platform $p"
2508
            done
2509
            echo >&2
2510
            echo "   The build script does not currently recognize all" >&2
2511
            echo "   platforms supported by Qt." >&2
2512
            echo "   Rerun this script with a -platform option listed to" >&2
2513
            echo "   set the system/compiler combination you use." >&2
2514
            echo >&2
2515
            exit 2
2516
        fi
2517
    esac
2518
fi
2519
2520
if [ "$PLATFORM_QWS" = "yes" ]; then
2521
    CFG_SM=no
2522
    PLATFORMS=`find "$relpath/mkspecs/qws" | sed "s,$relpath/mkspecs/qws/,,"`
2523
else
2524
    PLATFORMS=`find "$relpath/mkspecs/" -type f | grep -v qws | sed "s,$relpath/mkspecs/qws/,,"`
2525
fi
2526
2527
[ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2528
if [ -d "$PLATFORM" ]; then
2529
  QMAKESPEC="$PLATFORM"
2530
else
2531
  QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2532
fi
2533
if [ -d "$XPLATFORM" ]; then
2534
  XQMAKESPEC="$XPLATFORM"
2535
else
2536
  XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2537
fi
2538
if [ "$PLATFORM" != "$XPLATFORM" ]; then
2539
    QT_CROSS_COMPILE=yes
2540
    QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2541
fi
2542
2543
if [ "$PLATFORM_MAC" = "yes" ]; then
2544
   if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2545
      echo >&2
2546
      echo "   Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2547
      echo "   Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2548
      echo "   use mac-xcode on your application code it can link to a Qt/Mac" >&2
2549
      echo "   built with 'macx-g++'" >&2
2550
      echo >&2
2551
      exit 2
2552
    fi
2553
fi
2554
2555
# check specified platforms are supported
2556
if [ '!' -d "$QMAKESPEC" ]; then
2557
    echo
2558
    echo "   The specified system/compiler is not supported:"
2559
    echo
2560
    echo "      $QMAKESPEC"
2561
    echo
2562
    echo "   Please see the README file for a complete list."
2563
    echo
2564
    exit 2
2565
fi
2566
if [ '!' -d "$XQMAKESPEC" ]; then
2567
    echo
2568
    echo "   The specified system/compiler is not supported:"
2569
    echo
2570
    echo "      $XQMAKESPEC"
2571
    echo
2572
    echo "   Please see the README file for a complete list."
2573
    echo
2574
    exit 2
2575
fi
2576
if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2577
    echo
2578
    echo "   The specified system/compiler port is not complete:"
2579
    echo
2580
    echo "      $XQMAKESPEC/qplatformdefs.h"
2581
    echo
2582
    echo "   Please contact qt-bugs@trolltech.com."
2583
    echo
2584
    exit 2
2585
fi
2586
2587
# now look at the configs and figure out what platform we are config'd for
2588
[ "$CFG_EMBEDDED" = "no" ] \
2589
  && [ '!' -z "`getQMakeConf \"$XQMAKESPEC\" | grep QMAKE_LIBS_X11 | awk '{print $3;}'`" ] \
2590
  && PLATFORM_X11=yes
2591
### echo "$XQMAKESPEC" | grep mkspecs/qws >/dev/null 2>&1 && PLATFORM_QWS=yes
2592
2593
if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2594
    # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2595
    if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2596
        sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2597
        mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2598
    fi
2599
fi
2600
2601
#-------------------------------------------------------------------------------
2602
# determine the system architecture
2603
#-------------------------------------------------------------------------------
2604
if [ "$OPT_VERBOSE" = "yes" ]; then
2605
    echo "Determining system architecture... ($UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE)"
2606
fi
2607
2608
if [ "$CFG_EMBEDDED" != "no" -a "$CFG_EMBEDDED" != "auto" ] && [ -n "$CFG_ARCH" ]; then
2609
    if [ "$CFG_ARCH" != "$CFG_EMBEDDED" ]; then
2610
        echo ""
2611
        echo "You have specified a target architecture with -embedded and -arch."
2612
        echo "The two architectures you have specified are different, so we can"
2613
        echo "not proceed. Either set both to be the same, or only use -embedded."
2614
        echo ""
2615
        exit 1
2616
    fi
2617
fi
2618
2619
if [ -z "${CFG_HOST_ARCH}" ]; then
2620
    case "$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE" in
2621
    IRIX*:*:*)
2622
        CFG_HOST_ARCH=`uname -p`
2623
        if [ "$OPT_VERBOSE" = "yes" ]; then
2624
            echo "    SGI ($CFG_HOST_ARCH)"
2625
        fi
2626
        ;;
2627
    SunOS:5*:*)
2628
        case "$UNAME_MACHINE" in
2629
	sun4u*|sun4v*)
2630
            if [ "$OPT_VERBOSE" = "yes" ]; then
2631
                echo "    Sun SPARC (sparc)"
2632
            fi
2633
            CFG_HOST_ARCH=sparc
2634
            ;;
2635
        i86pc)
2636
	    case "$PLATFORM" in
2637
	    *-64)
2638
                if [ "$OPT_VERBOSE" = "yes" ]; then
2639
	            echo "    64-bit AMD 80x86 (x86_64)"
2640
                fi
2641
                CFG_HOST_ARCH=x86_64
2642
                ;;
2643
	    *)
2644
                if [ "$OPT_VERBOSE" = "yes" ]; then
2645
	            echo "    32-bit Intel 80x86 (i386)"
2646
                fi
2647
                CFG_HOST_ARCH=i386
2648
                ;;
2649
            esac
2650
        esac
2651
        ;;
2652
    Darwin:*:*)
2653
        case "$UNAME_MACHINE" in
2654
            Power?Macintosh)
2655
                if [ "$OPT_VERBOSE" = "yes" ]; then
2656
                    echo "    32-bit Apple PowerPC (powerpc)"
2657
                fi
2658
                ;;
2659
            x86)
2660
                if [ "$OPT_VERBOSE" = "yes" ]; then
2661
                    echo "    32-bit Intel 80x86 (i386)"
2662
                fi
2663
                ;;
2664
        esac
2665
        CFG_HOST_ARCH=macosx
2666
        ;;
2667
    AIX:*:00????????00)
2668
        if [ "$OPT_VERBOSE" = "yes" ]; then
2669
        echo "    64-bit IBM PowerPC (powerpc)"
2670
        fi
2671
        CFG_HOST_ARCH=powerpc
2672
        ;;
2673
    HP-UX:*:9000*)
2674
        if [ "$OPT_VERBOSE" = "yes" ]; then
2675
            echo "    HP PA-RISC (parisc)"
2676
        fi
2677
        CFG_HOST_ARCH=parisc
2678
        ;;
2679
    *:*:i?86)
2680
        if [ "$OPT_VERBOSE" = "yes" ]; then
2681
            echo "    32-bit Intel 80x86 (i386)"
2682
        fi
2683
        CFG_HOST_ARCH=i386
2684
        ;;
2685
    *:*:x86_64|*:*:amd64)
2686
        if [ "$PLATFORM" = "linux-g++-32" -o "$PLATFORM" = "linux-icc-32" ]; then
2687
            if [ "$OPT_VERBOSE" = "yes" ]; then
2688
                echo "    32 bit on 64-bit AMD 80x86 (i386)"
2689
            fi
2690
            CFG_HOST_ARCH=i386
2691
        else
2692
            if [ "$OPT_VERBOSE" = "yes" ]; then
2693
                echo "    64-bit AMD 80x86 (x86_64)"
2694
            fi
2695
            CFG_HOST_ARCH=x86_64
2696
        fi
2697
        ;;
2698
    *:*:ppc)
2699
        if [ "$OPT_VERBOSE" = "yes" ]; then
2700
            echo "    32-bit PowerPC (powerpc)"
2701
        fi
2702
        CFG_HOST_ARCH=powerpc
2703
        ;;
2704
    *:*:ppc64)
2705
        if [ "$OPT_VERBOSE" = "yes" ]; then
2706
            echo "    64-bit PowerPC (powerpc)"
2707
        fi
2708
        CFG_HOST_ARCH=powerpc
2709
        ;;
2710
    *:*:s390*)
2711
    	if [ "$OPT_VERBOSE" = "yes" ]; then
2712
    	    echo "    IBM S/390 (s390)"
2713
    	fi
2714
    	CFG_HOST_ARCH=s390
2715
    	;;
2716
    *:*:arm*)
2717
        if [ "$OPT_VERBOSE" = "yes" ]; then
2718
            echo "    ARM (arm)"
2719
        fi
2720
        CFG_HOST_ARCH=arm
2721
        ;;
2722
    Linux:*:sparc*)
2723
        if [ "$OPT_VERBOSE" = "yes" ]; then
2724
            echo "    Linux on SPARC"
2725
        fi
2726
        CFG_HOST_ARCH=sparc
2727
        ;;
2728
    QNX:*:*)
2729
        case "$UNAME_MACHINE" in
2730
        x86pc)
2731
            if [ "$OPT_VERBOSE" = "yes" ]; then
2732
                echo "    QNX on Intel 80x86 (i386)"
2733
            fi
2734
            CFG_HOST_ARCH=i386
2735
            ;;
2736
        esac
2737
        ;;
2738
    *:*:*)
2739
        if [ "$OPT_VERBOSE" = "yes" ]; then
2740
            echo "    Trying '$UNAME_MACHINE'..."
2741
        fi
2742
        CFG_HOST_ARCH="$UNAME_MACHINE"
2743
        ;;
2744
    esac
2745
fi
2746
2747
if [ "$PLATFORM" != "$XPLATFORM" -a "$CFG_EMBEDDED" != "no" ]; then
2748
    if [ -n "$CFG_ARCH" ]; then
2749
        CFG_EMBEDDED=$CFG_ARCH
2750
    fi
2751
2752
    case "$CFG_EMBEDDED" in
2753
    x86)
2754
        CFG_ARCH=i386
2755
        ;;
2756
    x86_64)
2757
        CFG_ARCH=x86_64
2758
        ;;
2759
    ipaq|sharp)
2760
        CFG_ARCH=arm
2761
        ;;
2762
    dm7000)
2763
        CFG_ARCH=powerpc
2764
        ;;
2765
    dm800)
2766
        CFG_ARCH=mips
2767
        ;;
2768
    sh4al)
2769
        CFG_ARCH=sh4a
2770
        ;;
2771
    *)
2772
        CFG_ARCH="$CFG_EMBEDDED"
2773
        ;;
2774
    esac
2775
elif [ "$PLATFORM_MAC" = "yes" ] || [ -z "$CFG_ARCH" ]; then
2776
    CFG_ARCH=$CFG_HOST_ARCH
2777
fi
2778
2779
if [ -d "$relpath/src/corelib/arch/$CFG_ARCH" ]; then
2780
    if [ "$OPT_VERBOSE" = "yes" ]; then
2781
        echo "    '$CFG_ARCH' is supported"
2782
    fi
2783
else
2784
    if [ "$OPT_VERBOSE" = "yes" ]; then
2785
        echo "    '$CFG_ARCH' is unsupported, using 'generic'"
2786
    fi
2787
    CFG_ARCH=generic
2788
fi
2789
if [ "$CFG_HOST_ARCH" != "$CFG_ARCH" ]; then
2790
    if [ -d "$relpath/src/corelib/arch/$CFG_HOST_ARCH" ]; then
2791
        if [ "$OPT_VERBOSE" = "yes" ]; then
2792
            echo "    '$CFG_HOST_ARCH' is supported"
2793
        fi
2794
    else
2795
        if [ "$OPT_VERBOSE" = "yes" ]; then
2796
            echo "    '$CFG_HOST_ARCH' is unsupported, using 'generic'"
2797
        fi
2798
        CFG_HOST_ARCH=generic
2799
    fi
2800
fi
2801
2802
if [ "$OPT_VERBOSE" = "yes" ]; then
2803
    echo "System architecture: '$CFG_ARCH'"
2804
    if [ "$PLATFORM_QWS" = "yes" ]; then
2805
	echo "Host architecture: '$CFG_HOST_ARCH'"
2806
    fi
2807
fi
2808
2809
#-------------------------------------------------------------------------------
2810
# tests that don't need qmake (must be run before displaying help)
2811
#-------------------------------------------------------------------------------
2812
2813
if [ -z "$PKG_CONFIG" ]; then
2814
    # See if PKG_CONFIG is set in the mkspec:
2815
    PKG_CONFIG=`getQMakeConf "$XQMAKESPEC" | sed -n -e 's%PKG_CONFIG[^_].*=%%p' | tr '\n' ' '`
2816
fi
2817
if [ -z "$PKG_CONFIG" ]; then
2818
    PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
2819
fi
2820
2821
# Work out if we can use pkg-config
2822
if [ "$QT_CROSS_COMPILE" = "yes" ]; then
2823
    if [ "$QT_FORCE_PKGCONFIG" = "yes" ]; then
2824
        echo >&2 ""
2825
        echo >&2 "You have asked to use pkg-config and are cross-compiling."
2826
        echo >&2 "Please make sure you have a correctly set-up pkg-config"
2827
        echo >&2 "environment!"
2828
        echo >&2 ""
2829
        if [ -z "$PKG_CONFIG_PATH" ]; then
2830
            echo >&2 ""
2831
            echo >&2 "Warning: PKG_CONFIG_PATH has not been set.  This could mean"
2832
            echo >&2 "the host compiler's .pc files will be used. This is probably"
2833
            echo >&2 "not what you want."
2834
            echo >&2 ""
2835
        elif [ -z "$PKG_CONFIG_SYSROOT" ] && [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
2836
            echo >&2 ""
2837
            echo >&2 "Warning: PKG_CONFIG_SYSROOT/PKG_CONFIG_SYSROOT_DIR has not"
2838
            echo >&2 "been set. This means your toolchain's .pc files must contain"
2839
            echo >&2 "the paths to the toolchain's libraries & headers. If configure"
2840
            echo >&2 "tests are failing, please check these files."
2841
            echo >&2 ""
2842
        fi
2843
    else
2844
        PKG_CONFIG=""
2845
    fi
2846
fi
2847
2848
# process CFG_MAC_ARCHS
2849
if [ "$PLATFORM_MAC" = "yes" ]; then
2850
#   check -arch arguments for validity.
2851
    ALLOWED="x86 ppc x86_64 ppc64 i386"
2852
    # Save the list so we can re-write it using only valid values
2853
    CFG_MAC_ARCHS_IN="$CFG_MAC_ARCHS"
2854
    CFG_MAC_ARCHS=
2855
    for i in $CFG_MAC_ARCHS_IN
2856
    do 
2857
        if echo "$ALLOWED" | grep -w -v "$i" > /dev/null 2>&1; then
2858
            echo "Unknown architecture: \"$i\". Supported architectures: x86[i386] ppc x86_64 ppc64";
2859
            exit 2;
2860
        fi
2861
        if [ "$i" = "i386" -o "$i" = "x86" ]; then
2862
            # These are synonymous values
2863
            # CFG_MAC_ARCHS requires x86 while GCC requires i386
2864
            CFG_MAC_ARCHS="$CFG_MAC_ARCHS x86"
2865
            MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -arch i386"
2866
        else
2867
            CFG_MAC_ARCHS="$CFG_MAC_ARCHS $i"
2868
            MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -arch $i"
2869
        fi
2870
    done
2871
fi
2872
2873
# pass on $CFG_SDK to the configure tests.
2874
if [ '!' -z "$CFG_SDK" ]; then
2875
    MAC_CONFIG_TEST_COMMANDLINE="-sdk $CFG_SDK"
2876
    echo "tests command line: $MAC_CONFIG_TEST_COMMANDLINE"
2877
fi
2878
2879
# find the default framework value
2880
if [ "$PLATFORM_MAC" = "yes" ] && [ "$PLATFORM" != "macx-xlc" ]; then
2881
    if [ "$CFG_FRAMEWORK" = "auto" ]; then
2882
        CFG_FRAMEWORK="$CFG_SHARED"
2883
    elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2884
	echo
2885
	echo "WARNING: Using static linking will disable the use of Mac frameworks."
2886
	echo
2887
        CFG_FRAMEWORK="no"
2888
    fi
2889
else
2890
    CFG_FRAMEWORK=no
2891
fi
2892
2893
QMAKE_CONF_COMPILER=`getQMakeConf "$XQMAKESPEC" | grep "^QMAKE_CXX[^_A-Z0-9]" | sed "s,.* *= *\(.*\)$,\1," | tail -1`
2894
TEST_COMPILER="$CC"
2895
[ -z "$TEST_COMPILER" ] && TEST_COMPILER=$QMAKE_CONF_COMPILER
2896
2897
# auto-detect precompiled header support
2898
if [ "$CFG_PRECOMPILE" = "auto" ]; then
2899
    if [ `echo "$CFG_MAC_ARCHS" | wc -w` -gt 1 ]; then
2900
       CFG_PRECOMPILE=no
2901
    elif "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2902
       CFG_PRECOMPILE=no
2903
    else
2904
       CFG_PRECOMPILE=yes
2905
    fi
2906
elif [ "$CFG_PRECOMPILE" = "yes" ] && [ `echo "$CFG_MAC_ARCHS" | wc -w` -gt 1 ]; then
2907
    echo
2908
    echo "WARNING: Using universal binaries disables precompiled headers."
2909
    echo
2910
    CFG_PRECOMPILE=no
2911
fi
2912
2913
#auto-detect DWARF2 on the mac
2914
if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_DWARF2" = "auto" ]; then
2915
    if "$mactests/dwarf2.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests" ; then
2916
        CFG_MAC_DWARF2=no
2917
    else
2918
        CFG_MAC_DWARF2=yes
2919
    fi
2920
fi
2921
2922
# auto-detect support for -Xarch on the mac
2923
if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_XARCH" = "auto" ]; then
2924
    if "$mactests/xarch.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests" ; then
2925
        CFG_MAC_XARCH=no
2926
    else
2927
        CFG_MAC_XARCH=yes
2928
    fi
2929
fi
2930
2931
# don't autodetect support for separate debug info on objcopy when
2932
# cross-compiling as lots of toolchains seems to have problems with this
2933
if [ "$QT_CROSS_COMPILE" = "yes" ] && [ "$CFG_SEPARATE_DEBUG_INFO" = "auto" ]; then
2934
    CFG_SEPARATE_DEBUG_INFO="no"
2935
fi
2936
2937
# auto-detect support for separate debug info in objcopy
2938
if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2939
    TEST_COMPILER_CFLAGS=`getQMakeConf "$XQMAKESPEC" | sed -n -e 's%QMAKE_CFLAGS[^_].*=%%p' | tr '\n' ' '`
2940
    TEST_COMPILER_CXXFLAGS=`getQMakeConf "$XQMAKESPEC" | sed -n -e 's%QMAKE_CXXFLAGS[^_].*=%%p' | tr '\n' ' '`
2941
    TEST_OBJCOPY=`getQMakeConf "$XQMAKESPEC" | grep "^QMAKE_OBJCOPY" | sed "s%.* *= *\(.*\)$%\1%" | tail -1`
2942
    COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2943
    COMPILER_WITH_FLAGS=`echo "$COMPILER_WITH_FLAGS" | sed -e "s%\\$\\$QMAKE_CFLAGS%$TEST_COMPILER_CFLAGS%g"`
2944
    if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2945
       CFG_SEPARATE_DEBUG_INFO=no
2946
    else
2947
       case "$PLATFORM" in
2948
       hpux-*)
2949
           # binutils on HP-UX is buggy; default to no.
2950
           CFG_SEPARATE_DEBUG_INFO=no
2951
           ;;
2952
       *)
2953
           CFG_SEPARATE_DEBUG_INFO=yes
2954
           ;;
2955
       esac
2956
    fi
2957
fi
2958
2959
# auto-detect -fvisibility support
2960
if [ "$CFG_REDUCE_EXPORTS" = "auto" ]; then
2961
    if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2962
       CFG_REDUCE_EXPORTS=no
2963
    else
2964
       CFG_REDUCE_EXPORTS=yes
2965
    fi
2966
fi
2967
2968
# detect the availability of the -Bsymbolic-functions linker optimization
2969
if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2970
    if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2971
        CFG_REDUCE_RELOCATIONS=no
2972
    else
2973
        CFG_REDUCE_RELOCATIONS=yes
2974
    fi
2975
fi
2976
2977
# auto-detect GNU make support
2978
if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2979
   CFG_USE_GNUMAKE=yes
2980
fi
2981
2982
# If -opengl wasn't specified, don't try to auto-detect
2983
if [ "$PLATFORM_QWS" = "yes" ] && [ "$CFG_OPENGL" = "auto" ]; then
2984
        CFG_OPENGL=no
2985
fi
2986
2987
# mac
2988
if [ "$PLATFORM_MAC" = "yes" ]; then
2989
    if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
2990
        CFG_OPENGL=desktop
2991
    fi
2992
fi
2993
2994
# find the default framework value
2995
if [ "$PLATFORM_MAC" = "yes" ] && [ "$PLATFORM" != "macx-xlc" ]; then
2996
    if [ "$CFG_FRAMEWORK" = "auto" ]; then
2997
        CFG_FRAMEWORK="$CFG_SHARED"
2998
    elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2999
	echo
3000
	echo "WARNING: Using static linking will disable the use of Mac frameworks."
3001
	echo
3002
        CFG_FRAMEWORK="no"
3003
    fi
3004
else
3005
    CFG_FRAMEWORK=no
3006
fi
3007
3008
# x11 tests are done after qmake is built
3009
3010
3011
#setup the build parts
3012
if [ -z "$CFG_BUILD_PARTS" ]; then
3013
    CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
3014
3015
    # don't build tools by default when cross-compiling
3016
    if [ "$PLATFORM" != "$XPLATFORM" ]; then
3017
	CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
3018
    fi
3019
fi
3020
for nobuild in $CFG_NOBUILD_PARTS; do
3021
    CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
3022
done
3023
if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
3024
#    echo
3025
#    echo "WARNING: libs is a required part of the build."
3026
#    echo
3027
    CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
3028
fi
3029
3030
#-------------------------------------------------------------------------------
3031
# post process QT_INSTALL_* variables
3032
#-------------------------------------------------------------------------------
3033
3034
#prefix
3035
if [ -z "$QT_INSTALL_PREFIX" ]; then
3036
    if [ "$CFG_DEV" = "yes" ]; then
3037
	QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
3038
    elif [ "$PLATFORM_QWS" = "yes" ]; then
3039
        QT_INSTALL_PREFIX="/usr/local/Trolltech/QtEmbedded-${QT_VERSION}"
3040
        if [ "$PLATFORM" != "$XPLATFORM" ]; then
3041
            QT_INSTALL_PREFIX="${QT_INSTALL_PREFIX}-${CFG_ARCH}"
3042
        fi
3043
    else
3044
        QT_INSTALL_PREFIX="/usr/local/Trolltech/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Trolltech/Qt-$QT_VERSION
3045
    fi
3046
fi
3047
QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
3048
3049
#docs
3050
if [ -z "$QT_INSTALL_DOCS" ]; then #default
3051
    if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3052
	if [ "$PLATFORM_MAC" = "yes" ]; then
3053
	    QT_INSTALL_DOCS="/Developer/Documentation/Qt"
3054
        fi
3055
    fi
3056
    [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
3057
3058
fi
3059
QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
3060
3061
#headers
3062
if [ -z "$QT_INSTALL_HEADERS" ]; then #default
3063
    if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3064
	if [ "$PLATFORM_MAC" = "yes" ]; then
3065
	    if [ "$CFG_FRAMEWORK" = "yes" ]; then
3066
		QT_INSTALL_HEADERS=
3067
            fi
3068
        fi
3069
    fi
3070
    [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
3071
3072
fi
3073
QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
3074
3075
#libs
3076
if [ -z "$QT_INSTALL_LIBS" ]; then #default
3077
    if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3078
	if [ "$PLATFORM_MAC" = "yes" ]; then
3079
	    if [ "$CFG_FRAMEWORK" = "yes" ]; then
3080
		QT_INSTALL_LIBS="/Libraries/Frameworks"
3081
            fi
3082
        fi
3083
    fi
3084
    [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
3085
fi
3086
QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
3087
3088
#bins
3089
if [ -z "$QT_INSTALL_BINS" ]; then #default
3090
    if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3091
	if [ "$PLATFORM_MAC" = "yes" ]; then
3092
	    QT_INSTALL_BINS="/Developer/Applications/Qt"
3093
        fi
3094
    fi
3095
    [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
3096
3097
fi
3098
QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
3099
3100
#plugins
3101
if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
3102
    if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3103
	if [ "$PLATFORM_MAC" = "yes" ]; then
3104
	    QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
3105
        fi
3106
    fi
3107
    [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
3108
fi
3109
QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
3110
3111
#data
3112
if [ -z "$QT_INSTALL_DATA" ]; then #default
3113
    QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
3114
fi
3115
QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
3116
3117
#translations
3118
if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
3119
    QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
3120
fi
3121
QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
3122
3123
#settings
3124
if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
3125
    if [ "$PLATFORM_MAC" = "yes" ]; then
3126
	QT_INSTALL_SETTINGS=/Library/Preferences/Qt
3127
    else
3128
	QT_INSTALL_SETTINGS=/etc/xdg
3129
    fi
3130
fi
3131
QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
3132
3133
#examples
3134
if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
3135
    if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3136
	if [ "$PLATFORM_MAC" = "yes" ]; then
3137
	    QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
3138
        fi
3139
    fi
3140
    [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
3141
fi
3142
QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
3143
3144
#demos
3145
if [ -z "$QT_INSTALL_DEMOS" ]; then #default
3146
    if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3147
	if [ "$PLATFORM_MAC" = "yes" ]; then
3148
	    QT_INSTALL_DEMOS="/Developer/Examples/Qt/Demos"
3149
        fi
3150
    fi
3151
    [ -z "$QT_INSTALL_DEMOS" ] && QT_INSTALL_DEMOS="$QT_INSTALL_PREFIX/demos"
3152
fi
3153
QT_INSTALL_DEMOS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DEMOS"`
3154
3155
#-------------------------------------------------------------------------------
3156
# help - interactive parts of the script _after_ this section please
3157
#-------------------------------------------------------------------------------
3158
3159
# next, emit a usage message if something failed.
3160
if [ "$OPT_HELP" = "yes" ]; then
3161
    [ "x$ERROR" = "xyes" ] && echo
3162
    if [ "$CFG_NIS" = "no" ]; then
3163
        NSY=" "
3164
        NSN="*"
3165
    else
3166
        NSY="*"
3167
        NSN=" "
3168
    fi
3169
    if [ "$CFG_CUPS" = "no" ]; then
3170
        CUY=" "
3171
        CUN="*"
3172
    else
3173
        CUY="*"
3174
        CUN=" "
3175
    fi
3176
    if [ "$CFG_ICONV" = "no" ]; then
3177
        CIY=" "
3178
        CIN="*"
3179
    else
3180
        CIY="*"
3181
        CIN=" "
3182
    fi
3183
    if [ "$CFG_LARGEFILE" = "no" ]; then
3184
        LFSY=" "
3185
        LFSN="*"
3186
    else
3187
        LFSY="*"
3188
        LFSN=" "
3189
    fi
3190
    if [ "$CFG_STL" = "auto" ] || [ "$CFG_STL" = "yes" ]; then
3191
        SHY="*"
3192
        SHN=" "
3193
    else
3194
        SHY=" "
3195
        SHN="*"
3196
    fi
3197
    if [ "$CFG_IPV6" = "auto" ]; then
3198
        I6Y="*"
3199
        I6N=" "
3200
    fi
3201
    if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
3202
        PHY=" "
3203
        PHN="*"
3204
    else
3205
        PHY="*"
3206
        PHN=" "
3207
    fi
3208
3209
    cat <<EOF
3210
Usage:  $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>]
3211
        [-docdir <dir>] [-headerdir <dir>] [-plugindir <dir> ] [-datadir <dir>]
3212
        [-translationdir <dir>] [-sysconfdir <dir>] [-examplesdir <dir>]
3213
        [-demosdir <dir>] [-buildkey <key>] [-release] [-debug]
3214
        [-debug-and-release] [-developer-build] [-shared] [-static] [-no-fast] [-fast] [-no-largefile]
3215
        [-largefile] [-no-exceptions] [-exceptions] [-no-accessibility]
3216
        [-accessibility] [-no-stl] [-stl] [-no-sql-<driver>] [-sql-<driver>]
3217
        [-plugin-sql-<driver>] [-system-sqlite] [-no-qt3support] [-qt3support]
3218
        [-platform] [-D <string>] [-I <string>] [-L <string>] [-help]
3219
        [-qt-zlib] [-system-zlib] [-no-gif] [-qt-gif] [-no-libtiff] [-qt-libtiff] [-system-libtiff]
3220
        [-no-libpng] [-qt-libpng] [-system-libpng] [-no-libmng] [-qt-libmng]
3221
        [-system-libmng] [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make <part>]
3222
        [-no-make <part>] [-R <string>]  [-l <string>] [-no-rpath]  [-rpath] [-continue]
3223
        [-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv]
3224
        [-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked]
3225
        [-no-separate-debug-info] [-no-mmx] [-no-3dnow] [-no-sse] [-no-sse2]
3226
        [-qtnamespace <namespace>] [-qtlibinfix <infix>] [-separate-debug-info] [-armfpa]
3227
        [-no-optimized-qmake] [-optimized-qmake] [-no-xmlpatterns] [-xmlpatterns]
3228
        [-no-multimedia] [-multimedia] [-no-phonon] [-phonon] [-no-phonon-backend] [-phonon-backend]
3229
        [-no-openssl] [-openssl] [-openssl-linked]
3230
        [-no-gtkstyle] [-gtkstyle] [-no-svg] [-svg] [-no-webkit] [-webkit] [-no-javascript-jit] [-javascript-jit]
3231
        [-no-script] [-script] [-no-scripttools] [-scripttools]
3232
3233
        [additional platform specific options (see below)]
3234
3235
3236
Installation options:
3237
3238
 These are optional, but you may specify install directories.
3239
3240
    -prefix <dir> ...... This will install everything relative to <dir>
3241
                         (default $QT_INSTALL_PREFIX)
3242
EOF
3243
if [ "$PLATFORM_QWS" = "yes" ]; then
3244
cat <<EOF
3245
3246
    -hostprefix [dir] .. Tools and libraries needed when developing
3247
                         applications are installed in [dir]. If [dir] is
3248
                         not given, the current build directory will be used.
3249
EOF
3250
fi
3251
cat <<EOF
3252
3253
  * -prefix-install .... Force a sandboxed "local" installation of
3254
                         Qt. This will install into
3255
                         $QT_INSTALL_PREFIX, if this option is
3256
                         disabled then some platforms will attempt a
3257
                         "system" install by placing default values to
3258
                         be placed in a system location other than
3259
                         PREFIX.
3260
3261
 You may use these to separate different parts of the install:
3262
3263
    -bindir <dir> ......... Executables will be installed to <dir>
3264
                            (default PREFIX/bin)
3265
    -libdir <dir> ......... Libraries will be installed to <dir>
3266
                            (default PREFIX/lib)
3267
    -docdir <dir> ......... Documentation will be installed to <dir>
3268
                            (default PREFIX/doc)
3269
    -headerdir <dir> ...... Headers will be installed to <dir>
3270
                            (default PREFIX/include)
3271
    -plugindir <dir> ...... Plugins will be installed to <dir>
3272
                            (default PREFIX/plugins)
3273
    -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3274
                            (default PREFIX)
3275
    -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3276
                            (default PREFIX/translations)
3277
    -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3278
                            (default PREFIX/etc/settings)
3279
    -examplesdir <dir> .... Examples will be installed to <dir>
3280
                            (default PREFIX/examples)
3281
    -demosdir <dir> ....... Demos will be installed to <dir>
3282
                            (default PREFIX/demos)
3283
3284
 You may use these options to turn on strict plugin loading.
3285
3286
    -buildkey <key> .... Build the Qt library and plugins using the specified
3287
                         <key>.  When the library loads plugins, it will only
3288
                         load those that have a matching key.
3289
3290
Configure options:
3291
3292
 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3293
 that needs to be evaluated. If the evaluation succeeds, the feature is
3294
 included. Here is a short explanation of each option:
3295
3296
 *  -release ........... Compile and link Qt with debugging turned off.
3297
    -debug ............. Compile and link Qt with debugging turned on.
3298
    -debug-and-release . Compile and link two versions of Qt, with and without
3299
                         debugging turned on (Mac only).
3300
3301
    -developer-build.... Compile and link Qt with Qt developer options (including auto-tests exporting)
3302
3303
    -opensource......... Compile and link the Open-Source Edition of Qt.
3304
    -commercial......... Compile and link the Commercial Edition of Qt.
3305
3306
3307
 *  -shared ............ Create and use shared Qt libraries.
3308
    -static ............ Create and use static Qt libraries.
3309
3310
 *  -no-fast ........... Configure Qt normally by generating Makefiles for all
3311
                         project files.
3312
    -fast .............. Configure Qt quickly by generating Makefiles only for
3313
                         library and subdirectory targets.  All other Makefiles
3314
                         are created as wrappers, which will in turn run qmake.
3315
3316
    -no-largefile ...... Disables large file support.
3317
 +  -largefile ......... Enables Qt to access files larger than 4 GB.
3318
3319
EOF
3320
if [ "$PLATFORM_QWS" = "yes" ]; then
3321
    EXCN="*"
3322
    EXCY=" "
3323
else
3324
    EXCN=" "
3325
    EXCY="*"
3326
fi
3327
if [ "$CFG_DBUS" = "no" ]; then
3328
    DBY=" "
3329
    DBN="+"
3330
else
3331
    DBY="+"
3332
    DBN=" "
3333
fi
3334
3335
    cat << EOF
3336
 $EXCN  -no-exceptions ..... Disable exceptions on compilers that support it.
3337
 $EXCY  -exceptions ........ Enable exceptions on compilers that support it.
3338
3339
    -no-accessibility .. Do not compile Accessibility support.
3340
 *  -accessibility ..... Compile Accessibility support.
3341
3342
 $SHN  -no-stl ............ Do not compile STL support.
3343
 $SHY  -stl ............... Compile STL support.
3344
3345
    -no-sql-<driver> ... Disable SQL <driver> entirely.
3346
    -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3347
                         none are turned on.
3348
    -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3349
                         at run time.
3350
3351
                         Possible values for <driver>:
3352
                         [ $CFG_SQL_AVAILABLE ]
3353
3354
    -system-sqlite ..... Use sqlite from the operating system.
3355
3356
    -no-qt3support ..... Disables the Qt 3 support functionality.
3357
 *  -qt3support ........ Enables the Qt 3 support functionality.
3358
3359
    -no-xmlpatterns .... Do not build the QtXmlPatterns module.
3360
 +  -xmlpatterns ....... Build the QtXmlPatterns module.
3361
                         QtXmlPatterns is built if a decent C++ compiler
3362
                         is used and exceptions are enabled.
3363
3364
    -no-multimedia ..... Do not build the QtMultimedia module.
3365
 +  -multimedia ........ Build the QtMultimedia module.
3366
3367
    -no-phonon ......... Do not build the Phonon module.
3368
 +  -phonon ............ Build the Phonon module.
3369
                         Phonon is built if a decent C++ compiler is used.
3370
    -no-phonon-backend.. Do not build the platform phonon plugin.
3371
 +  -phonon-backend..... Build the platform phonon plugin.
3372
3373
    -no-svg ............ Do not build the SVG module.
3374
 +  -svg ............... Build the SVG module.
3375
3376
    -no-webkit ......... Do not build the WebKit module.
3377
 +  -webkit ............ Build the WebKit module.
3378
                         WebKit is built if a decent C++ compiler is used.
3379
3380
    -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3381
 +  -javascript-jit .... Build the JavaScriptCore JIT compiler.
3382
3383
    -no-script ......... Do not build the QtScript module.
3384
 +  -script ............ Build the QtScript module.
3385
3386
    -no-scripttools .... Do not build the QtScriptTools module.
3387
 +  -scripttools ....... Build the QtScriptTools module.
3388
3389
    -platform target ... The operating system and compiler you are building
3390
                         on ($PLATFORM).
3391
3392
                         See the README file for a list of supported
3393
                         operating systems and compilers.
3394
EOF
3395
if [ "${PLATFORM_QWS}" != "yes" ]; then
3396
cat << EOF
3397
    -graphicssystem <sys> Sets an alternate graphics system. Available options are:
3398
                           raster - Software rasterizer
3399
                           opengl - Rendering via OpenGL, Experimental!
3400
EOF
3401
fi
3402
cat << EOF
3403
3404
    -no-mmx ............ Do not compile with use of MMX instructions.
3405
    -no-3dnow .......... Do not compile with use of 3DNOW instructions.
3406
    -no-sse ............ Do not compile with use of SSE instructions.
3407
    -no-sse2 ........... Do not compile with use of SSE2 instructions.
3408
3409
    -qtnamespace <name>  Wraps all Qt library code in 'namespace <name> {...}'.
3410
    -qtlibinfix <infix>  Renames all libQt*.so to libQt*<infix>.so.
3411
3412
    -D <string> ........ Add an explicit define to the preprocessor.
3413
    -I <string> ........ Add an explicit include path.
3414
    -L <string> ........ Add an explicit library path.
3415
3416
    -help, -h .......... Display this information.
3417
3418
Third Party Libraries:
3419
3420
    -qt-zlib ........... Use the zlib bundled with Qt.
3421
 +  -system-zlib ....... Use zlib from the operating system.
3422
                         See http://www.gzip.org/zlib
3423
3424
    -no-gif ............ Do not compile the plugin for GIF reading support.
3425
 *  -qt-gif ............ Compile the plugin for GIF reading support.
3426
                         See also src/plugins/imageformats/gif/qgifhandler.h
3427
3428
    -no-libtiff ........ Do not compile the plugin for TIFF support.
3429
    -qt-libtiff ........ Use the libtiff bundled with Qt.
3430
 +  -system-libtiff .... Use libtiff from the operating system.
3431
                         See http://www.libtiff.org
3432
3433
    -no-libpng ......... Do not compile in PNG support.
3434
    -qt-libpng ......... Use the libpng bundled with Qt.
3435
 +  -system-libpng ..... Use libpng from the operating system.
3436
                         See http://www.libpng.org/pub/png
3437
3438
    -no-libmng ......... Do not compile the plugin for MNG support.
3439
    -qt-libmng ......... Use the libmng bundled with Qt.
3440
 +  -system-libmng ..... Use libmng from the operating system.
3441
                         See http://www.libmng.com
3442
3443
    -no-libjpeg ........ Do not compile the plugin for JPEG support.
3444
    -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3445
 +  -system-libjpeg .... Use libjpeg from the operating system.
3446
                         See http://www.ijg.org
3447
3448
    -no-openssl ........ Do not compile support for OpenSSL.
3449
 +  -openssl ........... Enable run-time OpenSSL support.
3450
    -openssl-linked .... Enabled linked OpenSSL support.
3451
3452
    -ptmalloc .......... Override the system memory allocator with ptmalloc.
3453
                         (Experimental.)
3454
3455
Additional options:
3456
3457
    -make <part> ....... Add part to the list of parts to be built at make time.
3458
                         ($QT_DEFAULT_BUILD_PARTS)
3459
    -nomake <part> ..... Exclude part from the list of parts to be built.
3460
3461
    -R <string> ........ Add an explicit runtime library path to the Qt
3462
                         libraries.
3463
    -l <string> ........ Add an explicit library.
3464
3465
    -no-rpath .......... Do not use the library install path as a runtime
3466
                         library path.
3467
 +  -rpath ............. Link Qt libraries and executables using the library
3468
                         install path as a runtime library path. Equivalent
3469
                         to -R install_libpath
3470
3471
    -continue .......... Continue as far as possible if an error occurs.
3472
3473
    -verbose, -v ....... Print verbose information about each step of the
3474
                         configure process.
3475
3476
    -silent ............ Reduce the build output so that warnings and errors
3477
                         can be seen more easily.
3478
3479
 *  -no-optimized-qmake ... Do not build qmake optimized.
3480
    -optimized-qmake ...... Build qmake optimized.
3481
3482
 $NSN  -no-nis ............ Do not compile NIS support.
3483
 $NSY  -nis ............... Compile NIS support.
3484
3485
 $CUN  -no-cups ........... Do not compile CUPS support.
3486
 $CUY  -cups .............. Compile CUPS support.
3487
                         Requires cups/cups.h and libcups.so.2.
3488
3489
 $CIN  -no-iconv .......... Do not compile support for iconv(3).
3490
 $CIY  -iconv ............. Compile support for iconv(3).
3491
3492
 $PHN  -no-pch ............ Do not use precompiled header support.
3493
 $PHY  -pch ............... Use precompiled header support.
3494
3495
 $DBN  -no-dbus ........... Do not compile the QtDBus module.
3496
 $DBY  -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3497
    -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3498
3499
    -reduce-relocations ..... Reduce relocations in the libraries through extra
3500
                              linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3501
                              experimental; needs GNU ld >= 2.18).
3502
EOF
3503
3504
if [ "$CFG_SEPARATE_DEBUG_INFO" = "auto" ]; then
3505
    if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3506
        SBY=""
3507
        SBN="*"
3508
    else
3509
        SBY="*"
3510
        SBN=" "
3511
    fi
3512
elif [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
3513
    SBY="*"
3514
    SBN=" "
3515
else
3516
    SBY=" "
3517
    SBN="*"
3518
fi
3519
3520
if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ]; then
3521
3522
    cat << EOF
3523
3524
 $SBN  -no-separate-debug-info . Do not store debug information in a separate file.
3525
 $SBY  -separate-debug-info .... Strip debug information into a separate .debug file.
3526
3527
EOF
3528
3529
fi # X11/QWS
3530
3531
if [ "$PLATFORM_X11" = "yes" ]; then
3532
    if [ "$CFG_SM" = "no" ]; then
3533
        SMY=" "
3534
        SMN="*"
3535
    else
3536
        SMY="*"
3537
        SMN=" "
3538
    fi
3539
    if [ "$CFG_XSHAPE" = "no" ]; then
3540
        SHY=" "
3541
        SHN="*"
3542
    else
3543
        SHY="*"
3544
        SHN=" "
3545
    fi
3546
    if [ "$CFG_XINERAMA" = "no" ]; then
3547
        XAY=" "
3548
        XAN="*"
3549
    else
3550
        XAY="*"
3551
        XAN=" "
3552
    fi
3553
    if [ "$CFG_FONTCONFIG" = "no" ]; then
3554
        FCGY=" "
3555
        FCGN="*"
3556
    else
3557
        FCGY="*"
3558
        FCGN=" "
3559
    fi
3560
    if [ "$CFG_XCURSOR" = "no" ]; then
3561
        XCY=" "
3562
        XCN="*"
3563
    else
3564
        XCY="*"
3565
        XCN=" "
3566
    fi
3567
    if [ "$CFG_XFIXES" = "no" ]; then
3568
        XFY=" "
3569
        XFN="*"
3570
    else
3571
        XFY="*"
3572
        XFN=" "
3573
    fi
3574
    if [ "$CFG_XRANDR" = "no" ]; then
3575
        XZY=" "
3576
        XZN="*"
3577
    else
3578
        XZY="*"
3579
        XZN=" "
3580
    fi
3581
    if [ "$CFG_XRENDER" = "no" ]; then
3582
        XRY=" "
3583
        XRN="*"
3584
    else
3585
        XRY="*"
3586
        XRN=" "
3587
    fi
3588
    if [ "$CFG_MITSHM" = "no" ]; then
3589
        XMY=" "
3590
        XMN="*"
3591
    else
3592
        XMY="*"
3593
        XMN=" "
3594
    fi
3595
    if [ "$CFG_XINPUT" = "no" ]; then
3596
        XIY=" "
3597
        XIN="*"
3598
    else
3599
        XIY="*"
3600
        XIN=" "
3601
    fi
3602
    if [ "$CFG_XKB" = "no" ]; then
3603
        XKY=" "
3604
        XKN="*"
3605
    else
3606
        XKY="*"
3607
        XKN=" "
3608
    fi
3609
    if [ "$CFG_IM" = "no" ]; then
3610
        IMY=" "
3611
        IMN="*"
3612
    else
3613
        IMY="*"
3614
        IMN=" "
3615
    fi
3616
    cat << EOF
3617
3618
Qt/X11 only:
3619
3620
    -no-gtkstyle ....... Do not build the GTK theme integration.
3621
 +  -gtkstyle .......... Build the GTK theme integration.
3622
3623
 *  -no-nas-sound ...... Do not compile in NAS sound support.
3624
    -system-nas-sound .. Use NAS libaudio from the operating system.
3625
                         See http://radscan.com/nas.html
3626
3627
    -no-opengl ......... Do not support OpenGL.
3628
 +  -opengl <api> ...... Enable OpenGL support.
3629
                         With no parameter, this will auto-detect the "best"
3630
                         OpenGL API to use. If desktop OpenGL is avaliable, it
3631
                         will be used. Use desktop, es1, es1cl or es2 for <api>
3632
                         to force the use of the Desktop (OpenGL 1.x or 2.x),
3633
                         OpenGL ES 1.x Common profile, 1.x Common Lite profile
3634
                         or 2.x APIs instead. On X11, the EGL API will be used
3635
                         to manage GL contexts in the case of OpenGL ES
3636
3637
     -no-openvg ........ Do not support OpenVG.
3638
 +   -openvg ........... Enable OpenVG support.
3639
                         Requires EGL support, typically supplied by an OpenGL
3640
                         or other graphics implementation.
3641
3642
 $SMN  -no-sm ............. Do not support X Session Management.
3643
 $SMY  -sm ................ Support X Session Management, links in -lSM -lICE.
3644
3645
 $SHN  -no-xshape ......... Do not compile XShape support.
3646
 $SHY  -xshape ............ Compile XShape support.
3647
                         Requires X11/extensions/shape.h.
3648
3649
 $SHN  -no-xsync .......... Do not compile XSync support.
3650
 $SHY  -xsync ............. Compile XSync support.
3651
                         Requires X11/extensions/sync.h.
3652
3653
 $XAN  -no-xinerama ....... Do not compile Xinerama (multihead) support.
3654
 $XAY  -xinerama .......... Compile Xinerama support.
3655
                         Requires X11/extensions/Xinerama.h and libXinerama.
3656
			 By default, Xinerama support will be compiled if
3657
                         available and the shared libraries are dynamically
3658
                         loaded at runtime.
3659
3660
 $XCN  -no-xcursor ........ Do not compile Xcursor support.
3661
 $XCY  -xcursor ........... Compile Xcursor support.
3662
                         Requires X11/Xcursor/Xcursor.h and libXcursor.
3663
			 By default, Xcursor support will be compiled if
3664
                         available and the shared libraries are dynamically
3665
                         loaded at runtime.
3666
3667
 $XFN  -no-xfixes ......... Do not compile Xfixes support.
3668
 $XFY  -xfixes ............ Compile Xfixes support.
3669
                         Requires X11/extensions/Xfixes.h and libXfixes.
3670
			 By default, Xfixes support will be compiled if
3671
                         available and the shared libraries are dynamically
3672
                         loaded at runtime.
3673
3674
 $XZN  -no-xrandr ......... Do not compile Xrandr (resize and rotate) support.
3675
 $XZY  -xrandr ............ Compile Xrandr support.
3676
                         Requires X11/extensions/Xrandr.h and libXrandr.
3677
3678
 $XRN  -no-xrender ........ Do not compile Xrender support.
3679
 $XRY  -xrender ........... Compile Xrender support.
3680
                         Requires X11/extensions/Xrender.h and libXrender.
3681
3682
 $XMN  -no-mitshm ......... Do not compile MIT-SHM support.
3683
 $XMY  -mitshm ............ Compile MIT-SHM support.
3684
                         Requires sys/ipc.h, sys/shm.h and X11/extensions/XShm.h
3685
3686
 $FCGN  -no-fontconfig ..... Do not compile FontConfig (anti-aliased font) support.
3687
 $FCGY  -fontconfig ........ Compile FontConfig support.
3688
                         Requires fontconfig/fontconfig.h, libfontconfig,
3689
                         freetype.h and libfreetype.
3690
3691
 $XIN  -no-xinput.......... Do not compile Xinput support.
3692
 $XIY  -xinput ............ Compile Xinput support. This also enabled tablet support
3693
                         which requires IRIX with wacom.h and libXi or
3694
                         XFree86 with X11/extensions/XInput.h and libXi.
3695
3696
 $XKN  -no-xkb ............ Do not compile XKB (X KeyBoard extension) support.
3697
 $XKY  -xkb ............... Compile XKB support.
3698
3699
EOF
3700
fi
3701
3702
if [ "$PLATFORM_MAC" = "yes" ]; then
3703
    cat << EOF
3704
3705
Qt/Mac only:
3706
3707
    -Fstring ........... Add an explicit framework path.
3708
    -fw string ......... Add an explicit framework.
3709
3710
    -cocoa ............. Build the Cocoa version of Qt. Note that -no-framework
3711
                         and -static is not supported with -cocoa. Specifying
3712
                         this option creates Qt binaries that requires Mac OS X
3713
                         10.5 or higher.
3714
3715
 *  -framework ......... Build Qt as a series of frameworks and
3716
                         link tools against those frameworks.
3717
    -no-framework ...... Do not build Qt as a series of frameworks.
3718
3719
 *  -dwarf2 ............ Enable dwarf2 debugging symbols.
3720
    -no-dwarf2 ......... Disable dwarf2 debugging symbols.
3721
3722
    -universal ......... Equivalent to -arch "ppc x86"
3723
3724
    -arch <arch> ....... Build Qt for <arch>
3725
                         Example values for <arch>: x86 ppc x86_64 ppc64
3726
                         Multiple -arch arguments can be specified, 64-bit archs
3727
                         will be built with the Cocoa framework.
3728
3729
    -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3730
                         To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3731
3732
EOF
3733
fi
3734
3735
if [ "$PLATFORM_QWS" = "yes" ]; then
3736
    cat << EOF
3737
3738
Qt for Embedded Linux only:
3739
3740
    -xplatform target ... The target platform when cross-compiling.
3741
3742
    -no-feature-<feature> Do not compile in <feature>.
3743
    -feature-<feature> .. Compile in <feature>. The available features
3744
                          are described in src/corelib/global/qfeatures.txt
3745
3746
    -embedded <arch> .... This will enable the embedded build, you must have a
3747
                          proper license for this switch to work.
3748
                          Example values for <arch>: arm mips x86 generic
3749
3750
    -armfpa ............. Target platform uses the ARM-FPA floating point format.
3751
    -no-armfpa .......... Target platform does not use the ARM-FPA floating point format.
3752
3753
                          The floating point format is usually autodetected by configure. Use this
3754
                          to override the detected value.
3755
3756
    -little-endian ...... Target platform is little endian (LSB first).
3757
    -big-endian ......... Target platform is big endian (MSB first).
3758
3759
    -host-little-endian . Host platform is little endian (LSB first).
3760
    -host-big-endian .... Host platform is big endian (MSB first).
3761
3762
                          You only need to specify the endianness when
3763
                          cross-compiling, otherwise the host
3764
                          endianness will be used.
3765
3766
    -no-freetype ........ Do not compile in Freetype2 support.
3767
    -qt-freetype ........ Use the libfreetype bundled with Qt.
3768
 *  -system-freetype .... Use libfreetype from the operating system.
3769
                          See http://www.freetype.org/
3770
3771
    -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3772
                          default ($CFG_QCONFIG).
3773
3774
    -depths <list> ...... Comma-separated list of supported bit-per-pixel
3775
                          depths, from: 1, 4, 8, 12, 15, 16, 18, 24, 32 and 'all'.
3776
3777
    -qt-decoration-<style> ....Enable a decoration <style> in the QtGui library,
3778
                               by default all available decorations are on.
3779
			       Possible values for <style>: [ $CFG_DECORATION_AVAILABLE ]
3780
    -plugin-decoration-<style> Enable decoration <style> as a plugin to be
3781
                               linked to at run time.
3782
			       Possible values for <style>: [ $CFG_DECORATION_PLUGIN_AVAILABLE ]
3783
    -no-decoration-<style> ....Disable decoration <style> entirely.
3784
                               Possible values for <style>: [ $CFG_DECORATION_AVAILABLE ]
3785
3786
    -no-opengl .......... Do not support OpenGL.
3787
    -opengl <api> ....... Enable OpenGL ES support
3788
                          With no parameter, this will attempt to auto-detect OpenGL ES 1.x
3789
                          or 2.x. Use es1, es1cl or es2 for <api> to override auto-detection.
3790
3791
                          NOTE: A QGLScreen driver for the hardware is required to support
3792
                                OpenGL ES on Qt for Embedded Linux.
3793
3794
    -qt-gfx-<driver> ... Enable a graphics <driver> in the QtGui library.
3795
                         Possible values for <driver>: [ $CFG_GFX_AVAILABLE ]
3796
    -plugin-gfx-<driver> Enable graphics <driver> as a plugin to be
3797
                         linked to at run time.
3798
                         Possible values for <driver>: [ $CFG_GFX_PLUGIN_AVAILABLE ]
3799
    -no-gfx-<driver> ... Disable graphics <driver> entirely.
3800
                         Possible values for <driver>: [ $CFG_GFX_AVAILABLE ]
3801
3802
    -qt-kbd-<driver> ... Enable a keyboard <driver> in the QtGui library.
3803
                         Possible values for <driver>: [ $CFG_KBD_AVAILABLE ]
3804
3805
    -plugin-kbd-<driver> Enable keyboard <driver> as a plugin to be linked to
3806
                         at runtime.
3807
                         Possible values for <driver>: [ $CFG_KBD_PLUGIN_AVAILABLE ]
3808
3809
    -no-kbd-<driver> ... Disable keyboard <driver> entirely.
3810
                         Possible values for <driver>: [ $CFG_KBD_AVAILABLE ]
3811
3812
    -qt-mouse-<driver> ... Enable a mouse <driver> in the QtGui library.
3813
                           Possible values for <driver>: [ $CFG_MOUSE_AVAILABLE ]
3814
    -plugin-mouse-<driver> Enable mouse <driver> as a plugin to be linked to
3815
                           at runtime.
3816
                           Possible values for <driver>: [ $CFG_MOUSE_PLUGIN_AVAILABLE ]
3817
    -no-mouse-<driver> ... Disable mouse <driver> entirely.
3818
                           Possible values for <driver>: [ $CFG_MOUSE_AVAILABLE ]
3819
3820
    -iwmmxt ............ Compile using the iWMMXt instruction set
3821
                         (available on some XScale CPUs).
3822
3823
EOF
3824
fi
3825
3826
3827
if [ "$PLATFORM_QWS" = "yes" -o "$PLATFORM_X11" = "yes" ]; then
3828
    if [ "$CFG_GLIB" = "no" ]; then
3829
        GBY=" "
3830
        GBN="+"
3831
    else
3832
        GBY="+"
3833
        GBN=" "
3834
    fi
3835
    cat << EOF
3836
 $GBN  -no-glib ........... Do not compile Glib support.
3837
 $GBY  -glib .............. Compile Glib support.
3838
3839
EOF
3840
fi
3841
3842
   [ "x$ERROR" = "xyes" ] && exit 1
3843
   exit 0
3844
fi # Help
3845
3846
3847
# -----------------------------------------------------------------------------
3848
# LICENSING, INTERACTIVE PART
3849
# -----------------------------------------------------------------------------
3850
3851
if [ "$PLATFORM_QWS" = "yes" ]; then
3852
    Platform="Qt for Embedded Linux"
3853
elif [ "$PLATFORM_MAC" = "yes" ]; then
3854
    Platform="Qt/Mac"
3855
else
3856
    PLATFORM_X11=yes
3857
    Platform="Qt/X11"
3858
fi
3859
3860
echo
3861
echo "This is the $Platform ${EditionString} Edition."
3862
echo
3863
3864
if [ "$Edition" = "NokiaInternalBuild" ]; then
3865
    echo "Detected -nokia-developer option"
3866
    echo "Nokia employees and agents are allowed to use this software under"
3867
    echo "the authority of Nokia Corporation and/or its subsidiary(-ies)"
3868
elif [ "$Edition" = "OpenSource" ]; then
3869
    while true; do
3870
        echo "You are licensed to use this software under the terms of"
3871
        echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3872
        if [ -f "$relpath/LICENSE.GPL3" ]; then
3873
            echo "You are also licensed to use this software under the terms of"
3874
            echo "the GNU General Public License (GPL) versions 3."
3875
            affix="either"
3876
        else
3877
            affix="the"
3878
        fi
3879
        echo
3880
        if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3881
            echo "You have already accepted the terms of the $LicenseType license."
3882
            acceptance=yes
3883
        else
3884
            if [ -f "$relpath/LICENSE.GPL3" ]; then
3885
                echo "Type '3' to view the GNU General Public License version 3."
3886
            fi
3887
            echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3888
            echo "Type 'yes' to accept this license offer."
3889
            echo "Type 'no' to decline this license offer."
3890
            echo
3891
            if echo '\c' | grep '\c' >/dev/null; then
3892
                echo -n "Do you accept the terms of $affix license? "
3893
            else
3894
                echo "Do you accept the terms of $affix license? \c"
3895
            fi
3896
            read acceptance
3897
        fi
3898
        echo
3899
        if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3900
            break
3901
        elif [ "$acceptance" = "no" ]; then
3902
            echo "You are not licensed to use this software."
3903
            echo
3904
            exit 1
3905
        elif [ "$acceptance" = "3" ]; then
3906
            more "$relpath/LICENSE.GPL3"
3907
        elif [ "$acceptance" = "L" ]; then
3908
            more "$relpath/LICENSE.LGPL"
3909
        fi
3910
    done
3911
elif [ "$Edition" = "Preview" ]; then
3912
    TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3913
    while true; do
3914
3915
        if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3916
            echo "You have already accepted the terms of the $LicenseType license."
3917
            acceptance=yes
3918
        else
3919
            echo "You are licensed to use this software under the terms of"
3920
            echo "the $TheLicense"
3921
            echo
3922
            echo "Type '?' to read the Preview License."
3923
            echo "Type 'yes' to accept this license offer."
3924
            echo "Type 'no' to decline this license offer."
3925
            echo
3926
            if echo '\c' | grep '\c' >/dev/null; then
3927
                echo -n "Do you accept the terms of the license? "
3928
            else
3929
                echo "Do you accept the terms of the license? \c"
3930
            fi
3931
            read acceptance
3932
        fi
3933
        echo
3934
        if [ "$acceptance" = "yes" ]; then
3935
            break
3936
        elif [ "$acceptance" = "no" ] ;then
3937
            echo "You are not licensed to use this software."
3938
            echo
3939
            exit 0
3940
        elif [ "$acceptance" = "?" ]; then
3941
            more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3942
        fi
3943
    done
3944
elif [ "$Edition" != "OpenSource" ]; then
3945
    if [ -n "$ExpiryDate" ]; then
3946
        ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3947
        [ -z "$ExpiryDate" ] && ExpiryDate="0"
3948
        Today=`date +%Y%m%d`
3949
        if [ "$Today" -gt "$ExpiryDate" ]; then
3950
            case "$LicenseType" in
3951
            Commercial|Academic|Educational)
3952
                if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
3953
                    echo
3954
                    echo "NOTICE  NOTICE  NOTICE  NOTICE"
3955
                    echo
3956
                    echo "  Your support and upgrade period has expired."
3957
                    echo
3958
                    echo "  You are no longer licensed to use this version of Qt."
3959
                    echo "  Please contact qt-info@nokia.com to renew your support"
3960
                    echo "  and upgrades for this license."
3961
                    echo
3962
                    echo "NOTICE  NOTICE  NOTICE  NOTICE"
3963
                    echo
3964
                    exit 1
3965
                else
3966
                    echo
3967
                    echo "WARNING  WARNING  WARNING  WARNING"
3968
                    echo
3969
                    echo "  Your support and upgrade period has expired."
3970
                    echo
3971
                    echo "  You may continue to use your last licensed release"
3972
                    echo "  of Qt under the terms of your existing license"
3973
                    echo "  agreement. But you are not entitled to technical"
3974
                    echo "  support, nor are you entitled to use any more recent"
3975
                    echo "  Qt releases."
3976
                    echo
3977
                    echo "  Please contact qt-info@nokia.com to renew your"
3978
                    echo "  support and upgrades for this license."
3979
                    echo
3980
                    echo "WARNING  WARNING  WARNING  WARNING"
3981
                    echo
3982
                    sleep 3
3983
                fi
3984
                ;;
3985
            Evaluation|*)
3986
                echo
3987
                echo "NOTICE  NOTICE  NOTICE  NOTICE"
3988
                echo
3989
                echo "  Your Evaluation license has expired."
3990
                echo
3991
                echo "  You are no longer licensed to use this software. Please"
3992
                echo "  contact qt-info@nokia.com to purchase license, or install"
3993
                echo "  the Qt Open Source Edition if you intend to develop free"
3994
                echo "  software."
3995
                echo
3996
                echo "NOTICE  NOTICE  NOTICE  NOTICE"
3997
                echo
3998
                exit 1
3999
                ;;
4000
            esac
4001
        fi
4002
    fi
4003
    TheLicense=`head -n 1 "$outpath/LICENSE"`
4004
    while true; do
4005
        if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
4006
	    echo "You have already accepted the terms of the $TheLicense."
4007
            acceptance=yes
4008
        else
4009
            echo "You are licensed to use this software under the terms of"
4010
            echo "the $TheLicense."
4011
            echo
4012
            echo "Type '?' to view the $TheLicense."
4013
            echo "Type 'yes' to accept this license offer."
4014
            echo "Type 'no' to decline this license offer."
4015
            echo
4016
            if echo '\c' | grep '\c' >/dev/null; then
4017
                echo -n "Do you accept the terms of the $TheLicense? "
4018
            else
4019
                echo "Do you accept the terms of the $TheLicense? \c"
4020
            fi
4021
            read acceptance
4022
        fi
4023
        echo
4024
        if [ "$acceptance" = "yes" ]; then
4025
            break
4026
        elif [ "$acceptance" = "no" ]; then
4027
            echo "You are not licensed to use this software."
4028
            echo
4029
            exit 1
4030
        else [ "$acceptance" = "?" ]
4031
            more "$outpath/LICENSE"
4032
        fi
4033
    done
4034
fi
4035
4036
# this should be moved somewhere else
4037
case "$PLATFORM" in
4038
aix-*)
4039
    AIX_VERSION=`uname -v`
4040
    if [ "$AIX_VERSION" -lt "5" ]; then
4041
	QMakeVar add QMAKE_LIBS_X11 -lbind
4042
    fi
4043
    ;;
4044
*)
4045
    ;;
4046
esac
4047
4048
#-------------------------------------------------------------------------------
4049
# generate qconfig.cpp
4050
#-------------------------------------------------------------------------------
4051
[ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
4052
4053
LICENSE_USER_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_lcnsuser=$Licensee"`
4054
LICENSE_PRODUCTS_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_lcnsprod=$Edition"`
4055
PREFIX_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_prfxpath=$QT_INSTALL_PREFIX"`
4056
DOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_INSTALL_DOCS"`
4057
HEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_INSTALL_HEADERS"`
4058
LIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_INSTALL_LIBS"`
4059
BINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_INSTALL_BINS"`
4060
PLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_INSTALL_PLUGINS"`
4061
DATA_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_datapath=$QT_INSTALL_DATA"`
4062
TRANSLATIONS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_trnspath=$QT_INSTALL_TRANSLATIONS"`
4063
SETTINGS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_stngpath=$QT_INSTALL_SETTINGS"`
4064
EXAMPLES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_xmplpath=$QT_INSTALL_EXAMPLES"`
4065
DEMOS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_demopath=$QT_INSTALL_DEMOS"`
4066
4067
cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
4068
/* License Info */
4069
static const char qt_configure_licensee_str          [256 + 12] = "$LICENSE_USER_STR";
4070
static const char qt_configure_licensed_products_str [256 + 12] = "$LICENSE_PRODUCTS_STR";
4071
EOF
4072
4073
if [ ! -z "$QT_HOST_PREFIX" ]; then
4074
    HOSTPREFIX_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_prfxpath=$QT_HOST_PREFIX"`
4075
    HOSTDOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_HOST_PREFIX/doc"`
4076
    HOSTHEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_HOST_PREFIX/include"`
4077
    HOSTLIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_HOST_PREFIX/lib"`
4078
    HOSTBINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_HOST_PREFIX/bin"`
4079
    HOSTPLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_HOST_PREFIX/plugins"`
4080
    HOSTDATA_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_datapath=$QT_HOST_PREFIX"`
4081
    HOSTTRANSLATIONS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_trnspath=$QT_HOST_PREFIX/translations"`
4082
    HOSTSETTINGS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_stngpath=$QT_INSTALL_SETTINGS"`
4083
    HOSTEXAMPLES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_xmplpath=$QT_INSTALL_EXAMPLES"`
4084
    HOSTDEMOS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_demopath=$QT_INSTALL_DEMOS"`
4085
4086
    cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
4087
4088
#if defined(QT_BOOTSTRAPPED) || defined(QT_BUILD_QMAKE)
4089
/* Installation Info */
4090
static const char qt_configure_prefix_path_str       [256 + 12] = "$HOSTPREFIX_PATH_STR";
4091
static const char qt_configure_documentation_path_str[256 + 12] = "$HOSTDOCUMENTATION_PATH_STR";
4092
static const char qt_configure_headers_path_str      [256 + 12] = "$HOSTHEADERS_PATH_STR";
4093
static const char qt_configure_libraries_path_str    [256 + 12] = "$HOSTLIBRARIES_PATH_STR";
4094
static const char qt_configure_binaries_path_str     [256 + 12] = "$HOSTBINARIES_PATH_STR";
4095
static const char qt_configure_plugins_path_str      [256 + 12] = "$HOSTPLUGINS_PATH_STR";
4096
static const char qt_configure_data_path_str         [256 + 12] = "$HOSTDATA_PATH_STR";
4097
static const char qt_configure_translations_path_str [256 + 12] = "$HOSTTRANSLATIONS_PATH_STR";
4098
static const char qt_configure_settings_path_str     [256 + 12] = "$HOSTSETTINGS_PATH_STR";
4099
static const char qt_configure_examples_path_str     [256 + 12] = "$HOSTEXAMPLES_PATH_STR";
4100
static const char qt_configure_demos_path_str        [256 + 12] = "$HOSTDEMOS_PATH_STR";
4101
#else // QT_BOOTSTRAPPED
4102
EOF
4103
fi
4104
4105
cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
4106
/* Installation Info */
4107
static const char qt_configure_prefix_path_str       [256 + 12] = "$PREFIX_PATH_STR";
4108
static const char qt_configure_documentation_path_str[256 + 12] = "$DOCUMENTATION_PATH_STR";
4109
static const char qt_configure_headers_path_str      [256 + 12] = "$HEADERS_PATH_STR";
4110
static const char qt_configure_libraries_path_str    [256 + 12] = "$LIBRARIES_PATH_STR";
4111
static const char qt_configure_binaries_path_str     [256 + 12] = "$BINARIES_PATH_STR";
4112
static const char qt_configure_plugins_path_str      [256 + 12] = "$PLUGINS_PATH_STR";
4113
static const char qt_configure_data_path_str         [256 + 12] = "$DATA_PATH_STR";
4114
static const char qt_configure_translations_path_str [256 + 12] = "$TRANSLATIONS_PATH_STR";
4115
static const char qt_configure_settings_path_str     [256 + 12] = "$SETTINGS_PATH_STR";
4116
static const char qt_configure_examples_path_str     [256 + 12] = "$EXAMPLES_PATH_STR";
4117
static const char qt_configure_demos_path_str        [256 + 12] = "$DEMOS_PATH_STR";
4118
EOF
4119
4120
if [ ! -z "$QT_HOST_PREFIX" ]; then
4121
    cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
4122
#endif // QT_BOOTSTRAPPED
4123
4124
EOF
4125
fi
4126
4127
cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
4128
/* strlen( "qt_lcnsxxxx" ) == 12 */
4129
#define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
4130
#define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
4131
#define QT_CONFIGURE_PREFIX_PATH qt_configure_prefix_path_str + 12;
4132
#define QT_CONFIGURE_DOCUMENTATION_PATH qt_configure_documentation_path_str + 12;
4133
#define QT_CONFIGURE_HEADERS_PATH qt_configure_headers_path_str + 12;
4134
#define QT_CONFIGURE_LIBRARIES_PATH qt_configure_libraries_path_str + 12;
4135
#define QT_CONFIGURE_BINARIES_PATH qt_configure_binaries_path_str + 12;
4136
#define QT_CONFIGURE_PLUGINS_PATH qt_configure_plugins_path_str + 12;
4137
#define QT_CONFIGURE_DATA_PATH qt_configure_data_path_str + 12;
4138
#define QT_CONFIGURE_TRANSLATIONS_PATH qt_configure_translations_path_str + 12;
4139
#define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
4140
#define QT_CONFIGURE_EXAMPLES_PATH qt_configure_examples_path_str + 12;
4141
#define QT_CONFIGURE_DEMOS_PATH qt_configure_demos_path_str + 12;
4142
EOF
4143
4144
# avoid unecessary rebuilds by copying only if qconfig.cpp has changed
4145
if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
4146
    rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
4147
else
4148
    [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
4149
    mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
4150
    chmod -w "$outpath/src/corelib/global/qconfig.cpp"
4151
fi
4152
4153
# -----------------------------------------------------------------------------
4154
# build qmake
4155
# -----------------------------------------------------------------------------
4156
4157
# symlink includes
4158
if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
4159
    SYNCQT_OPTS=
4160
    [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
4161
    if [ "$OPT_SHADOW" = "yes" ]; then
4162
        "$outpath/bin/syncqt" $SYNCQT_OPTS
4163
    elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ]; then
4164
        QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS
4165
    fi
4166
fi
4167
4168
# $1: variable name
4169
# $2: optional transformation
4170
# relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
4171
# is where the resulting variable is written to
4172
setBootstrapVariable()
4173
{
4174
    variableRegExp="^$1[^_A-Z0-9]"
4175
    getQMakeConf | grep "$variableRegExp" | ( [ -n "$2" ] && sed "$2" ; [ -z "$2" ] && cat ) | $AWK '
4176
{
4177
    varLength = index($0, "=") - 1
4178
    valStart = varLength + 2
4179
    if (substr($0, varLength, 1) == "+") {
4180
        varLength = varLength - 1
4181
        valStart = valStart + 1
4182
    }
4183
    var = substr($0, 0, varLength)
4184
    gsub("[ \t]+", "", var)
4185
    val = substr($0, valStart)
4186
    printf "%s_%s = %s\n", var, NR, val
4187
}
4188
END {
4189
    if (length(var) > 0) {
4190
        printf "%s =", var
4191
        for (i = 1; i <= NR; ++i)
4192
            printf " $(%s_%s)", var, i
4193
        printf "\n"
4194
    }
4195
}' >> "$mkfile"
4196
}
4197
4198
# build qmake
4199
if true; then ###[ '!' -f "$outpath/bin/qmake" ];
4200
    echo "Creating qmake. Please wait..."
4201
4202
    OLD_QCONFIG_H=
4203
    QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
4204
    QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
4205
    if [ -f "$QCONFIG_H" ]; then
4206
         OLD_QCONFIG_H=$QCONFIG_H
4207
         mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
4208
    fi
4209
4210
    # create temporary qconfig.h for compiling qmake, if it doesn't exist
4211
    # when building qmake, we use #defines for the install paths,
4212
    # however they are real functions in the library
4213
    if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
4214
        mkdir -p "$outpath/src/corelib/global"
4215
        [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
4216
        echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
4217
    fi
4218
4219
    mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
4220
    for conf in "$outpath/include/QtCore/qconfig.h" "$outpath/include/Qt/qconfig.h"; do
4221
        if [ '!' -f "$conf" ]; then
4222
            ln -s "$QCONFIG_H" "$conf"
4223
        fi
4224
    done
4225
4226
    #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
4227
    rm -f mkspecs/default
4228
    ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
4229
    # fix makefiles
4230
    for mkfile in GNUmakefile Makefile; do
4231
        EXTRA_LFLAGS=
4232
        EXTRA_CFLAGS=
4233
        in_mkfile="${mkfile}.in"
4234
        if [ "$mkfile" = "Makefile" ]; then
4235
#           if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
4236
#               (cd qmake && qmake) >/dev/null 2>&1 && continue
4237
#           fi
4238
            in_mkfile="${mkfile}.unix"
4239
        fi
4240
        in_mkfile="$relpath/qmake/$in_mkfile"
4241
        mkfile="$outpath/qmake/$mkfile"
4242
        if [ -f "$mkfile" ]; then
4243
            [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
4244
            rm -f "$mkfile"
4245
        fi
4246
        [ -f "$in_mkfile" ] || continue
4247
4248
        echo "########################################################################" > "$mkfile"
4249
        echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
4250
        echo "########################################################################" >> "$mkfile"
4251
        EXTRA_OBJS=
4252
        EXTRA_SRCS=
4253
        EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
4254
        EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
4255
        EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
4256
4257
        if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
4258
	    EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
4259
        fi
4260
4261
	[ -n "$CC" ] && echo "CC = $CC" >> "$mkfile"
4262
	[ -n "$CXX" ] && echo "CXX = $CXX" >> "$mkfile"
4263
        if [ "$CFG_SILENT" = "yes" ]; then
4264
            [ -z "$CC" ] && setBootstrapVariable QMAKE_CC 's,QMAKE_CC.*=,CC=\@,'
4265
            [ -z "$CXX" ] && setBootstrapVariable QMAKE_CXX 's,QMAKE_CXX.*=,CXX=\@,'
4266
        else
4267
            [ -z "$CC" ] && setBootstrapVariable QMAKE_CC 's,QMAKE_CC,CC,'
4268
            [ -z "$CXX" ] && setBootstrapVariable QMAKE_CXX 's,QMAKE_CXX,CXX,'
4269
        fi
4270
        setBootstrapVariable QMAKE_CFLAGS
4271
        setBootstrapVariable QMAKE_CXXFLAGS 's,\$\$QMAKE_CFLAGS,\$(QMAKE_CFLAGS),'
4272
        setBootstrapVariable QMAKE_LFLAGS
4273
4274
        if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
4275
            EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
4276
            EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
4277
        fi
4278
        if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
4279
            setBootstrapVariable QMAKE_CFLAGS_RELEASE
4280
            setBootstrapVariable QMAKE_CXXFLAGS_RELEASE 's,\$\$QMAKE_CFLAGS_RELEASE,\$(QMAKE_CFLAGS_RELEASE),'
4281
            EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
4282
            EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
4283
        elif [ "$CFG_DEBUG" = "yes" ]; then
4284
            setBootstrapVariable QMAKE_CFLAGS_DEBUG
4285
            setBootstrapVariable QMAKE_CXXFLAGS_DEBUG 's,\$\$QMAKE_CFLAGS_DEBUG,\$(QMAKE_CFLAGS_DEBUG),'
4286
            EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
4287
            EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
4288
        fi
4289
4290
	if [ '!' -z "$RPATH_FLAGS" ] && [ '!' -z "`getQMakeConf \"$QMAKESPEC\" | grep QMAKE_RPATH | awk '{print $3;}'`" ]; then
4291
  	    setBootstrapVariable QMAKE_RPATH 's,\$\$LITERAL_WHITESPACE, ,'
4292
	    for rpath in $RPATH_FLAGS; do
4293
		EXTRA_LFLAGS="\$(QMAKE_RPATH)\"$rpath\" $EXTRA_LFLAGS"
4294
            done
4295
        fi
4296
        if [ "$PLATFORM_MAC" = "yes" ]; then
4297
            echo "export MACOSX_DEPLOYMENT_TARGET = 10.4" >> "$mkfile"
4298
            echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
4299
            echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
4300
            EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
4301
            EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
4302
            EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
4303
            EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
4304
            EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
4305
	    if echo "$CFG_MAC_ARCHS" | grep x86 > /dev/null 2>&1; then # matches both x86 and x86_64
4306
		X86_CFLAGS="-arch i386"
4307
		X86_LFLAGS="-arch i386"
4308
		EXTRA_CFLAGS="$X86_CFLAGS $EXTRA_CFLAGS"
4309
		EXTRA_CXXFLAGS="$X86_CFLAGS $EXTRA_CXXFLAGS"
4310
                EXTRA_LFLAGS="$EXTRA_LFLAGS $X86_LFLAGS"
4311
            fi
4312
	    if echo "$CFG_MAC_ARCHS" | grep ppc > /dev/null 2>&1; then # matches both ppc and ppc64
4313
		PPC_CFLAGS="-arch ppc"
4314
		PPC_LFLAGS="-arch ppc"
4315
		EXTRA_CFLAGS="$PPC_CFLAGS $EXTRA_CFLAGS"
4316
		EXTRA_CXXFLAGS="$PPC_CFLAGS $EXTRA_CXXFLAGS"
4317
                EXTRA_LFLAGS="$EXTRA_LFLAGS $PPC_LFLAGS"
4318
            fi
4319
	    if [ '!' -z "$CFG_SDK" ]; then
4320
		echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
4321
		echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
4322
		EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
4323
		EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
4324
		EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
4325
            fi
4326
        fi
4327
        [ "$CFG_EMBEDDED" != "no" ] && EXTRA_CFLAGS="$EXTRA_CFLAGS -DQWS"
4328
        if [ '!' -z "$D_FLAGS" ]; then
4329
            for DEF in $D_FLAGS; do
4330
                EXTRA_CFLAGS="$EXTRA_CFLAGS \"-D${DEF}\""
4331
            done
4332
        fi
4333
        QMAKE_BIN_DIR="$QT_INSTALL_BINS"
4334
        [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
4335
        QMAKE_DATA_DIR="$QT_INSTALL_DATA"
4336
        [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
4337
        echo >>"$mkfile"
4338
	adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
4339
	adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
4340
	adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
4341
        sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
4342
            -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
4343
            -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
4344
            -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
4345
            -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
4346
            -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
4347
	    -e "s,@QMAKESPEC@,$adjqmakespec,g" "$in_mkfile" >>"$mkfile"
4348
4349
        if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
4350
            (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
4351
	    sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
4352
	    sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
4353
	    rm "$mkfile.tmp"
4354
        fi
4355
    done
4356
4357
    QMAKE_BUILD_ERROR=no
4358
    (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
4359
    [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
4360
    [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
4361
    [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
4362
fi # Build qmake
4363
4364
#-------------------------------------------------------------------------------
4365
# tests that need qmake
4366
#-------------------------------------------------------------------------------
4367
4368
# detect availability of float math.h functions
4369
if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/floatmath "floatmath" $L_FLAGS $I_FLAGS $l_FLAGS; then
4370
    CFG_USE_FLOATMATH=yes
4371
else
4372
    CFG_USE_FLOATMATH=no
4373
fi
4374
4375
# detect mmx support
4376
if [ "${CFG_MMX}" = "auto" ]; then
4377
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mmx "mmx" $L_FLAGS $I_FLAGS $l_FLAGS "-mmmx"; then
4378
	CFG_MMX=yes
4379
    else
4380
	CFG_MMX=no
4381
    fi
4382
fi
4383
4384
# detect 3dnow support
4385
if [ "${CFG_3DNOW}" = "auto" ]; then
4386
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/3dnow "3dnow" $L_FLAGS $I_FLAGS $l_FLAGS "-m3dnow"; then
4387
	CFG_3DNOW=yes
4388
    else
4389
	CFG_3DNOW=no
4390
    fi
4391
fi
4392
4393
# detect sse support
4394
if [ "${CFG_SSE}" = "auto" ]; then
4395
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse "sse" $L_FLAGS $I_FLAGS $l_FLAGS "-msse"; then
4396
	CFG_SSE=yes
4397
    else
4398
	CFG_SSE=no
4399
    fi
4400
fi
4401
4402
# detect sse2 support
4403
if [ "${CFG_SSE2}" = "auto" ]; then
4404
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse2 "sse2" $L_FLAGS $I_FLAGS $l_FLAGS "-msse2"; then
4405
       CFG_SSE2=yes
4406
    else
4407
       CFG_SSE2=no
4408
    fi
4409
fi
4410
4411
# check iWMMXt support
4412
if [ "$CFG_IWMMXT" = "yes" ]; then
4413
    "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iwmmxt "iwmmxt" $L_FLAGS $I_FLAGS $l_FLAGS "-mcpu=iwmmxt"
4414
    if [ $? != "0" ]; then
4415
        echo "The iWMMXt functionality test failed!"
4416
	echo " Please make sure your compiler supports iWMMXt intrinsics!"
4417
	exit 1
4418
    fi
4419
fi
4420
4421
# detect zlib
4422
if [ "$CFG_ZLIB" = "no" ]; then
4423
    # Note: Qt no longer support builds without zlib
4424
    # So we force a "no" to be "auto" here.
4425
    # If you REALLY really need no zlib support, you can still disable
4426
    # it by doing the following:
4427
    #   add "no-zlib" to mkspecs/qconfig.pri
4428
    #   #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4429
    #
4430
    # There's no guarantee that Qt will build under those conditions
4431
4432
    CFG_ZLIB=auto
4433
    ZLIB_FORCED=yes
4434
fi
4435
if [ "$CFG_ZLIB" = "auto" ]; then
4436
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/zlib "zlib" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4437
       CFG_ZLIB=system
4438
    else
4439
       CFG_ZLIB=yes
4440
    fi
4441
fi
4442
4443
# detect how jpeg should be built
4444
if [ "$CFG_JPEG" = "auto" ]; then
4445
    if [ "$CFG_SHARED" = "yes" ]; then
4446
        CFG_JPEG=plugin
4447
    else
4448
        CFG_JPEG=yes
4449
    fi
4450
fi
4451
# detect jpeg
4452
if [ "$CFG_LIBJPEG" = "auto" ]; then
4453
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libjpeg "libjpeg" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4454
       CFG_LIBJPEG=system
4455
    else
4456
       CFG_LIBJPEG=qt
4457
    fi
4458
fi
4459
4460
# detect how gif should be built
4461
if [ "$CFG_GIF" = "auto" ]; then
4462
    if [ "$CFG_SHARED" = "yes" ]; then
4463
        CFG_GIF=plugin
4464
    else
4465
        CFG_GIF=yes
4466
    fi
4467
fi
4468
4469
# detect how tiff should be built
4470
if [ "$CFG_TIFF" = "auto" ]; then
4471
    if [ "$CFG_SHARED" = "yes" ]; then
4472
        CFG_TIFF=plugin
4473
    else
4474
        CFG_TIFF=yes
4475
    fi
4476
fi
4477
4478
# detect tiff
4479
if [ "$CFG_LIBTIFF" = "auto" ]; then
4480
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libtiff "libtiff" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4481
        CFG_LIBTIFF=system
4482
    else
4483
        CFG_LIBTIFF=qt
4484
    fi
4485
fi
4486
4487
# detect how mng should be built
4488
if [ "$CFG_MNG" = "auto" ]; then
4489
    if [ "$CFG_SHARED" = "yes" ]; then
4490
        CFG_MNG=plugin
4491
    else
4492
        CFG_MNG=yes
4493
    fi
4494
fi
4495
# detect mng
4496
if [ "$CFG_LIBMNG" = "auto" ]; then
4497
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libmng "libmng" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4498
       CFG_LIBMNG=system
4499
    else
4500
       CFG_LIBMNG=qt
4501
    fi
4502
fi
4503
4504
# detect png
4505
if [ "$CFG_LIBPNG" = "auto" ]; then
4506
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libpng "libpng" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4507
       CFG_LIBPNG=system
4508
    else
4509
       CFG_LIBPNG=qt
4510
    fi
4511
fi
4512
4513
# detect accessibility
4514
if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4515
    CFG_ACCESSIBILITY=yes
4516
fi
4517
4518
# auto-detect SQL-modules support
4519
for _SQLDR in $CFG_SQL_AVAILABLE; do
4520
        case $_SQLDR in
4521
        mysql)
4522
            if [ "$CFG_SQL_mysql" != "no" ]; then
4523
		[ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4524
                if [ -x "$CFG_MYSQL_CONFIG" ]; then
4525
                    QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
4526
                    QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
4527
                    QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
4528
		    QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4529
                    QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4530
                fi
4531
                if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4532
                    if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4533
                        echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4534
                        echo " You need MySql 4 or higher."
4535
                        echo " If you believe this message is in error you may use the continue"
4536
                        echo " switch (-continue) to $0 to continue."
4537
                        exit 101
4538
                    else
4539
                        CFG_SQL_mysql="no"
4540
			QT_LFLAGS_MYSQL=""
4541
			QT_LFLAGS_MYSQL_R=""
4542
			QT_CFLAGS_MYSQL=""
4543
                    fi
4544
                else
4545
                    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $L_FLAGS $QT_CFLAGS_MYSQL $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4546
                        QMakeVar add CONFIG use_libmysqlclient_r
4547
                        if [ "$CFG_SQL_mysql" = "auto" ]; then
4548
                            CFG_SQL_mysql=plugin
4549
                        fi
4550
                        QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4551
                    elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $L_FLAGS $QT_CFLAGS_MYSQL $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4552
                        if [ "$CFG_SQL_mysql" = "auto" ]; then
4553
                            CFG_SQL_mysql=plugin
4554
                        fi
4555
                    else
4556
                        if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4557
                            echo "MySQL support cannot be enabled due to functionality tests!"
4558
                            echo " Turn on verbose messaging (-v) to $0 to see the final report."
4559
                            echo " If you believe this message is in error you may use the continue"
4560
                            echo " switch (-continue) to $0 to continue."
4561
                            exit 101
4562
                        else
4563
                            CFG_SQL_mysql=no
4564
			    QT_LFLAGS_MYSQL=""
4565
			    QT_LFLAGS_MYSQL_R=""
4566
			    QT_CFLAGS_MYSQL=""
4567
                        fi
4568
                    fi
4569
                fi
4570
            fi
4571
            ;;
4572
        psql)
4573
            if [ "$CFG_SQL_psql" != "no" ]; then
4574
                if "$WHICH" pg_config >/dev/null 2>&1; then
4575
                    QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
4576
                    QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
4577
                fi
4578
                [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4579
                [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4580
                if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $L_FLAGS $QT_CFLAGS_PSQL $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4581
                    if [ "$CFG_SQL_psql" = "auto" ]; then
4582
                        CFG_SQL_psql=plugin
4583
                    fi
4584
                else
4585
                    if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4586
                        echo "PostgreSQL support cannot be enabled due to functionality tests!"
4587
                        echo " Turn on verbose messaging (-v) to $0 to see the final report."
4588
                        echo " If you believe this message is in error you may use the continue"
4589
                        echo " switch (-continue) to $0 to continue."
4590
                        exit 101
4591
                    else
4592
                        CFG_SQL_psql=no
4593
                        QT_CFLAGS_PSQL=""
4594
                        QT_LFLAGS_PSQL=""
4595
                    fi
4596
                fi
4597
            fi
4598
        ;;
4599
        odbc)
4600
            if [ "$CFG_SQL_odbc" != "no" ]; then
4601
                if [ "$PLATFORM_MAC" != "yes" ] && "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/odbc "ODBC" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4602
                    if [ "$CFG_SQL_odbc" = "auto" ]; then
4603
                        CFG_SQL_odbc=plugin
4604
                    fi
4605
                else
4606
                    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iodbc "iODBC" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4607
                        QT_LFLAGS_ODBC="-liodbc"
4608
                        if [ "$CFG_SQL_odbc" = "auto" ]; then
4609
                            CFG_SQL_odbc=plugin
4610
                        fi
4611
                    else
4612
                        if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4613
                            echo "ODBC support cannot be enabled due to functionality tests!"
4614
                            echo " Turn on verbose messaging (-v) to $0 to see the final report."
4615
                            echo " If you believe this message is in error you may use the continue"
4616
                            echo " switch (-continue) to $0 to continue."
4617
                            exit 101
4618
                        else
4619
                            CFG_SQL_odbc=no
4620
                        fi
4621
                    fi
4622
                fi
4623
            fi
4624
            ;;
4625
        oci)
4626
            if [ "$CFG_SQL_oci" != "no" ]; then
4627
                if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/oci "OCI" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4628
                    if [ "$CFG_SQL_oci" = "auto" ]; then
4629
                        CFG_SQL_oci=plugin
4630
                    fi
4631
                else
4632
                    if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4633
                        echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4634
                        echo " Turn on verbose messaging (-v) to $0 to see the final report."
4635
                        echo " If you believe this message is in error you may use the continue"
4636
                        echo " switch (-continue) to $0 to continue."
4637
                        exit 101
4638
                    else
4639
                        CFG_SQL_oci=no
4640
                    fi
4641
                fi
4642
            fi
4643
            ;;
4644
        tds)
4645
            if [ "$CFG_SQL_tds" != "no" ]; then
4646
                if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/tds "TDS" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4647
                    if [ "$CFG_SQL_tds" = "auto" ]; then
4648
                        CFG_SQL_tds=plugin
4649
                    fi
4650
                else
4651
                    if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4652
                        echo "TDS support cannot be enabled due to functionality tests!"
4653
                        echo " Turn on verbose messaging (-v) to $0 to see the final report."
4654
                        echo " If you believe this message is in error you may use the continue"
4655
                        echo " switch (-continue) to $0 to continue."
4656
                        exit 101
4657
                    else
4658
                        CFG_SQL_tds=no
4659
                    fi
4660
                fi
4661
            fi
4662
            ;;
4663
        db2)
4664
            if [ "$CFG_SQL_db2" != "no" ]; then
4665
                if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/db2 "DB2" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4666
                    if [ "$CFG_SQL_db2" = "auto" ]; then
4667
                        CFG_SQL_db2=plugin
4668
                    fi
4669
                else
4670
                    if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4671
                        echo "ODBC support cannot be enabled due to functionality tests!"
4672
                        echo " Turn on verbose messaging (-v) to $0 to see the final report."
4673
                        echo " If you believe this message is in error you may use the continue"
4674
                        echo " switch (-continue) to $0 to continue."
4675
                        exit 101
4676
                    else
4677
                        CFG_SQL_db2=no
4678
                    fi
4679
                fi
4680
            fi
4681
            ;;
4682
        ibase)
4683
            if [ "$CFG_SQL_ibase" != "no" ]; then
4684
                if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ibase "InterBase" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4685
                    if [ "$CFG_SQL_ibase" = "auto" ]; then
4686
                        CFG_SQL_ibase=plugin
4687
                    fi
4688
                else
4689
                    if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4690
                        echo "InterBase support cannot be enabled due to functionality tests!"
4691
                        echo " Turn on verbose messaging (-v) to $0 to see the final report."
4692
                        echo " If you believe this message is in error you may use the continue"
4693
                        echo " switch (-continue) to $0 to continue."
4694
                        exit 101
4695
                    else
4696
                        CFG_SQL_ibase=no
4697
                    fi
4698
                fi
4699
            fi
4700
            ;;
4701
        sqlite2)
4702
            if [ "$CFG_SQL_sqlite2" != "no" ]; then
4703
                if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sqlite2 "SQLite2" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4704
                    if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4705
                        CFG_SQL_sqlite2=plugin
4706
                    fi
4707
                else
4708
                    if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4709
                        echo "SQLite2 support cannot be enabled due to functionality tests!"
4710
                        echo " Turn on verbose messaging (-v) to $0 to see the final report."
4711
                        echo " If you believe this message is in error you may use the continue"
4712
                        echo " switch (-continue) to $0 to continue."
4713
                        exit 101
4714
                    else
4715
                        CFG_SQL_sqlite2=no
4716
                    fi
4717
                fi
4718
            fi
4719
            ;;
4720
        sqlite)
4721
            if [ "$CFG_SQL_sqlite" != "no" ]; then
4722
                SQLITE_AUTODETECT_FAILED="no"
4723
                if [ "$CFG_SQLITE" = "system" ]; then
4724
                    if [ -n "$PKG_CONFIG" ]; then
4725
                        QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4726
                        QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4727
                    fi
4728
                    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $L_FLAGS $QT_CFLAGS_SQLITE $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4729
                        if [ "$CFG_SQL_sqlite" = "auto" ]; then
4730
                            CFG_SQL_sqlite=plugin
4731
                        fi
4732
                        QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4733
                    else
4734
                        SQLITE_AUTODETECT_FAILED="yes"
4735
                        CFG_SQL_sqlite=no
4736
                    fi
4737
                elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4738
                    if [ "$CFG_SQL_sqlite" = "auto" ]; then
4739
                            CFG_SQL_sqlite=plugin
4740
                    fi
4741
                else
4742
                    SQLITE_AUTODETECT_FAILED="yes"
4743
                    CFG_SQL_sqlite=no
4744
                fi
4745
4746
                if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4747
                    echo "SQLite support cannot be enabled due to functionality tests!"
4748
                    echo " Turn on verbose messaging (-v) to $0 to see the final report."
4749
                    echo " If you believe this message is in error you may use the continue"
4750
                    echo " switch (-continue) to $0 to continue."
4751
                    exit 101
4752
                fi
4753
            fi
4754
            ;;
4755
        *)
4756
            if [ "$OPT_VERBOSE" = "yes" ]; then
4757
                echo "unknown SQL driver: $_SQLDR"
4758
            fi
4759
            ;;
4760
        esac
4761
done
4762
4763
# auto-detect NIS support
4764
if [ "$CFG_NIS" != "no" ]; then
4765
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/nis "NIS" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4766
        CFG_NIS=yes
4767
    else
4768
        if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4769
            echo "NIS support cannot be enabled due to functionality tests!"
4770
            echo " Turn on verbose messaging (-v) to $0 to see the final report."
4771
            echo " If you believe this message is in error you may use the continue"
4772
            echo " switch (-continue) to $0 to continue."
4773
            exit 101
4774
        else
4775
            CFG_NIS=no
4776
        fi
4777
    fi
4778
fi
4779
4780
# auto-detect CUPS support
4781
if [ "$CFG_CUPS" != "no" ]; then
4782
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/cups "Cups" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4783
        CFG_CUPS=yes
4784
    else
4785
        if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4786
            echo "Cups support cannot be enabled due to functionality tests!"
4787
            echo " Turn on verbose messaging (-v) to $0 to see the final report."
4788
            echo " If you believe this message is in error you may use the continue"
4789
            echo " switch (-continue) to $0 to continue."
4790
            exit 101
4791
        else
4792
            CFG_CUPS=no
4793
        fi
4794
    fi
4795
fi
4796
4797
# auto-detect iconv(3) support
4798
if [ "$CFG_ICONV" != "no" ]; then
4799
    if [ "$PLATFORM_QWS" = "yes" ]; then
4800
	CFG_ICONV=no
4801
    elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/iconv" "POSIX iconv" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4802
        CFG_ICONV=yes
4803
    elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/gnu-libiconv" "GNU libiconv" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4804
        CFG_ICONV=gnu
4805
    else
4806
        if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4807
            echo "Iconv support cannot be enabled due to functionality tests!"
4808
            echo " Turn on verbose messaging (-v) to $0 to see the final report."
4809
            echo " If you believe this message is in error you may use the continue"
4810
            echo " switch (-continue) to $0 to continue."
4811
            exit 101
4812
        else
4813
            CFG_ICONV=no
4814
        fi
4815
    fi
4816
fi
4817
4818
# auto-detect libdbus-1 support
4819
if [ "$CFG_DBUS" != "no" ]; then
4820
    if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4821
        QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4822
        QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4823
    fi
4824
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/dbus "D-Bus" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_DBUS $QT_LIBS_DBUS $MAC_CONFIG_TEST_COMMANDLINE; then
4825
        [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4826
        QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4827
        QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4828
    else
4829
        if [ "$CFG_DBUS" = "auto" ]; then
4830
            CFG_DBUS=no
4831
        elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4832
            # CFG_DBUS is "yes" or "linked" here
4833
4834
            echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4835
            echo " Turn on verbose messaging (-v) to $0 to see the final report."
4836
            echo " If you believe this message is in error you may use the continue"
4837
            echo " switch (-continue) to $0 to continue."
4838
            exit 101
4839
        fi
4840
    fi
4841
fi
4842
4843
# Generate a CRC of the namespace for using in constants for the Carbon port.
4844
# This should mean that you really *can* load two Qt's and have our custom
4845
# Carbon events work.
4846
if [ "$PLATFORM_MAC" = "yes" -a ! -z "$QT_NAMESPACE" ]; then
4847
    QT_NAMESPACE_MAC_CRC=`"$mactests/crc.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/mac/crc $QT_NAMESPACE $L_FLAGS $I_FLAGS $l_FLAGS`
4848
fi
4849
4850
if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ]; then
4851
4852
    # detect EGL support
4853
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/egl" "EGL (EGL/egl.h)" $L_FLAGS $I_FLAGS $l_FLAGS; then
4854
        # EGL specified by QMAKE_*_EGL, included with <EGL/egl.h>
4855
        CFG_EGL=yes
4856
        CFG_EGL_GLES_INCLUDES=no
4857
    elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/egl4gles1" "EGL (GLES/egl.h)" $L_FLAGS $I_FLAGS $l_FLAGS; then
4858
        # EGL specified by QMAKE_*_EGL, included with <GLES/egl.h>
4859
        CFG_EGL=yes
4860
        CFG_EGL_GLES_INCLUDES=yes
4861
    fi
4862
    if ( [ "$CFG_OPENGL" = "es1" ] || [ "$CFG_OPENGL" = "es1cl" ] || [ "$CFG_OPENGL" = "es2" ] ) && [ "$CFG_EGL" != "yes" ]; then
4863
        echo "The EGL functionality test failed!"
4864
        echo " EGL is required for OpenGL ES 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"
4867
        echo " ${XQMAKESPEC}."
4868
        exit 1
4869
    fi
4870
4871
4872
    # auto-detect Glib support
4873
    if [ "$CFG_GLIB" != "no" ]; then
4874
        if [ -n "$PKG_CONFIG" ]; then
4875
            QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4876
            QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4877
        fi
4878
        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/glib "Glib" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_GLIB $QT_LIBS_GLIB $X11TESTS_FLAGS ; then
4879
            CFG_GLIB=yes
4880
            QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4881
            QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4882
        else
4883
            if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4884
                echo "Glib support cannot be enabled due to functionality tests!"
4885
                echo " Turn on verbose messaging (-v) to $0 to see the final report."
4886
                echo " If you believe this message is in error you may use the continue"
4887
                echo " switch (-continue) to $0 to continue."
4888
                exit 101
4889
            else
4890
                CFG_GLIB=no
4891
            fi
4892
        fi
4893
    fi
4894
4895
    if [ "$CFG_PHONON" != "no" ]; then
4896
        if [ "$CFG_PHONON_BACKEND" != "no" ]; then
4897
            if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4898
                if [ -n "$PKG_CONFIG" ]; then
4899
                    QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4900
                    QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4901
                fi
4902
                if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/gstreamer "GStreamer" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER $X11TESTS_FLAGS; then
4903
                    CFG_GSTREAMER=yes
4904
                    QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4905
                    QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4906
                else
4907
                    if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4908
                        echo "Gstreamer support cannot be enabled due to functionality tests!"
4909
                        echo " Turn on verbose messaging (-v) to $0 to see the final report."
4910
                        echo " If you believe this message is in error you may use the continue"
4911
                        echo " switch (-continue) to $0 to continue."
4912
                        exit 101
4913
                    else
4914
                        CFG_GSTREAMER=no
4915
                    fi
4916
                fi
4917
            elif [ "$CFG_GLIB" = "no" ]; then
4918
                CFG_GSTREAMER=no
4919
            fi
4920
4921
            if [ "$CFG_GSTREAMER" = "yes" ]; then
4922
                CFG_PHONON=yes
4923
            else
4924
                if [ "$CFG_PHONON" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4925
                    echo "Phonon support cannot be enabled due to functionality tests!"
4926
                    echo " Turn on verbose messaging (-v) to $0 to see the final report."
4927
                    echo " If you believe this message is in error you may use the continue"
4928
                    echo " switch (-continue) to $0 to continue."
4929
                    exit 101
4930
                else
4931
                    CFG_PHONON=no
4932
                fi
4933
            fi
4934
        else
4935
            CFG_PHONON=yes
4936
        fi
4937
    fi
4938
fi # X11/QWS
4939
4940
# x11
4941
if [ "$PLATFORM_X11" = "yes" ]; then
4942
    x11tests="$relpath/config.tests/x11"
4943
    X11TESTS_FLAGS=
4944
4945
    # work around broken X11 headers when using GCC 2.95 or later
4946
    NOTYPE=no
4947
    "$x11tests/notype.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" && NOTYPE=yes
4948
    if [ $NOTYPE = "yes" ]; then
4949
	QMakeVar add QMAKE_CXXFLAGS -fpermissive
4950
        X11TESTS_FLAGS="$X11TESTS_FLAGS -fpermissive"
4951
    fi
4952
4953
    # Check we actually have X11 :-)
4954
    "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xlib "XLib" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
4955
    if [ $? != "0" ]; then
4956
        echo "Basic XLib functionality test failed!"
4957
        echo " You might need to modify the include and library search paths by editing"
4958
        echo " QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in ${XQMAKESPEC}."
4959
        exit 1
4960
    fi
4961
4962
    # auto-detect OpenGL support (es1 = OpenGL ES 1.x Common, es1cl = ES 1.x common lite, es2 = OpenGL ES 2.x)
4963
    if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4964
        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
4965
            CFG_OPENGL=desktop
4966
        elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
4967
            CFG_OPENGL=es2
4968
	elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
4969
            CFG_OPENGL=es1
4970
	elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1cl "OpenGL ES 1.x Lite" $L_FLAGS $I_FLAGS $l_FLAGS; then
4971
            CFG_OPENGL=es1cl
4972
        else
4973
            if [ "$CFG_OPENGL" = "yes" ]; then
4974
                echo "All the OpenGL functionality tests failed!"
4975
                echo " You might need to modify the include and library search paths by editing"
4976
                echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4977
                echo " ${XQMAKESPEC}."
4978
                exit 1
4979
            fi
4980
            CFG_OPENGL=no
4981
        fi
4982
       case "$PLATFORM" in
4983
       hpux*)
4984
           # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4985
           if [ "$CFG_OPENGL" = "desktop" ]; then
4986
               "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
4987
               if [ $? != "0" ]; then
4988
                   QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4989
               fi
4990
           fi
4991
	   ;;
4992
       *)
4993
           ;;
4994
       esac
4995
    elif [ "$CFG_OPENGL" = "es1cl" ]; then
4996
        # OpenGL ES 1.x common lite
4997
	"$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1cl "OpenGL ES 1.x Lite" $L_FLAGS $I_FLAGS $l_FLAGS
4998
        if [ $? != "0" ]; then
4999
	    echo "The OpenGL ES 1.x Common Lite Profile functionality test failed!"
5000
            echo " You might need to modify the include and library search paths by editing"
5001
            echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5002
            echo " ${XQMAKESPEC}."
5003
            exit 1
5004
        fi
5005
    elif [ "$CFG_OPENGL" = "es1" ]; then
5006
        # OpenGL ES 1.x
5007
	"$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS
5008
        if [ $? != "0" ]; then
5009
	    echo "The OpenGL ES 1.x functionality test failed!"
5010
            echo " You might need to modify the include and library search paths by editing"
5011
            echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5012
            echo " ${XQMAKESPEC}."
5013
            exit 1
5014
        fi
5015
    elif [ "$CFG_OPENGL" = "es2" ]; then
5016
        #OpenGL ES 2.x
5017
	"$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS
5018
        if [ $? != "0" ]; then
5019
	    echo "The OpenGL ES 2.0 functionality test failed!"
5020
            echo " You might need to modify the include and library search paths by editing"
5021
            echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5022
            echo " ${XQMAKESPEC}."
5023
            exit 1
5024
        fi
5025
    elif [ "$CFG_OPENGL" = "desktop" ]; then
5026
        # Desktop OpenGL support
5027
        "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
5028
        if [ $? != "0" ]; then
5029
	    echo "The OpenGL functionality test failed!"
5030
            echo " You might need to modify the include and library search paths by editing"
5031
            echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5032
            echo " ${XQMAKESPEC}."
5033
            exit 1
5034
        fi
5035
        case "$PLATFORM" in
5036
        hpux*)
5037
            # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
5038
            "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
5039
            if [ $? != "0" ]; then
5040
                QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
5041
            fi
5042
	    ;;
5043
        *)
5044
            ;;
5045
        esac
5046
    fi
5047
5048
    # if opengl is disabled and the user specified graphicssystem gl, disable it...
5049
    if [ "$CFG_GRAPHICS_SYSTEM" = "opengl" ] && [ "$CFG_OPENGL" = "no" ]; then
5050
	echo "OpenGL Graphics System is disabled due to missing OpenGL support..."
5051
	CFG_GRAPHICS_SYSTEM=default
5052
    fi
5053
5054
    # auto-detect Xcursor support
5055
    if [ "$CFG_XCURSOR" != "no" ]; then
5056
	if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xcursor "Xcursor" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5057
	    if [ "$CFG_XCURSOR" != "runtime" ]; then
5058
		CFG_XCURSOR=yes;
5059
	    fi
5060
	else
5061
	    if [ "$CFG_XCURSOR" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5062
		echo "Xcursor support cannot be enabled due to functionality tests!"
5063
		echo " Turn on verbose messaging (-v) to $0 to see the final report."
5064
		echo " If you believe this message is in error you may use the continue"
5065
		echo " switch (-continue) to $0 to continue."
5066
		exit 101
5067
	    else
5068
		CFG_XCURSOR=no
5069
	    fi
5070
	fi
5071
    fi
5072
5073
    # auto-detect Xfixes support
5074
    if [ "$CFG_XFIXES" != "no" ]; then
5075
	if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xfixes "Xfixes" $L_FLAGS $I_FLAGS $X11TESTS_FLAGS; then
5076
	    if [ "$CFG_XFIXES" != "runtime" ]; then
5077
		CFG_XFIXES=yes;
5078
	    fi
5079
	else
5080
	    if [ "$CFG_XFIXES" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5081
		echo "Xfixes support cannot be enabled due to functionality tests!"
5082
		echo " Turn on verbose messaging (-v) to $0 to see the final report."
5083
		echo " If you believe this message is in error you may use the continue"
5084
		echo " switch (-continue) to $0 to continue."
5085
		exit 101
5086
	    else
5087
		CFG_XFIXES=no
5088
	    fi
5089
	fi
5090
    fi
5091
5092
    # auto-detect Xrandr support (resize and rotate extension)
5093
    if [ "$CFG_XRANDR" != "no" ]; then
5094
	if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xrandr "Xrandr" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5095
            if [ "$CFG_XRANDR" != "runtime" ]; then
5096
	    CFG_XRANDR=yes
5097
            fi
5098
	else
5099
	    if [ "$CFG_XRANDR" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5100
		echo "Xrandr support cannot be enabled due to functionality tests!"
5101
		echo " Turn on verbose messaging (-v) to $0 to see the final report."
5102
		echo " If you believe this message is in error you may use the continue"
5103
		echo " switch (-continue) to $0 to continue."
5104
		exit 101
5105
	    else
5106
		CFG_XRANDR=no
5107
	    fi
5108
	fi
5109
    fi
5110
5111
    # auto-detect Xrender support
5112
    if [ "$CFG_XRENDER" != "no" ]; then
5113
	if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xrender "Xrender" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5114
	    CFG_XRENDER=yes
5115
	else
5116
	    if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5117
		echo "Xrender support cannot be enabled due to functionality tests!"
5118
		echo " Turn on verbose messaging (-v) to $0 to see the final report."
5119
		echo " If you believe this message is in error you may use the continue"
5120
		echo " switch (-continue) to $0 to continue."
5121
		exit 101
5122
	    else
5123
		CFG_XRENDER=no
5124
	    fi
5125
	fi
5126
    fi
5127
5128
    # auto-detect MIT-SHM support
5129
    if [ "$CFG_MITSHM" != "no" ]; then
5130
	if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/mitshm "mitshm" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5131
	    CFG_MITSHM=yes
5132
	else
5133
	    if [ "$CFG_MITSHM" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5134
		echo "MITSHM support cannot be enabled due to functionality tests!"
5135
		echo " Turn on verbose messaging (-v) to $0 to see the final report."
5136
		echo " If you believe this message is in error you may use the continue"
5137
		echo " switch (-continue) to $0 to continue."
5138
		exit 101
5139
	    else
5140
		CFG_MITSHM=no
5141
	    fi
5142
	fi
5143
    fi
5144
5145
    # auto-detect FontConfig support
5146
    if [ "$CFG_FONTCONFIG" != "no" ]; then
5147
    if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
5148
        QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
5149
        QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
5150
    else
5151
        QT_CFLAGS_FONTCONFIG=
5152
        QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
5153
    fi
5154
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/fontconfig "FontConfig" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
5155
	    CFG_FONTCONFIG=yes
5156
        QMakeVar set QMAKE_CFLAGS_X11 "$QT_CFLAGS_FONTCONFIG \$\$QMAKE_CFLAGS_X11"
5157
        QMakeVar set QMAKE_LIBS_X11 "$QT_LIBS_FONTCONFIG \$\$QMAKE_LIBS_X11"
5158
	    CFG_LIBFREETYPE=system
5159
	else
5160
	    if [ "$CFG_FONTCONFIG" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5161
		echo "FontConfig support cannot be enabled due to functionality tests!"
5162
		echo " Turn on verbose messaging (-v) to $0 to see the final report."
5163
		echo " If you believe this message is in error you may use the continue"
5164
		echo " switch (-continue) to $0 to continue."
5165
		exit 101
5166
	    else
5167
		CFG_FONTCONFIG=no
5168
	    fi
5169
	fi
5170
    fi
5171
5172
    # auto-detect Session Management support
5173
    if [ "$CFG_SM" = "auto" ]; then
5174
	if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/sm "Session Management" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5175
	    CFG_SM=yes
5176
	else
5177
	    if [ "$CFG_SM" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5178
		echo "Session Management support cannot be enabled due to functionality tests!"
5179
		echo " Turn on verbose messaging (-v) to $0 to see the final report."
5180
		echo " If you believe this message is in error you may use the continue"
5181
		echo " switch (-continue) to $0 to continue."
5182
		exit 101
5183
	    else
5184
		CFG_SM=no
5185
	    fi
5186
	fi
5187
    fi
5188
5189
    # auto-detect SHAPE support
5190
    if [ "$CFG_XSHAPE" != "no" ]; then
5191
	if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xshape "XShape" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5192
	    CFG_XSHAPE=yes
5193
	else
5194
	    if [ "$CFG_XSHAPE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5195
		echo "XShape support cannot be enabled due to functionality tests!"
5196
		echo " Turn on verbose messaging (-v) to $0 to see the final report."
5197
		echo " If you believe this message is in error you may use the continue"
5198
		echo " switch (-continue) to $0 to continue."
5199
		exit 101
5200
	    else
5201
		CFG_XSHAPE=no
5202
	    fi
5203
	fi
5204
    fi
5205
5206
    # auto-detect XSync support
5207
    if [ "$CFG_XSYNC" != "no" ]; then
5208
	if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xsync "XSync" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5209
	    CFG_XSYNC=yes
5210
	else
5211
	    if [ "$CFG_XSYNC" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5212
		echo "XSync support cannot be enabled due to functionality tests!"
5213
		echo " Turn on verbose messaging (-v) to $0 to see the final report."
5214
		echo " If you believe this message is in error you may use the continue"
5215
		echo " switch (-continue) to $0 to continue."
5216
		exit 101
5217
	    else
5218
		CFG_XSYNC=no
5219
	    fi
5220
	fi
5221
    fi
5222
5223
    # auto-detect Xinerama support
5224
    if [ "$CFG_XINERAMA" != "no" ]; then
5225
	if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xinerama "Xinerama" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5226
	    if [ "$CFG_XINERAMA" != "runtime" ]; then
5227
		CFG_XINERAMA=yes
5228
	    fi
5229
	else
5230
	    if [ "$CFG_XINERAMA" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5231
		echo "Xinerama support cannot be enabled due to functionality tests!"
5232
		echo " Turn on verbose messaging (-v) to $0 to see the final report."
5233
		echo " If you believe this message is in error you may use the continue"
5234
		echo " switch (-continue) to $0 to continue."
5235
		exit 101
5236
	    else
5237
		CFG_XINERAMA=no
5238
	    fi
5239
	fi
5240
    fi
5241
5242
    # auto-detect Xinput support
5243
    if [ "$CFG_XINPUT" != "no" ]; then
5244
        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xinput "XInput" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5245
	    if [ "$CFG_XINPUT" != "runtime" ]; then
5246
		CFG_XINPUT=yes
5247
	    fi
5248
        else
5249
            if [ "$CFG_XINPUT" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5250
                echo "Tablet and Xinput support cannot be enabled due to functionality tests!"
5251
                echo " Turn on verbose messaging (-v) to $0 to see the final report."
5252
                echo " If you believe this message is in error you may use the continue"
5253
                echo " switch (-continue) to $0 to continue."
5254
                exit 101
5255
            else
5256
                CFG_XINPUT=no
5257
            fi
5258
        fi
5259
    fi
5260
5261
    # auto-detect XKB support
5262
    if [ "$CFG_XKB" != "no" ]; then
5263
        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xkb "XKB" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5264
            CFG_XKB=yes
5265
        else
5266
            if [ "$CFG_XKB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5267
                echo "XKB support cannot be enabled due to functionality tests!"
5268
                echo " Turn on verbose messaging (-v) to $0 to see the final report."
5269
                echo " If you believe this message is in error you may use the continue"
5270
                echo " switch (-continue) to $0 to continue."
5271
                exit 101
5272
            else
5273
                CFG_XKB=no
5274
            fi
5275
        fi
5276
    fi
5277
5278
    if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
5279
        if [ -n "$PKG_CONFIG" ]; then
5280
            QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
5281
            QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
5282
        fi
5283
        if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
5284
            CFG_QGTKSTYLE=yes
5285
            QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
5286
            QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
5287
        else
5288
            if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5289
                echo "Gtk theme support cannot be enabled due to functionality tests!"
5290
                echo " Turn on verbose messaging (-v) to $0 to see the final report."
5291
                echo " If you believe this message is in error you may use the continue"
5292
                echo " switch (-continue) to $0 to continue."
5293
                exit 101
5294
            else
5295
                CFG_QGTKSTYLE=no
5296
            fi
5297
        fi
5298
    elif [ "$CFG_GLIB" = "no" ]; then
5299
        CFG_QGTKSTYLE=no
5300
    fi
5301
fi # X11
5302
5303
5304
if [ "$PLATFORM_MAC" = "yes" ]; then
5305
    if [ "$CFG_PHONON" != "no" ]; then
5306
        # Always enable Phonon (unless it was explicitly disabled)
5307
        CFG_PHONON=yes
5308
    fi
5309
fi
5310
5311
# QWS
5312
if [ "$PLATFORM_QWS" = "yes" ]; then
5313
5314
    # auto-detect OpenGL support (es1 = OpenGL ES 1.x Common, es1cl = ES 1.x common lite, es2 = OpenGL ES 2.x)
5315
    if [ "$CFG_OPENGL" = "yes" ]; then
5316
        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
5317
            CFG_OPENGL=es2
5318
	elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
5319
            CFG_OPENGL=es1
5320
	elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1cl "OpenGL ES 1.x Lite" $L_FLAGS $I_FLAGS $l_FLAGS; then
5321
            CFG_OPENGL=es1cl
5322
        else
5323
            echo "All the OpenGL ES functionality tests failed!"
5324
            echo " You might need to modify the include and library search paths by editing"
5325
            echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5326
            echo " ${XQMAKESPEC}."
5327
            exit 1
5328
        fi
5329
    elif [ "$CFG_OPENGL" = "es1" ]; then
5330
        # OpenGL ES 1.x
5331
	"$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS
5332
        if [ $? != "0" ]; then
5333
	    echo "The OpenGL ES 1.x functionality test failed!"
5334
            echo " You might need to modify the include and library search paths by editing"
5335
	    echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5336
	    echo " ${XQMAKESPEC}."
5337
            exit 1
5338
        fi
5339
    elif [ "$CFG_OPENGL" = "es2" ]; then
5340
        #OpenGL ES 2.x
5341
	"$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS
5342
        if [ $? != "0" ]; then
5343
	    echo "The OpenGL ES 2.0 functionality test failed!"
5344
            echo " You might need to modify the include and library search paths by editing"
5345
	    echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5346
	    echo " ${XQMAKESPEC}."
5347
            exit 1
5348
        fi
5349
    elif [ "$CFG_OPENGL" = "desktop" ]; then
5350
        # Desktop OpenGL support
5351
        echo "Desktop OpenGL support is not avaliable on Qt for Embedded Linux"
5352
        exit 1
5353
    fi
5354
5355
    # screen drivers
5356
    for screen in ${CFG_GFX_ON} ${CFG_GFX_PLUGIN}; do
5357
       if [ "${screen}" = "ahi" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
5358
           "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/ahi "Ahi" $L_FLAGS $I_FLAGS $l_FLAGS
5359
           if [ $? != "0" ]; then
5360
               echo "The Ahi screen driver functionality test failed!"
5361
               echo " You might need to modify the include and library search paths by editing"
5362
               echo " QMAKE_INCDIR and QMAKE_LIBDIR in"
5363
               echo " ${XQMAKESPEC}."
5364
               exit 1
5365
           fi
5366
       fi
5367
5368
       if [ "${screen}" = "svgalib" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
5369
           "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/svgalib "SVGAlib" $L_FLAGS $I_FLAGS $l_FLAGS
5370
           if [ $? != "0" ]; then
5371
               echo "The SVGAlib screen driver functionality test failed!"
5372
               echo " You might need to modify the include and library search paths by editing"
5373
               echo " QMAKE_INCDIR and QMAKE_LIBDIR in"
5374
               echo " ${XQMAKESPEC}."
5375
               exit 1
5376
           fi
5377
       fi
5378
5379
       if [ "${screen}" = "directfb" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
5380
           if [ -n "$PKG_CONFIG" ]; then
5381
               if $PKG_CONFIG --exists directfb 2>/dev/null; then
5382
                   QT_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
5383
                   QT_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
5384
               elif directfb-config --version >/dev/null 2>&1; then
5385
                   QT_CFLAGS_DIRECTFB=`directfb-config --cflags 2>/dev/null`
5386
                   QT_LIBS_DIRECTFB=`directfb-config --libs 2>/dev/null`
5387
               fi
5388
           fi
5389
5390
           # QMake variables set here override those in the mkspec. Therefore we only set the variables here if they are not zero.
5391
           if [ -n "$QT_CFLAGS_DIRECTFB" ] || [ -n "$QT_LIBS_DIRECTFB" ]; then
5392
               QMakeVar set QT_CFLAGS_DIRECTFB "$QT_CFLAGS_DIRECTFB"
5393
               QMakeVar set QT_LIBS_DIRECTFB "$QT_LIBS_DIRECTFB"
5394
           fi
5395
           if [ "$CFG_QT3SUPPORT" = "yes" ]; then
5396
               QMakeVar set QT_DEFINES_DIRECTFB "QT3_SUPPORT"
5397
           fi
5398
5399
           "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/directfb "DirectFB" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_DIRECTFB $QT_LIBS_DIRECTFB
5400
           if [ $? != "0" ]; then
5401
               echo "The DirectFB screen driver functionality test failed!"
5402
               echo " You might need to modify the include and library search paths by editing"
5403
               echo " QT_CFLAGS_DIRECTFB and QT_LIBS_DIRECTFB in"
5404
               echo " ${XQMAKESPEC}."
5405
               exit 1
5406
           fi
5407
       fi
5408
5409
    done
5410
5411
    # mouse drivers
5412
    for mouse in ${CFG_MOUSE_ON} ${CFG_MOUSE_PLUGIN}; do
5413
	if [ "${mouse}" = "tslib" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
5414
	    "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/tslib "tslib" $L_FLAGS $I_FLAGS $l_FLAGS
5415
            if [ $? != "0" ]; then
5416
               echo "The tslib functionality test failed!"
5417
               echo " You might need to modify the include and library search paths by editing"
5418
               echo " QMAKE_INCDIR and QMAKE_LIBDIR in"
5419
               echo " ${XQMAKESPEC}."
5420
		exit 1
5421
	    fi
5422
	fi
5423
    done
5424
5425
    CFG_QGTKSTYLE=no
5426
5427
    # sound
5428
    "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/sound "sound" $L_FLAGS $I_FLAGS $l_FLAGS
5429
    if [ $? != "0" ]; then
5430
        QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SOUND"
5431
    fi
5432
5433
fi # QWS
5434
5435
# freetype support
5436
[ "x$CFG_EMBEDDED" != "xno" ] && CFG_LIBFREETYPE="$CFG_QWS_FREETYPE"
5437
[ "x$PLATFORM_MAC" = "xyes" ] && CFG_LIBFREETYPE=no
5438
if [ "$CFG_LIBFREETYPE" = "auto" ]; then
5439
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/freetype "FreeType" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
5440
        CFG_LIBFREETYPE=system
5441
    else
5442
        CFG_LIBFREETYPE=yes
5443
    fi
5444
fi
5445
5446
if [ "$CFG_ENDIAN" = "auto" ]; then
5447
    if [ "$PLATFORM_MAC" = "yes" ]; then
5448
	true #leave as auto
5449
    else
5450
        "$unixtests/endian.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5451
	F="$?"
5452
        if [ "$F" -eq 0 ]; then
5453
            CFG_ENDIAN="Q_LITTLE_ENDIAN"
5454
        elif [ "$F" -eq 1 ]; then
5455
            CFG_ENDIAN="Q_BIG_ENDIAN"
5456
        else
5457
            echo
5458
	    echo "The target system byte order could not be detected!"
5459
	    echo "Turn on verbose messaging (-v) to see the final report."
5460
	    echo "You can use the -little-endian or -big-endian switch to"
5461
	    echo "$0 to continue."
5462
            exit 101
5463
        fi
5464
    fi
5465
fi
5466
5467
if [ "$CFG_HOST_ENDIAN" = "auto" ]; then
5468
    if [ "$PLATFORM_MAC" = "yes" ]; then
5469
	true #leave as auto
5470
    else
5471
        "$unixtests/endian.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5472
	F="$?"
5473
        if [ "$F" -eq 0 ]; then
5474
            CFG_HOST_ENDIAN="Q_LITTLE_ENDIAN"
5475
        elif [ "$F" -eq 1 ]; then
5476
            CFG_HOST_ENDIAN="Q_BIG_ENDIAN"
5477
        else
5478
            echo
5479
	    echo "The host system byte order could not be detected!"
5480
	    echo "Turn on verbose messaging (-v) to see the final report."
5481
	    echo "You can use the -host-little-endian or -host-big-endian switch to"
5482
	    echo "$0 to continue."
5483
            exit 101
5484
        fi
5485
    fi
5486
fi
5487
5488
if [ "$CFG_ARMFPA" != "auto" ]; then
5489
    if [ "$CFG_ARMFPA" = "yes" ]; then
5490
        if [ "$CFG_ENDIAN" = "Q_LITTLE_ENDIAN" ]; then
5491
            CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE_SWAPPED"
5492
        else
5493
            CFG_DOUBLEFORMAT="Q_DOUBLE_BIG_SWAPPED"
5494
        fi
5495
    else
5496
        CFG_DOUBLEFORMAT="normal"
5497
    fi
5498
fi
5499
5500
5501
if [ "$CFG_DOUBLEFORMAT" = "auto" ]; then
5502
    if [ "$PLATFORM_QWS" != "yes" ]; then
5503
        CFG_DOUBLEFORMAT=normal
5504
    else
5505
        "$unixtests/doubleformat.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5506
	F="$?"
5507
        if [ "$F" -eq 10 ] && [ "$CFG_ENDIAN" = "Q_LITTLE_ENDIAN" ]; then
5508
            CFG_DOUBLEFORMAT=normal
5509
        elif [ "$F" -eq 11 ] && [ "$CFG_ENDIAN" = "Q_BIG_ENDIAN" ]; then
5510
            CFG_DOUBLEFORMAT=normal
5511
        elif [ "$F" -eq 10 ]; then
5512
            CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE"
5513
        elif [ "$F" -eq 11 ]; then
5514
            CFG_DOUBLEFORMAT="Q_DOUBLE_BIG"
5515
        elif [ "$F" -eq 12 ]; then
5516
            CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE_SWAPPED"
5517
            CFG_ARMFPA="yes"
5518
        elif [ "$F" -eq 13 ]; then
5519
            CFG_DOUBLEFORMAT="Q_DOUBLE_BIG_SWAPPED"
5520
            CFG_ARMFPA="yes"
5521
        else
5522
            echo
5523
	    echo "The system floating point format could not be detected."
5524
	    echo "This may cause data to be generated in a wrong format"
5525
	    echo "Turn on verbose messaging (-v) to see the final report."
5526
	    # we do not fail on this since this is a new test, and if it fails,
5527
	    # the old behavior should be correct in most cases
5528
            CFG_DOUBLEFORMAT=normal
5529
        fi
5530
    fi
5531
fi
5532
5533
HAVE_STL=no
5534
if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $l_FLAGS; then
5535
    HAVE_STL=yes
5536
fi
5537
5538
if [ "$CFG_STL" != "no" ]; then
5539
    if [ "$HAVE_STL" = "yes" ]; then
5540
        CFG_STL=yes
5541
    else
5542
        if [ "$CFG_STL" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5543
            echo "STL support cannot be enabled due to functionality tests!"
5544
            echo " Turn on verbose messaging (-v) to $0 to see the final report."
5545
            echo " If you believe this message is in error you may use the continue"
5546
            echo " switch (-continue) to $0 to continue."
5547
            exit 101
5548
        else
5549
            CFG_STL=no
5550
        fi
5551
    fi
5552
fi
5553
5554
# find if the platform supports IPv6
5555
if [ "$CFG_IPV6" != "no" ]; then
5556
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ipv6 "IPv6" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
5557
        CFG_IPV6=yes
5558
    else
5559
        if [ "$CFG_IPV6" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5560
            echo "IPv6 support cannot be enabled due to functionality tests!"
5561
            echo " Turn on verbose messaging (-v) to $0 to see the final report."
5562
            echo " If you believe this message is in error you may use the continue"
5563
            echo " switch (-continue) to $0 to continue."
5564
            exit 101
5565
        else
5566
            CFG_IPV6=no
5567
        fi
5568
    fi
5569
fi
5570
5571
# detect POSIX clock_gettime()
5572
if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5573
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/clock-gettime "POSIX clock_gettime()" $L_FLAGS $I_FLAGS $l_FLAGS; then
5574
	CFG_CLOCK_GETTIME=yes
5575
    else
5576
	CFG_CLOCK_GETTIME=no
5577
    fi
5578
fi
5579
5580
# detect POSIX monotonic clocks
5581
if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5582
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/clock-monotonic "POSIX Monotonic Clock" $L_FLAGS $I_FLAGS $l_FLAGS; then
5583
	CFG_CLOCK_MONOTONIC=yes
5584
    else
5585
	CFG_CLOCK_MONOTONIC=no
5586
    fi
5587
elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5588
    CFG_CLOCK_MONOTONIC=no
5589
fi
5590
5591
# detect mremap
5592
if [ "$CFG_MREMAP" = "auto" ]; then
5593
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mremap "mremap" $L_FLAGS $I_FLAGS $l_FLAGS; then
5594
	CFG_MREMAP=yes
5595
    else
5596
	CFG_MREMAP=no
5597
    fi
5598
fi
5599
5600
# find if the platform provides getaddrinfo (ipv6 dns lookups)
5601
if [ "$CFG_GETADDRINFO" != "no" ]; then
5602
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getaddrinfo "getaddrinfo" $L_FLAGS $I_FLAGS $l_FLAGS; then
5603
        CFG_GETADDRINFO=yes
5604
    else
5605
	if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5606
            echo "getaddrinfo support cannot be enabled due to functionality tests!"
5607
            echo " Turn on verbose messaging (-v) to $0 to see the final report."
5608
            echo " If you believe this message is in error you may use the continue"
5609
            echo " switch (-continue) to $0 to continue."
5610
            exit 101
5611
	else
5612
	    CFG_GETADDRINFO=no
5613
	fi
5614
    fi
5615
fi
5616
5617
# find if the platform provides inotify
5618
if [ "$CFG_INOTIFY" != "no" ]; then
5619
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/inotify "inotify" $L_FLAGS $I_FLAGS $l_FLAGS; then
5620
        CFG_INOTIFY=yes
5621
    else
5622
	if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5623
            echo "inotify support cannot be enabled due to functionality tests!"
5624
            echo " Turn on verbose messaging (-v) to $0 to see the final report."
5625
            echo " If you believe this message is in error you may use the continue"
5626
            echo " switch (-continue) to $0 to continue."
5627
            exit 101
5628
	else
5629
	    CFG_INOTIFY=no
5630
	fi
5631
    fi
5632
fi
5633
5634
# find if the platform provides if_nametoindex (ipv6 interface name support)
5635
if [ "$CFG_IPV6IFNAME" != "no" ]; then
5636
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ipv6ifname "IPv6 interface name" $L_FLAGS $I_FLAGS $l_FLAGS; then
5637
        CFG_IPV6IFNAME=yes
5638
    else
5639
        if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5640
            echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5641
            echo " Turn on verbose messaging (-v) to $0 to see the final report."
5642
            echo " If you believe this message is in error you may use the continue"
5643
            echo " switch (-continue) to $0 to continue."
5644
            exit 101
5645
        else
5646
	    CFG_IPV6IFNAME=no
5647
	fi
5648
    fi
5649
fi
5650
5651
# find if the platform provides getifaddrs (network interface enumeration)
5652
if [ "$CFG_GETIFADDRS" != "no" ]; then
5653
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getifaddrs "getifaddrs" $L_FLAGS $I_FLAGS $l_FLAGS; then
5654
        CFG_GETIFADDRS=yes
5655
    else
5656
        if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5657
            echo "getifaddrs support cannot be enabled due to functionality tests!"
5658
            echo " Turn on verbose messaging (-v) to $0 to see the final report."
5659
            echo " If you believe this message is in error you may use the continue"
5660
            echo " switch (-continue) to $0 to continue."
5661
            exit 101
5662
        else
5663
	    CFG_GETIFADDRS=no
5664
	fi
5665
    fi
5666
fi
5667
5668
# find if the platform supports X/Open Large File compilation environment
5669
if [ "$CFG_LARGEFILE" != "no" ]; then
5670
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/largefile "X/Open Large File" $L_FLAGS $I_FLAGS $l_FLAGS; then
5671
        CFG_LARGEFILE=yes
5672
    else
5673
        if [ "$CFG_LARGEFILE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5674
            echo "X/Open Large File support cannot be enabled due to functionality tests!"
5675
            echo " Turn on verbose messaging (-v) to $0 to see the final report."
5676
            echo " If you believe this message is in error you may use the continue"
5677
            echo " switch (-continue) to $0 to continue."
5678
            exit 101
5679
        else
5680
            CFG_LARGEFILE=no
5681
        fi
5682
    fi
5683
fi
5684
5685
# detect OpenSSL
5686
if [ "$CFG_OPENSSL" != "no" ]; then
5687
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/openssl "OpenSSL" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
5688
        if [ "$CFG_OPENSSL" = "auto" ]; then
5689
            CFG_OPENSSL=yes
5690
        fi
5691
    else
5692
        if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5693
            echo "OpenSSL support cannot be enabled due to functionality tests!"
5694
            echo " Turn on verbose messaging (-v) to $0 to see the final report."
5695
            echo " If you believe this message is in error you may use the continue"
5696
            echo " switch (-continue) to $0 to continue."
5697
            exit 101
5698
        else
5699
            CFG_OPENSSL=no
5700
        fi
5701
    fi
5702
fi
5703
5704
# detect OpenVG support
5705
if [ "$CFG_OPENVG" != "no" ]; then
5706
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
5707
        if [ "$CFG_OPENVG" = "auto" ]; then
5708
            CFG_OPENVG=yes
5709
        fi
5710
    elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG openvg_on_opengl" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
5711
        if [ "$CFG_OPENVG" = "auto" ]; then
5712
            CFG_OPENVG=yes
5713
        fi
5714
        CFG_OPENVG_ON_OPENGL=yes
5715
    elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG lower_case_includes" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG (lc includes)" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
5716
        if [ "$CFG_OPENVG" = "auto" ]; then
5717
            CFG_OPENVG=yes
5718
        fi
5719
        CFG_OPENVG_LC_INCLUDES=yes
5720
    elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG openvg_on_opengl lower_case_includes" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG (lc includes)" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
5721
        if [ "$CFG_OPENVG" = "auto" ]; then
5722
            CFG_OPENVG=yes
5723
        fi
5724
        CFG_OPENVG_LC_INCLUDES=yes
5725
        CFG_OPENVG_ON_OPENGL=yes
5726
    else
5727
        if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5728
            echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5729
            echo " Turn on verbose messaging (-v) to $0 to see the final report."
5730
            echo " If you believe this message is in error you may use the continue"
5731
            echo " switch (-continue) to $0 to continue."
5732
            exit 101
5733
        else
5734
            CFG_OPENVG=no
5735
        fi
5736
    fi
5737
    if [ "$CFG_OPENVG" = "yes" ] && "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/shivavg" "ShivaVG" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
5738
        CFG_OPENVG_SHIVA=yes
5739
    fi
5740
fi
5741
5742
# if openvg is disabled and the user specified graphicssystem vg, disable it...
5743
if [ "$CFG_GRAPHICS_SYSTEM" = "openvg" ] && [ "$CFG_OPENVG" = "no" ]; then
5744
    echo "OpenVG Graphics System is disabled due to missing OpenVG support..."
5745
    CFG_GRAPHICS_SYSTEM=default
5746
fi
5747
5748
if [ "$CFG_PTMALLOC" != "no" ]; then
5749
    # build ptmalloc, copy .a file to lib/
5750
    echo "Building ptmalloc. Please wait..."
5751
    (cd "$relpath/src/3rdparty/ptmalloc/"; "$MAKE" "clean" ; "$MAKE" "posix"
5752
     mkdir "$outpath/lib/" ; cp "libptmalloc3.a" "$outpath/lib/")
5753
5754
    QMakeVar add QMAKE_LFLAGS "$outpath/lib/libptmalloc3.a"
5755
fi
5756
5757
if [ "$CFG_ALSA" = "auto" ]; then
5758
    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/alsa "alsa" $L_FLAGS $I_FLAGS $l_FLAGS; then
5759
        CFG_ALSA=yes
5760
    else
5761
        CFG_ALSA=no
5762
    fi
5763
fi
5764
5765
if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then 
5766
    if [ "$CFG_ARCH" = "arm" ] || [ "$CFG_ARCH" = "armv6" ]; then
5767
       "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/javascriptcore-jit "javascriptcore-jit" $L_FLAGS $I_FLAGS $l_FLAGS
5768
        if [ $? != "0" ]; then
5769
           CFG_JAVASCRIPTCORE_JIT=no
5770
        fi
5771
    fi
5772
fi
5773
5774
if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5775
    QMakeVar set JAVASCRIPTCORE_JIT yes
5776
elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5777
    QMakeVar set JAVASCRIPTCORE_JIT no
5778
fi
5779
5780
#-------------------------------------------------------------------------------
5781
# ask for all that hasn't been auto-detected or specified in the arguments
5782
#-------------------------------------------------------------------------------
5783
5784
### fix this: user input should be validated in a loop
5785
if [ "$CFG_QWS_DEPTHS" = "prompted" -a "$PLATFORM_QWS" = "yes" ]; then
5786
    echo
5787
    echo "Choose pixel-depths to support:"
5788
    echo
5789
    echo "   1. 1bpp, black/white"
5790
    echo "   4. 4bpp, grayscale"
5791
    echo "   8. 8bpp, paletted"
5792
    echo "  12. 12bpp, rgb 4-4-4"
5793
    echo "  15. 15bpp, rgb 5-5-5"
5794
    echo "  16. 16bpp, rgb 5-6-5"
5795
    echo "  18. 18bpp, rgb 6-6-6"
5796
    echo "  24. 24bpp, rgb 8-8-8"
5797
    echo "  32. 32bpp, argb 8-8-8-8 and rgb 8-8-8"
5798
    echo " all. All supported depths"
5799
    echo
5800
    echo "Your choices (default 8,16,32):"
5801
    read CFG_QWS_DEPTHS
5802
    if [ -z "$CFG_QWS_DEPTHS" ] || [ "$CFG_QWS_DEPTHS" = "yes" ]; then
5803
        CFG_QWS_DEPTHS=8,16,32
5804
    fi
5805
fi
5806
if [ -n "$CFG_QWS_DEPTHS" -a "$PLATFORM_QWS" = "yes" ]; then
5807
    if [ "$CFG_QWS_DEPTHS" = "all" ]; then
5808
        CFG_QWS_DEPTHS="1 4 8 12 15 16 18 24 32 generic"
5809
    fi
5810
    for D in `echo "$CFG_QWS_DEPTHS" | sed -e 's/,/ /g'`; do
5811
	case $D in
5812
	    1|4|8|12|15|16|18|24|32) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_$D";;
5813
	    generic) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_GENERIC";;
5814
	esac
5815
    done
5816
fi
5817
5818
# enable dwarf2 support on Mac
5819
if [ "$CFG_MAC_DWARF2" = "yes" ]; then
5820
    QT_CONFIG="$QT_CONFIG dwarf2"
5821
fi
5822
5823
# Set the default arch.
5824
# Carbon builds: 32 bit x86/ppc.
5825
# For "-cocoa" builds on snow leopard : compiler default (64-bit).
5826
# For "-cocoa" builds on leopard : compiler default (32-bit).
5827
if [ "$PLATFORM_MAC" = "yes" ]  && [ "$CFG_MAC_ARCHS" = "" ]; then
5828
    source "$mactests/defaultarch.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests"
5829
5830
	if [ "$CFG_MAC_COCOA" != "yes" ]; then
5831
		if [ "$QT_MAC_DEFAULT_ARCH" = "x86_64" ]; then
5832
			CFG_MAC_ARCHS=" x86"
5833
		elif [ "$QT_MAC_DEFAULT_ARCH" = "ppc64" ]; then
5834
			CFG_MAC_ARCHS=" ppc"
5835
		else
5836
			CFG_MAC_ARCHS=" $QT_MAC_DEFAULT_ARCH"
5837
		fi
5838
	else
5839
		CFG_MAC_ARCHS=" $QT_MAC_DEFAULT_ARCH"
5840
    fi
5841
5842
    [ "$OPT_VERBOSE" = "yes" ] && echo "Setting Mac architechture to$CFG_MAC_ARCHS."
5843
fi
5844
5845
# enable cocoa and/or carbon on Mac
5846
if [ "$CFG_MAC_COCOA" = "yes" ]; then
5847
#   -cocoa on the command line disables carbon completely (i.e. use cocoa for 32-bit as well)
5848
    CFG_MAC_CARBON="no"
5849
else
5850
#   check which archs are in use, enable cocoa if we find a 64-bit one
5851
    if echo "$CFG_MAC_ARCHS" | grep 64 > /dev/null 2>&1; then
5852
        CFG_MAC_COCOA="yes";
5853
        CFG_MAC_CARBON="no";
5854
        if echo "$CFG_MAC_ARCHS" | grep -w ppc > /dev/null 2>&1; then
5855
            CFG_MAC_CARBON="yes";
5856
        fi
5857
        if echo "$CFG_MAC_ARCHS" | grep -w x86 > /dev/null 2>&1; then
5858
            CFG_MAC_CARBON="yes";
5859
        fi
5860
    else
5861
#       no 64-bit archs found.
5862
        CFG_MAC_COCOA="no"
5863
    fi
5864
fi;
5865
5866
# set the global Mac deployment target. This is overridden on an arch-by-arch basis
5867
# in some cases, see code further down
5868
case "$PLATFORM,$CFG_MAC_COCOA" in
5869
    macx*,yes)
5870
	# Cocoa
5871
	QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.5
5872
	;;
5873
    macx*,no)
5874
	# gcc, Carbon
5875
	QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.4
5876
	;;
5877
esac
5878
5879
# disable Qt 3 support on VxWorks
5880
case "$XPLATFORM" in
5881
    unsupported/vxworks*)
5882
	CFG_QT3SUPPORT="no"
5883
    ;;
5884
esac
5885
5886
# enable Qt 3 support functionality
5887
if [ "$CFG_QT3SUPPORT" = "yes" ]; then
5888
    QT_CONFIG="$QT_CONFIG qt3support"
5889
fi
5890
5891
# enable Phonon
5892
if [ "$CFG_PHONON" = "yes" ]; then
5893
    QT_CONFIG="$QT_CONFIG phonon"
5894
    if [ "$CFG_PHONON_BACKEND" = "yes" ]; then
5895
        QT_CONFIG="$QT_CONFIG phonon-backend"
5896
    fi
5897
else
5898
    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PHONON"
5899
fi
5900
5901
# disable accessibility
5902
if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5903
    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5904
else
5905
    QT_CONFIG="$QT_CONFIG accessibility"
5906
fi
5907
5908
# enable egl
5909
if [ "$CFG_EGL" = "no" ]; then
5910
    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5911
else
5912
    QT_CONFIG="$QT_CONFIG egl"
5913
    if [ "$CFG_EGL_GLES_INCLUDES" = "yes" ]; then
5914
        QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GLES_EGL"
5915
    fi
5916
fi
5917
5918
# enable openvg
5919
if [ "$CFG_OPENVG" = "no" ]; then
5920
    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5921
else
5922
    QT_CONFIG="$QT_CONFIG openvg"
5923
    if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5924
        QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5925
    fi
5926
    if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5927
        QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5928
    fi
5929
    if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5930
        QT_CONFIG="$QT_CONFIG shivavg"
5931
        QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5932
    fi
5933
fi
5934
5935
# enable opengl
5936
if [ "$CFG_OPENGL" = "no" ]; then
5937
    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5938
else
5939
    QT_CONFIG="$QT_CONFIG opengl"
5940
fi
5941
5942
if [ "$CFG_OPENGL" = "es1" ] || [ "$CFG_OPENGL" = "es1cl" ] || [ "$CFG_OPENGL" = "es2" ]; then
5943
    if [ "$PLATFORM_QWS" = "yes" ]; then
5944
	QCONFIG_FLAGS="$QCONFIG_FLAGS Q_BACKINGSTORE_SUBSURFACES"
5945
	QCONFIG_FLAGS="$QCONFIG_FLAGS Q_USE_EGLWINDOWSURFACE"
5946
    fi
5947
    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5948
fi
5949
5950
if [ "$CFG_OPENGL" = "es1" ]; then
5951
    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_1"
5952
    QT_CONFIG="$QT_CONFIG opengles1"
5953
fi
5954
5955
if [ "$CFG_OPENGL" = "es1cl" ]; then
5956
    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_1_CL"
5957
    QT_CONFIG="$QT_CONFIG opengles1cl"
5958
fi
5959
5960
if [ "$CFG_OPENGL" = "es2" ]; then
5961
    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5962
    QT_CONFIG="$QT_CONFIG opengles2"
5963
fi
5964
5965
# safe execution environment
5966
if [ "$CFG_SXE" != "no" ]; then
5967
    QT_CONFIG="$QT_CONFIG sxe"
5968
fi
5969
5970
# build up the variables for output
5971
if [ "$CFG_DEBUG" = "yes" ]; then
5972
    QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5973
    QMAKE_CONFIG="$QMAKE_CONFIG debug"
5974
elif [ "$CFG_DEBUG" = "no" ]; then
5975
    QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5976
    QMAKE_CONFIG="$QMAKE_CONFIG release"
5977
fi
5978
if [ "$CFG_SHARED" = "yes" ]; then
5979
    QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5980
    QMAKE_CONFIG="$QMAKE_CONFIG shared dll"
5981
elif [ "$CFG_SHARED" = "no" ]; then
5982
    QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5983
    QMAKE_CONFIG="$QMAKE_CONFIG static"
5984
fi
5985
if [ "$PLATFORM_QWS" = "yes" ]; then
5986
    QMAKE_OUTDIR="${QMAKE_OUTDIR}-emb-$CFG_EMBEDDED"
5987
    QMAKE_CONFIG="$QMAKE_CONFIG embedded"
5988
    QT_CONFIG="$QT_CONFIG embedded"
5989
    rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5990
fi
5991
QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5992
QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5993
QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5994
QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5995
QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5996
if [ "$CFG_LARGEFILE" = "yes" ]; then
5997
    QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5998
fi
5999
if [ "$CFG_STL" = "no" ]; then
6000
    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STL"
6001
else
6002
    QMAKE_CONFIG="$QMAKE_CONFIG stl"
6003
fi
6004
if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
6005
    QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
6006
fi
6007
[ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
6008
[ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
6009
[ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
6010
if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
6011
    QMakeVar add QMAKE_CFLAGS -g
6012
    QMakeVar add QMAKE_CXXFLAGS -g
6013
    QMAKE_CONFIG="$QMAKE_CONFIG separate_debug_info"
6014
fi
6015
[ "$CFG_MMX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mmx"
6016
[ "$CFG_3DNOW" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG 3dnow"
6017
[ "$CFG_SSE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse"
6018
[ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
6019
[ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
6020
[ "$PLATFORM_MAC" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG $CFG_MAC_ARCHS"
6021
if [ "$CFG_IPV6" = "yes" ]; then
6022
    QT_CONFIG="$QT_CONFIG ipv6"
6023
fi
6024
if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
6025
    QT_CONFIG="$QT_CONFIG clock-gettime"
6026
fi
6027
if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
6028
    QT_CONFIG="$QT_CONFIG clock-monotonic"
6029
fi
6030
if [ "$CFG_MREMAP" = "yes" ]; then
6031
    QT_CONFIG="$QT_CONFIG mremap"
6032
fi
6033
if [ "$CFG_GETADDRINFO" = "yes" ]; then
6034
    QT_CONFIG="$QT_CONFIG getaddrinfo"
6035
fi
6036
if [ "$CFG_IPV6IFNAME" = "yes" ]; then
6037
    QT_CONFIG="$QT_CONFIG ipv6ifname"
6038
fi
6039
if [ "$CFG_GETIFADDRS" = "yes" ]; then
6040
    QT_CONFIG="$QT_CONFIG getifaddrs"
6041
fi
6042
if [ "$CFG_INOTIFY" = "yes" ]; then
6043
    QT_CONFIG="$QT_CONFIG inotify"
6044
fi
6045
if [ "$CFG_LIBJPEG" = "no" ]; then
6046
    CFG_JPEG="no"
6047
elif [ "$CFG_LIBJPEG" = "system" ]; then
6048
    QT_CONFIG="$QT_CONFIG system-jpeg"
6049
fi
6050
if [ "$CFG_JPEG" = "no" ]; then
6051
    QT_CONFIG="$QT_CONFIG no-jpeg"
6052
elif [ "$CFG_JPEG" = "yes" ]; then
6053
    QT_CONFIG="$QT_CONFIG jpeg"
6054
fi
6055
if [ "$CFG_LIBMNG" = "no" ]; then
6056
    CFG_MNG="no"
6057
elif [ "$CFG_LIBMNG" = "system" ]; then
6058
    QT_CONFIG="$QT_CONFIG system-mng"
6059
fi
6060
if [ "$CFG_MNG" = "no" ]; then
6061
    QT_CONFIG="$QT_CONFIG no-mng"
6062
elif [ "$CFG_MNG" = "yes" ]; then
6063
    QT_CONFIG="$QT_CONFIG mng"
6064
fi
6065
if [ "$CFG_LIBPNG" = "no" ]; then
6066
    CFG_PNG="no"
6067
fi
6068
if [ "$CFG_LIBPNG" = "system" ]; then
6069
    QT_CONFIG="$QT_CONFIG system-png"
6070
fi
6071
if [ "$CFG_PNG" = "no" ]; then
6072
    QT_CONFIG="$QT_CONFIG no-png"
6073
elif [ "$CFG_PNG" = "yes" ]; then
6074
    QT_CONFIG="$QT_CONFIG png"
6075
fi
6076
if [ "$CFG_GIF" = "no" ]; then
6077
    QT_CONFIG="$QT_CONFIG no-gif"
6078
elif [ "$CFG_GIF" = "yes" ]; then
6079
    QT_CONFIG="$QT_CONFIG gif"
6080
fi
6081
if [ "$CFG_LIBTIFF" = "no" ]; then
6082
    CFG_TIFF="no"
6083
elif [ "$CFG_LIBTIFF" = "system" ]; then
6084
    QT_CONFIG="$QT_CONFIG system-tiff"
6085
fi
6086
if [ "$CFG_TIFF" = "no" ]; then
6087
    QT_CONFIG="$QT_CONFIG no-tiff"
6088
elif [ "$CFG_TIFF" = "yes" ]; then
6089
    QT_CONFIG="$QT_CONFIG tiff"
6090
fi
6091
if [ "$CFG_LIBFREETYPE" = "no" ]; then
6092
    QT_CONFIG="$QT_CONFIG no-freetype"
6093
elif [ "$CFG_LIBFREETYPE" = "system" ]; then
6094
    QT_CONFIG="$QT_CONFIG system-freetype"
6095
else
6096
    QT_CONFIG="$QT_CONFIG freetype"
6097
fi
6098
6099
if [ "x$PLATFORM_MAC" = "xyes" ]; then
6100
    #On Mac we implicitly link against libz, so we
6101
    #never use the 3rdparty stuff.
6102
    [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
6103
fi
6104
if [ "$CFG_ZLIB" = "yes" ]; then
6105
    QT_CONFIG="$QT_CONFIG zlib"
6106
elif [ "$CFG_ZLIB" = "system" ]; then
6107
    QT_CONFIG="$QT_CONFIG system-zlib"
6108
fi
6109
6110
[ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
6111
[ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
6112
[ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
6113
[ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
6114
[ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
6115
[ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
6116
[ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
6117
[ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
6118
[ "$CFG_NAS" = "system" ] && QT_CONFIG="$QT_CONFIG nas"
6119
[ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
6120
[ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
6121
6122
if [ "$PLATFORM_X11" = "yes" ]; then
6123
    [ "$CFG_SM" = "yes" ] && QT_CONFIG="$QT_CONFIG x11sm"
6124
6125
    # for some reason, the following libraries are not always built shared,
6126
    # so *every* program/lib (including Qt) has to link against them
6127
    if [ "$CFG_XSHAPE" = "yes" ]; then
6128
        QT_CONFIG="$QT_CONFIG xshape"
6129
    fi
6130
    if [ "$CFG_XSYNC" = "yes" ]; then
6131
        QT_CONFIG="$QT_CONFIG xsync"
6132
    fi
6133
    if [ "$CFG_XINERAMA" = "yes" ]; then
6134
        QT_CONFIG="$QT_CONFIG xinerama"
6135
	QMakeVar set QMAKE_LIBS_X11 '-lXinerama $$QMAKE_LIBS_X11'
6136
    fi
6137
    if [ "$CFG_XCURSOR" = "yes" ]; then
6138
        QT_CONFIG="$QT_CONFIG xcursor"
6139
	QMakeVar set QMAKE_LIBS_X11 '-lXcursor $$QMAKE_LIBS_X11'
6140
    fi
6141
    if [ "$CFG_XFIXES" = "yes" ]; then
6142
        QT_CONFIG="$QT_CONFIG xfixes"
6143
	QMakeVar set QMAKE_LIBS_X11 '-lXfixes $$QMAKE_LIBS_X11'
6144
    fi
6145
    if [ "$CFG_XRANDR" = "yes" ]; then
6146
        QT_CONFIG="$QT_CONFIG xrandr"
6147
        if [ "$CFG_XRENDER" != "yes" ]; then
6148
            # libXrandr uses 1 function from libXrender, so we always have to have it :/
6149
	    QMakeVar set QMAKE_LIBS_X11 '-lXrandr -lXrender $$QMAKE_LIBS_X11'
6150
        else
6151
	    QMakeVar set QMAKE_LIBS_X11 '-lXrandr $$QMAKE_LIBS_X11'
6152
        fi
6153
    fi
6154
    if [ "$CFG_XRENDER" = "yes" ]; then
6155
        QT_CONFIG="$QT_CONFIG xrender"
6156
	QMakeVar set QMAKE_LIBS_X11 '-lXrender $$QMAKE_LIBS_X11'
6157
    fi
6158
    if [ "$CFG_MITSHM" = "yes" ]; then
6159
        QT_CONFIG="$QT_CONFIG mitshm"
6160
    fi
6161
    if [ "$CFG_FONTCONFIG" = "yes" ]; then
6162
        QT_CONFIG="$QT_CONFIG fontconfig"
6163
    fi
6164
    if [ "$CFG_XINPUT" = "yes" ]; then
6165
	QMakeVar set QMAKE_LIBS_X11 '-lXi $$QMAKE_LIBS_X11'
6166
    fi
6167
    if [ "$CFG_XINPUT" = "yes" ]; then
6168
        QT_CONFIG="$QT_CONFIG xinput tablet"
6169
    fi
6170
    if [ "$CFG_XKB" = "yes" ]; then
6171
        QT_CONFIG="$QT_CONFIG xkb"
6172
    fi
6173
fi
6174
6175
[ '!' -z "$D_FLAGS" ] && QMakeVar add DEFINES "$D_FLAGS"
6176
[ '!' -z "$L_FLAGS" ] && QMakeVar add QMAKE_LIBDIR_FLAGS "$L_FLAGS"
6177
[ '!' -z "$l_FLAGS" ] && QMakeVar add LIBS "$l_FLAGS"
6178
6179
if [ "$PLATFORM_MAC" = "yes" ]; then
6180
    if [ "$CFG_RPATH" = "yes" ]; then
6181
       QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
6182
    fi
6183
elif [ -z "`getQMakeConf \"$XQMAKESPEC\" | grep QMAKE_RPATH | awk '{print $3;}'`" ]; then
6184
    if [ -n "$RPATH_FLAGS" ]; then
6185
        echo
6186
        echo "ERROR: -R cannot be used on this platform as \$QMAKE_RPATH is"
6187
        echo "       undefined."
6188
        echo
6189
        exit 1
6190
    elif [ "$CFG_RPATH" = "yes" ]; then
6191
        RPATH_MESSAGE="        NOTE: This platform does not support runtime library paths, using -no-rpath."
6192
        CFG_RPATH=no
6193
    fi
6194
else
6195
    if [ "$CFG_RPATH" = "yes" ]; then
6196
        # set the default rpath to the library installation directory
6197
        RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
6198
    fi
6199
    if [ -n "$RPATH_FLAGS" ]; then
6200
        # add the user defined rpaths
6201
	QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
6202
    fi
6203
fi
6204
6205
if [ '!' -z "$I_FLAGS" ]; then
6206
    # add the user define include paths
6207
    QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
6208
    QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
6209
fi
6210
6211
# turn off exceptions for the compilers that support it
6212
if [ "$PLATFORM_QWS" = "yes" ]; then
6213
    COMPILER=`echo $XPLATFORM | cut -f 3- -d-`
6214
else
6215
    COMPILER=`echo $PLATFORM | cut -f 2- -d-`
6216
fi
6217
if [ "$CFG_EXCEPTIONS" = "unspecified" -a "$PLATFORM_QWS" = "yes" ]; then
6218
    CFG_EXCEPTIONS=no
6219
fi
6220
6221
if [ "$CFG_EXCEPTIONS" != "no" ]; then
6222
    QTCONFIG_CONFIG="$QTCONFIG_CONFIG exceptions"
6223
fi
6224
6225
if [ "$CFG_ALSA" = "yes" ]; then
6226
    QT_CONFIG="$QT_CONFIG alsa"
6227
fi
6228
6229
#
6230
# Some Qt modules are too advanced in C++ for some old compilers
6231
# Detect here the platforms where they are known to work.
6232
#
6233
# See Qt documentation for more information on which features are
6234
# supported and on which compilers.
6235
#
6236
canBuildQtXmlPatterns="yes"
6237
canBuildWebKit="$HAVE_STL"
6238
canBuildQtConcurrent="yes"
6239
6240
# WebKit requires stdint.h
6241
"$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stdint "Stdint" $L_FLAGS $I_FLAGS $l_FLAGS
6242
if [ $? != "0" ]; then
6243
    canBuildWebKit="no"
6244
fi
6245
6246
case "$XPLATFORM" in
6247
    hpux-g++*)
6248
	# PA-RISC's assembly is too limited
6249
	# gcc 3.4 on that platform can't build QtXmlPatterns
6250
	# the assembly it generates cannot be compiled
6251
6252
	# Check gcc's version
6253
	case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
6254
	    4*)
6255
		;;
6256
	    3.4*)
6257
		canBuildQtXmlPatterns="no"
6258
		;;
6259
	    *)
6260
		canBuildWebKit="no"
6261
		canBuildQtXmlPatterns="no"
6262
		;;
6263
	esac
6264
	;;
6265
    unsupported/vxworks-*-g++*)
6266
	canBuildWebKit="no"
6267
	;;
6268
    unsupported/vxworks-*-dcc*)
6269
	canBuildWebKit="no"
6270
	canBuildQtXmlPatterns="no"
6271
	;;
6272
    *-g++*)
6273
	# Check gcc's version
6274
	case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
6275
	    4*|3.4*)
6276
		;;
6277
            3.3*)
6278
                canBuildWebKit="no"
6279
                ;;
6280
	    *)
6281
		canBuildWebKit="no"
6282
		canBuildQtXmlPatterns="no"
6283
		;;
6284
	esac
6285
	;;
6286
    solaris-cc*)
6287
        # Check the compiler version
6288
        case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
6289
            5.[012345678])
6290
                canBuildWebKit="no"
6291
                canBuildQtXmlPatterns="no"
6292
                canBuildQtConcurrent="no"
6293
                ;;
6294
            5.9)
6295
                canBuildWebKit="no"
6296
                canBuildQtConcurrent="no"
6297
                ;;
6298
        esac
6299
        ;;
6300
    hpux-acc*)
6301
	canBuildWebKit="no"
6302
	canBuildQtXmlPatterns="no"
6303
        canBuildQtConcurrent="no"
6304
	;;
6305
    hpuxi-acc*)
6306
	canBuildWebKit="no"
6307
	;;
6308
    aix-xlc*)
6309
        # Get the xlC version
6310
        cat > xlcver.c <<EOF
6311
#include <stdio.h>
6312
int main()
6313
{
6314
    printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
6315
    return 0;
6316
}
6317
EOF
6318
        xlcver=
6319
        if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
6320
            xlcver=`./xlcver 2>/dev/null`
6321
            rm -f ./xlcver
6322
        fi
6323
        if [ "$OPT_VERBOSE" = "yes" ]; then
6324
            if [ -n "$xlcver" ]; then
6325
                echo Found IBM xlC version: $xlcver.
6326
            else
6327
                echo Could not determine IBM xlC version, assuming oldest supported.
6328
            fi
6329
        fi
6330
6331
        case "$xlcver" in
6332
            [123456].*)
6333
                canBuildWebKit="no"
6334
                canBuildQtXmlPatterns="no"
6335
                canBuildQtConcurrent="no"
6336
                ;;
6337
            *)
6338
                canBuildWebKit="no"
6339
                canBuildQtConcurrent="no"
6340
                ;;
6341
        esac
6342
        ;;
6343
    irix-cc*)
6344
        canBuildWebKit="no"
6345
        canBuildQtConcurrent="no"
6346
	;;
6347
esac
6348
6349
CFG_CONCURRENT="yes"
6350
if [ "$canBuildQtConcurrent" = "no" ]; then
6351
    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
6352
    CFG_CONCURRENT="no"
6353
fi
6354
6355
if [ "$CFG_XMLPATTERNS" = "yes" -a "$CFG_EXCEPTIONS" = "no" ]; then
6356
    echo "QtXmlPatterns was requested, but it can't be built due to exceptions being disabled."
6357
    exit 1
6358
fi
6359
if [ "$CFG_XMLPATTERNS" = "auto" -a "$CFG_EXCEPTIONS" != "no" ]; then
6360
    CFG_XMLPATTERNS="$canBuildQtXmlPatterns"
6361
elif [ "$CFG_EXCEPTIONS" = "no" ]; then
6362
    CFG_XMLPATTERNS="no"
6363
fi
6364
if [ "$CFG_XMLPATTERNS" = "yes" ]; then
6365
    QT_CONFIG="$QT_CONFIG xmlpatterns"
6366
else
6367
    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XMLPATTERNS"
6368
fi
6369
6370
if [ "$CFG_MULTIMEDIA" = "no" ]; then
6371
    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MULTIMEDIA"
6372
else
6373
    QT_CONFIG="$QT_CONFIG multimedia"
6374
fi
6375
6376
if [ "$CFG_SVG" = "yes" ]; then
6377
    QT_CONFIG="$QT_CONFIG svg"
6378
else
6379
    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SVG"
6380
fi
6381
6382
if [ "$CFG_WEBKIT" = "auto" ]; then
6383
    CFG_WEBKIT="$canBuildWebKit"
6384
fi
6385
6386
if [ "$CFG_WEBKIT" = "yes" ]; then
6387
    QT_CONFIG="$QT_CONFIG webkit"
6388
    # The reason we set CFG_WEBKIT, is such that the printed overview of what will be enabled, shows correctly.
6389
    CFG_WEBKIT="yes"
6390
else
6391
    CFG_WEBKIT="no"
6392
    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WEBKIT"
6393
fi
6394
6395
if [ "$CFG_SCRIPT" = "auto" ]; then
6396
    CFG_SCRIPT="yes"
6397
fi
6398
6399
if [ "$CFG_SCRIPT" = "yes" ]; then
6400
    QT_CONFIG="$QT_CONFIG script"
6401
else
6402
    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SCRIPT"
6403
fi
6404
6405
if [ "$CFG_SCRIPTTOOLS" = "yes" -a "$CFG_SCRIPT" = "no" ]; then
6406
    echo "QtScriptTools was requested, but it can't be built due to QtScript being disabled."
6407
    exit 1
6408
fi
6409
if [ "$CFG_SCRIPTTOOLS" = "auto" -a "$CFG_SCRIPT" != "no" ]; then
6410
    CFG_SCRIPTTOOLS="yes"
6411
elif [ "$CFG_SCRIPT" = "no" ]; then
6412
    CFG_SCRIPTTOOLS="no"
6413
fi
6414
6415
if [ "$CFG_SCRIPTTOOLS" = "yes" ]; then
6416
    QT_CONFIG="$QT_CONFIG scripttools"
6417
else
6418
    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SCRIPTTOOLS"
6419
fi
6420
6421
if [ "$CFG_EXCEPTIONS" = "no" ]; then
6422
    case "$COMPILER" in
6423
    g++*)
6424
	QMakeVar add QMAKE_CFLAGS -fno-exceptions
6425
	QMakeVar add QMAKE_CXXFLAGS -fno-exceptions
6426
	QMakeVar add QMAKE_LFLAGS -fno-exceptions
6427
        ;;
6428
    cc*)
6429
        case "$PLATFORM" in
6430
        irix-cc*)
6431
	    QMakeVar add QMAKE_CFLAGS -LANG:exceptions=off
6432
	    QMakeVar add QMAKE_CXXFLAGS -LANG:exceptions=off
6433
	    QMakeVar add QMAKE_LFLAGS -LANG:exceptions=off
6434
            ;;
6435
        *) ;;
6436
        esac
6437
        ;;
6438
    *) ;;
6439
    esac
6440
    QMAKE_CONFIG="$QMAKE_CONFIG exceptions_off"
6441
fi
6442
6443
# On Mac, set the minimum deployment target for the different architechtures 
6444
# using the Xarch compiler option when supported (10.5 and up).  On 10.4 the
6445
# deployment version is set to 10.4 globally using the QMAKE_MACOSX_DEPLOYMENT_TARGET
6446
# env. variable. "-cocoa" on the command line means Cocoa is used in 32-bit mode also,
6447
# in this case fall back on QMAKE_MACOSX_DEPLOYMENT_TARGET which will be set to 10.5.
6448
if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_XARCH" != "no" ] && [ "$COMMANDLINE_MAC_COCOA" != "yes" ]; then
6449
    if echo "$CFG_MAC_ARCHS" | grep '\<x86\>' > /dev/null 2>&1; then
6450
        QMakeVar add QMAKE_CFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
6451
        QMakeVar add QMAKE_CXXFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
6452
        QMakeVar add QMAKE_LFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
6453
        QMakeVar add QMAKE_OBJECTIVE_CFLAGS_X86 "-arch i386 -Xarch_i386 -mmacosx-version-min=10.4"
6454
    fi
6455
    if echo "$CFG_MAC_ARCHS" | grep '\<ppc\>' > /dev/null 2>&1; then
6456
        QMakeVar add QMAKE_CFLAGS "-Xarch_ppc -mmacosx-version-min=10.4"
6457
        QMakeVar add QMAKE_CXXFLAGS "-Xarch_ppc -mmacosx-version-min=10.4"
6458
        QMakeVar add QMAKE_LFLAGS "-Xarch_ppc -mmacosx-version-min=10.4"
6459
        QMakeVar add QMAKE_OBJECTIVE_CFLAGS_PPC "-arch ppc -Xarch_ppc -mmacosx-version-min=10.4"
6460
    fi
6461
    if echo "$CFG_MAC_ARCHS" | grep '\<x86_64\>' > /dev/null 2>&1; then
6462
        QMakeVar add QMAKE_CFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
6463
        QMakeVar add QMAKE_CXXFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
6464
        QMakeVar add QMAKE_LFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
6465
        QMakeVar add QMAKE_OBJECTIVE_CFLAGS_X86_64 "-arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5"
6466
    fi
6467
    if echo "$CFG_MAC_ARCHS" | grep '\<ppc64\>' > /dev/null 2>&1; then
6468
        QMakeVar add QMAKE_CFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
6469
        QMakeVar add QMAKE_CXXFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
6470
        QMakeVar add QMAKE_LFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
6471
        QMakeVar add QMAKE_OBJECTIVE_CFLAGS_PPC_64 "-arch ppc64 -Xarch_ppc64 -mmacosx-version-min=10.5"
6472
    fi
6473
fi
6474
6475
#-------------------------------------------------------------------------------
6476
# generate QT_BUILD_KEY
6477
#-------------------------------------------------------------------------------
6478
6479
# some compilers generate binary incompatible code between different versions,
6480
# so we need to generate a build key that is different between these compilers
6481
case "$COMPILER" in
6482
g++*)
6483
    # GNU C++
6484
    COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
6485
6486
    case "$COMPILER_VERSION" in
6487
    *.*.*)
6488
        QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
6489
        QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
6490
        QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
6491
        ;;
6492
    *.*)
6493
        QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
6494
        QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
6495
        QT_GCC_PATCH_VERSION=0
6496
        ;;
6497
    esac
6498
6499
    case "$COMPILER_VERSION" in
6500
    2.95.*)
6501
        COMPILER_VERSION="2.95.*"
6502
        ;;
6503
    3.*)
6504
        COMPILER_VERSION="3.*"
6505
        ;;
6506
    4.*)
6507
        COMPILER_VERSION="4"
6508
        ;;
6509
    *)
6510
        ;;
6511
    esac
6512
    [ '!' -z "$COMPILER_VERSION" ] && COMPILER="g++-${COMPILER_VERSION}"
6513
    ;;
6514
*)
6515
    #
6516
    ;;
6517
esac
6518
6519
# QT_CONFIG can contain the following:
6520
#
6521
# Things that affect the Qt API/ABI:
6522
#
6523
#   Options:
6524
#     minimal-config small-config medium-config large-config full-config
6525
#
6526
#   Different edition modules:
6527
#     network canvas table xml opengl sql
6528
#
6529
# Things that do not affect the Qt API/ABI:
6530
#     stl
6531
#     system-jpeg no-jpeg jpeg
6532
#     system-mng no-mng mng
6533
#     system-png no-png png
6534
#     system-zlib no-zlib zlib
6535
#     system-libtiff no-libtiff
6536
#     no-gif gif
6537
#     debug release
6538
#     dll staticlib
6539
#
6540
#     nocrosscompiler
6541
#     GNUmake
6542
#     largefile
6543
#     nis
6544
#     nas
6545
#     tablet
6546
#     ipv6
6547
#
6548
#     X11     : x11sm xinerama xcursor xfixes xrandr xrender mitshm fontconfig xkb
6549
#     Embedded: embedded freetype
6550
#
6551
ALL_OPTIONS=
6552
BUILD_CONFIG=
6553
BUILD_OPTIONS=
6554
6555
# determine the build options
6556
for config_option in $QMAKE_CONFIG $QT_CONFIG; do
6557
    SKIP="yes"
6558
    case "$config_option" in
6559
    *-config)
6560
        # take the last *-config setting.  this is the highest config being used,
6561
        # and is the one that we will use for tagging plugins
6562
        BUILD_CONFIG="$config_option"
6563
        ;;
6564
6565
    *) # skip all other options since they don't affect the Qt API/ABI.
6566
        ;;
6567
    esac
6568
6569
    if [ "$SKIP" = "no" ]; then
6570
        BUILD_OPTIONS="$BUILD_OPTIONS $config_option"
6571
    fi
6572
done
6573
6574
# put the options that we are missing into .options
6575
rm -f .options
6576
for opt in `echo $ALL_OPTIONS`; do
6577
    SKIP="no"
6578
    if echo $BUILD_OPTIONS | grep $opt >/dev/null 2>&1; then
6579
        SKIP="yes"
6580
    fi
6581
    if [ "$SKIP" = "no" ]; then
6582
        echo "$opt" >> .options
6583
    fi
6584
done
6585
6586
# reconstruct BUILD_OPTIONS with a sorted negative feature list
6587
# (ie. only things that are missing are will be put into the build key)
6588
BUILD_OPTIONS=
6589
if [ -f .options ]; then
6590
    for opt in `sort -f .options | uniq`; do
6591
        BUILD_OPTIONS="$BUILD_OPTIONS no-$opt"
6592
    done
6593
fi
6594
rm -f .options
6595
6596
# QT_NO* defines affect the Qt API (and binary compatibility).  they need
6597
# to be included in the build key
6598
for build_option in $D_FLAGS; do
6599
    build_option=`echo $build_option | cut -d \" -f 2 -`
6600
    case "$build_option" in
6601
    QT_NO*)
6602
        echo "$build_option" >> .options
6603
        ;;
6604
    *)
6605
        # skip all other compiler defines
6606
        ;;
6607
    esac
6608
done
6609
6610
# sort the compile time defines (helps ensure that changes in this configure
6611
# script don't affect the QT_BUILD_KEY generation)
6612
if [ -f .options ]; then
6613
    for opt in `sort -f .options | uniq`; do
6614
        BUILD_OPTIONS="$BUILD_OPTIONS $opt"
6615
    done
6616
fi
6617
rm -f .options
6618
6619
BUILD_OPTIONS="$BUILD_CONFIG $BUILD_OPTIONS"
6620
# extract the operating system from the XPLATFORM
6621
TARGET_OPERATING_SYSTEM=`echo $XPLATFORM | cut -f 2- -d/ | cut -f -1 -d-`
6622
6623
# when cross-compiling, don't include build-host information (build key is target specific)
6624
QT_BUILD_KEY="$CFG_USER_BUILD_KEY $CFG_ARCH $TARGET_OPERATING_SYSTEM $COMPILER $BUILD_OPTIONS"
6625
if [ -n "$QT_NAMESPACE" ]; then
6626
    QT_BUILD_KEY="$QT_BUILD_KEY $QT_NAMESPACE"
6627
fi
6628
MAC_NEED_TWO_BUILD_KEYS="no"
6629
if [ "$PLATFORM_MAC" = "yes" -a "$CFG_MAC_COCOA" = "yes" ]; then
6630
    QT_BUILD_KEY_CARBON=$QT_BUILD_KEY
6631
    TARGET_OPERATING_SYSTEM="$TARGET_OPERATING_SYSTEM-cocoa"
6632
    QT_BUILD_KEY_COCOA="$CFG_USER_BUILD_KEY $CFG_ARCH $TARGET_OPERATING_SYSTEM $COMPILER $BUILD_OPTIONS"
6633
    if [ "$CFG_MAC_CARBON" = "no" ]; then
6634
        QT_BUILD_KEY=$QT_BUILD_KEY_COCOA
6635
    else
6636
        MAC_NEED_TWO_BUILD_KEYS="yes"
6637
    fi
6638
fi
6639
# don't break loading plugins build with an older version of Qt
6640
QT_BUILD_KEY_COMPAT=
6641
if [ "$QT_CROSS_COMPILE" = "no" ]; then
6642
    # previous versions of Qt used a build key built from the uname
6643
    QT_BUILD_KEY_COMPAT="$CFG_USER_BUILD_KEY $UNAME_MACHINE $UNAME_SYSTEM $COMPILER $BUILD_OPTIONS"
6644
    if [ -n "$QT_NAMESPACE" ]; then
6645
        QT_BUILD_KEY_COMPAT="$QT_BUILD_KEY_COMPAT $QT_NAMESPACE"
6646
    fi
6647
fi
6648
# strip out leading/trailing/extra whitespace
6649
QT_BUILD_KEY=`echo $QT_BUILD_KEY | sed -e "s,  *, ,g" -e "s,^  *,," -e "s,  *$,,"`
6650
QT_BUILD_KEY_COMPAT=`echo $QT_BUILD_KEY_COMPAT | sed -e "s,  *, ,g" -e "s,^  *,," -e "s,  *$,,"`
6651
6652
#-------------------------------------------------------------------------------
6653
# part of configuration information goes into qconfig.h
6654
#-------------------------------------------------------------------------------
6655
6656
case "$CFG_QCONFIG" in
6657
full)
6658
    echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
6659
    ;;
6660
*)
6661
    tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
6662
    echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
6663
    cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
6664
    echo "#endif" >>"$tmpconfig"
6665
    ;;
6666
esac
6667
6668
cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6669
6670
/* Qt Edition */
6671
#ifndef QT_EDITION
6672
#  define QT_EDITION $QT_EDITION
6673
#endif
6674
6675
/* Machine byte-order */
6676
#define Q_BIG_ENDIAN 4321
6677
#define Q_LITTLE_ENDIAN 1234
6678
EOF
6679
6680
if [ "$MAC_NEED_TWO_BUILD_KEYS" = "no" ]; then
6681
    echo "#define QT_BUILD_KEY \"$QT_BUILD_KEY\"" \
6682
        >> "$outpath/src/corelib/global/qconfig.h.new"
6683
else
6684
    cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6685
6686
#define QT_BUILD_KEY_CARBON "$QT_BUILD_KEY_CARBON"
6687
#define QT_BUILD_KEY_COCOA "$QT_BUILD_KEY_COCOA"
6688
EOF
6689
fi
6690
6691
if [ -n "$QT_BUILD_KEY_COMPAT" ]; then
6692
    echo "#define QT_BUILD_KEY_COMPAT \"$QT_BUILD_KEY_COMPAT\"" \
6693
        >> "$outpath/src/corelib/global/qconfig.h.new"
6694
fi
6695
echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
6696
6697
echo "#ifdef QT_BOOTSTRAPPED" >>"$outpath/src/corelib/global/qconfig.h.new"
6698
if [ "$CFG_HOST_ENDIAN" = "auto" ]; then
6699
    cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6700
#if defined(__BIG_ENDIAN__)
6701
# define Q_BYTE_ORDER Q_BIG_ENDIAN
6702
#elif defined(__LITTLE_ENDIAN__)
6703
# define Q_BYTE_ORDER Q_LITTLE_ENDIAN
6704
#else
6705
# error "Unable to determine byte order!"
6706
#endif
6707
EOF
6708
else
6709
    echo "#define Q_BYTE_ORDER $CFG_HOST_ENDIAN" >>"$outpath/src/corelib/global/qconfig.h.new"
6710
fi
6711
echo "#else" >>"$outpath/src/corelib/global/qconfig.h.new"
6712
if [ "$CFG_ENDIAN" = "auto" ]; then
6713
    cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6714
#if defined(__BIG_ENDIAN__)
6715
# define Q_BYTE_ORDER Q_BIG_ENDIAN
6716
#elif defined(__LITTLE_ENDIAN__)
6717
# define Q_BYTE_ORDER Q_LITTLE_ENDIAN
6718
#else
6719
# error "Unable to determine byte order!"
6720
#endif
6721
EOF
6722
else
6723
    echo "#define Q_BYTE_ORDER $CFG_ENDIAN" >>"$outpath/src/corelib/global/qconfig.h.new"
6724
fi
6725
echo "#endif" >>"$outpath/src/corelib/global/qconfig.h.new"
6726
6727
if [ "$CFG_DOUBLEFORMAT" != "normal" ]; then
6728
    cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6729
/* Non-IEEE double format */
6730
#define Q_DOUBLE_LITTLE "01234567"
6731
#define Q_DOUBLE_BIG "76543210"
6732
#define Q_DOUBLE_LITTLE_SWAPPED "45670123"
6733
#define Q_DOUBLE_BIG_SWAPPED "32107654"
6734
#define Q_DOUBLE_FORMAT $CFG_DOUBLEFORMAT
6735
EOF
6736
fi
6737
if [ "$CFG_ARMFPA" = "yes" ]; then
6738
    if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
6739
	cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6740
#ifndef QT_BOOTSTRAPPED
6741
# define QT_ARMFPA
6742
#endif
6743
EOF
6744
    else
6745
	echo "#define QT_ARMFPA" >>"$outpath/src/corelib/global/qconfig.h.new"
6746
    fi
6747
fi
6748
6749
CFG_ARCH_STR=`echo $CFG_ARCH | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6750
CFG_HOST_ARCH_STR=`echo $CFG_HOST_ARCH | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6751
cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6752
/* Machine Architecture */
6753
#ifndef QT_BOOTSTRAPPED
6754
# define QT_ARCH_${CFG_ARCH_STR}
6755
#else
6756
# define QT_ARCH_${CFG_HOST_ARCH_STR}
6757
#endif
6758
EOF
6759
6760
echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
6761
[ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
6762
6763
if [ "$CFG_LARGEFILE" = "yes" ]; then
6764
    echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
6765
fi
6766
6767
# if both carbon and cocoa are specified, enable the autodetection code.
6768
if [ "$CFG_MAC_COCOA" = "yes" -a "$CFG_MAC_CARBON" = "yes" ]; then
6769
    echo "#define AUTODETECT_COCOA 1" >>"$outpath/src/corelib/global/qconfig.h.new"
6770
elif [ "$CFG_MAC_COCOA" = "yes" ]; then
6771
    echo "#define QT_MAC_USE_COCOA 1" >>"$outpath/src/corelib/global/qconfig.h.new"
6772
fi
6773
6774
if [ "$CFG_FRAMEWORK" = "yes" ]; then
6775
    echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
6776
fi
6777
6778
if [ "$PLATFORM_MAC" = "yes" ]; then
6779
    cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6780
#if defined(__LP64__)
6781
# define QT_POINTER_SIZE 8
6782
#else
6783
# define QT_POINTER_SIZE 4
6784
#endif
6785
EOF
6786
else
6787
    "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
6788
    echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
6789
fi
6790
6791
6792
echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
6793
6794
if [ "$CFG_DEV" = "yes" ]; then
6795
    echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
6796
fi
6797
6798
# Embedded compile time options
6799
if [ "$PLATFORM_QWS" = "yes" ]; then
6800
    # Add QWS to config.h
6801
    QCONFIG_FLAGS="$QCONFIG_FLAGS Q_WS_QWS"
6802
6803
    # Add excluded decorations to $QCONFIG_FLAGS
6804
    decors=`grep '^decorations -= ' "$QMAKE_VARS_FILE" | ${AWK} '{print $3}'`
6805
    for decor in $decors; do
6806
        NODECORATION=`echo $decor | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6807
        QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_NO_QWS_DECORATION_${NODECORATION}"
6808
    done
6809
6810
    # Figure which embedded drivers which are turned off
6811
    CFG_GFX_OFF="$CFG_GFX_AVAILABLE"
6812
    for ADRIVER in $CFG_GFX_ON; do
6813
        CFG_GFX_OFF=`echo "${CFG_GFX_OFF} " | sed "s,${ADRIVER} ,,g"`
6814
    done
6815
6816
    CFG_KBD_OFF="$CFG_KBD_AVAILABLE"
6817
    # the um driver is currently not in the available list for external builds
6818
    if [ "$CFG_DEV" = "no" ]; then
6819
	CFG_KBD_OFF="$CFG_KBD_OFF um"
6820
    fi
6821
    for ADRIVER in $CFG_KBD_ON; do
6822
        CFG_KBD_OFF=`echo "${CFG_KBD_OFF} " | sed "s,${ADRIVER} ,,g"`
6823
    done
6824
6825
    CFG_MOUSE_OFF="$CFG_MOUSE_AVAILABLE"
6826
    for ADRIVER in $CFG_MOUSE_ON; do
6827
        CFG_MOUSE_OFF=`echo "${CFG_MOUSE_OFF} " | sed "s,${ADRIVER} ,,g"`
6828
    done
6829
6830
    for DRIVER in $CFG_GFX_OFF; do
6831
        NODRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6832
        QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_QWS_$NODRIVER"
6833
    done
6834
6835
    for DRIVER in $CFG_KBD_OFF; do
6836
        NODRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6837
        QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_QWS_KBD_$NODRIVER"
6838
    done
6839
6840
    for DRIVER in $CFG_MOUSE_OFF; do
6841
        NODRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6842
        QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_QWS_MOUSE_$NODRIVER"
6843
    done
6844
fi # QWS
6845
6846
if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
6847
    QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
6848
fi
6849
6850
# Add turned on SQL drivers
6851
for DRIVER in $CFG_SQL_AVAILABLE; do
6852
    eval "VAL=\$CFG_SQL_$DRIVER"
6853
    case "$VAL" in
6854
    qt)
6855
        ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6856
        QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
6857
        SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
6858
    ;;
6859
    plugin)
6860
        SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
6861
    ;;
6862
    esac
6863
done
6864
6865
6866
QMakeVar set sql-drivers "$SQL_DRIVERS"
6867
QMakeVar set sql-plugins "$SQL_PLUGINS"
6868
6869
# Add other configuration options to the qconfig.h file
6870
[ "$CFG_GIF" = "yes" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
6871
[ "$CFG_TIFF" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_TIFF"
6872
[ "$CFG_PNG" != "yes" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
6873
[ "$CFG_JPEG" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
6874
[ "$CFG_MNG" != "yes" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_MNG"
6875
[ "$CFG_ZLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
6876
[ "$CFG_EXCEPTIONS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EXCEPTIONS"
6877
[ "$CFG_IPV6" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6"
6878
[ "$CFG_SXE" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SXE"
6879
[ "$CFG_DBUS" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
6880
6881
if [ "$PLATFORM_QWS" != "yes" ]; then
6882
    [ "$CFG_GRAPHICS_SYSTEM" = "raster" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GRAPHICSSYSTEM_RASTER"
6883
    [ "$CFG_GRAPHICS_SYSTEM" = "opengl" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GRAPHICSSYSTEM_OPENGL"
6884
    [ "$CFG_GRAPHICS_SYSTEM" = "openvg" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GRAPHICSSYSTEM_OPENVG"
6885
fi
6886
6887
# X11/Unix/Mac only configs
6888
[ "$CFG_CUPS" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
6889
[ "$CFG_ICONV" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
6890
[ "$CFG_GLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
6891
[ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
6892
[ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
6893
[ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
6894
[ "$CFG_MREMAP" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
6895
[ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
6896
[ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
6897
[ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
6898
[ "$CFG_INOTIFY" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
6899
[ "$CFG_NAS" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NAS"
6900
[ "$CFG_NIS" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
6901
[ "$CFG_OPENSSL" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL"
6902
[ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
6903
6904
[ "$CFG_SM" = "no" ]         && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
6905
[ "$CFG_XCURSOR" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
6906
[ "$CFG_XFIXES" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
6907
[ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
6908
[ "$CFG_XINERAMA" = "no" ]   && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
6909
[ "$CFG_XKB" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
6910
[ "$CFG_XRANDR" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
6911
[ "$CFG_XRENDER" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
6912
[ "$CFG_MITSHM" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
6913
[ "$CFG_XSHAPE" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
6914
[ "$CFG_XSYNC" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
6915
[ "$CFG_XINPUT" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
6916
6917
[ "$CFG_XCURSOR" = "runtime" ]   && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
6918
[ "$CFG_XINERAMA" = "runtime" ]  && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
6919
[ "$CFG_XFIXES" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
6920
[ "$CFG_XRANDR" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
6921
[ "$CFG_XINPUT" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
6922
[ "$CFG_ALSA" = "no" ]           && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
6923
6924
# sort QCONFIG_FLAGS for neatness if we can
6925
[ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
6926
QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
6927
6928
if [ -n "$QCONFIG_FLAGS" ]; then
6929
    for cfg in $QCONFIG_FLAGS; do
6930
        cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
6931
        cfg=`echo $cfg | sed 's/=/ /'`    # turn first '=' into a space
6932
        # figure out define logic, so we can output the correct
6933
        # ifdefs to override the global defines in a project
6934
        cfgdNeg=
6935
        if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
6936
            # QT_NO_option can be forcefully turned on by QT_option
6937
            cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
6938
        elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
6939
            # QT_option can be forcefully turned off by QT_NO_option
6940
            cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
6941
        fi
6942
6943
        if [ -z $cfgdNeg ]; then
6944
cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
6945
#ifndef $cfgd
6946
# define $cfg
6947
#endif
6948
6949
EOF
6950
        else
6951
cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
6952
#if defined($cfgd) && defined($cfgdNeg)
6953
# undef $cfgd
6954
#elif !defined($cfgd) && !defined($cfgdNeg)
6955
# define $cfg
6956
#endif
6957
6958
EOF
6959
        fi
6960
    done
6961
fi
6962
6963
if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
6964
cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
6965
#define QT_VISIBILITY_AVAILABLE
6966
6967
EOF
6968
fi
6969
6970
# avoid unecessary rebuilds by copying only if qconfig.h has changed
6971
if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
6972
    rm -f "$outpath/src/corelib/global/qconfig.h.new"
6973
else
6974
    [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
6975
    mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
6976
    chmod -w "$outpath/src/corelib/global/qconfig.h"
6977
    for conf in "$outpath/include/QtCore/qconfig.h" "$outpath/include/Qt/qconfig.h"; do
6978
        if [ '!' -f "$conf" ]; then
6979
            ln -s "$outpath/src/corelib/global/qconfig.h" "$conf"
6980
        fi
6981
    done
6982
fi
6983
6984
#-------------------------------------------------------------------------------
6985
# save configuration into qconfig.pri
6986
#-------------------------------------------------------------------------------
6987
6988
QTCONFIG="$outpath/mkspecs/qconfig.pri"
6989
QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
6990
[ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
6991
if [ "$CFG_DEBUG" = "yes" ]; then
6992
    QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
6993
    if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6994
        QT_CONFIG="$QT_CONFIG release"
6995
    fi
6996
    QT_CONFIG="$QT_CONFIG debug"
6997
elif [ "$CFG_DEBUG" = "no" ]; then
6998
    QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
6999
    if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
7000
        QT_CONFIG="$QT_CONFIG debug"
7001
    fi
7002
    QT_CONFIG="$QT_CONFIG release"
7003
fi
7004
if [ "$CFG_STL" = "yes" ]; then
7005
    QTCONFIG_CONFIG="$QTCONFIG_CONFIG stl"
7006
fi
7007
if [ "$CFG_FRAMEWORK" = "no" ]; then
7008
    QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
7009
else
7010
    QT_CONFIG="$QT_CONFIG qt_framework"
7011
    QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
7012
fi
7013
if [ "$PLATFORM_MAC" = "yes" ]; then
7014
    QT_CONFIG="$QT_CONFIG $CFG_MAC_ARCHS"
7015
fi
7016
if [ "$CFG_DEV" = "yes" ]; then
7017
    QT_CONFIG="$QT_CONFIG private_tests"
7018
fi
7019
7020
# Make the application arch follow the Qt arch for single arch builds.
7021
# (for multiple-arch builds, set CONFIG manually in the application .pro file)
7022
if [ `echo "$CFG_MAC_ARCHS" | wc -w` -eq 1 ]; then
7023
    QTCONFIG_CONFIG="$QTCONFIG_CONFIG $CFG_MAC_ARCHS"
7024
fi
7025
7026
cat >>"$QTCONFIG.tmp" <<EOF
7027
#configuration
7028
CONFIG += $QTCONFIG_CONFIG
7029
QT_ARCH = $CFG_ARCH
7030
QT_EDITION = $Edition
7031
QT_CONFIG += $QT_CONFIG
7032
7033
#versioning
7034
QT_VERSION = $QT_VERSION
7035
QT_MAJOR_VERSION = $QT_MAJOR_VERSION
7036
QT_MINOR_VERSION = $QT_MINOR_VERSION
7037
QT_PATCH_VERSION = $QT_PATCH_VERSION
7038
7039
#namespaces
7040
QT_LIBINFIX = $QT_LIBINFIX
7041
QT_NAMESPACE = $QT_NAMESPACE
7042
QT_NAMESPACE_MAC_CRC = $QT_NAMESPACE_MAC_CRC
7043
7044
EOF
7045
if [ "$CFG_RPATH" = "yes" ]; then
7046
    echo "QMAKE_RPATHDIR += \"$QT_INSTALL_LIBS\"" >> "$QTCONFIG.tmp"
7047
fi
7048
if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
7049
    echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
7050
    echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
7051
    echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
7052
fi
7053
# replace qconfig.pri if it differs from the newly created temp file
7054
if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
7055
    rm -f "$QTCONFIG.tmp"
7056
else
7057
    mv -f "$QTCONFIG.tmp" "$QTCONFIG"
7058
fi
7059
7060
#-------------------------------------------------------------------------------
7061
# save configuration into .qmake.cache
7062
#-------------------------------------------------------------------------------
7063
7064
CACHEFILE="$outpath/.qmake.cache"
7065
[ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
7066
cat >>"$CACHEFILE.tmp" <<EOF
7067
CONFIG += $QMAKE_CONFIG dylib create_prl link_prl depend_includepath fix_output_dirs QTDIR_build
7068
QT_SOURCE_TREE = \$\$quote($relpath)
7069
QT_BUILD_TREE = \$\$quote($outpath)
7070
QT_BUILD_PARTS = $CFG_BUILD_PARTS
7071
QMAKE_ABSOLUTE_SOURCE_ROOT = \$\$QT_SOURCE_TREE
7072
QMAKE_MOC_SRC    = \$\$QT_BUILD_TREE/src/moc
7073
7074
#local paths that cannot be queried from the QT_INSTALL_* properties while building QTDIR
7075
QMAKE_MOC        = \$\$QT_BUILD_TREE/bin/moc
7076
QMAKE_UIC        = \$\$QT_BUILD_TREE/bin/uic
7077
QMAKE_UIC3       = \$\$QT_BUILD_TREE/bin/uic3
7078
QMAKE_RCC        = \$\$QT_BUILD_TREE/bin/rcc
7079
QMAKE_QDBUSXML2CPP = \$\$QT_BUILD_TREE/bin/qdbusxml2cpp
7080
QMAKE_INCDIR_QT  = \$\$QT_BUILD_TREE/include
7081
QMAKE_LIBDIR_QT  = \$\$QT_BUILD_TREE/lib
7082
7083
EOF
7084
7085
# Ensure we can link to uninistalled libraries
7086
if linkerSupportsFlag -rpath-link "$outpath/lib"; then
7087
    echo "QMAKE_LFLAGS    += -Wl,-rpath-link,\$\$QT_BUILD_TREE/lib" >> "$CACHEFILE.tmp"
7088
fi
7089
7090
if [ -n "$QT_CFLAGS_PSQL" ]; then
7091
    echo "QT_CFLAGS_PSQL   = $QT_CFLAGS_PSQL" >> "$CACHEFILE.tmp"
7092
fi
7093
if [ -n "$QT_LFLAGS_PSQL" ]; then
7094
    echo "QT_LFLAGS_PSQL   = $QT_LFLAGS_PSQL" >> "$CACHEFILE.tmp"
7095
fi
7096
if [ -n "$QT_CFLAGS_MYSQL" ]; then
7097
    echo "QT_CFLAGS_MYSQL   = $QT_CFLAGS_MYSQL" >> "$CACHEFILE.tmp"
7098
fi
7099
if [ -n "$QT_LFLAGS_MYSQL" ]; then
7100
    echo "QT_LFLAGS_MYSQL   = $QT_LFLAGS_MYSQL" >> "$CACHEFILE.tmp"
7101
fi
7102
if [ -n "$QT_CFLAGS_SQLITE" ]; then
7103
    echo "QT_CFLAGS_SQLITE   = $QT_CFLAGS_SQLITE" >> "$CACHEFILE.tmp"
7104
fi
7105
if [ -n "$QT_LFLAGS_SQLITE" ]; then
7106
    echo "QT_LFLAGS_SQLITE   = $QT_LFLAGS_SQLITE" >> "$CACHEFILE.tmp"
7107
fi
7108
if [ -n "$QT_LFLAGS_ODBC" ]; then
7109
    echo "QT_LFLAGS_ODBC   = $QT_LFLAGS_ODBC" >> "$CACHEFILE.tmp"
7110
fi
7111
7112
if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
7113
    echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$CACHEFILE.tmp"
7114
fi
7115
7116
#dump in the OPENSSL_LIBS info
7117
if [ '!' -z "$OPENSSL_LIBS" ]; then
7118
    echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$CACHEFILE.tmp"
7119
elif [ "$CFG_OPENSSL" = "linked" ]; then
7120
    echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$CACHEFILE.tmp"
7121
fi
7122
7123
#dump in the SDK info
7124
if [ '!' -z "$CFG_SDK" ]; then
7125
   echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$CACHEFILE.tmp"
7126
fi
7127
7128
# mac gcc -Xarch support
7129
if [ "$CFG_MAC_XARCH" = "no" ]; then
7130
   echo "QMAKE_MAC_XARCH = no" >> "$CACHEFILE.tmp"
7131
fi
7132
7133
#dump the qmake spec
7134
if [ -d "$outpath/mkspecs/$XPLATFORM" ]; then
7135
   echo "QMAKESPEC = \$\$QT_BUILD_TREE/mkspecs/$XPLATFORM" >> "$CACHEFILE.tmp"
7136
else
7137
   echo "QMAKESPEC = $XPLATFORM" >> "$CACHEFILE.tmp"
7138
fi
7139
7140
# cmdline args
7141
cat "$QMAKE_VARS_FILE" >> "$CACHEFILE.tmp"
7142
rm -f "$QMAKE_VARS_FILE" 2>/dev/null
7143
7144
# incrementals
7145
INCREMENTAL=""
7146
[ "$CFG_INCREMENTAL" = "auto" ] && "$WHICH" p4 >/dev/null 2>&1 && [ "$CFG_DEV" = "yes" ] && CFG_INCREMENTAL="yes"
7147
if [ "$CFG_INCREMENTAL" = "yes" ]; then
7148
    find "$relpath" -perm u+w -mtime -3 | grep 'cpp$' | while read f; do
7149
        # don't need to worry about generated files
7150
        [ -r `echo $f | sed "s,cpp$,ui,"` ] && continue
7151
        basename "$f" | grep '^moc_' >/dev/null 2>&1 && continue
7152
        # done
7153
        INCREMENTAL="$INCREMENTAL `basename \"$f\" | sed 's,.cpp,.o,'`"
7154
    done
7155
    [ '!' -z "$INCREMENTAL" ] && echo "QMAKE_INCREMENTAL += $INCREMENTAL" >> "$CACHEFILE.tmp"
7156
    [ -r "$outpath/.qmake.incremental" ] && echo "include($outpath/.qmake.incremental)" >> "$CACHEFILE.tmp"
7157
fi
7158
7159
# replace .qmake.cache if it differs from the newly created temp file
7160
if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
7161
    rm -f "$CACHEFILE.tmp"
7162
else
7163
    mv -f "$CACHEFILE.tmp" "$CACHEFILE"
7164
fi
7165
7166
#-------------------------------------------------------------------------------
7167
# give feedback on configuration
7168
#-------------------------------------------------------------------------------
7169
7170
case "$COMPILER" in
7171
g++*)
7172
    if [ "$CFG_EXCEPTIONS" != "no" ]; then
7173
        cat <<EOF
7174
7175
        This target is using the GNU C++ compiler ($PLATFORM).
7176
7177
        Recent versions of this compiler automatically include code for
7178
        exceptions, which increase both the size of the Qt libraries and
7179
        the amount of memory taken by your applications.
7180
7181
        You may choose to re-run `basename $0` with the -no-exceptions
7182
        option to compile Qt without exceptions. This is completely binary
7183
        compatible, and existing applications will continue to work.
7184
7185
EOF
7186
    fi
7187
    ;;
7188
cc*)
7189
    case "$PLATFORM" in
7190
    irix-cc*)
7191
        if [ "$CFG_EXCEPTIONS" != "no" ]; then
7192
            cat <<EOF
7193
7194
        This target is using the MIPSpro C++ compiler ($PLATFORM).
7195
7196
        You may choose to re-run `basename $0` with the -no-exceptions
7197
        option to compile Qt without exceptions. This will make the
7198
        size of the Qt library smaller and reduce the amount of memory
7199
        taken by your applications.
7200
7201
EOF
7202
        fi
7203
        ;;
7204
    *) ;;
7205
    esac
7206
    ;;
7207
*) ;;
7208
esac
7209
7210
if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_DWARF2" = "no" ]  && [ "$CFG_WEBKIT" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
7211
    cat <<EOF
7212
        WARNING: DWARF2 debug symbols are not enabled. Linking webkit
7213
        in debug mode will run out of memory on systems with 2GB or less.
7214
        Install Xcode 2.4.1 or higher to enable DWARF2, or configure with
7215
         -no-webkit or -release to skip webkit debug.
7216
EOF
7217
fi
7218
7219
echo
7220
if [ "$XPLATFORM" = "$PLATFORM" ]; then
7221
    echo "Build type:    $PLATFORM"
7222
else
7223
    echo "Building on:   $PLATFORM"
7224
    echo "Building for:  $XPLATFORM"
7225
fi
7226
7227
if [ "$PLATFORM_MAC" = "yes" ]; then
7228
    echo "Architecture:  $CFG_ARCH ($CFG_MAC_ARCHS )"
7229
else
7230
    echo "Architecture:  $CFG_ARCH"
7231
fi
7232
7233
if [ "$PLATFORM_QWS" = "yes" ]; then
7234
    echo "Host architecture: $CFG_HOST_ARCH"
7235
fi
7236
7237
if [ "$PLATFORM_MAC" = "yes" ]; then
7238
    if [ "$CFG_MAC_COCOA" = "yes" ]; then
7239
        if [ "$CFG_MAC_CARBON" = "yes" ]; then
7240
            echo "Using framework: Carbon for 32-bit, Cocoa for 64-bit"
7241
        else
7242
            echo "Using framework: Cocoa"
7243
        fi
7244
    else
7245
        echo "Using framework: Carbon"
7246
    fi
7247
fi
7248
7249
if [ -n "$PLATFORM_NOTES" ]; then
7250
    echo "Platform notes:"
7251
    echo "$PLATFORM_NOTES"
7252
else
7253
    echo
7254
fi
7255
7256
if [ "$OPT_VERBOSE" = "yes" ]; then
7257
    if echo '\c' | grep '\c' >/dev/null; then
7258
        echo -n "qmake vars .......... "
7259
    else
7260
        echo "qmake vars .......... \c"
7261
    fi
7262
    cat "$QMAKE_VARS_FILE" | tr '\n' ' '
7263
    echo "qmake switches ...... $QMAKE_SWITCHES"
7264
fi
7265
7266
[ "$CFG_INCREMENTAL" = "yes" ] && [ '!' -z "$INCREMENTAL" ] && echo "Incremental ......... $INCREMENTAL"
7267
echo "Build ............... $CFG_BUILD_PARTS"
7268
echo "Configuration ....... $QMAKE_CONFIG $QT_CONFIG"
7269
if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
7270
   echo "Debug ............... yes (combined)"
7271
   if [ "$CFG_DEBUG" = "yes" ]; then
7272
       echo "Default Link ........ debug"
7273
   else
7274
       echo "Default Link ........ release"
7275
   fi
7276
else
7277
   echo "Debug ............... $CFG_DEBUG"
7278
fi
7279
echo "Qt 3 compatibility .. $CFG_QT3SUPPORT"
7280
[ "$CFG_DBUS" = "no" ]     && echo "QtDBus module ....... no"
7281
[ "$CFG_DBUS" = "yes" ]    && echo "QtDBus module ....... yes (run-time)"
7282
[ "$CFG_DBUS" = "linked" ] && echo "QtDBus module ....... yes (linked)"
7283
echo "QtConcurrent code.... $CFG_CONCURRENT"
7284
echo "QtScript module ..... $CFG_SCRIPT"
7285
echo "QtScriptTools module  $CFG_SCRIPTTOOLS"
7286
echo "QtXmlPatterns module  $CFG_XMLPATTERNS"
7287
echo "Phonon module ....... $CFG_PHONON"
7288
echo "Multimedia module ... $CFG_MULTIMEDIA"
7289
echo "SVG module .......... $CFG_SVG"
7290
echo "WebKit module ....... $CFG_WEBKIT"
7291
if [ "$CFG_WEBKIT" = "yes" ]; then 
7292
    if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
7293
        echo "JavaScriptCore JIT .. To be decided by JavaScriptCore"
7294
    else
7295
        echo "JavaScriptCore JIT .. $CFG_JAVASCRIPTCORE_JIT"
7296
    fi
7297
fi
7298
echo "STL support ......... $CFG_STL"
7299
echo "PCH support ......... $CFG_PRECOMPILE"
7300
echo "MMX/3DNOW/SSE/SSE2..  ${CFG_MMX}/${CFG_3DNOW}/${CFG_SSE}/${CFG_SSE2}"
7301
if [ "${CFG_ARCH}" = "arm" ]; then
7302
    echo "iWMMXt support ...... ${CFG_IWMMXT}"
7303
fi
7304
[ "${PLATFORM_QWS}" != "yes" ] && echo "Graphics System ..... $CFG_GRAPHICS_SYSTEM"
7305
echo "IPv6 support ........ $CFG_IPV6"
7306
echo "IPv6 ifname support . $CFG_IPV6IFNAME"
7307
echo "getaddrinfo support . $CFG_GETADDRINFO"
7308
echo "getifaddrs support .. $CFG_GETIFADDRS"
7309
echo "Accessibility ....... $CFG_ACCESSIBILITY"
7310
echo "NIS support ......... $CFG_NIS"
7311
echo "CUPS support ........ $CFG_CUPS"
7312
echo "Iconv support ....... $CFG_ICONV"
7313
echo "Glib support ........ $CFG_GLIB"
7314
echo "GStreamer support ... $CFG_GSTREAMER"
7315
echo "Large File support .. $CFG_LARGEFILE"
7316
echo "GIF support ......... $CFG_GIF"
7317
if [ "$CFG_TIFF" = "no" ]; then
7318
    echo "TIFF support ........ $CFG_TIFF"
7319
else
7320
    echo "TIFF support ........ $CFG_TIFF ($CFG_LIBTIFF)"
7321
fi
7322
if [ "$CFG_JPEG" = "no" ]; then
7323
    echo "JPEG support ........ $CFG_JPEG"
7324
else
7325
    echo "JPEG support ........ $CFG_JPEG ($CFG_LIBJPEG)"
7326
fi
7327
if [ "$CFG_PNG" = "no" ]; then
7328
    echo "PNG support ......... $CFG_PNG"
7329
else
7330
    echo "PNG support ......... $CFG_PNG ($CFG_LIBPNG)"
7331
fi
7332
if [ "$CFG_MNG" = "no" ]; then
7333
    echo "MNG support ......... $CFG_MNG"
7334
else
7335
    echo "MNG support ......... $CFG_MNG ($CFG_LIBMNG)"
7336
fi
7337
echo "zlib support ........ $CFG_ZLIB"
7338
echo "Session management .. $CFG_SM"
7339
if [ "$PLATFORM_QWS" = "yes" ]; then
7340
    echo "Embedded support .... $CFG_EMBEDDED"
7341
    if [ "$CFG_QWS_FREETYPE" = "auto" ]; then
7342
	echo "Freetype2 support ... $CFG_QWS_FREETYPE ($CFG_LIBFREETYPE)"
7343
    else
7344
	echo "Freetype2 support ... $CFG_QWS_FREETYPE"
7345
    fi
7346
    # Normalize the decoration output first
7347
    CFG_GFX_ON=`echo ${CFG_GFX_ON}`
7348
    CFG_GFX_PLUGIN=`echo ${CFG_GFX_PLUGIN}`
7349
    echo "Graphics (qt) ....... ${CFG_GFX_ON}"
7350
    echo "Graphics (plugin) ... ${CFG_GFX_PLUGIN}"
7351
    CFG_DECORATION_ON=`echo ${CFG_DECORATION_ON}`
7352
    CFG_DECORATION_PLUGIN=`echo ${CFG_DECORATION_PLUGIN}`
7353
    echo "Decorations (qt) .... $CFG_DECORATION_ON"
7354
    echo "Decorations (plugin)  $CFG_DECORATION_PLUGIN"
7355
    CFG_KBD_ON=`echo ${CFG_KBD_ON}`
7356
    CFG_KBD_PLUGIN=`echo ${CFG_KBD_PLUGIN}`
7357
    echo "Keyboard driver (qt). ${CFG_KBD_ON}"
7358
    echo "Keyboard driver (plugin) ${CFG_KBD_PLUGIN}"
7359
    CFG_MOUSE_ON=`echo ${CFG_MOUSE_ON}`
7360
    CFG_MOUSE_PLUGIN=`echo ${CFG_MOUSE_PLUGIN}`
7361
    echo "Mouse driver (qt) ... $CFG_MOUSE_ON"
7362
    echo "Mouse driver (plugin) $CFG_MOUSE_PLUGIN"
7363
fi
7364
if [ "$CFG_OPENGL" = "desktop" ]; then
7365
    echo "OpenGL support ...... yes (Desktop OpenGL)"
7366
elif [ "$CFG_OPENGL" = "es1" ]; then
7367
    echo "OpenGL support ...... yes (OpenGL ES 1.x Common profile)"
7368
elif [ "$CFG_OPENGL" = "es1cl" ]; then
7369
    echo "OpenGL support ...... yes (OpenGL ES 1.x Common Lite profile)"
7370
elif [ "$CFG_OPENGL" = "es2" ]; then
7371
    echo "OpenGL support ...... yes (OpenGL ES 2.x)"
7372
else
7373
    echo "OpenGL support ...... no"
7374
fi
7375
if [ "$CFG_EGL" != "no" ]; then
7376
    if [ "$CFG_EGL_GLES_INCLUDES" != "no" ]; then
7377
        echo "EGL support ......... yes <GLES/egl.h>"
7378
    else
7379
        echo "EGL support ......... yes <EGL/egl.h>"
7380
    fi
7381
fi
7382
if [ "$CFG_OPENVG" ]; then
7383
    if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
7384
        echo "OpenVG support ...... ShivaVG"
7385
    else
7386
        echo "OpenVG support ...... $CFG_OPENVG"
7387
    fi
7388
fi
7389
if [ "$PLATFORM_X11" = "yes" ]; then
7390
    echo "NAS sound support ... $CFG_NAS"
7391
    echo "XShape support ...... $CFG_XSHAPE"
7392
    echo "XSync support ....... $CFG_XSYNC"
7393
    echo "Xinerama support .... $CFG_XINERAMA"
7394
    echo "Xcursor support ..... $CFG_XCURSOR"
7395
    echo "Xfixes support ...... $CFG_XFIXES"
7396
    echo "Xrandr support ...... $CFG_XRANDR"
7397
    echo "Xrender support ..... $CFG_XRENDER"
7398
    echo "Xi support .......... $CFG_XINPUT"
7399
    echo "MIT-SHM support ..... $CFG_MITSHM"
7400
    echo "FontConfig support .. $CFG_FONTCONFIG"
7401
    echo "XKB Support ......... $CFG_XKB"
7402
    echo "immodule support .... $CFG_IM"
7403
    echo "GTK theme support ... $CFG_QGTKSTYLE"
7404
fi
7405
[ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support ....... $CFG_SQL_mysql"
7406
[ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support .. $CFG_SQL_psql"
7407
[ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........ $CFG_SQL_odbc"
7408
[ "$CFG_SQL_oci" != "no" ] && echo "OCI support ......... $CFG_SQL_oci"
7409
[ "$CFG_SQL_tds" != "no" ] && echo "TDS support ......... $CFG_SQL_tds"
7410
[ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ......... $CFG_SQL_db2"
7411
[ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ... $CFG_SQL_ibase"
7412
[ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support .... $CFG_SQL_sqlite2"
7413
[ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ...... $CFG_SQL_sqlite ($CFG_SQLITE)"
7414
7415
OPENSSL_LINKAGE=""
7416
if [ "$CFG_OPENSSL" = "yes" ]; then
7417
    OPENSSL_LINKAGE="(run-time)"
7418
elif [ "$CFG_OPENSSL" = "linked" ]; then
7419
    OPENSSL_LINKAGE="(linked)"
7420
fi
7421
echo "OpenSSL support ..... $CFG_OPENSSL $OPENSSL_LINKAGE"
7422
7423
[ "$CFG_PTMALLOC" != "no" ] && echo "Use ptmalloc ........ $CFG_PTMALLOC"
7424
7425
# complain about not being able to use dynamic plugins if we are using a static build
7426
if [ "$CFG_SHARED" = "no" ]; then
7427
    echo
7428
    echo "WARNING: Using static linking will disable the use of dynamically"
7429
    echo "loaded plugins. Make sure to import all needed static plugins,"
7430
    echo "or compile needed modules into the library."
7431
    echo
7432
fi
7433
if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
7434
    echo
7435
    echo "NOTE: When linking against OpenSSL, you can override the default"
7436
    echo "library names through OPENSSL_LIBS."
7437
    echo "For example:"
7438
    echo "    ./configure -openssl-linked OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto'"
7439
    echo
7440
fi
7441
if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
7442
    echo
7443
    echo "NOTE: Mac OS X frameworks implicitly build debug and release Qt libraries."
7444
    echo
7445
fi
7446
echo "alsa support ........ $CFG_ALSA"
7447
echo
7448
7449
sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
7450
PROCS=1
7451
EXEC=""
7452
7453
7454
#-------------------------------------------------------------------------------
7455
# build makefiles based on the configuration
7456
#-------------------------------------------------------------------------------
7457
7458
echo "Finding project files. Please wait..."
7459
"$outpath/bin/qmake" -prl -r "${relpath}/projects.pro"
7460
if [ -f "${relpath}/projects.pro" ]; then
7461
    mkfile="${outpath}/Makefile"
7462
    [ -f "$mkfile" ] && chmod +w "$mkfile"
7463
    QTDIR="$outpath" "$outpath/bin/qmake" -spec "$XQMAKESPEC" "${relpath}/projects.pro" -o "$mkfile"
7464
fi
7465
7466
# .projects      -> projects to process
7467
# .projects.1    -> qt and moc
7468
# .projects.2    -> subdirs and libs
7469
# .projects.3    -> the rest
7470
rm -f .projects .projects.1 .projects.2 .projects.3
7471
7472
QMAKE_PROJECTS=`find "$relpath/." -name '*.pro' -print | sed 's-/\./-/-'`
7473
if [ -z "$AWK" ]; then
7474
    for p in `echo $QMAKE_PROJECTS`; do
7475
        echo "$p" >> .projects
7476
    done
7477
else
7478
    cat >projects.awk <<EOF
7479
BEGIN {
7480
    files = 0
7481
    target_file = ""
7482
    input_file = ""
7483
7484
    first = "./.projects.1.tmp"
7485
    second = "./.projects.2.tmp"
7486
    third = "./.projects.3.tmp"
7487
}
7488
7489
FNR == 1 {
7490
    if ( input_file ) {
7491
        if ( ! target_file )
7492
            target_file = third
7493
        print input_file >target_file
7494
    }
7495
7496
    matched_target = 0
7497
    template_lib = 0
7498
    input_file = FILENAME
7499
    target_file = ""
7500
}
7501
7502
/^(TARGET.*=)/ {
7503
    if ( \$3 == "moc" || \$3 ~ /^Qt/ ) {
7504
        target_file = first
7505
        matched_target = 1
7506
    }
7507
}
7508
7509
matched_target == 0 && /^(TEMPLATE.*=)/ {
7510
    if ( \$3 == "subdirs" )
7511
        target_file = second
7512
    else if ( \$3 == "lib" )
7513
        template_lib = 1
7514
    else
7515
        target_file = third
7516
}
7517
7518
matched_target == 0 && template_lib == 1 && /^(CONFIG.*=)/ {
7519
    if ( \$0 ~ /plugin/ )
7520
        target_file = third
7521
    else
7522
        target_file = second
7523
}
7524
7525
END {
7526
    if ( input_file ) {
7527
        if ( ! target_file )
7528
            target_file = third
7529
        print input_file >>target_file
7530
    }
7531
}
7532
7533
EOF
7534
7535
    rm -f .projects.all
7536
    for p in `echo $QMAKE_PROJECTS`; do
7537
       echo "$p" >> .projects.all
7538
    done
7539
7540
    # if you get errors about the length of the command line to awk, change the -l arg
7541
    # to split below
7542
    split -l 100 .projects.all .projects.all.
7543
    for p in .projects.all.*; do
7544
       "$AWK" -f projects.awk `cat $p`
7545
       [ -f .projects.1.tmp ] && cat .projects.1.tmp >> .projects.1
7546
       [ -f .projects.2.tmp ] && cat .projects.2.tmp >> .projects.2
7547
       [ -f .projects.3.tmp ] && cat .projects.3.tmp >> .projects.3
7548
       rm -f .projects.1.tmp .projects.2.tmp .projects.3.tmp $p
7549
    done
7550
    rm -f .projects.all* projects.awk
7551
7552
    [ -f .projects.1 ] && cat .projects.1 >>.projects
7553
    [ -f .projects.2 ] && cat .projects.2 >>.projects
7554
    rm -f .projects.1 .projects.2
7555
    if [ -f .projects.3 ] && [ "$OPT_FAST" = "no" ]; then
7556
       cat .projects.3 >>.projects
7557
       rm -f .projects.3
7558
    fi
7559
fi
7560
# don't sort Qt and MOC in with the other project files
7561
# also work around a segfaulting uniq(1)
7562
if [ -f .sorted.projects.2 ]; then
7563
    sort .sorted.projects.2 > .sorted.projects.2.new
7564
    mv -f .sorted.projects.2.new .sorted.projects.2
7565
    cat .sorted.projects.2 >> .sorted.projects.1
7566
fi
7567
[ -f .sorted.projects.1 ] && sort .sorted.projects.1 >> .sorted.projects
7568
rm -f .sorted.projects.2 .sorted.projects.1
7569
7570
NORM_PROJECTS=0
7571
FAST_PROJECTS=0
7572
if [ -f .projects ]; then
7573
   uniq .projects >.tmp
7574
   mv -f .tmp .projects
7575
   NORM_PROJECTS=`cat .projects | wc -l | sed -e "s, ,,g"`
7576
fi
7577
if [ -f .projects.3 ]; then
7578
   uniq .projects.3 >.tmp
7579
   mv -f .tmp .projects.3
7580
   FAST_PROJECTS=`cat .projects.3 | wc -l | sed -e "s, ,,g"`
7581
fi
7582
echo "  `expr $NORM_PROJECTS + $FAST_PROJECTS` projects found."
7583
echo
7584
7585
PART_ROOTS=
7586
for part in $CFG_BUILD_PARTS; do
7587
    case "$part" in
7588
    tools) PART_ROOTS="$PART_ROOTS tools" ;;
7589
    libs) PART_ROOTS="$PART_ROOTS src" ;;
7590
    examples) PART_ROOTS="$PART_ROOTS examples demos" ;;
7591
    *) ;;
7592
    esac
7593
done
7594
7595
if [ "$CFG_DEV" = "yes" ]; then
7596
    PART_ROOTS="$PART_ROOTS tests"
7597
fi
7598
7599
echo "Creating makefiles. Please wait..."
7600
for file in .projects .projects.3; do
7601
    [ '!' -f "$file" ] && continue
7602
    for a in `cat $file`; do
7603
        IN_ROOT=no
7604
	for r in $PART_ROOTS; do
7605
	    if echo "$a" | grep "^$r" >/dev/null 2>&1 || echo "$a" | grep "^$relpath/$r" >/dev/null 2>&1; then
7606
		IN_ROOT=yes
7607
		break
7608
            fi
7609
	done
7610
        [ "$IN_ROOT" = "no" ] && continue
7611
7612
        case $a in
7613
        *winmain/winmain.pro) continue ;;
7614
        *s60main/s60main.pro) continue ;;
7615
        *examples/activeqt/*) continue ;;
7616
        */qmake/qmake.pro) continue ;;
7617
        *tools/bootstrap*|*tools/moc*|*tools/rcc*|*tools/uic*) SPEC=$QMAKESPEC ;;
7618
        *) SPEC=$XQMAKESPEC ;;
7619
        esac
7620
        dir=`dirname "$a" | sed -e "s;$sepath;.;g"`
7621
        test -d "$dir" || mkdir -p "$dir"
7622
        OUTDIR="$outpath/$dir"
7623
        if [ -f "${OUTDIR}/Makefile" ] && [ "$OPT_FAST" = "yes" ]; then
7624
            # fast configure - the makefile exists, skip it
7625
            # since the makefile exists, it was generated by qmake, which means we
7626
            # can skip it, since qmake has a rule to regenerate the makefile if the .pro
7627
            # file changes...
7628
            [ "$OPT_VERBOSE" = "yes" ] && echo "  skipping $a"
7629
            continue;
7630
        fi
7631
        QMAKE_SPEC_ARGS="-spec $SPEC"
7632
        if echo '\c' | grep '\c' >/dev/null; then
7633
            echo -n "  for $a"
7634
        else
7635
            echo "  for $a\c"
7636
        fi
7637
7638
        QMAKE="$outpath/bin/qmake"
7639
	QMAKE_ARGS="$QMAKE_SWITCHES $QMAKE_SPEC_ARGS"
7640
        if [ "$file" = ".projects.3" ]; then
7641
            if echo '\c' | grep '\c' >/dev/null; then
7642
                echo -n " (fast)"
7643
            else
7644
                echo " (fast)\c"
7645
            fi
7646
            echo
7647
7648
            cat >"${OUTDIR}/Makefile" <<EOF
7649
# ${OUTDIR}/Makefile: generated by configure
7650
#
7651
# WARNING: This makefile will be replaced with a real makefile.
7652
# All changes made to this file will be lost.
7653
EOF
7654
            [ "$CFG_DEBUG_RELEASE" = "no" ] && echo "first_target: first" >>${OUTDIR}/Makefile
7655
7656
            cat >>"${OUTDIR}/Makefile" <<EOF
7657
QMAKE = "$QMAKE"
7658
all clean install qmake first Makefile: FORCE
7659
	\$(QMAKE) $QMAKE_ARGS -o "$OUTDIR" "$a"
7660
	cd "$OUTDIR"
7661
	\$(MAKE) \$@
7662
7663
FORCE:
7664
7665
EOF
7666
        else
7667
            if [ "$OPT_VERBOSE" = "yes" ]; then
7668
                echo " (`basename $SPEC`)"
7669
                echo "$QMAKE" $QMAKE_ARGS -o "$OUTDIR" "$a"
7670
	    else
7671
		echo
7672
            fi
7673
7674
            [ -f "${OUTDIR}/Makefile" ] && chmod +w "${OUTDIR}/Makefile"
7675
            QTDIR="$outpath" "$QMAKE" $QMAKE_ARGS -o "$OUTDIR" "$a"
7676
       fi
7677
    done
7678
done
7679
rm -f .projects .projects.3
7680
7681
#-------------------------------------------------------------------------------
7682
# XShape is important, DnD in the Designer doens't work without it
7683
#-------------------------------------------------------------------------------
7684
if [ "$PLATFORM_X11" = "yes" ] && [ "$CFG_XSHAPE" = "no" ]; then
7685
    cat <<EOF
7686
7687
	NOTICE: Qt will not be built with XShape support.
7688
7689
	As a result, drag-and-drop in the Qt Designer will NOT
7690
	work. We recommend that you enable XShape support by passing
7691
	the -xshape switch to $0.
7692
EOF
7693
fi
7694
7695
#-------------------------------------------------------------------------------
7696
# check for platforms that we don't yet know about
7697
#-------------------------------------------------------------------------------
7698
if [ "$CFG_ARCH" = "generic" ]; then
7699
cat <<EOF
7700
7701
        NOTICE: Atomic operations are not yet supported for this
7702
        architecture.
7703
7704
        Qt will use the 'generic' architecture instead, which uses a
7705
        single pthread_mutex_t to protect all atomic operations. This
7706
        implementation is the slow (but safe) fallback implementation
7707
        for architectures Qt does not yet support.
7708
EOF
7709
fi
7710
7711
#-------------------------------------------------------------------------------
7712
# check if the user passed the -no-zlib option, which is no longer supported
7713
#-------------------------------------------------------------------------------
7714
if [ -n "$ZLIB_FORCED" ]; then
7715
    which_zlib="supplied"
7716
    if [ "$CFG_ZLIB" = "system" ]; then
7717
	which_zlib="system"
7718
    fi
7719
7720
cat <<EOF
7721
7722
        NOTICE: The -no-zlib option was supplied but is no longer
7723
        supported.
7724
7725
        Qt now requires zlib support in all builds, so the -no-zlib
7726
        option was ignored. Qt will be built using the $which_zlib
7727
        zlib.
7728
EOF
7729
fi
7730
7731
#-------------------------------------------------------------------------------
7732
# finally save the executed command to another script
7733
#-------------------------------------------------------------------------------
7734
if [ `basename $0` != "config.status" ]; then
7735
    CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
7736
7737
    # add the system variables
7738
    for varname in $SYSTEM_VARIABLES; do
7739
        cmd=`echo \
7740
'if [ -n "\$'${varname}'" ]; then
7741
    CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
7742
fi'`
7743
	eval "$cmd"
7744
    done
7745
7746
    echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
7747
7748
    [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
7749
    echo "#!/bin/sh" > "$outpath/config.status"
7750
    echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
7751
    echo "  $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
7752
    echo "else" >> "$outpath/config.status"
7753
    echo "  $CONFIG_STATUS" >> "$outpath/config.status"
7754
    echo "fi" >> "$outpath/config.status"
7755
    chmod +x "$outpath/config.status"
7756
fi
7757
7758
if [ -n "$RPATH_MESSAGE" ]; then
7759
    echo
7760
    echo "$RPATH_MESSAGE"
7761
fi
7762
7763
MAKE=`basename "$MAKE"`
7764
echo
7765
echo Qt is now configured for building. Just run \'$MAKE\'.
7766
if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
7767
    echo Once everything is built, Qt is installed.
7768
    echo You should not run \'$MAKE install\'.
7769
else
7770
    echo Once everything is built, you must run \'$MAKE install\'.
7771
    echo Qt will be installed into $QT_INSTALL_PREFIX
7772
fi
7773
echo
7774
echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.
7775
echo