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