Fixed import of WebKit trunk
[qt-netbsd.git] / configure
blobc30d70d6a460c9acd234de5b51907b809edfbdcf
1 #!/bin/sh
3 # Configures to build the Qt library
5 # Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
6 # Contact: Qt Software Information (qt-info@nokia.com)
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.
12 #-------------------------------------------------------------------------------
13 # script initialization
14 #-------------------------------------------------------------------------------
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`
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"
32 # later cache the command line in config.status
33 OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
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
44 :> "$QMAKE_VARS_FILE"
46 #-------------------------------------------------------------------------------
47 # utility functions
48 #-------------------------------------------------------------------------------
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()
55 case "$1" in
56 set)
57 eq="="
59 add)
60 eq="+="
62 del)
63 eq="-="
66 echo >&2 "BUG: wrong command to QMakeVar: $1"
68 esac
70 echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
73 # relies on $QMAKESPEC being set correctly. parses include statements in
74 # qmake.conf and prints out the expanded file
75 getQMakeConf()
77 tmpSPEC="$QMAKESPEC"
78 if [ -n "$1" ]; then
79 tmpSPEC="$1"
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
89 { print }' "$tmpSPEC/qmake.conf"
92 #-------------------------------------------------------------------------------
93 # operating system detection
94 #-------------------------------------------------------------------------------
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
103 #-------------------------------------------------------------------------------
104 # window system detection
105 #-------------------------------------------------------------------------------
107 PLATFORM_X11=no
108 PLATFORM_MAC=no
109 PLATFORM_QWS=no
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
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"
149 if [ -z "$QT_MAJOR_VERSION" ]; then
150 echo "Cannot process version from qglobal.h: $QT_VERSION"
151 echo "Cannot proceed."
152 exit 1
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
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
171 earlyArgParse()
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
183 --disable-*)
184 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
185 VAL=no
187 --*=*)
188 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
189 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
191 --no-*)
192 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
193 VAL=no
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
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
214 --*)
215 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
216 VAL=yes
219 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
220 VAL="unknown"
223 UNKNOWN_ARG=yes
225 esac
226 if [ "$UNKNOWN_ARG" = "yes" ]; then
227 shift
228 continue
230 shift
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
242 else
243 echo "No license exists to enable Qt for Embedded Linux. Disabling."
244 CFG_EMBEDDED=no
247 developer-build)
248 CFG_DEV="yes"
250 nokia-developer)
251 CFG_DEV="yes"
252 CFG_NOKIA="yes"
253 COMMERCIAL_USER="no"
255 commercial)
256 COMMERCIAL_USER="yes"
258 opensource)
259 COMMERCIAL_USER="no"
262 UNKNOWN_OPT=yes
264 esac
265 done
268 earlyArgParse "$@"
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 else [ "$commercial" = "o" ];
283 COMMERCIAL_USER="no"
284 break
286 done
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
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
319 if [ -z "$Licensee" ]; then
320 echo
321 echo "Invalid license key. Please check the license key."
322 exit 1
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"
332 read LicenseKeyExt
333 Licensee="Unknown user"
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
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`
351 # determine which edition we are licensed to use
352 case "$LicenseTypeCode" in
353 F4M)
354 LicenseType="Commercial"
355 case $ProductCode in
357 Edition="Universal"
358 QT_EDITION="QT_EDITION_UNIVERSAL"
361 Edition="FullFramework"
362 EditionString="Full Framework"
363 QT_EDITION="QT_EDITION_DESKTOP"
366 Edition="GUIFramework"
367 EditionString="GUI Framework"
368 QT_EDITION="QT_EDITION_DESKTOPLIGHT"
370 esac
372 Z4M|R4M|Q4M)
373 LicenseType="Evaluation"
374 case $ProductCode in
376 Edition="Evaluation"
377 QT_EDITION="QT_EDITION_EVALUATION"
379 esac
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
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"
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
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"
415 3|6|8|A|D|H|J|K|P|Q|S|V)
416 # Embedded no-deploy
417 LICENSE_EXTENSION="-EMBEDDED"
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
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"
434 6|8|9|A|B|C|G|H|K|P|U|W)
435 # Embedded no-deploy
436 LICENSE_EXTENSION="-EMBEDDED"
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
447 esac
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
458 *TECHNOLOGY?PREVIEW*)
459 Edition=Preview
461 *EVALUATION*)
462 Edition=Evaluation
465 echo >&2 "Invalid license files; cannot continue"
466 exit 1
468 esac
469 Licensee="$Edition"
470 EditionString="$Edition"
471 QT_EDITION="QT_EDITION_DESKTOP"
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"
481 Evaluation)
482 cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
484 esac
486 2|5)
487 # non-US
488 case "$LicenseType" in
489 Commercial)
490 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
492 Evaluation)
493 cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
495 esac
498 echo
499 echo "Invalid license key. Please check the license key."
500 exit 1
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
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"
521 #-------------------------------------------------------------------------------
522 # initalize variables
523 #-------------------------------------------------------------------------------
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"
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"
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"
549 if [ "$CFG_DEV" = "yes" ]; then
550 QMakeVar add kbd-drivers "um"
553 # QTDIR may be set and point to an old or system-wide Qt installation
554 unset QTDIR
556 # the minimum version of libdbus-1 that we require:
557 MIN_DBUS_1_VERSION=0.62
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)
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 linuxinput 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
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 CFG_MAC_DWARF2=auto
672 CFG_MAC_XARCH=auto
673 CFG_MAC_CARBON=yes
674 CFG_MAC_COCOA=auto
675 COMMANDLINE_MAC_COCOA=no
676 CFG_SXE=no
677 CFG_PREFIX_INSTALL=yes
678 CFG_SDK=
679 D_FLAGS=
680 I_FLAGS=
681 L_FLAGS=
682 RPATH_FLAGS=
683 l_FLAGS=
684 QCONFIG_FLAGS=
685 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
686 PLATFORM=$QMAKESPEC
687 QT_CROSS_COMPILE=no
688 OPT_CONFIRM_LICENSE=no
689 OPT_SHADOW=maybe
690 OPT_FAST=auto
691 OPT_VERBOSE=no
692 OPT_HELP=
693 CFG_SILENT=no
694 CFG_GRAPHICS_SYSTEM=default
696 # initalize variables used for installation
697 QT_INSTALL_PREFIX=
698 QT_INSTALL_DOCS=
699 QT_INSTALL_HEADERS=
700 QT_INSTALL_LIBS=
701 QT_INSTALL_BINS=
702 QT_INSTALL_PLUGINS=
703 QT_INSTALL_DATA=
704 QT_INSTALL_TRANSLATIONS=
705 QT_INSTALL_SETTINGS=
706 QT_INSTALL_EXAMPLES=
707 QT_INSTALL_DEMOS=
708 QT_HOST_PREFIX=
710 #flags for SQL drivers
711 QT_CFLAGS_PSQL=
712 QT_LFLAGS_PSQL=
713 QT_CFLAGS_MYSQL=
714 QT_LFLAGS_MYSQL=
715 QT_LFLAGS_MYSQL_R=
716 QT_CFLAGS_SQLITE=
717 QT_LFLAGS_SQLITE=
719 # flags for libdbus-1
720 QT_CFLAGS_DBUS=
721 QT_LIBS_DBUS=
723 # flags for Glib (X11 only)
724 QT_CFLAGS_GLIB=
725 QT_LIBS_GLIB=
727 # flags for GStreamer (X11 only)
728 QT_CFLAGS_GSTREAMER=
729 QT_LIBS_GSTREAMER=
731 #-------------------------------------------------------------------------------
732 # check SQL drivers, mouse drivers and decorations available in this package
733 #-------------------------------------------------------------------------------
735 # opensource version removes some drivers, so force them to be off
736 CFG_SQL_tds=no
737 CFG_SQL_oci=no
738 CFG_SQL_db2=no
740 CFG_SQL_AVAILABLE=
741 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
742 for a in "$relpath/src/plugins/sqldrivers/"*; do
743 if [ -d "$a" ]; then
744 base_a=`basename "$a"`
745 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
746 eval "CFG_SQL_${base_a}=auto"
748 done
751 CFG_DECORATION_PLUGIN_AVAILABLE=
752 if [ -d "$relpath/src/plugins/decorations" ]; then
753 for a in "$relpath/src/plugins/decorations/"*; do
754 if [ -d "$a" ]; then
755 base_a=`basename "$a"`
756 CFG_DECORATION_PLUGIN_AVAILABLE="${CFG_DECORATION_PLUGIN_AVAILABLE} ${base_a}"
758 done
761 CFG_KBD_PLUGIN_AVAILABLE=
762 if [ -d "$relpath/src/plugins/kbddrivers" ]; then
763 for a in "$relpath/src/plugins/kbddrivers/"*; do
764 if [ -d "$a" ]; then
765 base_a=`basename "$a"`
766 CFG_KBD_PLUGIN_AVAILABLE="${CFG_KBD_PLUGIN_AVAILABLE} ${base_a}"
768 done
771 CFG_MOUSE_PLUGIN_AVAILABLE=
772 if [ -d "$relpath/src/plugins/mousedrivers" ]; then
773 for a in "$relpath/src/plugins/mousedrivers/"*; do
774 if [ -d "$a" ]; then
775 base_a=`basename "$a"`
776 CFG_MOUSE_PLUGIN_AVAILABLE="${CFG_MOUSE_PLUGIN_AVAILABLE} ${base_a}"
778 done
781 CFG_GFX_PLUGIN_AVAILABLE=
782 if [ -d "$relpath/src/plugins/gfxdrivers" ]; then
783 for a in "$relpath/src/plugins/gfxdrivers/"*; do
784 if [ -d "$a" ]; then
785 base_a=`basename "$a"`
786 CFG_GFX_PLUGIN_AVAILABLE="${CFG_GFX_PLUGIN_AVAILABLE} ${base_a}"
788 done
789 CFG_GFX_OFF="$CFG_GFX_AVAILABLE" # assume all off
792 #-------------------------------------------------------------------------------
793 # parse command line arguments
794 #-------------------------------------------------------------------------------
796 # parse the arguments, setting things to "yes" or "no"
797 while [ "$#" -gt 0 ]; do
798 CURRENT_OPT="$1"
799 UNKNOWN_ARG=no
800 case "$1" in
801 #Autoconf style options
802 --enable-*)
803 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
804 VAL=yes
806 --disable-*)
807 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
808 VAL=no
810 --*=*)
811 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
812 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
814 --no-*)
815 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
816 VAL=no
818 --*)
819 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
820 VAL=yes
822 #Qt plugin options
823 -no-*-*|-plugin-*-*|-qt-*-*)
824 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
825 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
827 #Qt style no options
828 -no-*)
829 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
830 VAL=no
832 #Qt style yes options
833 -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)
834 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
835 VAL=yes
837 #Qt style options that pass an argument
838 -qconfig)
839 if [ "$PLATFORM_QWS" != "yes" ]; then
840 echo
841 echo "WARNING: -qconfig is only tested and supported on Qt for Embedded Linux."
842 echo
844 CFG_QCONFIG="$VAL"
845 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
846 shift
847 VAL=$1
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"
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,"`
859 #Qt Builtin/System style options
860 -no-*|-system-*|-qt-*)
861 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
862 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
864 #Options that cannot be generalized
865 -k|-continue)
866 VAR=fatal_error
867 VAL=no
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
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
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
899 -host-*-endian)
900 VAR=host_endian
901 VAL=`echo $1 | sed "s,^-.*-\(.*\)-.*,\1,"`
903 -*-endian)
904 VAR=endian
905 VAL=`echo $1 | sed "s,^-\(.*\)-.*,\1,"`
907 -qtnamespace)
908 VAR="qtnamespace"
909 shift
910 VAL="$1"
912 -graphicssystem)
913 VAR="graphicssystem"
914 shift
915 VAL=$1
917 -qtlibinfix)
918 VAR="qtlibinfix"
919 shift
920 VAL="$1"
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,,'`
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,,'`
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,,'`
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,,'`
958 -l?*)
959 VAR="add_link"
960 VAL=`echo $1 | sed 's,-l,,'`
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,,'`
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,,'`
981 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
982 VAL="unknown"
985 UNKNOWN_ARG=yes
987 esac
988 if [ "$UNKNOWN_ARG" = "yes" ]; then
989 echo "$1: unknown argument"
990 OPT_HELP=yes
991 ERROR=yes
992 shift
993 continue
995 shift
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
1006 accessibility)
1007 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1008 CFG_ACCESSIBILITY="$VAL"
1009 else
1010 UNKNOWN_OPT=yes
1013 license)
1014 LICENSE_FILE="$VAL"
1016 gnumake)
1017 CFG_USE_GNUMAKE="$VAL"
1019 mysql_config)
1020 CFG_MYSQL_CONFIG="$VAL"
1022 prefix)
1023 QT_INSTALL_PREFIX="$VAL"
1025 hostprefix)
1026 QT_HOST_PREFIX="$VAL"
1028 force-pkg-config)
1029 QT_FORCE_PKGCONFIG=yes
1031 docdir)
1032 QT_INSTALL_DOCS="$VAL"
1034 headerdir)
1035 QT_INSTALL_HEADERS="$VAL"
1037 plugindir)
1038 QT_INSTALL_PLUGINS="$VAL"
1040 datadir)
1041 QT_INSTALL_DATA="$VAL"
1043 libdir)
1044 QT_INSTALL_LIBS="$VAL"
1046 qtnamespace)
1047 QT_NAMESPACE="$VAL"
1049 qtlibinfix)
1050 QT_LIBINFIX="$VAL"
1052 translationdir)
1053 QT_INSTALL_TRANSLATIONS="$VAL"
1055 sysconfdir|settingsdir)
1056 QT_INSTALL_SETTINGS="$VAL"
1058 examplesdir)
1059 QT_INSTALL_EXAMPLES="$VAL"
1061 demosdir)
1062 QT_INSTALL_DEMOS="$VAL"
1064 qconfig)
1065 CFG_QCONFIG="$VAL"
1067 bindir)
1068 QT_INSTALL_BINS="$VAL"
1070 buildkey)
1071 CFG_USER_BUILD_KEY="$VAL"
1073 sxe)
1074 CFG_SXE="$VAL"
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
1084 else
1085 echo "No license exists to enable Qt for Embedded Linux. Disabling."
1086 CFG_EMBEDDED=no
1089 sse)
1090 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1091 CFG_SSE="$VAL"
1092 else
1093 UNKNOWN_OPT=yes
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
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
1114 armfpa)
1115 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1116 CFG_ARMFPA="$VAL"
1117 else
1118 UNKNOWN_OPT=yes
1121 depths)
1122 CFG_QWS_DEPTHS="$VAL"
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
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
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"
1161 else
1162 UNKNOWN_OPT=yes
1165 nomake)
1166 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1168 make)
1169 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1171 x11)
1172 if [ "$PLATFORM_MAC" = "yes" ]; then
1173 PLATFORM_MAC=no
1174 elif [ "$PLATFORM_QWS" = "yes" ]; then
1175 PLATFORM_QWS=no
1177 if [ "$CFG_FRAMEWORK" = "auto" ]; then
1178 CFG_FRAMEWORK=no
1180 PLATFORM_X11=yes
1182 sdk)
1183 if [ "$PLATFORM_MAC" = "yes" ]; then
1184 CFG_SDK="$VAL"
1185 else
1186 UNKNOWN_OPT=yes
1189 dwarf2)
1190 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1191 CFG_MAC_DWARF2="$VAL"
1192 else
1193 UNKNOWN_OPT=yes
1196 arch)
1197 if [ "$PLATFORM_MAC" = "yes" ]; then
1198 CFG_MAC_ARCHS="$CFG_MAC_ARCHS $VAL"
1199 else
1200 CFG_ARCH=$VAL
1203 host-arch)
1204 CFG_HOST_ARCH=$VAL
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
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
1221 framework)
1222 if [ "$PLATFORM_MAC" = "yes" ]; then
1223 CFG_FRAMEWORK="$VAL"
1224 else
1225 UNKNOWN_OPT=yes
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
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
1248 platform)
1249 PLATFORM="$VAL"
1250 # keep compatibility with old platform names
1251 case $PLATFORM in
1252 aix-64)
1253 PLATFORM=aix-xlc-64
1255 hpux-o64)
1256 PLATFORM=hpux-acc-o64
1258 hpux-n64)
1259 PLATFORM=hpux-acc-64
1261 hpux-acc-n64)
1262 PLATFORM=hpux-acc-64
1264 irix-n32)
1265 PLATFORM=irix-cc
1267 irix-64)
1268 PLATFORM=irix-cc-64
1270 irix-cc-n64)
1271 PLATFORM=irix-cc-64
1273 reliant-64)
1274 PLATFORM=reliant-cds-64
1276 solaris-64)
1277 PLATFORM=solaris-cc-64
1279 solaris-64)
1280 PLATFORM=solaris-cc-64
1282 openunix-cc)
1283 PLATFORM=unixware-cc
1285 openunix-g++)
1286 PLATFORM=unixware-g++
1288 unixware7-cc)
1289 PLATFORM=unixware-cc
1291 unixware7-g++)
1292 PLATFORM=unixware-g++
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"
1307 esac
1309 xplatform)
1310 XPLATFORM="$VAL"
1312 debug-and-release)
1313 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1314 CFG_DEBUG_RELEASE="$VAL"
1315 else
1316 UNKNOWN_OPT=yes
1319 optimized-qmake)
1320 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1321 CFG_RELEASE_QMAKE="$VAL"
1322 else
1323 UNKNOWN_OPT=yes
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
1335 prefix-install)
1336 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1337 CFG_PREFIX_INSTALL="$VAL"
1338 else
1339 UNKNOWN_OPT=yes
1342 debug)
1343 CFG_DEBUG="$VAL"
1345 developer-build|commercial|opensource|nokia-developer)
1346 # These switches have been dealt with already
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
1357 incremental)
1358 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1359 CFG_INCREMENTAL="$VAL"
1360 else
1361 UNKNOWN_OPT=yes
1364 fatal_error)
1365 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1366 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1367 else
1368 UNKNOWN_OPT=yes
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
1381 else
1382 UNKNOWN_OPT=yes
1385 shared)
1386 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1387 CFG_SHARED="$VAL"
1388 else
1389 UNKNOWN_OPT=yes
1392 gif)
1393 [ "$VAL" = "qt" ] && VAL=yes
1394 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1395 CFG_GIF="$VAL"
1396 else
1397 UNKNOWN_OPT=yes
1401 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1402 CFG_SM="$VAL"
1403 else
1404 UNKNOWN_OPT=yes
1408 xinerama)
1409 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1410 CFG_XINERAMA="$VAL"
1411 else
1412 UNKNOWN_OPT=yes
1415 xshape)
1416 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1417 CFG_XSHAPE="$VAL"
1418 else
1419 UNKNOWN_OPT=yes
1422 xinput)
1423 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1424 CFG_XINPUT="$VAL"
1425 else
1426 UNKNOWN_OPT=yes
1429 stl)
1430 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1431 CFG_STL="$VAL"
1432 else
1433 UNKNOWN_OPT=yes
1436 pch)
1437 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1438 CFG_PRECOMPILE="$VAL"
1439 else
1440 UNKNOWN_OPT=yes
1443 separate-debug-info)
1444 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1445 CFG_SEPARATE_DEBUG_INFO="$VAL"
1446 else
1447 UNKNOWN_OPT=yes
1450 reduce-exports)
1451 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1452 CFG_REDUCE_EXPORTS="$VAL"
1453 else
1454 UNKNOWN_OPT=yes
1457 mmx)
1458 if [ "$VAL" = "no" ]; then
1459 CFG_MMX="$VAL"
1460 else
1461 UNKNOWN_OPT=yes
1464 3dnow)
1465 if [ "$VAL" = "no" ]; then
1466 CFG_3DNOW="$VAL"
1467 else
1468 UNKNOWN_OPT=yes
1471 sse)
1472 if [ "$VAL" = "no" ]; then
1473 CFG_SSE="$VAL"
1474 else
1475 UNKNOWN_OPT=yes
1478 sse2)
1479 if [ "$VAL" = "no" ]; then
1480 CFG_SSE2="$VAL"
1481 else
1482 UNKNOWN_OPT=yes
1485 iwmmxt)
1486 CFG_IWMMXT="yes"
1488 reduce-relocations)
1489 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1490 CFG_REDUCE_RELOCATIONS="$VAL"
1491 else
1492 UNKNOWN_OPT=yes
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
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
1510 # No longer supported:
1511 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1513 sqlite)
1514 if [ "$VAL" = "system" ]; then
1515 CFG_SQLITE=system
1516 else
1517 UNKNOWN_OPT=yes
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
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
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
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
1552 nas-sound)
1553 if [ "$VAL" = "system" ] || [ "$VAL" = "no" ]; then
1554 CFG_NAS="$VAL"
1555 else
1556 UNKNOWN_OPT=yes
1559 xcursor)
1560 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1561 CFG_XCURSOR="$VAL"
1562 else
1563 UNKNOWN_OPT=yes
1566 xfixes)
1567 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1568 CFG_XFIXES="$VAL"
1569 else
1570 UNKNOWN_OPT=yes
1573 xrandr)
1574 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1575 CFG_XRANDR="$VAL"
1576 else
1577 UNKNOWN_OPT=yes
1580 xrender)
1581 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1582 CFG_XRENDER="$VAL"
1583 else
1584 UNKNOWN_OPT=yes
1587 mitshm)
1588 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1589 CFG_MITSHM="$VAL"
1590 else
1591 UNKNOWN_OPT=yes
1594 fontconfig)
1595 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1596 CFG_FONTCONFIG="$VAL"
1597 else
1598 UNKNOWN_OPT=yes
1601 xkb)
1602 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1603 CFG_XKB="$VAL"
1604 else
1605 UNKNOWN_OPT=yes
1608 cups)
1609 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1610 CFG_CUPS="$VAL"
1611 else
1612 UNKNOWN_OPT=yes
1615 iconv)
1616 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1617 CFG_ICONV="$VAL"
1618 else
1619 UNKNOWN_OPT=yes
1622 glib)
1623 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1624 CFG_GLIB="$VAL"
1625 else
1626 UNKNOWN_OPT=yes
1629 gstreamer)
1630 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1631 CFG_GSTREAMER="$VAL"
1632 else
1633 UNKNOWN_OPT=yes
1636 gtkstyle)
1637 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1638 CFG_QGTKSTYLE="$VAL"
1639 else
1640 UNKNOWN_OPT=yes
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
1652 dbus-linked)
1653 if [ "$VAL" = "yes" ]; then
1654 CFG_DBUS="linked"
1655 else
1656 UNKNOWN_OPT=yes
1659 nis)
1660 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1661 CFG_NIS="$VAL"
1662 else
1663 UNKNOWN_OPT=yes
1666 largefile)
1667 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1668 CFG_LARGEFILE="$VAL"
1669 else
1670 UNKNOWN_OPT=yes
1673 openssl)
1674 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1675 CFG_OPENSSL="$VAL"
1676 else
1677 UNKNOWN_OPT=yes
1680 openssl-linked)
1681 if [ "$VAL" = "yes" ]; then
1682 CFG_OPENSSL="linked"
1683 else
1684 UNKNOWN_OPT=yes
1687 ptmalloc)
1688 if [ "$VAL" = "yes" ]; then
1689 CFG_PTMALLOC="yes"
1690 else
1691 UNKNOWN_OPT=yes
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
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
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
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
1739 confirm-license)
1740 if [ "$VAL" = "yes" ]; then
1741 OPT_CONFIRM_LICENSE="$VAL"
1742 else
1743 UNKNOWN_OPT=yes
1746 h|help)
1747 if [ "$VAL" = "yes" ]; then
1748 OPT_HELP="$VAL"
1749 else
1750 UNKNOWN_OPT=yes
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
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,"`
1766 # Grab the available values
1767 case "$VAR" in
1768 sql)
1769 avail="$CFG_SQL_AVAILABLE"
1771 gfx)
1772 avail="$CFG_GFX_AVAILABLE"
1773 if [ "$OPT" = "plugin" ]; then
1774 avail="$CFG_GFX_PLUGIN_AVAILABLE"
1777 decoration)
1778 avail="$CFG_DECORATION_AVAILABLE"
1779 if [ "$OPT" = "plugin" ]; then
1780 avail="$CFG_DECORATION_PLUGIN_AVAILABLE"
1783 kbd)
1784 avail="$CFG_KBD_AVAILABLE"
1785 if [ "$OPT" = "plugin" ]; then
1786 avail="$CFG_KBD_PLUGIN_AVAILABLE"
1789 mouse)
1790 avail="$CFG_MOUSE_AVAILABLE"
1791 if [ "$OPT" = "plugin" ]; then
1792 avail="$CFG_MOUSE_PLUGIN_AVAILABLE"
1796 avail=""
1797 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1799 esac
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
1808 done
1809 [ "$found" = yes ] || ERROR=yes
1811 if [ "$VAR" = "sql" ]; then
1812 # set the CFG_SQL_driver
1813 eval "CFG_SQL_$VAL=\$OPT"
1814 continue
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"
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}"
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"
1852 if [ "$ERROR" = "yes" ]; then
1853 echo "$CURRENT_OPT: unknown argument"
1854 OPT_HELP=yes
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
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
1870 else
1871 UNKNOWN_OPT=yes
1874 fast)
1875 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1876 OPT_FAST="$VAL"
1877 else
1878 UNKNOWN_OPT=yes
1881 rpath)
1882 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1883 CFG_RPATH="$VAL"
1884 else
1885 UNKNOWN_OPT=yes
1888 add_define)
1889 D_FLAGS="$D_FLAGS \"$VAL\""
1891 add_ipath)
1892 I_FLAGS="$I_FLAGS -I\"${VAL}\""
1894 add_lpath)
1895 L_FLAGS="$L_FLAGS -L\"${VAL}\""
1897 add_rpath)
1898 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
1900 add_link)
1901 l_FLAGS="$l_FLAGS -l\"${VAL}\""
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
1911 add_framework)
1912 if [ "$PLATFORM_MAC" = "yes" ]; then
1913 l_FLAGS="$l_FLAGS -framework \"${VAL}\""
1914 else
1915 UNKNOWN_OPT=yes
1918 silent)
1919 CFG_SILENT="$VAL"
1921 phonon)
1922 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1923 CFG_PHONON="$VAL"
1924 else
1925 UNKNOWN_OPT=yes
1928 phonon-backend)
1929 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1930 CFG_PHONON_BACKEND="$VAL"
1931 else
1932 UNKNOWN_OPT=yes
1936 UNKNOWN_OPT=yes
1938 esac
1939 if [ "$UNKNOWN_OPT" = "yes" ]; then
1940 echo "${CURRENT_OPT}: invalid command-line switch"
1941 OPT_HELP=yes
1942 ERROR=yes
1944 done
1946 if [ "$CFG_QCONFIG" != "full" ] && [ "$CFG_QT3SUPPORT" = "yes" ]; then
1947 echo "Warning: '-qconfig $CFG_QCONFIG' will disable the qt3support library."
1948 CFG_QT3SUPPORT="no"
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
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
1967 esac
1969 #-------------------------------------------------------------------------------
1970 # build tree initialization
1971 #-------------------------------------------------------------------------------
1973 # where to find which..
1974 unixtests="$relpath/config.tests/unix"
1975 mactests="$relpath/config.tests/mac"
1976 WHICH="$unixtests/which.test"
1978 PERL=`$WHICH perl 2>/dev/null`
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
1987 done
1989 ### skip this if the user just needs help...
1990 if [ "$OPT_HELP" != "yes" ]; then
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
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
2009 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
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
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
2033 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2034 QMAKE_CONFIG="$QMAKE_CONFIG build_all"
2037 if [ "$CFG_SILENT" = "yes" ]; then
2038 QMAKE_CONFIG="$QMAKE_CONFIG silent"
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..."
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
2053 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
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)
2070 rm -f "$my_a"
2071 ln -s "$a" "$my_a"
2073 esac
2076 done
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"
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"
2094 # symlink the doc directory
2095 rm -rf "$outpath/doc"
2096 ln -s "$relpath/doc" "$outpath/doc"
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"
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
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"
2121 if [ "$OPT_FAST" = "auto" ]; then
2122 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2123 OPT_FAST=yes
2124 else
2125 OPT_FAST=no
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
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
2145 fi ### help
2147 #-------------------------------------------------------------------------------
2148 # auto-detect all that hasn't been specified in the arguments
2149 #-------------------------------------------------------------------------------
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++"
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++"
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++"
2175 Linux:*)
2176 if [ -z "$PLATFORM" ]; then
2177 case "$UNAME_MACHINE" in
2178 *86)
2179 PLATFORM=qws/linux-x86-g++
2181 *86_64)
2182 PLATFORM=qws/linux-x86_64-g++
2184 *ppc)
2185 PLATFORM=qws/linux-ppc-g++
2188 PLATFORM=qws/linux-generic-g++
2190 esac
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
2201 *86_64)
2202 CFG_EMBEDDED=x86_64
2204 *ppc)
2205 CFG_EMBEDDED=ppc
2208 CFG_EMBEDDED=generic
2210 esac
2213 XPLATFORM="qws/linux-$CFG_EMBEDDED-g++"
2216 CYGWIN*:*)
2217 CFG_EMBEDDED=x86
2220 echo "Qt for Embedded Linux is not supported on this platform. Disabling."
2221 CFG_EMBEDDED=no
2222 PLATFORM_QWS=no
2224 esac
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++
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
2246 GNU:*)
2247 PLATFORM=hurd-g++
2249 dgux:*)
2250 PLATFORM=dgux-g++
2252 # DYNIX/ptx:4*)
2253 # PLATFORM=dynix-g++
2254 # ;;
2255 ULTRIX:*)
2256 PLATFORM=ultrix-g++
2258 FreeBSD:*)
2259 PLATFORM=freebsd-g++
2260 PLATFORM_NOTES="
2261 - Also available for FreeBSD: freebsd-icc
2264 OpenBSD:*)
2265 PLATFORM=openbsd-g++
2267 NetBSD:*)
2268 PLATFORM=netbsd-g++
2270 BSD/OS:*|BSD/386:*)
2271 PLATFORM=bsdi-g++
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
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
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
2300 esac
2302 OSF1:*)
2303 #PLATFORM=tru64-g++
2304 PLATFORM=tru64-cxx
2305 PLATFORM_NOTES="
2306 - Also available for Tru64: tru64-g++
2309 Linux:*)
2310 case "$UNAME_MACHINE" in
2311 x86_64|s390x|ppc64)
2312 PLATFORM=linux-g++-64
2315 PLATFORM=linux-g++
2317 esac
2318 PLATFORM_NOTES="
2319 - Also available for Linux: linux-kcc linux-icc linux-cxx
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
2330 ReliantUNIX-*:*|SINIX-*:*)
2331 PLATFORM=reliant-cds
2332 #PLATFORM=reliant-cds-64
2333 PLATFORM_NOTES="
2334 - Also available for Reliant UNIX: reliant-cds-64
2337 CYGWIN*:*)
2338 PLATFORM=cygwin-g++
2340 LynxOS*:*)
2341 PLATFORM=lynxos-g++
2343 OpenUNIX:*)
2344 #PLATFORM=unixware-g++
2345 PLATFORM=unixware-cc
2346 PLATFORM_NOTES="
2347 - Also available for OpenUNIX: unixware-g++
2350 UnixWare:*)
2351 #PLATFORM=unixware-g++
2352 PLATFORM=unixware-cc
2353 PLATFORM_NOTES="
2354 - Also available for UnixWare: unixware-g++
2357 SCO_SV:*)
2358 #PLATFORM=sco-g++
2359 PLATFORM=sco-cc
2360 PLATFORM_NOTES="
2361 - Also available for SCO OpenServer: sco-g++
2364 UNIX_SV:*)
2365 PLATFORM=unixware-g++
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
2381 esac
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/,,"`
2391 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2392 if [ -d "$PLATFORM" ]; then
2393 QMAKESPEC="$PLATFORM"
2394 else
2395 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2397 if [ -d "$XPLATFORM" ]; then
2398 XQMAKESPEC="$XPLATFORM"
2399 else
2400 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2402 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2403 QT_CROSS_COMPILE=yes
2404 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
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
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
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
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
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
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"
2465 #-------------------------------------------------------------------------------
2466 # determine the system architecture
2467 #-------------------------------------------------------------------------------
2468 if [ "$OPT_VERBOSE" = "yes" ]; then
2469 echo "Determining system architecture... ($UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE)"
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
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)"
2491 SunOS:5*:*)
2492 case "$UNAME_MACHINE" in
2493 sun4u*|sun4v*)
2494 if [ "$OPT_VERBOSE" = "yes" ]; then
2495 echo " Sun SPARC (sparc)"
2497 CFG_HOST_ARCH=sparc
2499 i86pc)
2500 case "$PLATFORM" in
2501 *-64)
2502 if [ "$OPT_VERBOSE" = "yes" ]; then
2503 echo " 64-bit AMD 80x86 (x86_64)"
2505 CFG_HOST_ARCH=x86_64
2508 if [ "$OPT_VERBOSE" = "yes" ]; then
2509 echo " 32-bit Intel 80x86 (i386)"
2511 CFG_HOST_ARCH=i386
2513 esac
2514 esac
2516 Darwin:*:*)
2517 case "$UNAME_MACHINE" in
2518 Power?Macintosh)
2519 if [ "$OPT_VERBOSE" = "yes" ]; then
2520 echo " 32-bit Apple PowerPC (powerpc)"
2523 x86)
2524 if [ "$OPT_VERBOSE" = "yes" ]; then
2525 echo " 32-bit Intel 80x86 (i386)"
2528 esac
2529 CFG_HOST_ARCH=macosx
2531 AIX:*:00????????00)
2532 if [ "$OPT_VERBOSE" = "yes" ]; then
2533 echo " 64-bit IBM PowerPC (powerpc)"
2535 CFG_HOST_ARCH=powerpc
2537 HP-UX:*:9000*)
2538 if [ "$OPT_VERBOSE" = "yes" ]; then
2539 echo " HP PA-RISC (parisc)"
2541 CFG_HOST_ARCH=parisc
2543 *:*:i?86)
2544 if [ "$OPT_VERBOSE" = "yes" ]; then
2545 echo " 32-bit Intel 80x86 (i386)"
2547 CFG_HOST_ARCH=i386
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)"
2554 CFG_HOST_ARCH=i386
2555 else
2556 if [ "$OPT_VERBOSE" = "yes" ]; then
2557 echo " 64-bit AMD 80x86 (x86_64)"
2559 CFG_HOST_ARCH=x86_64
2562 *:*:ppc)
2563 if [ "$OPT_VERBOSE" = "yes" ]; then
2564 echo " 32-bit PowerPC (powerpc)"
2566 CFG_HOST_ARCH=powerpc
2568 *:*:ppc64)
2569 if [ "$OPT_VERBOSE" = "yes" ]; then
2570 echo " 64-bit PowerPC (powerpc)"
2572 CFG_HOST_ARCH=powerpc
2574 *:*:s390*)
2575 if [ "$OPT_VERBOSE" = "yes" ]; then
2576 echo " IBM S/390 (s390)"
2578 CFG_HOST_ARCH=s390
2580 *:*:arm*)
2581 if [ "$OPT_VERBOSE" = "yes" ]; then
2582 echo " ARM (arm)"
2584 CFG_HOST_ARCH=arm
2586 Linux:*:sparc*)
2587 if [ "$OPT_VERBOSE" = "yes" ]; then
2588 echo " Linux on SPARC"
2590 CFG_HOST_ARCH=sparc
2592 *:*:*)
2593 if [ "$OPT_VERBOSE" = "yes" ]; then
2594 echo " Trying '$UNAME_MACHINE'..."
2596 CFG_HOST_ARCH="$UNAME_MACHINE"
2598 esac
2601 if [ "$PLATFORM" != "$XPLATFORM" -a "$CFG_EMBEDDED" != "no" ]; then
2602 if [ -n "$CFG_ARCH" ]; then
2603 CFG_EMBEDDED=$CFG_ARCH
2606 case "$CFG_EMBEDDED" in
2607 x86)
2608 CFG_ARCH=i386
2610 x86_64)
2611 CFG_ARCH=x86_64
2613 ipaq|sharp)
2614 CFG_ARCH=arm
2616 dm7000)
2617 CFG_ARCH=powerpc
2619 dm800)
2620 CFG_ARCH=mips
2622 sh4al)
2623 CFG_ARCH=sh4a
2626 CFG_ARCH="$CFG_EMBEDDED"
2628 esac
2629 elif [ "$PLATFORM_MAC" = "yes" ] || [ -z "$CFG_ARCH" ]; then
2630 CFG_ARCH=$CFG_HOST_ARCH
2633 if [ -d "$relpath/src/corelib/arch/$CFG_ARCH" ]; then
2634 if [ "$OPT_VERBOSE" = "yes" ]; then
2635 echo " '$CFG_ARCH' is supported"
2637 else
2638 if [ "$OPT_VERBOSE" = "yes" ]; then
2639 echo " '$CFG_ARCH' is unsupported, using 'generic'"
2641 CFG_ARCH=generic
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"
2648 else
2649 if [ "$OPT_VERBOSE" = "yes" ]; then
2650 echo " '$CFG_HOST_ARCH' is unsupported, using 'generic'"
2652 CFG_HOST_ARCH=generic
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'"
2663 #-------------------------------------------------------------------------------
2664 # tests that don't need qmake (must be run before displaying help)
2665 #-------------------------------------------------------------------------------
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' ' '`
2671 if [ -z "$PKG_CONFIG" ]; then
2672 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
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 ""
2697 else
2698 PKG_CONFIG=""
2702 # check -arch arguments for validity.
2703 if [ "$PLATFORM_MAC" = "yes" ]; then
2704 ALLOWED="x86 ppc x86_64 ppc64 i386"
2705 for i in $CFG_MAC_ARCHS
2707 if echo "$ALLOWED" | grep -w -v "$i" > /dev/null 2>&1; then
2708 echo "Unknown architecture: \"$i\". Supported architectures: x86[i386] ppc x86_64 ppc64";
2709 exit 2;
2711 done
2713 # replace "i386" with "x86" to support configuring with -arch i386 as an alias for x86.
2714 CFG_MAC_ARCHS="${CFG_MAC_ARCHS/i386/x86}"
2717 # find the default framework value
2718 if [ "$PLATFORM_MAC" = "yes" ] && [ "$PLATFORM" != "macx-xlc" ]; then
2719 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2720 CFG_FRAMEWORK="$CFG_SHARED"
2721 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2722 echo
2723 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2724 echo
2725 CFG_FRAMEWORK="no"
2727 else
2728 CFG_FRAMEWORK=no
2731 QMAKE_CONF_COMPILER=`getQMakeConf "$XQMAKESPEC" | grep "^QMAKE_CXX[^_A-Z0-9]" | sed "s,.* *= *\(.*\)$,\1," | tail -1`
2732 TEST_COMPILER="$CC"
2733 [ -z "$TEST_COMPILER" ] && TEST_COMPILER=$QMAKE_CONF_COMPILER
2735 # auto-detect precompiled header support
2736 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2737 if [ `echo "$CFG_MAC_ARCHS" | wc -w` -gt 1 ]; then
2738 CFG_PRECOMPILE=no
2739 elif "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2740 CFG_PRECOMPILE=no
2741 else
2742 CFG_PRECOMPILE=yes
2744 elif [ "$CFG_PRECOMPILE" = "yes" ] && [ `echo "$CFG_MAC_ARCHS" | wc -w` -gt 1 ]; then
2745 echo
2746 echo "WARNING: Using universal binaries disables precompiled headers."
2747 echo
2748 CFG_PRECOMPILE=no
2751 #auto-detect DWARF2 on the mac
2752 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_DWARF2" == "auto" ]; then
2753 if "$mactests/dwarf2.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests" ; then
2754 CFG_MAC_DWARF2=no
2755 else
2756 CFG_MAC_DWARF2=yes
2760 # auto-detect support for -Xarch on the mac
2761 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_XARCH" == "auto" ]; then
2762 if "$mactests/xarch.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests" ; then
2763 CFG_MAC_XARCH=no
2764 else
2765 CFG_MAC_XARCH=yes
2769 # don't autodetect support for separate debug info on objcopy when
2770 # cross-compiling as lots of toolchains seems to have problems with this
2771 if [ "$QT_CROSS_COMPILE" = "yes" ] && [ "$CFG_SEPARATE_DEBUG_INFO" = "auto" ]; then
2772 CFG_SEPARATE_DEBUG_INFO="no"
2775 # auto-detect support for separate debug info in objcopy
2776 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2777 TEST_COMPILER_CFLAGS=`getQMakeConf "$XQMAKESPEC" | sed -n -e 's%QMAKE_CFLAGS[^_].*=%%p' | tr '\n' ' '`
2778 TEST_COMPILER_CXXFLAGS=`getQMakeConf "$XQMAKESPEC" | sed -n -e 's%QMAKE_CXXFLAGS[^_].*=%%p' | tr '\n' ' '`
2779 TEST_OBJCOPY=`getQMakeConf "$XQMAKESPEC" | grep "^QMAKE_OBJCOPY" | sed "s%.* *= *\(.*\)$%\1%" | tail -1`
2780 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2781 COMPILER_WITH_FLAGS=`echo "$COMPILER_WITH_FLAGS" | sed -e "s%\\$\\$QMAKE_CFLAGS%$TEST_COMPILER_CFLAGS%g"`
2782 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2783 CFG_SEPARATE_DEBUG_INFO=no
2784 else
2785 case "$PLATFORM" in
2786 hpux-*)
2787 # binutils on HP-UX is buggy; default to no.
2788 CFG_SEPARATE_DEBUG_INFO=no
2791 CFG_SEPARATE_DEBUG_INFO=yes
2793 esac
2797 # auto-detect -fvisibility support
2798 if [ "$CFG_REDUCE_EXPORTS" = "auto" ]; then
2799 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2800 CFG_REDUCE_EXPORTS=no
2801 else
2802 CFG_REDUCE_EXPORTS=yes
2806 # detect the availability of the -Bsymbolic-functions linker optimization
2807 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2808 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2809 CFG_REDUCE_RELOCATIONS=no
2810 else
2811 CFG_REDUCE_RELOCATIONS=yes
2815 # auto-detect GNU make support
2816 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2817 CFG_USE_GNUMAKE=yes
2820 # If -opengl wasn't specified, don't try to auto-detect
2821 if [ "$PLATFORM_QWS" = "yes" ] && [ "$CFG_OPENGL" = "auto" ]; then
2822 CFG_OPENGL=no
2825 # mac
2826 if [ "$PLATFORM_MAC" = "yes" ]; then
2827 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
2828 CFG_OPENGL=desktop
2832 # find the default framework value
2833 if [ "$PLATFORM_MAC" = "yes" ] && [ "$PLATFORM" != "macx-xlc" ]; then
2834 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2835 CFG_FRAMEWORK="$CFG_SHARED"
2836 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2837 echo
2838 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2839 echo
2840 CFG_FRAMEWORK="no"
2842 else
2843 CFG_FRAMEWORK=no
2846 # x11 tests are done after qmake is built
2849 #setup the build parts
2850 if [ -z "$CFG_BUILD_PARTS" ]; then
2851 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2853 # don't build tools by default when cross-compiling
2854 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2855 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2858 for nobuild in $CFG_NOBUILD_PARTS; do
2859 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2860 done
2861 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2862 # echo
2863 # echo "WARNING: libs is a required part of the build."
2864 # echo
2865 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2868 #-------------------------------------------------------------------------------
2869 # post process QT_INSTALL_* variables
2870 #-------------------------------------------------------------------------------
2872 #prefix
2873 if [ -z "$QT_INSTALL_PREFIX" ]; then
2874 if [ "$CFG_DEV" = "yes" ]; then
2875 QT_INSTALL_PREFIX="$outpath" # At Trolltech, we use sandboxed builds by default
2876 elif [ "$PLATFORM_QWS" = "yes" ]; then
2877 QT_INSTALL_PREFIX="/usr/local/Trolltech/QtEmbedded-${QT_VERSION}"
2878 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2879 QT_INSTALL_PREFIX="${QT_INSTALL_PREFIX}-${CFG_ARCH}"
2881 else
2882 QT_INSTALL_PREFIX="/usr/local/Trolltech/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Trolltech/Qt-$QT_VERSION
2885 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2887 #docs
2888 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2889 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2890 if [ "$PLATFORM_MAC" = "yes" ]; then
2891 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2894 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2897 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2899 #headers
2900 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2901 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2902 if [ "$PLATFORM_MAC" = "yes" ]; then
2903 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2904 QT_INSTALL_HEADERS=
2908 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2911 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2913 #libs
2914 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2915 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2916 if [ "$PLATFORM_MAC" = "yes" ]; then
2917 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2918 QT_INSTALL_LIBS="/Libraries/Frameworks"
2922 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2924 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2926 #bins
2927 if [ -z "$QT_INSTALL_BINS" ]; then #default
2928 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2929 if [ "$PLATFORM_MAC" = "yes" ]; then
2930 QT_INSTALL_BINS="/Developer/Applications/Qt"
2933 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2936 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2938 #plugins
2939 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2940 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2941 if [ "$PLATFORM_MAC" = "yes" ]; then
2942 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2945 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2947 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2949 #data
2950 if [ -z "$QT_INSTALL_DATA" ]; then #default
2951 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2953 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2955 #translations
2956 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2957 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2959 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2961 #settings
2962 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2963 if [ "$PLATFORM_MAC" = "yes" ]; then
2964 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2965 else
2966 QT_INSTALL_SETTINGS=/etc/xdg
2969 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2971 #examples
2972 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2973 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2974 if [ "$PLATFORM_MAC" = "yes" ]; then
2975 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2978 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2980 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2982 #demos
2983 if [ -z "$QT_INSTALL_DEMOS" ]; then #default
2984 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2985 if [ "$PLATFORM_MAC" = "yes" ]; then
2986 QT_INSTALL_DEMOS="/Developer/Examples/Qt/Demos"
2989 [ -z "$QT_INSTALL_DEMOS" ] && QT_INSTALL_DEMOS="$QT_INSTALL_PREFIX/demos"
2991 QT_INSTALL_DEMOS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DEMOS"`
2993 #-------------------------------------------------------------------------------
2994 # help - interactive parts of the script _after_ this section please
2995 #-------------------------------------------------------------------------------
2997 # next, emit a usage message if something failed.
2998 if [ "$OPT_HELP" = "yes" ]; then
2999 [ "x$ERROR" = "xyes" ] && echo
3000 if [ "$CFG_NIS" = "no" ]; then
3001 NSY=" "
3002 NSN="*"
3003 else
3004 NSY="*"
3005 NSN=" "
3007 if [ "$CFG_CUPS" = "no" ]; then
3008 CUY=" "
3009 CUN="*"
3010 else
3011 CUY="*"
3012 CUN=" "
3014 if [ "$CFG_ICONV" = "no" ]; then
3015 CIY=" "
3016 CIN="*"
3017 else
3018 CIY="*"
3019 CIN=" "
3021 if [ "$CFG_LARGEFILE" = "no" ]; then
3022 LFSY=" "
3023 LFSN="*"
3024 else
3025 LFSY="*"
3026 LFSN=" "
3028 if [ "$CFG_STL" = "auto" ] || [ "$CFG_STL" = "yes" ]; then
3029 SHY="*"
3030 SHN=" "
3031 else
3032 SHY=" "
3033 SHN="*"
3035 if [ "$CFG_IPV6" = "auto" ]; then
3036 I6Y="*"
3037 I6N=" "
3039 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
3040 PHY=" "
3041 PHN="*"
3042 else
3043 PHY="*"
3044 PHN=" "
3047 cat <<EOF
3048 Usage: $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>]
3049 [-docdir <dir>] [-headerdir <dir>] [-plugindir <dir> ] [-datadir <dir>]
3050 [-translationdir <dir>] [-sysconfdir <dir>] [-examplesdir <dir>]
3051 [-demosdir <dir>] [-buildkey <key>] [-release] [-debug]
3052 [-debug-and-release] [-developer-build] [-shared] [-static] [-no-fast] [-fast] [-no-largefile]
3053 [-largefile] [-no-exceptions] [-exceptions] [-no-accessibility]
3054 [-accessibility] [-no-stl] [-stl] [-no-sql-<driver>] [-sql-<driver>]
3055 [-plugin-sql-<driver>] [-system-sqlite] [-no-qt3support] [-qt3support]
3056 [-platform] [-D <string>] [-I <string>] [-L <string>] [-help]
3057 [-qt-zlib] [-system-zlib] [-no-gif] [-qt-gif] [-no-libtiff] [-qt-libtiff] [-system-libtiff]
3058 [-no-libpng] [-qt-libpng] [-system-libpng] [-no-libmng] [-qt-libmng]
3059 [-system-libmng] [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make <part>]
3060 [-no-make <part>] [-R <string>] [-l <string>] [-no-rpath] [-rpath] [-continue]
3061 [-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv]
3062 [-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked]
3063 [-no-separate-debug-info] [-no-mmx] [-no-3dnow] [-no-sse] [-no-sse2]
3064 [-qtnamespace <namespace>] [-qtlibinfix <infix>] [-separate-debug-info] [-armfpa]
3065 [-no-optimized-qmake] [-optimized-qmake] [-no-xmlpatterns] [-xmlpatterns]
3066 [-no-phonon] [-phonon] [-no-phonon-backend] [-phonon-backend]
3067 [-no-openssl] [-openssl] [-openssl-linked]
3068 [-no-gtkstyle] [-gtkstyle] [-no-svg] [-svg] [-no-webkit] [-webkit]
3069 [-no-scripttools] [-scripttools]
3071 [additional platform specific options (see below)]
3074 Installation options:
3076 These are optional, but you may specify install directories.
3078 -prefix <dir> ...... This will install everything relative to <dir>
3079 (default $QT_INSTALL_PREFIX)
3081 if [ "$PLATFORM_QWS" = "yes" ]; then
3082 cat <<EOF
3084 -hostprefix [dir] .. Tools and libraries needed when developing
3085 applications are installed in [dir]. If [dir] is
3086 not given, the current build directory will be used.
3089 cat <<EOF
3091 * -prefix-install .... Force a sandboxed "local" installation of
3092 Qt. This will install into
3093 $QT_INSTALL_PREFIX, if this option is
3094 disabled then some platforms will attempt a
3095 "system" install by placing default values to
3096 be placed in a system location other than
3097 PREFIX.
3099 You may use these to separate different parts of the install:
3101 -bindir <dir> ......... Executables will be installed to <dir>
3102 (default PREFIX/bin)
3103 -libdir <dir> ......... Libraries will be installed to <dir>
3104 (default PREFIX/lib)
3105 -docdir <dir> ......... Documentation will be installed to <dir>
3106 (default PREFIX/doc)
3107 -headerdir <dir> ...... Headers will be installed to <dir>
3108 (default PREFIX/include)
3109 -plugindir <dir> ...... Plugins will be installed to <dir>
3110 (default PREFIX/plugins)
3111 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3112 (default PREFIX)
3113 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3114 (default PREFIX/translations)
3115 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3116 (default PREFIX/etc/settings)
3117 -examplesdir <dir> .... Examples will be installed to <dir>
3118 (default PREFIX/examples)
3119 -demosdir <dir> ....... Demos will be installed to <dir>
3120 (default PREFIX/demos)
3122 You may use these options to turn on strict plugin loading.
3124 -buildkey <key> .... Build the Qt library and plugins using the specified
3125 <key>. When the library loads plugins, it will only
3126 load those that have a matching key.
3128 Configure options:
3130 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3131 that needs to be evaluated. If the evaluation succeeds, the feature is
3132 included. Here is a short explanation of each option:
3134 * -release ........... Compile and link Qt with debugging turned off.
3135 -debug ............. Compile and link Qt with debugging turned on.
3136 -debug-and-release . Compile and link two versions of Qt, with and without
3137 debugging turned on (Mac only).
3139 -developer-build.... Compile and link Qt with Qt developer options (including auto-tests exporting)
3141 -opensource......... Compile and link the Open-Source Edition of Qt.
3142 -commercial......... Compile and link the Commercial Edition of Qt.
3145 * -shared ............ Create and use shared Qt libraries.
3146 -static ............ Create and use static Qt libraries.
3148 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3149 project files.
3150 -fast .............. Configure Qt quickly by generating Makefiles only for
3151 library and subdirectory targets. All other Makefiles
3152 are created as wrappers, which will in turn run qmake.
3154 -no-largefile ...... Disables large file support.
3155 + -largefile ......... Enables Qt to access files larger than 4 GB.
3158 if [ "$PLATFORM_QWS" = "yes" ]; then
3159 EXCN="*"
3160 EXCY=" "
3161 else
3162 EXCN=" "
3163 EXCY="*"
3165 if [ "$CFG_DBUS" = "no" ]; then
3166 DBY=" "
3167 DBN="+"
3168 else
3169 DBY="+"
3170 DBN=" "
3173 cat << EOF
3174 $EXCN -no-exceptions ..... Disable exceptions on compilers that support it.
3175 $EXCY -exceptions ........ Enable exceptions on compilers that support it.
3177 -no-accessibility .. Do not compile Accessibility support.
3178 * -accessibility ..... Compile Accessibility support.
3180 $SHN -no-stl ............ Do not compile STL support.
3181 $SHY -stl ............... Compile STL support.
3183 -no-sql-<driver> ... Disable SQL <driver> entirely.
3184 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3185 none are turned on.
3186 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3187 at run time.
3189 Possible values for <driver>:
3190 [ $CFG_SQL_AVAILABLE ]
3192 -system-sqlite ..... Use sqlite from the operating system.
3194 -no-qt3support ..... Disables the Qt 3 support functionality.
3195 * -qt3support ........ Enables the Qt 3 support functionality.
3197 -no-xmlpatterns .... Do not build the QtXmlPatterns module.
3198 + -xmlpatterns ....... Build the QtXmlPatterns module.
3199 QtXmlPatterns is built if a decent C++ compiler
3200 is used and exceptions are enabled.
3202 -no-phonon ......... Do not build the Phonon module.
3203 + -phonon ............ Build the Phonon module.
3204 Phonon is built if a decent C++ compiler is used.
3205 -no-phonon-backend.. Do not build the platform phonon plugin.
3206 + -phonon-backend..... Build the platform phonon plugin.
3208 -no-svg ............ Do not build the SVG module.
3209 + -svg ............... Build the SVG module.
3211 -no-webkit ......... Do not build the WebKit module.
3212 + -webkit ............ Build the WebKit module.
3213 WebKit is built if a decent C++ compiler is used.
3215 -no-scripttools .... Do not build the QtScriptTools module.
3216 + -scripttools ....... Build the QtScriptTools module.
3218 -platform target ... The operating system and compiler you are building
3219 on ($PLATFORM).
3221 See the README file for a list of supported
3222 operating systems and compilers.
3224 if [ "${PLATFORM_QWS}" != "yes" ]; then
3225 cat << EOF
3226 -graphicssystem <sys> Sets an alternate graphics system. Available options are:
3227 raster - Software rasterizer
3228 opengl - Rendering via OpenGL, Experimental!
3231 cat << EOF
3233 -no-mmx ............ Do not compile with use of MMX instructions.
3234 -no-3dnow .......... Do not compile with use of 3DNOW instructions.
3235 -no-sse ............ Do not compile with use of SSE instructions.
3236 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3238 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3239 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3241 -D <string> ........ Add an explicit define to the preprocessor.
3242 -I <string> ........ Add an explicit include path.
3243 -L <string> ........ Add an explicit library path.
3245 -help, -h .......... Display this information.
3247 Third Party Libraries:
3249 -qt-zlib ........... Use the zlib bundled with Qt.
3250 + -system-zlib ....... Use zlib from the operating system.
3251 See http://www.gzip.org/zlib
3253 -no-gif ............ Do not compile the plugin for GIF reading support.
3254 * -qt-gif ............ Compile the plugin for GIF reading support.
3255 See also src/plugins/imageformats/gif/qgifhandler.h
3257 -no-libtiff ........ Do not compile the plugin for TIFF support.
3258 -qt-libtiff ........ Use the libtiff bundled with Qt.
3259 + -system-libtiff .... Use libtiff from the operating system.
3260 See http://www.libtiff.org
3262 -no-libpng ......... Do not compile in PNG support.
3263 -qt-libpng ......... Use the libpng bundled with Qt.
3264 + -system-libpng ..... Use libpng from the operating system.
3265 See http://www.libpng.org/pub/png
3267 -no-libmng ......... Do not compile the plugin for MNG support.
3268 -qt-libmng ......... Use the libmng bundled with Qt.
3269 + -system-libmng ..... Use libmng from the operating system.
3270 See http://www.libmng.com
3272 -no-libjpeg ........ Do not compile the plugin for JPEG support.
3273 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3274 + -system-libjpeg .... Use libjpeg from the operating system.
3275 See http://www.ijg.org
3277 -no-openssl ........ Do not compile support for OpenSSL.
3278 + -openssl ........... Enable run-time OpenSSL support.
3279 -openssl-linked .... Enabled linked OpenSSL support.
3281 -ptmalloc .......... Override the system memory allocator with ptmalloc.
3282 (Experimental.)
3284 Additional options:
3286 -make <part> ....... Add part to the list of parts to be built at make time.
3287 ($QT_DEFAULT_BUILD_PARTS)
3288 -nomake <part> ..... Exclude part from the list of parts to be built.
3290 -R <string> ........ Add an explicit runtime library path to the Qt
3291 libraries.
3292 -l <string> ........ Add an explicit library.
3294 -no-rpath .......... Do not use the library install path as a runtime
3295 library path.
3296 + -rpath ............. Link Qt libraries and executables using the library
3297 install path as a runtime library path. Equivalent
3298 to -R install_libpath
3300 -continue .......... Continue as far as possible if an error occurs.
3302 -verbose, -v ....... Print verbose information about each step of the
3303 configure process.
3305 -silent ............ Reduce the build output so that warnings and errors
3306 can be seen more easily.
3308 * -no-optimized-qmake ... Do not build qmake optimized.
3309 -optimized-qmake ...... Build qmake optimized.
3311 $NSN -no-nis ............ Do not compile NIS support.
3312 $NSY -nis ............... Compile NIS support.
3314 $CUN -no-cups ........... Do not compile CUPS support.
3315 $CUY -cups .............. Compile CUPS support.
3316 Requires cups/cups.h and libcups.so.2.
3318 $CIN -no-iconv .......... Do not compile support for iconv(3).
3319 $CIY -iconv ............. Compile support for iconv(3).
3321 $PHN -no-pch ............ Do not use precompiled header support.
3322 $PHY -pch ............... Use precompiled header support.
3324 $DBN -no-dbus ........... Do not compile the QtDBus module.
3325 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3326 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3328 -reduce-relocations ..... Reduce relocations in the libraries through extra
3329 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3330 experimental; needs GNU ld >= 2.18).
3333 if [ "$CFG_SEPARATE_DEBUG_INFO" = "auto" ]; then
3334 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3335 SBY=""
3336 SBN="*"
3337 else
3338 SBY="*"
3339 SBN=" "
3341 elif [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
3342 SBY="*"
3343 SBN=" "
3344 else
3345 SBY=" "
3346 SBN="*"
3349 if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ]; then
3351 cat << EOF
3353 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3354 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3358 fi # X11/QWS
3360 if [ "$PLATFORM_X11" = "yes" ]; then
3361 if [ "$CFG_SM" = "no" ]; then
3362 SMY=" "
3363 SMN="*"
3364 else
3365 SMY="*"
3366 SMN=" "
3368 if [ "$CFG_XSHAPE" = "no" ]; then
3369 SHY=" "
3370 SHN="*"
3371 else
3372 SHY="*"
3373 SHN=" "
3375 if [ "$CFG_XINERAMA" = "no" ]; then
3376 XAY=" "
3377 XAN="*"
3378 else
3379 XAY="*"
3380 XAN=" "
3382 if [ "$CFG_FONTCONFIG" = "no" ]; then
3383 FCGY=" "
3384 FCGN="*"
3385 else
3386 FCGY="*"
3387 FCGN=" "
3389 if [ "$CFG_XCURSOR" = "no" ]; then
3390 XCY=" "
3391 XCN="*"
3392 else
3393 XCY="*"
3394 XCN=" "
3396 if [ "$CFG_XFIXES" = "no" ]; then
3397 XFY=" "
3398 XFN="*"
3399 else
3400 XFY="*"
3401 XFN=" "
3403 if [ "$CFG_XRANDR" = "no" ]; then
3404 XZY=" "
3405 XZN="*"
3406 else
3407 XZY="*"
3408 XZN=" "
3410 if [ "$CFG_XRENDER" = "no" ]; then
3411 XRY=" "
3412 XRN="*"
3413 else
3414 XRY="*"
3415 XRN=" "
3417 if [ "$CFG_MITSHM" = "no" ]; then
3418 XMY=" "
3419 XMN="*"
3420 else
3421 XMY="*"
3422 XMN=" "
3424 if [ "$CFG_XINPUT" = "no" ]; then
3425 XIY=" "
3426 XIN="*"
3427 else
3428 XIY="*"
3429 XIN=" "
3431 if [ "$CFG_XKB" = "no" ]; then
3432 XKY=" "
3433 XKN="*"
3434 else
3435 XKY="*"
3436 XKN=" "
3438 if [ "$CFG_IM" = "no" ]; then
3439 IMY=" "
3440 IMN="*"
3441 else
3442 IMY="*"
3443 IMN=" "
3445 cat << EOF
3447 Qt/X11 only:
3449 -no-gtkstyle ....... Do not build the GTK theme integration.
3450 + -gtkstyle .......... Build the GTK theme integration.
3452 * -no-nas-sound ...... Do not compile in NAS sound support.
3453 -system-nas-sound .. Use NAS libaudio from the operating system.
3454 See http://radscan.com/nas.html
3456 -no-opengl ......... Do not support OpenGL.
3457 + -opengl <api> ...... Enable OpenGL support.
3458 With no parameter, this will auto-detect the "best"
3459 OpenGL API to use. If desktop OpenGL is avaliable, it
3460 will be used. Use desktop, es1, es1cl or es2 for <api>
3461 to force the use of the Desktop (OpenGL 1.x or 2.x),
3462 OpenGL ES 1.x Common profile, 1.x Common Lite profile
3463 or 2.x APIs instead. On X11, the EGL API will be used
3464 to manage GL contexts in the case of OpenGL ES.
3466 $SMN -no-sm ............. Do not support X Session Management.
3467 $SMY -sm ................ Support X Session Management, links in -lSM -lICE.
3469 $SHN -no-xshape ......... Do not compile XShape support.
3470 $SHY -xshape ............ Compile XShape support.
3471 Requires X11/extensions/shape.h.
3473 $XAN -no-xinerama ....... Do not compile Xinerama (multihead) support.
3474 $XAY -xinerama .......... Compile Xinerama support.
3475 Requires X11/extensions/Xinerama.h and libXinerama.
3476 By default, Xinerama support will be compiled if
3477 available and the shared libraries are dynamically
3478 loaded at runtime.
3480 $XCN -no-xcursor ........ Do not compile Xcursor support.
3481 $XCY -xcursor ........... Compile Xcursor support.
3482 Requires X11/Xcursor/Xcursor.h and libXcursor.
3483 By default, Xcursor support will be compiled if
3484 available and the shared libraries are dynamically
3485 loaded at runtime.
3487 $XFN -no-xfixes ......... Do not compile Xfixes support.
3488 $XFY -xfixes ............ Compile Xfixes support.
3489 Requires X11/extensions/Xfixes.h and libXfixes.
3490 By default, Xfixes support will be compiled if
3491 available and the shared libraries are dynamically
3492 loaded at runtime.
3494 $XZN -no-xrandr ......... Do not compile Xrandr (resize and rotate) support.
3495 $XZY -xrandr ............ Compile Xrandr support.
3496 Requires X11/extensions/Xrandr.h and libXrandr.
3498 $XRN -no-xrender ........ Do not compile Xrender support.
3499 $XRY -xrender ........... Compile Xrender support.
3500 Requires X11/extensions/Xrender.h and libXrender.
3502 $XMN -no-mitshm ......... Do not compile MIT-SHM support.
3503 $XMY -mitshm ............ Compile MIT-SHM support.
3504 Requires sys/ipc.h, sys/shm.h and X11/extensions/XShm.h
3506 $FCGN -no-fontconfig ..... Do not compile FontConfig (anti-aliased font) support.
3507 $FCGY -fontconfig ........ Compile FontConfig support.
3508 Requires fontconfig/fontconfig.h, libfontconfig,
3509 freetype.h and libfreetype.
3511 $XIN -no-xinput.......... Do not compile Xinput support.
3512 $XIY -xinput ............ Compile Xinput support. This also enabled tablet support
3513 which requires IRIX with wacom.h and libXi or
3514 XFree86 with X11/extensions/XInput.h and libXi.
3516 $XKN -no-xkb ............ Do not compile XKB (X KeyBoard extension) support.
3517 $XKY -xkb ............... Compile XKB support.
3522 if [ "$PLATFORM_MAC" = "yes" ]; then
3523 cat << EOF
3525 Qt/Mac only:
3527 -Fstring ........... Add an explicit framework path.
3528 -fw string ......... Add an explicit framework.
3530 -cocoa ............. Build the Cocoa version of Qt. Note that -no-framework
3531 and -static is not supported with -cocoa. Specifying
3532 this option creates Qt binaries that requires Mac OS X
3533 10.5 or higher.
3535 * -framework ......... Build Qt as a series of frameworks and
3536 link tools against those frameworks.
3537 -no-framework ...... Do not build Qt as a series of frameworks.
3539 * -dwarf2 ............ Enable dwarf2 debugging symbols.
3540 -no-dwarf2 ......... Disable dwarf2 debugging symbols.
3542 -universal ......... Equivalent to -arch "ppc x86"
3544 -arch <arch> ....... Build Qt for <arch>
3545 Example values for <arch>: x86 ppc x86_64 ppc64
3546 Multiple -arch arguments can be specified, 64-bit archs
3547 will be built with the Cocoa framework.
3549 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3550 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3555 if [ "$PLATFORM_QWS" = "yes" ]; then
3556 cat << EOF
3558 Qt for Embedded Linux only:
3560 -xplatform target ... The target platform when cross-compiling.
3562 -no-feature-<feature> Do not compile in <feature>.
3563 -feature-<feature> .. Compile in <feature>. The available features
3564 are described in src/corelib/global/qfeatures.txt
3566 -embedded <arch> .... This will enable the embedded build, you must have a
3567 proper license for this switch to work.
3568 Example values for <arch>: arm mips x86 generic
3570 -armfpa ............. Target platform is uses the ARM-FPA floating point format.
3571 -no-armfpa .......... Target platform does not use the ARM-FPA floating point format.
3573 The floating point format is usually autodetected by configure. Use this
3574 to override the detected value.
3576 -little-endian ...... Target platform is little endian (LSB first).
3577 -big-endian ......... Target platform is big endian (MSB first).
3579 -host-little-endian . Host platform is little endian (LSB first).
3580 -host-big-endian .... Host platform is big endian (MSB first).
3582 You only need to specify the endianness when
3583 cross-compiling, otherwise the host
3584 endianness will be used.
3586 -no-freetype ........ Do not compile in Freetype2 support.
3587 -qt-freetype ........ Use the libfreetype bundled with Qt.
3588 * -system-freetype .... Use libfreetype from the operating system.
3589 See http://www.freetype.org/
3591 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3592 default ($CFG_QCONFIG).
3594 -depths <list> ...... Comma-separated list of supported bit-per-pixel
3595 depths, from: 1, 4, 8, 12, 15, 16, 18, 24, 32 and 'all'.
3597 -qt-decoration-<style> ....Enable a decoration <style> in the QtGui library,
3598 by default all available decorations are on.
3599 Possible values for <style>: [ $CFG_DECORATION_AVAILABLE ]
3600 -plugin-decoration-<style> Enable decoration <style> as a plugin to be
3601 linked to at run time.
3602 Possible values for <style>: [ $CFG_DECORATION_PLUGIN_AVAILABLE ]
3603 -no-decoration-<style> ....Disable decoration <style> entirely.
3604 Possible values for <style>: [ $CFG_DECORATION_AVAILABLE ]
3606 -no-opengl .......... Do not support OpenGL.
3607 -opengl <api> ....... Enable OpenGL ES support
3608 With no parameter, this will attempt to auto-detect OpenGL ES 1.x
3609 or 2.x. Use es1, es1cl or es2 for <api> to override auto-detection.
3611 NOTE: A QGLScreen driver for the hardware is required to support
3612 OpenGL ES on Qt for Embedded Linux.
3614 -qt-gfx-<driver> ... Enable a graphics <driver> in the QtGui library.
3615 Possible values for <driver>: [ $CFG_GFX_AVAILABLE ]
3616 -plugin-gfx-<driver> Enable graphics <driver> as a plugin to be
3617 linked to at run time.
3618 Possible values for <driver>: [ $CFG_GFX_PLUGIN_AVAILABLE ]
3619 -no-gfx-<driver> ... Disable graphics <driver> entirely.
3620 Possible values for <driver>: [ $CFG_GFX_AVAILABLE ]
3622 -qt-kbd-<driver> ... Enable a keyboard <driver> in the QtGui library.
3623 Possible values for <driver>: [ $CFG_KBD_AVAILABLE ]
3625 -plugin-kbd-<driver> Enable keyboard <driver> as a plugin to be linked to
3626 at runtime.
3627 Possible values for <driver>: [ $CFG_KBD_PLUGIN_AVAILABLE ]
3629 -no-kbd-<driver> ... Disable keyboard <driver> entirely.
3630 Possible values for <driver>: [ $CFG_KBD_AVAILABLE ]
3632 -qt-mouse-<driver> ... Enable a mouse <driver> in the QtGui library.
3633 Possible values for <driver>: [ $CFG_MOUSE_AVAILABLE ]
3634 -plugin-mouse-<driver> Enable mouse <driver> as a plugin to be linked to
3635 at runtime.
3636 Possible values for <driver>: [ $CFG_MOUSE_PLUGIN_AVAILABLE ]
3637 -no-mouse-<driver> ... Disable mouse <driver> entirely.
3638 Possible values for <driver>: [ $CFG_MOUSE_AVAILABLE ]
3640 -iwmmxt ............ Compile using the iWMMXt instruction set
3641 (available on some XScale CPUs).
3647 if [ "$PLATFORM_QWS" = "yes" -o "$PLATFORM_X11" = "yes" ]; then
3648 if [ "$CFG_GLIB" = "no" ]; then
3649 GBY=" "
3650 GBN="+"
3651 else
3652 GBY="+"
3653 GBN=" "
3655 cat << EOF
3656 $GBN -no-glib ........... Do not compile Glib support.
3657 $GBY -glib .............. Compile Glib support.
3662 [ "x$ERROR" = "xyes" ] && exit 1
3663 exit 0
3664 fi # Help
3667 # -----------------------------------------------------------------------------
3668 # LICENSING, INTERACTIVE PART
3669 # -----------------------------------------------------------------------------
3671 if [ "$PLATFORM_QWS" = "yes" ]; then
3672 Platform="Qt for Embedded Linux"
3673 elif [ "$PLATFORM_MAC" = "yes" ]; then
3674 Platform="Qt/Mac"
3675 else
3676 PLATFORM_X11=yes
3677 Platform="Qt/X11"
3680 echo
3681 echo "This is the $Platform ${EditionString} Edition."
3682 echo
3684 if [ "$Edition" = "NokiaInternalBuild" ]; then
3685 echo "Detected -nokia-developer option"
3686 echo "Nokia employees and agents are allowed to use this software under"
3687 echo "the authority of Nokia Corporation and/or its subsidiary(-ies)"
3688 elif [ "$Edition" = "OpenSource" ]; then
3689 while true; do
3690 echo "You are licensed to use this software under the terms of"
3691 echo "the GNU General Public License (GPL) versions 3."
3692 echo "You are also licensed to use this software under the terms of"
3693 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3694 echo
3695 affix="either"
3696 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3697 echo "You have already accepted the terms of the $LicenseType license."
3698 acceptance=yes
3699 else
3700 echo "Type '3' to view the GNU General Public License version 3."
3701 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3702 echo "Type 'yes' to accept this license offer."
3703 echo "Type 'no' to decline this license offer."
3704 echo
3705 if echo '\c' | grep '\c' >/dev/null; then
3706 echo -n "Do you accept the terms of $affix license? "
3707 else
3708 echo "Do you accept the terms of $affix license? \c"
3710 read acceptance
3712 echo
3713 if [ "$acceptance" = "yes" ]; then
3714 break
3715 elif [ "$acceptance" = "no" ]; then
3716 echo "You are not licensed to use this software."
3717 echo
3718 exit 1
3719 elif [ "$acceptance" = "3" ]; then
3720 more "$relpath/LICENSE.GPL3"
3721 elif [ "$acceptance" = "L" ]; then
3722 more "$relpath/LICENSE.LGPL"
3724 done
3725 elif [ "$Edition" = "Preview" ]; then
3726 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3727 while true; do
3729 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3730 echo "You have already accepted the terms of the $LicenseType license."
3731 acceptance=yes
3732 else
3733 echo "You are licensed to use this software under the terms of"
3734 echo "the $TheLicense"
3735 echo
3736 echo "Type '?' to read the Preview License."
3737 echo "Type 'yes' to accept this license offer."
3738 echo "Type 'no' to decline this license offer."
3739 echo
3740 if echo '\c' | grep '\c' >/dev/null; then
3741 echo -n "Do you accept the terms of the license? "
3742 else
3743 echo "Do you accept the terms of the license? \c"
3745 read acceptance
3747 echo
3748 if [ "$acceptance" = "yes" ]; then
3749 break
3750 elif [ "$acceptance" = "no" ] ;then
3751 echo "You are not licensed to use this software."
3752 echo
3753 exit 0
3754 elif [ "$acceptance" = "?" ]; then
3755 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3757 done
3758 elif [ "$Edition" != "OpenSource" ]; then
3759 if [ -n "$ExpiryDate" ]; then
3760 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3761 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3762 Today=`date +%Y%m%d`
3763 if [ "$Today" -gt "$ExpiryDate" ]; then
3764 case "$LicenseType" in
3765 Commercial|Academic|Educational)
3766 if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
3767 echo
3768 echo "NOTICE NOTICE NOTICE NOTICE"
3769 echo
3770 echo " Your support and upgrade period has expired."
3771 echo
3772 echo " You are no longer licensed to use this version of Qt."
3773 echo " Please contact sales@trolltech.com to renew your support"
3774 echo " and upgrades for this license."
3775 echo
3776 echo "NOTICE NOTICE NOTICE NOTICE"
3777 echo
3778 exit 1
3779 else
3780 echo
3781 echo "WARNING WARNING WARNING WARNING"
3782 echo
3783 echo " Your support and upgrade period has expired."
3784 echo
3785 echo " You may continue to use your last licensed release"
3786 echo " of Qt under the terms of your existing license"
3787 echo " agreement. But you are not entitled to technical"
3788 echo " support, nor are you entitled to use any more recent"
3789 echo " Qt releases."
3790 echo
3791 echo " Please contact sales@trolltech.com to renew your"
3792 echo " support and upgrades for this license."
3793 echo
3794 echo "WARNING WARNING WARNING WARNING"
3795 echo
3796 sleep 3
3799 Evaluation|*)
3800 echo
3801 echo "NOTICE NOTICE NOTICE NOTICE"
3802 echo
3803 echo " Your Evaluation license has expired."
3804 echo
3805 echo " You are no longer licensed to use this software. Please"
3806 echo " contact sales@trolltech.com to purchase license, or install"
3807 echo " the Qt Open Source Edition if you intend to develop free"
3808 echo " software."
3809 echo
3810 echo "NOTICE NOTICE NOTICE NOTICE"
3811 echo
3812 exit 1
3814 esac
3817 TheLicense=`head -n 1 "$outpath/LICENSE"`
3818 while true; do
3819 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3820 echo "You have already accepted the terms of the $TheLicense."
3821 acceptance=yes
3822 else
3823 echo "You are licensed to use this software under the terms of"
3824 echo "the $TheLicense."
3825 echo
3826 echo "Type '?' to view the $TheLicense."
3827 echo "Type 'yes' to accept this license offer."
3828 echo "Type 'no' to decline this license offer."
3829 echo
3830 if echo '\c' | grep '\c' >/dev/null; then
3831 echo -n "Do you accept the terms of the $TheLicense? "
3832 else
3833 echo "Do you accept the terms of the $TheLicense? \c"
3835 read acceptance
3837 echo
3838 if [ "$acceptance" = "yes" ]; then
3839 break
3840 elif [ "$acceptance" = "no" ]; then
3841 echo "You are not licensed to use this software."
3842 echo
3843 exit 1
3844 else [ "$acceptance" = "?" ]
3845 more "$outpath/LICENSE"
3847 done
3850 # this should be moved somewhere else
3851 case "$PLATFORM" in
3852 aix-*)
3853 AIX_VERSION=`uname -v`
3854 if [ "$AIX_VERSION" -lt "5" ]; then
3855 QMakeVar add QMAKE_LIBS_X11 -lbind
3860 esac
3862 #-------------------------------------------------------------------------------
3863 # generate qconfig.cpp
3864 #-------------------------------------------------------------------------------
3865 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3867 LICENSE_USER_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_lcnsuser=$Licensee"`
3868 LICENSE_PRODUCTS_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_lcnsprod=$Edition"`
3869 PREFIX_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_prfxpath=$QT_INSTALL_PREFIX"`
3870 DOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_INSTALL_DOCS"`
3871 HEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_INSTALL_HEADERS"`
3872 LIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_INSTALL_LIBS"`
3873 BINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_INSTALL_BINS"`
3874 PLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_INSTALL_PLUGINS"`
3875 DATA_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_datapath=$QT_INSTALL_DATA"`
3876 TRANSLATIONS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_trnspath=$QT_INSTALL_TRANSLATIONS"`
3877 SETTINGS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_stngpath=$QT_INSTALL_SETTINGS"`
3878 EXAMPLES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_xmplpath=$QT_INSTALL_EXAMPLES"`
3879 DEMOS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_demopath=$QT_INSTALL_DEMOS"`
3881 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3882 /* License Info */
3883 static const char qt_configure_licensee_str [256 + 12] = "$LICENSE_USER_STR";
3884 static const char qt_configure_licensed_products_str [256 + 12] = "$LICENSE_PRODUCTS_STR";
3887 if [ ! -z "$QT_HOST_PREFIX" ]; then
3888 HOSTPREFIX_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_prfxpath=$QT_HOST_PREFIX"`
3889 HOSTDOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_HOST_PREFIX/doc"`
3890 HOSTHEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_HOST_PREFIX/include"`
3891 HOSTLIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_HOST_PREFIX/lib"`
3892 HOSTBINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_HOST_PREFIX/bin"`
3893 HOSTPLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_HOST_PREFIX/plugins"`
3894 HOSTDATA_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_datapath=$QT_HOST_PREFIX"`
3895 HOSTTRANSLATIONS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_trnspath=$QT_HOST_PREFIX/translations"`
3896 HOSTSETTINGS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_stngpath=$QT_INSTALL_SETTINGS"`
3897 HOSTEXAMPLES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_xmplpath=$QT_INSTALL_EXAMPLES"`
3898 HOSTDEMOS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_demopath=$QT_INSTALL_DEMOS"`
3900 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3902 #if defined(QT_BOOTSTRAPPED) || defined(QT_BUILD_QMAKE)
3903 /* Installation Info */
3904 static const char qt_configure_prefix_path_str [256 + 12] = "$HOSTPREFIX_PATH_STR";
3905 static const char qt_configure_documentation_path_str[256 + 12] = "$HOSTDOCUMENTATION_PATH_STR";
3906 static const char qt_configure_headers_path_str [256 + 12] = "$HOSTHEADERS_PATH_STR";
3907 static const char qt_configure_libraries_path_str [256 + 12] = "$HOSTLIBRARIES_PATH_STR";
3908 static const char qt_configure_binaries_path_str [256 + 12] = "$HOSTBINARIES_PATH_STR";
3909 static const char qt_configure_plugins_path_str [256 + 12] = "$HOSTPLUGINS_PATH_STR";
3910 static const char qt_configure_data_path_str [256 + 12] = "$HOSTDATA_PATH_STR";
3911 static const char qt_configure_translations_path_str [256 + 12] = "$HOSTTRANSLATIONS_PATH_STR";
3912 static const char qt_configure_settings_path_str [256 + 12] = "$HOSTSETTINGS_PATH_STR";
3913 static const char qt_configure_examples_path_str [256 + 12] = "$HOSTEXAMPLES_PATH_STR";
3914 static const char qt_configure_demos_path_str [256 + 12] = "$HOSTDEMOS_PATH_STR";
3915 #else // QT_BOOTSTRAPPED
3919 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3920 /* Installation Info */
3921 static const char qt_configure_prefix_path_str [256 + 12] = "$PREFIX_PATH_STR";
3922 static const char qt_configure_documentation_path_str[256 + 12] = "$DOCUMENTATION_PATH_STR";
3923 static const char qt_configure_headers_path_str [256 + 12] = "$HEADERS_PATH_STR";
3924 static const char qt_configure_libraries_path_str [256 + 12] = "$LIBRARIES_PATH_STR";
3925 static const char qt_configure_binaries_path_str [256 + 12] = "$BINARIES_PATH_STR";
3926 static const char qt_configure_plugins_path_str [256 + 12] = "$PLUGINS_PATH_STR";
3927 static const char qt_configure_data_path_str [256 + 12] = "$DATA_PATH_STR";
3928 static const char qt_configure_translations_path_str [256 + 12] = "$TRANSLATIONS_PATH_STR";
3929 static const char qt_configure_settings_path_str [256 + 12] = "$SETTINGS_PATH_STR";
3930 static const char qt_configure_examples_path_str [256 + 12] = "$EXAMPLES_PATH_STR";
3931 static const char qt_configure_demos_path_str [256 + 12] = "$DEMOS_PATH_STR";
3934 if [ ! -z "$QT_HOST_PREFIX" ]; then
3935 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3936 #endif // QT_BOOTSTRAPPED
3941 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3942 /* strlen( "qt_lcnsxxxx" ) == 12 */
3943 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3944 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3945 #define QT_CONFIGURE_PREFIX_PATH qt_configure_prefix_path_str + 12;
3946 #define QT_CONFIGURE_DOCUMENTATION_PATH qt_configure_documentation_path_str + 12;
3947 #define QT_CONFIGURE_HEADERS_PATH qt_configure_headers_path_str + 12;
3948 #define QT_CONFIGURE_LIBRARIES_PATH qt_configure_libraries_path_str + 12;
3949 #define QT_CONFIGURE_BINARIES_PATH qt_configure_binaries_path_str + 12;
3950 #define QT_CONFIGURE_PLUGINS_PATH qt_configure_plugins_path_str + 12;
3951 #define QT_CONFIGURE_DATA_PATH qt_configure_data_path_str + 12;
3952 #define QT_CONFIGURE_TRANSLATIONS_PATH qt_configure_translations_path_str + 12;
3953 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3954 #define QT_CONFIGURE_EXAMPLES_PATH qt_configure_examples_path_str + 12;
3955 #define QT_CONFIGURE_DEMOS_PATH qt_configure_demos_path_str + 12;
3958 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3959 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3960 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3961 else
3962 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3963 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3964 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3967 # -----------------------------------------------------------------------------
3968 # build qmake
3969 # -----------------------------------------------------------------------------
3971 # symlink includes
3972 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3973 SYNCQT_OPTS=
3974 [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
3975 if [ "$OPT_SHADOW" = "yes" ]; then
3976 "$outpath/bin/syncqt" $SYNCQT_OPTS
3977 elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ]; then
3978 QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS
3982 # $1: variable name
3983 # $2: optional transformation
3984 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3985 # is where the resulting variable is written to
3986 setBootstrapVariable()
3988 variableRegExp="^$1[^_A-Z0-9]"
3989 getQMakeConf | grep "$variableRegExp" | ( [ -n "$2" ] && sed "$2" ; [ -z "$2" ] && cat ) | $AWK '
3991 varLength = index($0, "=") - 1
3992 valStart = varLength + 2
3993 if (substr($0, varLength, 1) == "+") {
3994 varLength = varLength - 1
3995 valStart = valStart + 1
3997 var = substr($0, 0, varLength)
3998 gsub("[ \t]+", "", var)
3999 val = substr($0, valStart)
4000 printf "%s_%s = %s\n", var, NR, val
4002 END {
4003 if (length(var) > 0) {
4004 printf "%s =", var
4005 for (i = 1; i <= NR; ++i)
4006 printf " $(%s_%s)", var, i
4007 printf "\n"
4009 }' >> "$mkfile"
4012 # build qmake
4013 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
4014 echo "Creating qmake. Please wait..."
4016 OLD_QCONFIG_H=
4017 QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
4018 QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
4019 if [ -f "$QCONFIG_H" ]; then
4020 OLD_QCONFIG_H=$QCONFIG_H
4021 mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
4024 # create temporary qconfig.h for compiling qmake, if it doesn't exist
4025 # when building qmake, we use #defines for the install paths,
4026 # however they are real functions in the library
4027 if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
4028 mkdir -p "$outpath/src/corelib/global"
4029 [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
4030 echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
4033 mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
4034 for conf in "$outpath/include/QtCore/qconfig.h" "$outpath/include/Qt/qconfig.h"; do
4035 if [ '!' -f "$conf" ]; then
4036 ln -s "$QCONFIG_H" "$conf"
4038 done
4040 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
4041 rm -f mkspecs/default
4042 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
4043 # fix makefiles
4044 for mkfile in GNUmakefile Makefile; do
4045 EXTRA_LFLAGS=
4046 EXTRA_CFLAGS=
4047 in_mkfile="${mkfile}.in"
4048 if [ "$mkfile" = "Makefile" ]; then
4049 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
4050 # (cd qmake && qmake) >/dev/null 2>&1 && continue
4051 # fi
4052 in_mkfile="${mkfile}.unix"
4054 in_mkfile="$relpath/qmake/$in_mkfile"
4055 mkfile="$outpath/qmake/$mkfile"
4056 if [ -f "$mkfile" ]; then
4057 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
4058 rm -f "$mkfile"
4060 [ -f "$in_mkfile" ] || continue
4062 echo "########################################################################" > "$mkfile"
4063 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
4064 echo "########################################################################" >> "$mkfile"
4065 EXTRA_OBJS=
4066 EXTRA_SRCS=
4067 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
4068 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
4069 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
4071 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
4072 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
4075 [ -n "$CC" ] && echo "CC = $CC" >> "$mkfile"
4076 [ -n "$CXX" ] && echo "CXX = $CXX" >> "$mkfile"
4077 if [ "$CFG_SILENT" = "yes" ]; then
4078 [ -z "$CC" ] && setBootstrapVariable QMAKE_CC 's,QMAKE_CC.*=,CC=\@,'
4079 [ -z "$CXX" ] && setBootstrapVariable QMAKE_CXX 's,QMAKE_CXX.*=,CXX=\@,'
4080 else
4081 [ -z "$CC" ] && setBootstrapVariable QMAKE_CC 's,QMAKE_CC,CC,'
4082 [ -z "$CXX" ] && setBootstrapVariable QMAKE_CXX 's,QMAKE_CXX,CXX,'
4084 setBootstrapVariable QMAKE_CFLAGS
4085 setBootstrapVariable QMAKE_CXXFLAGS 's,\$\$QMAKE_CFLAGS,\$(QMAKE_CFLAGS),'
4086 setBootstrapVariable QMAKE_LFLAGS
4088 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
4089 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
4090 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
4092 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
4093 setBootstrapVariable QMAKE_CFLAGS_RELEASE
4094 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE 's,\$\$QMAKE_CFLAGS_RELEASE,\$(QMAKE_CFLAGS_RELEASE),'
4095 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
4096 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
4097 elif [ "$CFG_DEBUG" = "yes" ]; then
4098 setBootstrapVariable QMAKE_CFLAGS_DEBUG
4099 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG 's,\$\$QMAKE_CFLAGS_DEBUG,\$(QMAKE_CFLAGS_DEBUG),'
4100 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
4101 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
4104 if [ '!' -z "$RPATH_FLAGS" ] && [ '!' -z "`getQMakeConf \"$QMAKESPEC\" | grep QMAKE_RPATH | awk '{print $3;}'`" ]; then
4105 setBootstrapVariable QMAKE_RPATH 's,\$\$LITERAL_WHITESPACE, ,'
4106 for rpath in $RPATH_FLAGS; do
4107 EXTRA_LFLAGS="\$(QMAKE_RPATH)\"$rpath\" $EXTRA_LFLAGS"
4108 done
4110 if [ "$PLATFORM_MAC" = "yes" ]; then
4111 if [ "$PLATFORM" = "macx-icc" ]; then
4112 echo "export MACOSX_DEPLOYMENT_TARGET = 10.4" >> "$mkfile"
4113 else
4114 echo "export MACOSX_DEPLOYMENT_TARGET = 10.3" >> "$mkfile"
4116 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
4117 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
4118 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
4119 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
4120 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
4121 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
4122 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
4123 if echo "$CFG_MAC_ARCHS" | grep x86 > /dev/null 2>&1; then
4124 X86_CFLAGS="-arch i386"
4125 X86_LFLAGS="-arch i386"
4126 EXTRA_CFLAGS="$X86_CFLAGS $EXTRA_CFLAGS"
4127 EXTRA_CXXFLAGS="$X86_CFLAGS $EXTRA_CXXFLAGS"
4128 EXTRA_LFLAGS="$EXTRA_LFLAGS $X86_LFLAGS"
4130 if echo "$CFG_MAC_ARCHS" | grep ppc > /dev/null 2>&1; then
4131 PPC_CFLAGS="-arch ppc"
4132 PPC_LFLAGS="-arch ppc"
4133 EXTRA_CFLAGS="$PPC_CFLAGS $EXTRA_CFLAGS"
4134 EXTRA_CXXFLAGS="$PPC_CFLAGS $EXTRA_CXXFLAGS"
4135 EXTRA_LFLAGS="$EXTRA_LFLAGS $PPC_LFLAGS"
4137 if [ '!' -z "$CFG_SDK" ]; then
4138 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
4139 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
4140 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
4141 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
4142 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
4145 [ "$CFG_EMBEDDED" != "no" ] && EXTRA_CFLAGS="$EXTRA_CFLAGS -DQWS"
4146 if [ '!' -z "$D_FLAGS" ]; then
4147 for DEF in $D_FLAGS; do
4148 EXTRA_CFLAGS="$EXTRA_CFLAGS \"-D${DEF}\""
4149 done
4151 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
4152 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
4153 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
4154 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
4155 echo >>"$mkfile"
4156 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
4157 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
4158 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
4159 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
4160 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
4161 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
4162 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
4163 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
4164 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
4165 -e "s,@QMAKESPEC@,$adjqmakespec,g" "$in_mkfile" >>"$mkfile"
4167 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
4168 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
4169 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
4170 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
4171 rm "$mkfile.tmp"
4173 done
4175 QMAKE_BUILD_ERROR=no
4176 (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
4177 [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
4178 [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
4179 [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
4180 fi # Build qmake
4182 #-------------------------------------------------------------------------------
4183 # tests that need qmake
4184 #-------------------------------------------------------------------------------
4186 # detect availability of float math.h functions
4187 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/floatmath "floatmath" $L_FLAGS $I_FLAGS $l_FLAGS; then
4188 CFG_USE_FLOATMATH=yes
4189 else
4190 CFG_USE_FLOATMATH=no
4193 # detect mmx support
4194 if [ "${CFG_MMX}" = "auto" ]; then
4195 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mmx "mmx" $L_FLAGS $I_FLAGS $l_FLAGS "-mmmx"; then
4196 CFG_MMX=yes
4197 else
4198 CFG_MMX=no
4202 # detect 3dnow support
4203 if [ "${CFG_3DNOW}" = "auto" ]; then
4204 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/3dnow "3dnow" $L_FLAGS $I_FLAGS $l_FLAGS "-m3dnow"; then
4205 CFG_3DNOW=yes
4206 else
4207 CFG_3DNOW=no
4211 # detect sse support
4212 if [ "${CFG_SSE}" = "auto" ]; then
4213 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse "sse" $L_FLAGS $I_FLAGS $l_FLAGS "-msse"; then
4214 CFG_SSE=yes
4215 else
4216 CFG_SSE=no
4220 # detect sse2 support
4221 if [ "${CFG_SSE2}" = "auto" ]; then
4222 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse2 "sse2" $L_FLAGS $I_FLAGS $l_FLAGS "-msse2"; then
4223 CFG_SSE2=yes
4224 else
4225 CFG_SSE2=no
4229 # check iWMMXt support
4230 if [ "$CFG_IWMMXT" = "yes" ]; then
4231 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
4232 echo "The iWMMXt functionality test failed!"
4233 echo " Please make sure your compiler supports iWMMXt intrinsics!"
4234 exit 1
4238 # detect zlib
4239 if [ "$CFG_ZLIB" = "no" ]; then
4240 # Note: Qt no longer support builds without zlib
4241 # So we force a "no" to be "auto" here.
4242 # If you REALLY really need no zlib support, you can still disable
4243 # it by doing the following:
4244 # add "no-zlib" to mkspecs/qconfig.pri
4245 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4247 # There's no guarantee that Qt will build under those conditions
4249 CFG_ZLIB=auto
4250 ZLIB_FORCED=yes
4252 if [ "$CFG_ZLIB" = "auto" ]; then
4253 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/zlib "zlib" $L_FLAGS $I_FLAGS $l_FLAGS; then
4254 CFG_ZLIB=system
4255 else
4256 CFG_ZLIB=yes
4260 # detect how jpeg should be built
4261 if [ "$CFG_JPEG" = "auto" ]; then
4262 if [ "$CFG_SHARED" = "yes" ]; then
4263 CFG_JPEG=plugin
4264 else
4265 CFG_JPEG=yes
4268 # detect jpeg
4269 if [ "$CFG_LIBJPEG" = "auto" ]; then
4270 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libjpeg "libjpeg" $L_FLAGS $I_FLAGS $l_FLAGS; then
4271 CFG_LIBJPEG=system
4272 else
4273 CFG_LIBJPEG=qt
4277 # detect how gif should be built
4278 if [ "$CFG_GIF" = "auto" ]; then
4279 if [ "$CFG_SHARED" = "yes" ]; then
4280 CFG_GIF=plugin
4281 else
4282 CFG_GIF=yes
4286 # detect how tiff should be built
4287 if [ "$CFG_TIFF" = "auto" ]; then
4288 if [ "$CFG_SHARED" = "yes" ]; then
4289 CFG_TIFF=plugin
4290 else
4291 CFG_TIFF=yes
4295 # detect tiff
4296 if [ "$CFG_LIBTIFF" = "auto" ]; then
4297 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libtiff "libtiff" $L_FLAGS $I_FLAGS $l_FLAGS; then
4298 CFG_LIBTIFF=system
4299 else
4300 CFG_LIBTIFF=qt
4304 # detect how mng should be built
4305 if [ "$CFG_MNG" = "auto" ]; then
4306 if [ "$CFG_SHARED" = "yes" ]; then
4307 CFG_MNG=plugin
4308 else
4309 CFG_MNG=yes
4312 # detect mng
4313 if [ "$CFG_LIBMNG" = "auto" ]; then
4314 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libmng "libmng" $L_FLAGS $I_FLAGS $l_FLAGS; then
4315 CFG_LIBMNG=system
4316 else
4317 CFG_LIBMNG=qt
4321 # detect png
4322 if [ "$CFG_LIBPNG" = "auto" ]; then
4323 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libpng "libpng" $L_FLAGS $I_FLAGS $l_FLAGS; then
4324 CFG_LIBPNG=system
4325 else
4326 CFG_LIBPNG=qt
4330 # detect accessibility
4331 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4332 CFG_ACCESSIBILITY=yes
4335 # auto-detect SQL-modules support
4336 for _SQLDR in $CFG_SQL_AVAILABLE; do
4337 case $_SQLDR in
4338 mysql)
4339 if [ "$CFG_SQL_mysql" != "no" ]; then
4340 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4341 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4342 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
4343 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
4344 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
4345 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4346 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4348 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4349 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4350 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4351 echo " You need MySql 4 or higher."
4352 echo " If you believe this message is in error you may use the continue"
4353 echo " switch (-continue) to $0 to continue."
4354 exit 101
4355 else
4356 CFG_SQL_mysql="no"
4357 QT_LFLAGS_MYSQL=""
4358 QT_LFLAGS_MYSQL_R=""
4359 QT_CFLAGS_MYSQL=""
4361 else
4362 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; then
4363 QMakeVar add CONFIG use_libmysqlclient_r
4364 if [ "$CFG_SQL_mysql" = "auto" ]; then
4365 CFG_SQL_mysql=plugin
4367 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4368 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; then
4369 if [ "$CFG_SQL_mysql" = "auto" ]; then
4370 CFG_SQL_mysql=plugin
4372 else
4373 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4374 echo "MySQL support cannot be enabled due to functionality tests!"
4375 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4376 echo " If you believe this message is in error you may use the continue"
4377 echo " switch (-continue) to $0 to continue."
4378 exit 101
4379 else
4380 CFG_SQL_mysql=no
4381 QT_LFLAGS_MYSQL=""
4382 QT_LFLAGS_MYSQL_R=""
4383 QT_CFLAGS_MYSQL=""
4389 psql)
4390 if [ "$CFG_SQL_psql" != "no" ]; then
4391 if "$WHICH" pg_config >/dev/null 2>&1; then
4392 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
4393 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
4395 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4396 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4397 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; then
4398 if [ "$CFG_SQL_psql" = "auto" ]; then
4399 CFG_SQL_psql=plugin
4401 else
4402 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4403 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4404 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4405 echo " If you believe this message is in error you may use the continue"
4406 echo " switch (-continue) to $0 to continue."
4407 exit 101
4408 else
4409 CFG_SQL_psql=no
4410 QT_CFLAGS_PSQL=""
4411 QT_LFLAGS_PSQL=""
4416 odbc)
4417 if [ "$CFG_SQL_odbc" != "no" ]; then
4418 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/odbc "ODBC" $L_FLAGS $I_FLAGS $l_FLAGS; then
4419 if [ "$CFG_SQL_odbc" = "auto" ]; then
4420 CFG_SQL_odbc=plugin
4422 else
4423 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4424 echo "ODBC support cannot be enabled due to functionality tests!"
4425 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4426 echo " If you believe this message is in error you may use the continue"
4427 echo " switch (-continue) to $0 to continue."
4428 exit 101
4429 else
4430 CFG_SQL_odbc=no
4435 oci)
4436 if [ "$CFG_SQL_oci" != "no" ]; then
4437 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/oci "OCI" $L_FLAGS $I_FLAGS $l_FLAGS; then
4438 if [ "$CFG_SQL_oci" = "auto" ]; then
4439 CFG_SQL_oci=plugin
4441 else
4442 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4443 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4444 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4445 echo " If you believe this message is in error you may use the continue"
4446 echo " switch (-continue) to $0 to continue."
4447 exit 101
4448 else
4449 CFG_SQL_oci=no
4454 tds)
4455 if [ "$CFG_SQL_tds" != "no" ]; then
4456 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/tds "TDS" $L_FLAGS $I_FLAGS $l_FLAGS; then
4457 if [ "$CFG_SQL_tds" = "auto" ]; then
4458 CFG_SQL_tds=plugin
4460 else
4461 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4462 echo "TDS support cannot be enabled due to functionality tests!"
4463 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4464 echo " If you believe this message is in error you may use the continue"
4465 echo " switch (-continue) to $0 to continue."
4466 exit 101
4467 else
4468 CFG_SQL_tds=no
4473 db2)
4474 if [ "$CFG_SQL_db2" != "no" ]; then
4475 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/db2 "DB2" $L_FLAGS $I_FLAGS $l_FLAGS; then
4476 if [ "$CFG_SQL_db2" = "auto" ]; then
4477 CFG_SQL_db2=plugin
4479 else
4480 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4481 echo "ODBC support cannot be enabled due to functionality tests!"
4482 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4483 echo " If you believe this message is in error you may use the continue"
4484 echo " switch (-continue) to $0 to continue."
4485 exit 101
4486 else
4487 CFG_SQL_db2=no
4492 ibase)
4493 if [ "$CFG_SQL_ibase" != "no" ]; then
4494 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ibase "InterBase" $L_FLAGS $I_FLAGS $l_FLAGS; then
4495 if [ "$CFG_SQL_ibase" = "auto" ]; then
4496 CFG_SQL_ibase=plugin
4498 else
4499 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4500 echo "InterBase support cannot be enabled due to functionality tests!"
4501 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4502 echo " If you believe this message is in error you may use the continue"
4503 echo " switch (-continue) to $0 to continue."
4504 exit 101
4505 else
4506 CFG_SQL_ibase=no
4511 sqlite2)
4512 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4513 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sqlite2 "SQLite2" $L_FLAGS $I_FLAGS $l_FLAGS; then
4514 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4515 CFG_SQL_sqlite2=plugin
4517 else
4518 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4519 echo "SQLite2 support cannot be enabled due to functionality tests!"
4520 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4521 echo " If you believe this message is in error you may use the continue"
4522 echo " switch (-continue) to $0 to continue."
4523 exit 101
4524 else
4525 CFG_SQL_sqlite2=no
4530 sqlite)
4531 if [ "$CFG_SQL_sqlite" != "no" ]; then
4532 SQLITE_AUTODETECT_FAILED="no"
4533 if [ "$CFG_SQLITE" = "system" ]; then
4534 if [ -n "$PKG_CONFIG" ]; then
4535 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4536 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4538 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; then
4539 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4540 CFG_SQL_sqlite=plugin
4542 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4543 else
4544 SQLITE_AUTODETECT_FAILED="yes"
4545 CFG_SQL_sqlite=no
4547 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4548 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4549 CFG_SQL_sqlite=plugin
4551 else
4552 SQLITE_AUTODETECT_FAILED="yes"
4553 CFG_SQL_sqlite=no
4556 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4557 echo "SQLite support cannot be enabled due to functionality tests!"
4558 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4559 echo " If you believe this message is in error you may use the continue"
4560 echo " switch (-continue) to $0 to continue."
4561 exit 101
4566 if [ "$OPT_VERBOSE" = "yes" ]; then
4567 echo "unknown SQL driver: $_SQLDR"
4570 esac
4571 done
4573 # auto-detect NIS support
4574 if [ "$CFG_NIS" != "no" ]; then
4575 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/nis "NIS" $L_FLAGS $I_FLAGS $l_FLAGS; then
4576 CFG_NIS=yes
4577 else
4578 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4579 echo "NIS support cannot be enabled due to functionality tests!"
4580 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4581 echo " If you believe this message is in error you may use the continue"
4582 echo " switch (-continue) to $0 to continue."
4583 exit 101
4584 else
4585 CFG_NIS=no
4590 # auto-detect CUPS support
4591 if [ "$CFG_CUPS" != "no" ]; then
4592 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/cups "Cups" $L_FLAGS $I_FLAGS $l_FLAGS; then
4593 CFG_CUPS=yes
4594 else
4595 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4596 echo "Cups support cannot be enabled due to functionality tests!"
4597 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4598 echo " If you believe this message is in error you may use the continue"
4599 echo " switch (-continue) to $0 to continue."
4600 exit 101
4601 else
4602 CFG_CUPS=no
4607 # auto-detect iconv(3) support
4608 if [ "$CFG_ICONV" != "no" ]; then
4609 if [ "$PLATFORM_QWS" = "yes" ]; then
4610 CFG_ICONV=no
4611 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/iconv" "POSIX iconv" $L_FLAGS $I_FLAGS $l_FLAGS; then
4612 CFG_ICONV=yes
4613 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/gnu-libiconv" "GNU libiconv" $L_FLAGS $I_FLAGS $l_FLAGS; then
4614 CFG_ICONV=gnu
4615 else
4616 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4617 echo "Iconv support cannot be enabled due to functionality tests!"
4618 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4619 echo " If you believe this message is in error you may use the continue"
4620 echo " switch (-continue) to $0 to continue."
4621 exit 101
4622 else
4623 CFG_ICONV=no
4628 # auto-detect libdbus-1 support
4629 if [ "$CFG_DBUS" != "no" ]; then
4630 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4631 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4632 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4634 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; then
4635 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4636 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4637 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4638 else
4639 if [ "$CFG_DBUS" = "auto" ]; then
4640 CFG_DBUS=no
4641 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4642 # CFG_DBUS is "yes" or "linked" here
4644 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4645 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4646 echo " If you believe this message is in error you may use the continue"
4647 echo " switch (-continue) to $0 to continue."
4648 exit 101
4653 # Generate a CRC of the namespace for using in constants for the Carbon port.
4654 # This should mean that you really *can* load two Qt's and have our custom
4655 # Carbon events work.
4656 if [ "$PLATFORM_MAC" = "yes" -a ! -z "$QT_NAMESPACE" ]; then
4657 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`
4660 if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ]; then
4661 # auto-detect Glib support
4662 if [ "$CFG_GLIB" != "no" ]; then
4663 if [ -n "$PKG_CONFIG" ]; then
4664 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4665 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4667 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
4668 CFG_GLIB=yes
4669 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4670 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4671 else
4672 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4673 echo "Glib support cannot be enabled due to functionality tests!"
4674 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4675 echo " If you believe this message is in error you may use the continue"
4676 echo " switch (-continue) to $0 to continue."
4677 exit 101
4678 else
4679 CFG_GLIB=no
4684 if [ "$CFG_PHONON" != "no" ]; then
4685 if [ "$CFG_PHONON_BACKEND" != "no" ]; then
4686 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4687 if [ -n "$PKG_CONFIG" ]; then
4688 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4689 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4691 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
4692 CFG_GSTREAMER=yes
4693 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4694 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4695 else
4696 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4697 echo "Gstreamer support cannot be enabled due to functionality tests!"
4698 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4699 echo " If you believe this message is in error you may use the continue"
4700 echo " switch (-continue) to $0 to continue."
4701 exit 101
4702 else
4703 CFG_GSTREAMER=no
4706 elif [ "$CFG_GLIB" = "no" ]; then
4707 CFG_GSTREAMER=no
4710 if [ "$CFG_GSTREAMER" = "yes" ]; then
4711 CFG_PHONON=yes
4712 else
4713 if [ "$CFG_PHONON" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4714 echo "Phonon support cannot be enabled due to functionality tests!"
4715 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4716 echo " If you believe this message is in error you may use the continue"
4717 echo " switch (-continue) to $0 to continue."
4718 exit 101
4719 else
4720 CFG_PHONON=no
4723 else
4724 CFG_PHONON=yes
4727 fi # X11/QWS
4729 # x11
4730 if [ "$PLATFORM_X11" = "yes" ]; then
4731 x11tests="$relpath/config.tests/x11"
4732 X11TESTS_FLAGS=
4734 # work around broken X11 headers when using GCC 2.95 or later
4735 NOTYPE=no
4736 "$x11tests/notype.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" && NOTYPE=yes
4737 if [ $NOTYPE = "yes" ]; then
4738 QMakeVar add QMAKE_CXXFLAGS -fpermissive
4739 X11TESTS_FLAGS="$X11TESTS_FLAGS -fpermissive"
4742 # Check we actually have X11 :-)
4743 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
4744 echo "Basic XLib functionality test failed!"
4745 echo " You might need to modify the include and library search paths by editing"
4746 echo " QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in ${XQMAKESPEC}."
4747 exit 1
4750 # auto-detect OpenGL support (es1 = OpenGL ES 1.x Common, es1cl = ES 1.x common lite, es2 = OpenGL ES 2.x)
4751 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4752 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
4753 CFG_OPENGL=desktop
4754 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
4755 CFG_OPENGL=es2
4756 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
4757 CFG_OPENGL=es1
4758 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
4759 CFG_OPENGL=es1cl
4760 else
4761 if [ "$CFG_OPENGL" = "yes" ]; then
4762 echo "All the OpenGL functionality tests failed!"
4763 echo " You might need to modify the include and library search paths by editing"
4764 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4765 echo " ${XQMAKESPEC}."
4766 exit 1
4768 CFG_OPENGL=no
4770 case "$PLATFORM" in
4771 hpux*)
4772 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4773 if [ "$CFG_OPENGL" = "desktop" ]; then
4774 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
4775 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4781 esac
4782 elif [ "$CFG_OPENGL" = "es1cl" ]; then
4783 # OpenGL ES 1.x common lite
4784 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
4785 echo "The OpenGL ES 1.x Common Lite Profile functionality test failed!"
4786 echo " You might need to modify the include and library search paths by editing"
4787 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4788 echo " ${XQMAKESPEC}."
4789 exit 1
4791 elif [ "$CFG_OPENGL" = "es1" ]; then
4792 # OpenGL ES 1.x
4793 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
4794 echo "The OpenGL ES 1.x functionality test failed!"
4795 echo " You might need to modify the include and library search paths by editing"
4796 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4797 echo " ${XQMAKESPEC}."
4798 exit 1
4800 elif [ "$CFG_OPENGL" = "es2" ]; then
4801 #OpenGL ES 2.x
4802 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
4803 echo "The OpenGL ES 2.0 functionality test failed!"
4804 echo " You might need to modify the include and library search paths by editing"
4805 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4806 echo " ${XQMAKESPEC}."
4807 exit 1
4809 elif [ "$CFG_OPENGL" = "desktop" ]; then
4810 # Desktop OpenGL support
4811 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
4812 echo "The OpenGL functionality test failed!"
4813 echo " You might need to modify the include and library search paths by editing"
4814 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4815 echo " ${XQMAKESPEC}."
4816 exit 1
4818 case "$PLATFORM" in
4819 hpux*)
4820 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4821 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
4822 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4827 esac
4830 # if opengl is disabled and the user specified graphicssystem gl, disable it...
4831 if [ "$CFG_GRAPHICS_SYSTEM" = "opengl" ] && [ "$CFG_OPENGL" = "no" ]; then
4832 echo "OpenGL Graphics System is disabled due to missing OpenGL support..."
4833 CFG_GRAPHICS_SYSTEM=default
4836 # auto-detect Xcursor support
4837 if [ "$CFG_XCURSOR" != "no" ]; then
4838 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
4839 if [ "$CFG_XCURSOR" != "runtime" ]; then
4840 CFG_XCURSOR=yes;
4842 else
4843 if [ "$CFG_XCURSOR" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4844 echo "Xcursor support cannot be enabled due to functionality tests!"
4845 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4846 echo " If you believe this message is in error you may use the continue"
4847 echo " switch (-continue) to $0 to continue."
4848 exit 101
4849 else
4850 CFG_XCURSOR=no
4855 # auto-detect Xfixes support
4856 if [ "$CFG_XFIXES" != "no" ]; then
4857 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xfixes "Xfixes" $L_FLAGS $I_FLAGS $X11TESTS_FLAGS; then
4858 if [ "$CFG_XFIXES" != "runtime" ]; then
4859 CFG_XFIXES=yes;
4861 else
4862 if [ "$CFG_XFIXES" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4863 echo "Xfixes support cannot be enabled due to functionality tests!"
4864 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4865 echo " If you believe this message is in error you may use the continue"
4866 echo " switch (-continue) to $0 to continue."
4867 exit 101
4868 else
4869 CFG_XFIXES=no
4874 # auto-detect Xrandr support (resize and rotate extension)
4875 if [ "$CFG_XRANDR" != "no" ]; then
4876 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
4877 if [ "$CFG_XRANDR" != "runtime" ]; then
4878 CFG_XRANDR=yes
4880 else
4881 if [ "$CFG_XRANDR" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4882 echo "Xrandr support cannot be enabled due to functionality tests!"
4883 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4884 echo " If you believe this message is in error you may use the continue"
4885 echo " switch (-continue) to $0 to continue."
4886 exit 101
4887 else
4888 CFG_XRANDR=no
4893 # auto-detect Xrender support
4894 if [ "$CFG_XRENDER" != "no" ]; then
4895 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
4896 CFG_XRENDER=yes
4897 else
4898 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4899 echo "Xrender support cannot be enabled due to functionality tests!"
4900 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4901 echo " If you believe this message is in error you may use the continue"
4902 echo " switch (-continue) to $0 to continue."
4903 exit 101
4904 else
4905 CFG_XRENDER=no
4910 # auto-detect MIT-SHM support
4911 if [ "$CFG_MITSHM" != "no" ]; then
4912 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
4913 CFG_MITSHM=yes
4914 else
4915 if [ "$CFG_MITSHM" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4916 echo "MITSHM support cannot be enabled due to functionality tests!"
4917 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4918 echo " If you believe this message is in error you may use the continue"
4919 echo " switch (-continue) to $0 to continue."
4920 exit 101
4921 else
4922 CFG_MITSHM=no
4927 # auto-detect FontConfig support
4928 if [ "$CFG_FONTCONFIG" != "no" ]; then
4929 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig 2>/dev/null; then
4930 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig 2>/dev/null`
4931 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig 2>/dev/null`
4932 else
4933 QT_CFLAGS_FONTCONFIG=
4934 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4936 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
4937 CFG_FONTCONFIG=yes
4938 QMakeVar set QMAKE_CFLAGS_X11 "$QT_CFLAGS_FONTCONFIG \$\$QMAKE_CFLAGS_X11"
4939 QMakeVar set QMAKE_LIBS_X11 "$QT_LIBS_FONTCONFIG \$\$QMAKE_LIBS_X11"
4940 CFG_LIBFREETYPE=system
4941 else
4942 if [ "$CFG_FONTCONFIG" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4943 echo "FontConfig support cannot be enabled due to functionality tests!"
4944 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4945 echo " If you believe this message is in error you may use the continue"
4946 echo " switch (-continue) to $0 to continue."
4947 exit 101
4948 else
4949 CFG_FONTCONFIG=no
4954 # auto-detect Session Management support
4955 if [ "$CFG_SM" = "auto" ]; then
4956 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
4957 CFG_SM=yes
4958 else
4959 if [ "$CFG_SM" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4960 echo "Session Management support cannot be enabled due to functionality tests!"
4961 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4962 echo " If you believe this message is in error you may use the continue"
4963 echo " switch (-continue) to $0 to continue."
4964 exit 101
4965 else
4966 CFG_SM=no
4971 # auto-detect SHAPE support
4972 if [ "$CFG_XSHAPE" != "no" ]; then
4973 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
4974 CFG_XSHAPE=yes
4975 else
4976 if [ "$CFG_XSHAPE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4977 echo "XShape support cannot be enabled due to functionality tests!"
4978 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4979 echo " If you believe this message is in error you may use the continue"
4980 echo " switch (-continue) to $0 to continue."
4981 exit 101
4982 else
4983 CFG_XSHAPE=no
4988 # auto-detect Xinerama support
4989 if [ "$CFG_XINERAMA" != "no" ]; then
4990 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
4991 if [ "$CFG_XINERAMA" != "runtime" ]; then
4992 CFG_XINERAMA=yes
4994 else
4995 if [ "$CFG_XINERAMA" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4996 echo "Xinerama support cannot be enabled due to functionality tests!"
4997 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4998 echo " If you believe this message is in error you may use the continue"
4999 echo " switch (-continue) to $0 to continue."
5000 exit 101
5001 else
5002 CFG_XINERAMA=no
5007 # auto-detect Xinput support
5008 if [ "$CFG_XINPUT" != "no" ]; then
5009 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
5010 if [ "$CFG_XINPUT" != "runtime" ]; then
5011 CFG_XINPUT=yes
5013 else
5014 if [ "$CFG_XINPUT" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5015 echo "Tablet and Xinput support cannot be enabled due to functionality tests!"
5016 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5017 echo " If you believe this message is in error you may use the continue"
5018 echo " switch (-continue) to $0 to continue."
5019 exit 101
5020 else
5021 CFG_XINPUT=no
5026 # auto-detect XKB support
5027 if [ "$CFG_XKB" != "no" ]; then
5028 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
5029 CFG_XKB=yes
5030 else
5031 if [ "$CFG_XKB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5032 echo "XKB support cannot be enabled due to functionality tests!"
5033 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5034 echo " If you believe this message is in error you may use the continue"
5035 echo " switch (-continue) to $0 to continue."
5036 exit 101
5037 else
5038 CFG_XKB=no
5043 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
5044 if [ -n "$PKG_CONFIG" ]; then
5045 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
5046 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
5048 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
5049 CFG_QGTKSTYLE=yes
5050 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
5051 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
5052 else
5053 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5054 echo "Gtk theme support cannot be enabled due to functionality tests!"
5055 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5056 echo " If you believe this message is in error you may use the continue"
5057 echo " switch (-continue) to $0 to continue."
5058 exit 101
5059 else
5060 CFG_QGTKSTYLE=no
5063 elif [ "$CFG_GLIB" = "no" ]; then
5064 CFG_QGTKSTYLE=no
5066 fi # X11
5069 if [ "$PLATFORM_MAC" = "yes" ]; then
5070 if [ "$CFG_PHONON" != "no" ]; then
5071 # Always enable Phonon (unless it was explicitly disabled)
5072 CFG_PHONON=yes
5076 # QWS
5077 if [ "$PLATFORM_QWS" = "yes" ]; then
5079 # auto-detect OpenGL support (es1 = OpenGL ES 1.x Common, es1cl = ES 1.x common lite, es2 = OpenGL ES 2.x)
5080 if [ "$CFG_OPENGL" = "yes" ]; then
5081 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
5082 CFG_OPENGL=es2
5083 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
5084 CFG_OPENGL=es1
5085 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
5086 CFG_OPENGL=es1cl
5087 else
5088 echo "All the OpenGL ES functionality tests failed!"
5089 echo " You might need to modify the include and library search paths by editing"
5090 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5091 echo " ${XQMAKESPEC}."
5092 exit 1
5094 elif [ "$CFG_OPENGL" = "es1" ]; then
5095 # OpenGL ES 1.x
5096 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
5097 echo "The OpenGL ES 1.x functionality test failed!"
5098 echo " You might need to modify the include and library search paths by editing"
5099 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5100 echo " ${XQMAKESPEC}."
5101 exit 1
5103 elif [ "$CFG_OPENGL" = "es2" ]; then
5104 #OpenGL ES 2.x
5105 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
5106 echo "The OpenGL ES 2.0 functionality test failed!"
5107 echo " You might need to modify the include and library search paths by editing"
5108 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5109 echo " ${XQMAKESPEC}."
5110 exit 1
5112 elif [ "$CFG_OPENGL" = "desktop" ]; then
5113 # Desktop OpenGL support
5114 echo "Desktop OpenGL support is not avaliable on Qt for Embedded Linux"
5115 exit 1
5118 # screen drivers
5119 for screen in ${CFG_GFX_ON} ${CFG_GFX_PLUGIN}; do
5120 if [ "${screen}" = "ahi" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
5121 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/ahi "Ahi" $L_FLAGS $I_FLAGS $l_FLAGS; then
5122 echo "The Ahi screen driver functionality test failed!"
5123 echo " You might need to modify the include and library search paths by editing"
5124 echo " QMAKE_INCDIR and QMAKE_LIBDIR in"
5125 echo " ${XQMAKESPEC}."
5126 exit 1
5130 if [ "${screen}" = "svgalib" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
5131 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/svgalib "SVGAlib" $L_FLAGS $I_FLAGS $l_FLAGS; then
5132 echo "The SVGAlib screen driver functionality test failed!"
5133 echo " You might need to modify the include and library search paths by editing"
5134 echo " QMAKE_INCDIR and QMAKE_LIBDIR in"
5135 echo " ${XQMAKESPEC}."
5136 exit 1
5140 if [ "${screen}" = "directfb" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
5141 if [ -n "$PKG_CONFIG" ]; then
5142 if $PKG_CONFIG --exists directfb 2>/dev/null; then
5143 QT_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
5144 QT_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
5145 elif directfb-config --version >/dev/null 2>&1; then
5146 QT_CFLAGS_DIRECTFB=`directfb-config --cflags 2>/dev/null`
5147 QT_LIBS_DIRECTFB=`directfb-config --libs 2>/dev/null`
5151 # QMake variables set here override those in the mkspec. Therefore we only set the variables here if they are not zero.
5152 if [ -n "$QT_CFLAGS_DIRECTFB" ] || [ -n "$QT_LIBS_DIRECTFB" ]; then
5153 QMakeVar set QT_CFLAGS_DIRECTFB "$QT_CFLAGS_DIRECTFB"
5154 QMakeVar set QT_LIBS_DIRECTFB "$QT_LIBS_DIRECTFB"
5157 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
5158 echo "The DirectFB screen driver functionality test failed!"
5159 echo " You might need to modify the include and library search paths by editing"
5160 echo " QT_CFLAGS_DIRECTFB and QT_LIBS_DIRECTFB in"
5161 echo " ${XQMAKESPEC}."
5162 exit 1
5166 done
5168 # mouse drivers
5169 for mouse in ${CFG_MOUSE_ON} ${CFG_MOUSE_PLUGIN}; do
5170 if [ "${mouse}" = "tslib" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
5171 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/tslib "tslib" $L_FLAGS $I_FLAGS $l_FLAGS; then
5172 echo "The tslib functionality test failed!"
5173 echo " You might need to modify the include and library search paths by editing"
5174 echo " QMAKE_INCDIR and QMAKE_LIBDIR in"
5175 echo " ${XQMAKESPEC}."
5176 exit 1
5179 done
5181 CFG_QGTKSTYLE=no
5183 # sound
5184 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/sound "sound" $L_FLAGS $I_FLAGS $l_FLAGS; then
5185 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SOUND"
5188 fi # QWS
5190 # freetype support
5191 [ "x$CFG_EMBEDDED" != "xno" ] && CFG_LIBFREETYPE="$CFG_QWS_FREETYPE"
5192 [ "x$PLATFORM_MAC" = "xyes" ] && CFG_LIBFREETYPE=no
5193 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
5194 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/freetype "FreeType" $L_FLAGS $I_FLAGS $l_FLAGS ; then
5195 CFG_LIBFREETYPE=system
5196 else
5197 CFG_LIBFREETYPE=yes
5201 if [ "$CFG_ENDIAN" = "auto" ]; then
5202 if [ "$PLATFORM_MAC" = "yes" ]; then
5203 true #leave as auto
5204 else
5205 "$unixtests/endian.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5206 F="$?"
5207 if [ "$F" -eq 0 ]; then
5208 CFG_ENDIAN="Q_LITTLE_ENDIAN"
5209 elif [ "$F" -eq 1 ]; then
5210 CFG_ENDIAN="Q_BIG_ENDIAN"
5211 else
5212 echo
5213 echo "The target system byte order could not be detected!"
5214 echo "Turn on verbose messaging (-v) to see the final report."
5215 echo "You can use the -little-endian or -big-endian switch to"
5216 echo "$0 to continue."
5217 exit 101
5222 if [ "$CFG_HOST_ENDIAN" = "auto" ]; then
5223 if [ "$PLATFORM_MAC" = "yes" ]; then
5224 true #leave as auto
5225 else
5226 "$unixtests/endian.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5227 F="$?"
5228 if [ "$F" -eq 0 ]; then
5229 CFG_HOST_ENDIAN="Q_LITTLE_ENDIAN"
5230 elif [ "$F" -eq 1 ]; then
5231 CFG_HOST_ENDIAN="Q_BIG_ENDIAN"
5232 else
5233 echo
5234 echo "The host system byte order could not be detected!"
5235 echo "Turn on verbose messaging (-v) to see the final report."
5236 echo "You can use the -host-little-endian or -host-big-endian switch to"
5237 echo "$0 to continue."
5238 exit 101
5243 if [ "$CFG_ARMFPA" != "auto" ]; then
5244 if [ "$CFG_ARMFPA" = "yes" ]; then
5245 if [ "$CFG_ENDIAN" = "Q_LITTLE_ENDIAN" ]; then
5246 CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE_SWAPPED"
5247 else
5248 CFG_DOUBLEFORMAT="Q_DOUBLE_BIG_SWAPPED"
5250 else
5251 CFG_DOUBLEFORMAT="normal"
5256 if [ "$CFG_DOUBLEFORMAT" = "auto" ]; then
5257 if [ "$PLATFORM_QWS" != "yes" ]; then
5258 CFG_DOUBLEFORMAT=normal
5259 else
5260 "$unixtests/doubleformat.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5261 F="$?"
5262 if [ "$F" -eq 10 ] && [ "$CFG_ENDIAN" = "Q_LITTLE_ENDIAN" ]; then
5263 CFG_DOUBLEFORMAT=normal
5264 elif [ "$F" -eq 11 ] && [ "$CFG_ENDIAN" = "Q_BIG_ENDIAN" ]; then
5265 CFG_DOUBLEFORMAT=normal
5266 elif [ "$F" -eq 10 ]; then
5267 CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE"
5268 elif [ "$F" -eq 11 ]; then
5269 CFG_DOUBLEFORMAT="Q_DOUBLE_BIG"
5270 elif [ "$F" -eq 12 ]; then
5271 CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE_SWAPPED"
5272 CFG_ARMFPA="yes"
5273 elif [ "$F" -eq 13 ]; then
5274 CFG_DOUBLEFORMAT="Q_DOUBLE_BIG_SWAPPED"
5275 CFG_ARMFPA="yes"
5276 else
5277 echo
5278 echo "The system floating point format could not be detected."
5279 echo "This may cause data to be generated in a wrong format"
5280 echo "Turn on verbose messaging (-v) to see the final report."
5281 # we do not fail on this since this is a new test, and if it fails,
5282 # the old behavior should be correct in most cases
5283 CFG_DOUBLEFORMAT=normal
5288 HAVE_STL=no
5289 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $l_FLAGS; then
5290 HAVE_STL=yes
5293 if [ "$CFG_STL" != "no" ]; then
5294 if [ "$HAVE_STL" = "yes" ]; then
5295 CFG_STL=yes
5296 else
5297 if [ "$CFG_STL" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5298 echo "STL support cannot be enabled due to functionality tests!"
5299 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5300 echo " If you believe this message is in error you may use the continue"
5301 echo " switch (-continue) to $0 to continue."
5302 exit 101
5303 else
5304 CFG_STL=no
5309 # find if the platform supports IPv6
5310 if [ "$CFG_IPV6" != "no" ]; then
5311 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ipv6 "IPv6" $L_FLAGS $I_FLAGS $l_FLAGS; then
5312 CFG_IPV6=yes
5313 else
5314 if [ "$CFG_IPV6" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5315 echo "IPv6 support cannot be enabled due to functionality tests!"
5316 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5317 echo " If you believe this message is in error you may use the continue"
5318 echo " switch (-continue) to $0 to continue."
5319 exit 101
5320 else
5321 CFG_IPV6=no
5326 # detect POSIX clock_gettime()
5327 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5328 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
5329 CFG_CLOCK_GETTIME=yes
5330 else
5331 CFG_CLOCK_GETTIME=no
5335 # detect POSIX monotonic clocks
5336 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5337 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
5338 CFG_CLOCK_MONOTONIC=yes
5339 else
5340 CFG_CLOCK_MONOTONIC=no
5342 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5343 CFG_CLOCK_MONOTONIC=no
5346 # detect mremap
5347 if [ "$CFG_MREMAP" = "auto" ]; then
5348 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mremap "mremap" $L_FLAGS $I_FLAGS $l_FLAGS; then
5349 CFG_MREMAP=yes
5350 else
5351 CFG_MREMAP=no
5355 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5356 if [ "$CFG_GETADDRINFO" != "no" ]; then
5357 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getaddrinfo "getaddrinfo" $L_FLAGS $I_FLAGS $l_FLAGS; then
5358 CFG_GETADDRINFO=yes
5359 else
5360 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5361 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5362 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5363 echo " If you believe this message is in error you may use the continue"
5364 echo " switch (-continue) to $0 to continue."
5365 exit 101
5366 else
5367 CFG_GETADDRINFO=no
5372 # find if the platform provides inotify
5373 if [ "$CFG_INOTIFY" != "no" ]; then
5374 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/inotify "inotify" $L_FLAGS $I_FLAGS $l_FLAGS; then
5375 CFG_INOTIFY=yes
5376 else
5377 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5378 echo "inotify support cannot be enabled due to functionality tests!"
5379 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5380 echo " If you believe this message is in error you may use the continue"
5381 echo " switch (-continue) to $0 to continue."
5382 exit 101
5383 else
5384 CFG_INOTIFY=no
5389 # find if the platform provides if_nametoindex (ipv6 interface name support)
5390 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5391 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
5392 CFG_IPV6IFNAME=yes
5393 else
5394 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5395 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5396 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5397 echo " If you believe this message is in error you may use the continue"
5398 echo " switch (-continue) to $0 to continue."
5399 exit 101
5400 else
5401 CFG_IPV6IFNAME=no
5406 # find if the platform provides getifaddrs (network interface enumeration)
5407 if [ "$CFG_GETIFADDRS" != "no" ]; then
5408 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getifaddrs "getifaddrs" $L_FLAGS $I_FLAGS $l_FLAGS; then
5409 CFG_GETIFADDRS=yes
5410 else
5411 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5412 echo "getifaddrs support cannot be enabled due to functionality tests!"
5413 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5414 echo " If you believe this message is in error you may use the continue"
5415 echo " switch (-continue) to $0 to continue."
5416 exit 101
5417 else
5418 CFG_GETIFADDRS=no
5423 # find if the platform supports X/Open Large File compilation environment
5424 if [ "$CFG_LARGEFILE" != "no" ]; then
5425 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
5426 CFG_LARGEFILE=yes
5427 else
5428 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5429 echo "X/Open Large File support cannot be enabled due to functionality tests!"
5430 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5431 echo " If you believe this message is in error you may use the continue"
5432 echo " switch (-continue) to $0 to continue."
5433 exit 101
5434 else
5435 CFG_LARGEFILE=no
5440 # detect OpenSSL
5441 if [ "$CFG_OPENSSL" != "no" ]; then
5442 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/openssl "OpenSSL" $L_FLAGS $I_FLAGS $l_FLAGS; then
5443 if [ "$CFG_OPENSSL" = "auto" ]; then
5444 CFG_OPENSSL=yes
5446 else
5447 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5448 echo "OpenSSL support cannot be enabled due to functionality tests!"
5449 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5450 echo " If you believe this message is in error you may use the continue"
5451 echo " switch (-continue) to $0 to continue."
5452 exit 101
5453 else
5454 CFG_OPENSSL=no
5459 if [ "$CFG_PTMALLOC" != "no" ]; then
5460 # build ptmalloc, copy .a file to lib/
5461 echo "Building ptmalloc. Please wait..."
5462 (cd "$relpath/src/3rdparty/ptmalloc/"; "$MAKE" "clean" ; "$MAKE" "posix"
5463 mkdir "$outpath/lib/" ; cp "libptmalloc3.a" "$outpath/lib/")
5465 QMakeVar add QMAKE_LFLAGS "$outpath/lib/libptmalloc3.a"
5468 #-------------------------------------------------------------------------------
5469 # ask for all that hasn't been auto-detected or specified in the arguments
5470 #-------------------------------------------------------------------------------
5472 ### fix this: user input should be validated in a loop
5473 if [ "$CFG_QWS_DEPTHS" = "prompted" -a "$PLATFORM_QWS" = "yes" ]; then
5474 echo
5475 echo "Choose pixel-depths to support:"
5476 echo
5477 echo " 1. 1bpp, black/white"
5478 echo " 4. 4bpp, grayscale"
5479 echo " 8. 8bpp, paletted"
5480 echo " 12. 12bpp, rgb 4-4-4"
5481 echo " 15. 15bpp, rgb 5-5-5"
5482 echo " 16. 16bpp, rgb 5-6-5"
5483 echo " 18. 18bpp, rgb 6-6-6"
5484 echo " 24. 24bpp, rgb 8-8-8"
5485 echo " 32. 32bpp, argb 8-8-8-8 and rgb 8-8-8"
5486 echo " all. All supported depths"
5487 echo
5488 echo "Your choices (default 8,16,32):"
5489 read CFG_QWS_DEPTHS
5490 if [ -z "$CFG_QWS_DEPTHS" ] || [ "$CFG_QWS_DEPTHS" = "yes" ]; then
5491 CFG_QWS_DEPTHS=8,16,32
5494 if [ -n "$CFG_QWS_DEPTHS" -a "$PLATFORM_QWS" = "yes" ]; then
5495 if [ "$CFG_QWS_DEPTHS" = "all" ]; then
5496 CFG_QWS_DEPTHS="1 4 8 12 15 16 18 24 32 generic"
5498 for D in `echo "$CFG_QWS_DEPTHS" | sed -e 's/,/ /g'`; do
5499 case $D in
5500 1|4|8|12|15|16|18|24|32) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_$D";;
5501 generic) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_GENERIC";;
5502 esac
5503 done
5506 # enable dwarf2 support on Mac
5507 if [ "$CFG_MAC_DWARF2" = "yes" ]; then
5508 QT_CONFIG="$QT_CONFIG dwarf2"
5511 # Set the default arch. Select 32-bit/carbon if nothing else has
5512 # been specified on the configure line.
5513 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_ARCHS" == "" ]; then
5514 source "$mactests/defaultarch.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests"
5516 if [ "$QT_MAC_DEFUALT_ARCH" == "x86_64" ]; then
5517 CFG_MAC_ARCHS=" x86"
5518 elif [ "$QT_MAC_DEFUALT_ARCH" == "ppc64" ]; then
5519 CFG_MAC_ARCHS=" ppc"
5520 else
5521 CFG_MAC_ARCHS=" $QT_MAC_DEFUALT_ARCH"
5524 [ "$OPT_VERBOSE" == "yes" ] && echo "Setting Mac architechture to$CFG_MAC_ARCHS."
5527 # enable cocoa and/or carbon on Mac
5528 if [ "$CFG_MAC_COCOA" = "yes" ]; then
5529 # -cocoa on the command line disables carbon completely (i.e. use cocoa for 32-bit as well)
5530 CFG_MAC_CARBON="no"
5531 else
5532 # check which archs are in use, enable cocoa if we find a 64-bit one
5533 if echo "$CFG_MAC_ARCHS" | grep 64 > /dev/null 2>&1; then
5534 CFG_MAC_COCOA="yes";
5535 CFG_MAC_CARBON="no";
5536 if echo "$CFG_MAC_ARCHS" | grep -w ppc > /dev/null 2>&1; then
5537 CFG_MAC_CARBON="yes";
5539 if echo "$CFG_MAC_ARCHS" | grep -w x86 > /dev/null 2>&1; then
5540 CFG_MAC_CARBON="yes";
5542 else
5543 # no 64-bit archs found.
5544 CFG_MAC_COCOA="no"
5548 # set the global Mac deployment target. This is overridden on an arch-by-arch basis
5549 # in some cases, see code further down
5550 case "$PLATFORM,$CFG_MAC_COCOA" in
5551 macx*,yes)
5552 # Cocoa
5553 QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.5
5554 CFG_QT3SUPPORT="no"
5556 macx-icc,*)
5557 # Intel CC, Carbon
5558 QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.4
5560 macx*,no)
5561 # gcc, Carbon
5562 QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.3
5564 esac
5566 # enable Qt 3 support functionality
5567 if [ "$CFG_QT3SUPPORT" = "yes" ]; then
5568 QT_CONFIG="$QT_CONFIG qt3support"
5571 # enable Phonon
5572 if [ "$CFG_PHONON" = "yes" ]; then
5573 QT_CONFIG="$QT_CONFIG phonon"
5574 if [ "$CFG_PHONON_BACKEND" = "yes" ]; then
5575 QT_CONFIG="$QT_CONFIG phonon-backend"
5577 else
5578 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PHONON"
5581 # disable accessibility
5582 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5583 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5584 else
5585 QT_CONFIG="$QT_CONFIG accessibility"
5588 # enable opengl
5589 if [ "$CFG_OPENGL" = "no" ]; then
5590 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5591 else
5592 QT_CONFIG="$QT_CONFIG opengl"
5595 if [ "$CFG_OPENGL" = "es1" ] || [ "$CFG_OPENGL" = "es1cl" ] || [ "$CFG_OPENGL" = "es2" ]; then
5596 if [ "$PLATFORM_QWS" = "yes" ]; then
5597 QCONFIG_FLAGS="$QCONFIG_FLAGS Q_BACKINGSTORE_SUBSURFACES"
5598 QCONFIG_FLAGS="$QCONFIG_FLAGS Q_USE_EGLWINDOWSURFACE"
5600 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5603 if [ "$CFG_OPENGL" = "es1" ]; then
5604 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_1"
5605 QT_CONFIG="$QT_CONFIG opengles1"
5608 if [ "$CFG_OPENGL" = "es1cl" ]; then
5609 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_1_CL"
5610 QT_CONFIG="$QT_CONFIG opengles1cl"
5613 if [ "$CFG_OPENGL" = "es2" ]; then
5614 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5615 QT_CONFIG="$QT_CONFIG opengles2"
5618 # safe execution environment
5619 if [ "$CFG_SXE" != "no" ]; then
5620 QT_CONFIG="$QT_CONFIG sxe"
5623 # build up the variables for output
5624 if [ "$CFG_DEBUG" = "yes" ]; then
5625 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5626 QMAKE_CONFIG="$QMAKE_CONFIG debug"
5627 elif [ "$CFG_DEBUG" = "no" ]; then
5628 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5629 QMAKE_CONFIG="$QMAKE_CONFIG release"
5631 if [ "$CFG_SHARED" = "yes" ]; then
5632 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5633 QMAKE_CONFIG="$QMAKE_CONFIG shared dll"
5634 elif [ "$CFG_SHARED" = "no" ]; then
5635 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5636 QMAKE_CONFIG="$QMAKE_CONFIG static"
5638 if [ "$PLATFORM_QWS" = "yes" ]; then
5639 QMAKE_OUTDIR="${QMAKE_OUTDIR}-emb-$CFG_EMBEDDED"
5640 QMAKE_CONFIG="$QMAKE_CONFIG embedded"
5641 QT_CONFIG="$QT_CONFIG embedded"
5642 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5644 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5645 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5646 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5647 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5648 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5649 if [ "$CFG_LARGEFILE" = "yes" ]; then
5650 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5652 if [ "$CFG_STL" = "no" ]; then
5653 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STL"
5654 else
5655 QMAKE_CONFIG="$QMAKE_CONFIG stl"
5657 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5658 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5660 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5661 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5662 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5663 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5664 QMakeVar add QMAKE_CFLAGS -g
5665 QMakeVar add QMAKE_CXXFLAGS -g
5666 QMAKE_CONFIG="$QMAKE_CONFIG separate_debug_info"
5668 [ "$CFG_MMX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mmx"
5669 [ "$CFG_3DNOW" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG 3dnow"
5670 [ "$CFG_SSE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse"
5671 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5672 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5673 [ "$PLATFORM_MAC" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG $CFG_MAC_ARCHS"
5674 if [ "$CFG_IPV6" = "yes" ]; then
5675 QT_CONFIG="$QT_CONFIG ipv6"
5677 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5678 QT_CONFIG="$QT_CONFIG clock-gettime"
5680 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5681 QT_CONFIG="$QT_CONFIG clock-monotonic"
5683 if [ "$CFG_MREMAP" = "yes" ]; then
5684 QT_CONFIG="$QT_CONFIG mremap"
5686 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5687 QT_CONFIG="$QT_CONFIG getaddrinfo"
5689 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5690 QT_CONFIG="$QT_CONFIG ipv6ifname"
5692 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5693 QT_CONFIG="$QT_CONFIG getifaddrs"
5695 if [ "$CFG_INOTIFY" = "yes" ]; then
5696 QT_CONFIG="$QT_CONFIG inotify"
5698 if [ "$CFG_LIBJPEG" = "system" ]; then
5699 QT_CONFIG="$QT_CONFIG system-jpeg"
5701 if [ "$CFG_JPEG" = "no" ]; then
5702 QT_CONFIG="$QT_CONFIG no-jpeg"
5703 elif [ "$CFG_JPEG" = "yes" ]; then
5704 QT_CONFIG="$QT_CONFIG jpeg"
5706 if [ "$CFG_LIBMNG" = "system" ]; then
5707 QT_CONFIG="$QT_CONFIG system-mng"
5709 if [ "$CFG_MNG" = "no" ]; then
5710 QT_CONFIG="$QT_CONFIG no-mng"
5711 elif [ "$CFG_MNG" = "yes" ]; then
5712 QT_CONFIG="$QT_CONFIG mng"
5714 if [ "$CFG_LIBPNG" = "no" ]; then
5715 CFG_PNG="no"
5717 if [ "$CFG_LIBPNG" = "system" ]; then
5718 QT_CONFIG="$QT_CONFIG system-png"
5720 if [ "$CFG_PNG" = "no" ]; then
5721 QT_CONFIG="$QT_CONFIG no-png"
5722 elif [ "$CFG_PNG" = "yes" ]; then
5723 QT_CONFIG="$QT_CONFIG png"
5725 if [ "$CFG_GIF" = "no" ]; then
5726 QT_CONFIG="$QT_CONFIG no-gif"
5727 elif [ "$CFG_GIF" = "yes" ]; then
5728 QT_CONFIG="$QT_CONFIG gif"
5730 if [ "$CFG_LIBTIFF" = "system" ]; then
5731 QT_CONFIG="$QT_CONFIG system-tiff"
5733 if [ "$CFG_TIFF" = "no" ]; then
5734 QT_CONFIG="$QT_CONFIG no-tiff"
5735 elif [ "$CFG_TIFF" = "yes" ]; then
5736 QT_CONFIG="$QT_CONFIG tiff"
5738 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5739 QT_CONFIG="$QT_CONFIG no-freetype"
5740 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5741 QT_CONFIG="$QT_CONFIG system-freetype"
5742 else
5743 QT_CONFIG="$QT_CONFIG freetype"
5746 if [ "x$PLATFORM_MAC" = "xyes" ]; then
5747 #On Mac we implicitly link against libz, so we
5748 #never use the 3rdparty stuff.
5749 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5751 if [ "$CFG_ZLIB" = "yes" ]; then
5752 QT_CONFIG="$QT_CONFIG zlib"
5753 elif [ "$CFG_ZLIB" = "system" ]; then
5754 QT_CONFIG="$QT_CONFIG system-zlib"
5757 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5758 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5759 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5760 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5761 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5762 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5763 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5764 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5765 [ "$CFG_NAS" = "system" ] && QT_CONFIG="$QT_CONFIG nas"
5766 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5767 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5769 if [ "$PLATFORM_X11" = "yes" ]; then
5770 [ "$CFG_SM" = "yes" ] && QT_CONFIG="$QT_CONFIG x11sm"
5772 # for some reason, the following libraries are not always built shared,
5773 # so *every* program/lib (including Qt) has to link against them
5774 if [ "$CFG_XSHAPE" = "yes" ]; then
5775 QT_CONFIG="$QT_CONFIG xshape"
5777 if [ "$CFG_XINERAMA" = "yes" ]; then
5778 QT_CONFIG="$QT_CONFIG xinerama"
5779 QMakeVar set QMAKE_LIBS_X11 '-lXinerama $$QMAKE_LIBS_X11'
5781 if [ "$CFG_XCURSOR" = "yes" ]; then
5782 QT_CONFIG="$QT_CONFIG xcursor"
5783 QMakeVar set QMAKE_LIBS_X11 '-lXcursor $$QMAKE_LIBS_X11'
5785 if [ "$CFG_XFIXES" = "yes" ]; then
5786 QT_CONFIG="$QT_CONFIG xfixes"
5787 QMakeVar set QMAKE_LIBS_X11 '-lXfixes $$QMAKE_LIBS_X11'
5789 if [ "$CFG_XRANDR" = "yes" ]; then
5790 QT_CONFIG="$QT_CONFIG xrandr"
5791 if [ "$CFG_XRENDER" != "yes" ]; then
5792 # libXrandr uses 1 function from libXrender, so we always have to have it :/
5793 QMakeVar set QMAKE_LIBS_X11 '-lXrandr -lXrender $$QMAKE_LIBS_X11'
5794 else
5795 QMakeVar set QMAKE_LIBS_X11 '-lXrandr $$QMAKE_LIBS_X11'
5798 if [ "$CFG_XRENDER" = "yes" ]; then
5799 QT_CONFIG="$QT_CONFIG xrender"
5800 QMakeVar set QMAKE_LIBS_X11 '-lXrender $$QMAKE_LIBS_X11'
5802 if [ "$CFG_MITSHM" = "yes" ]; then
5803 QT_CONFIG="$QT_CONFIG mitshm"
5805 if [ "$CFG_FONTCONFIG" = "yes" ]; then
5806 QT_CONFIG="$QT_CONFIG fontconfig"
5808 if [ "$CFG_XINPUT" = "yes" ]; then
5809 QMakeVar set QMAKE_LIBS_X11 '-lXi $$QMAKE_LIBS_X11'
5811 if [ "$CFG_XINPUT" = "yes" ]; then
5812 QT_CONFIG="$QT_CONFIG xinput tablet"
5814 if [ "$CFG_XKB" = "yes" ]; then
5815 QT_CONFIG="$QT_CONFIG xkb"
5819 [ '!' -z "$D_FLAGS" ] && QMakeVar add DEFINES "$D_FLAGS"
5820 [ '!' -z "$L_FLAGS" ] && QMakeVar add QMAKE_LIBDIR_FLAGS "$L_FLAGS"
5821 [ '!' -z "$l_FLAGS" ] && QMakeVar add LIBS "$l_FLAGS"
5823 if [ "$PLATFORM_MAC" = "yes" ]; then
5824 if [ "$CFG_RPATH" = "yes" ]; then
5825 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5827 elif [ -z "`getQMakeConf \"$XQMAKESPEC\" | grep QMAKE_RPATH | awk '{print $3;}'`" ]; then
5828 if [ -n "$RPATH_FLAGS" ]; then
5829 echo
5830 echo "ERROR: -R cannot be used on this platform as \$QMAKE_RPATH is"
5831 echo " undefined."
5832 echo
5833 exit 1
5834 elif [ "$CFG_RPATH" = "yes" ]; then
5835 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5836 CFG_RPATH=no
5838 else
5839 if [ "$CFG_RPATH" = "yes" ]; then
5840 # set the default rpath to the library installation directory
5841 RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5843 if [ -n "$RPATH_FLAGS" ]; then
5844 # add the user defined rpaths
5845 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5849 if [ '!' -z "$I_FLAGS" ]; then
5850 # add the user define include paths
5851 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5852 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5855 # turn off exceptions for the compilers that support it
5856 if [ "$PLATFORM_QWS" = "yes" ]; then
5857 COMPILER=`echo $XPLATFORM | cut -f 3- -d-`
5858 else
5859 COMPILER=`echo $PLATFORM | cut -f 2- -d-`
5861 if [ "$CFG_EXCEPTIONS" = "unspecified" -a "$PLATFORM_QWS" = "yes" ]; then
5862 CFG_EXCEPTIONS=no
5865 if [ "$CFG_EXCEPTIONS" != "no" ]; then
5866 QTCONFIG_CONFIG="$QTCONFIG_CONFIG exceptions"
5870 # Some Qt modules are too advanced in C++ for some old compilers
5871 # Detect here the platforms where they are known to work.
5873 # See Qt documentation for more information on which features are
5874 # supported and on which compilers.
5876 canBuildQtXmlPatterns="yes"
5877 canBuildWebKit="$HAVE_STL"
5879 # WebKit requires stdint.h
5880 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stdint "Stdint" $L_FLAGS $I_FLAGS $l_FLAGS
5881 if [ $? != "0" ]; then
5882 canBuildWebKit="no"
5885 case "$XPLATFORM" in
5886 hpux-g++*)
5887 # PA-RISC's assembly is too limited
5888 # gcc 3.4 on that platform can't build QtXmlPatterns
5889 # the assembly it generates cannot be compiled
5891 # Check gcc's version
5892 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5895 3.4*)
5896 canBuildQtXmlPatterns="no"
5899 canBuildWebKit="no"
5900 canBuildQtXmlPatterns="no"
5902 esac
5904 *-g++*)
5905 # Check gcc's version
5906 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5907 4*|3.4*)
5909 3.3*)
5910 canBuildWebKit="no"
5913 canBuildWebKit="no"
5914 canBuildQtXmlPatterns="no"
5916 esac
5918 solaris-cc*)
5919 # Check the compiler version
5920 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5922 canBuildWebKit="no"
5923 canBuildQtXmlPatterns="no"
5925 esac
5927 hpux-acc*)
5928 canBuildWebKit="no"
5929 canBuildQtXmlPatterns="no"
5931 hpuxi-acc*)
5932 canBuildWebKit="no"
5934 aix-xlc*)
5935 canBuildWebKit="no"
5936 canBuildQtXmlPatterns="no"
5938 irix-cc*)
5939 canBuildWebKit="no"
5941 esac
5943 if [ "$CFG_XMLPATTERNS" = "yes" -a "$CFG_EXCEPTIONS" = "no" ]; then
5944 echo "QtXmlPatterns was requested, but it can't be built due to exceptions being disabled."
5945 exit 1
5947 if [ "$CFG_XMLPATTERNS" = "auto" -a "$CFG_EXCEPTIONS" != "no" ]; then
5948 CFG_XMLPATTERNS="$canBuildQtXmlPatterns"
5949 elif [ "$CFG_EXCEPTIONS" = "no" ]; then
5950 CFG_XMLPATTERNS="no"
5952 if [ "$CFG_XMLPATTERNS" = "yes" ]; then
5953 QT_CONFIG="$QT_CONFIG xmlpatterns"
5954 else
5955 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XMLPATTERNS"
5958 if [ "$CFG_SVG" = "yes" ]; then
5959 QT_CONFIG="$QT_CONFIG svg"
5960 else
5961 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SVG"
5964 if [ "$CFG_WEBKIT" = "auto" ]; then
5965 CFG_WEBKIT="$canBuildWebKit"
5968 if [ "$CFG_WEBKIT" = "yes" ]; then
5969 QT_CONFIG="$QT_CONFIG webkit"
5970 # The reason we set CFG_WEBKIT, is such that the printed overview of what will be enabled, shows correctly.
5971 CFG_WEBKIT="yes"
5972 else
5973 CFG_WEBKIT="no"
5974 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WEBKIT"
5977 if [ "$CFG_SCRIPTTOOLS" = "auto" ]; then
5978 CFG_SCRIPTTOOLS="yes"
5981 if [ "$CFG_SCRIPTTOOLS" = "yes" ]; then
5982 QT_CONFIG="$QT_CONFIG scripttools"
5983 CFG_SCRIPTTOOLS="yes"
5984 else
5985 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SCRIPTTOOLS"
5988 if [ "$CFG_EXCEPTIONS" = "no" ]; then
5989 case "$COMPILER" in
5990 g++*)
5991 QMakeVar add QMAKE_CFLAGS -fno-exceptions
5992 QMakeVar add QMAKE_CXXFLAGS -fno-exceptions
5993 QMakeVar add QMAKE_LFLAGS -fno-exceptions
5995 cc*)
5996 case "$PLATFORM" in
5997 irix-cc*)
5998 QMakeVar add QMAKE_CFLAGS -LANG:exceptions=off
5999 QMakeVar add QMAKE_CXXFLAGS -LANG:exceptions=off
6000 QMakeVar add QMAKE_LFLAGS -LANG:exceptions=off
6002 *) ;;
6003 esac
6005 *) ;;
6006 esac
6007 QMAKE_CONFIG="$QMAKE_CONFIG exceptions_off"
6010 # On Mac, set the minimum deployment target for the different architechtures
6011 # using the Xarch compiler option when supported (10.5 and up). On 10.4 the
6012 # deployment version is set to 10.3 globally using the QMAKE_MACOSX_DEPLOYMENT_TARGET
6013 # env. variable. "-cocoa" on the command line means Cocoa is used in 32-bit mode also,
6014 # in this case fall back on QMAKE_MACOSX_DEPLOYMENT_TARGET which will be set to 10.5.
6015 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_XARCH" != "no" ] && [ "$COMMANDLINE_MAC_COCOA" != "yes" ]; then
6016 if echo "$CFG_MAC_ARCHS" | grep '\<x86\>' > /dev/null 2>&1; then
6017 QMakeVar add QMAKE_CFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
6018 QMakeVar add QMAKE_CXXFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
6019 QMakeVar add QMAKE_LFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
6020 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_X86 "-arch i386 -Xarch_i386 -mmacosx-version-min=10.4"
6022 if echo "$CFG_MAC_ARCHS" | grep '\<ppc\>' > /dev/null 2>&1; then
6023 QMakeVar add QMAKE_CFLAGS "-Xarch_ppc -mmacosx-version-min=10.3"
6024 QMakeVar add QMAKE_CXXFLAGS "-Xarch_ppc -mmacosx-version-min=10.3"
6025 QMakeVar add QMAKE_LFLAGS "-Xarch_ppc -mmacosx-version-min=10.3"
6026 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_PPC "-arch ppc -Xarch_ppc -mmacosx-version-min=10.3"
6028 if echo "$CFG_MAC_ARCHS" | grep '\<x86_64\>' > /dev/null 2>&1; then
6029 QMakeVar add QMAKE_CFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
6030 QMakeVar add QMAKE_CXXFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
6031 QMakeVar add QMAKE_LFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
6032 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_X86_64 "-arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5"
6034 if echo "$CFG_MAC_ARCHS" | grep '\<ppc64\>' > /dev/null 2>&1; then
6035 QMakeVar add QMAKE_CFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
6036 QMakeVar add QMAKE_CXXFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
6037 QMakeVar add QMAKE_LFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
6038 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_PPC_64 "-arch ppc64 -Xarch_ppc64 -mmacosx-version-min=10.5"
6042 #-------------------------------------------------------------------------------
6043 # generate QT_BUILD_KEY
6044 #-------------------------------------------------------------------------------
6046 # some compilers generate binary incompatible code between different versions,
6047 # so we need to generate a build key that is different between these compilers
6048 case "$COMPILER" in
6049 g++*)
6050 # GNU C++
6051 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
6053 case "$COMPILER_VERSION" in
6054 *.*.*)
6055 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
6056 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
6057 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
6059 *.*)
6060 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
6061 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
6062 QT_GCC_PATCH_VERSION=0
6064 esac
6066 case "$COMPILER_VERSION" in
6067 2.95.*)
6068 COMPILER_VERSION="2.95.*"
6070 3.*)
6071 COMPILER_VERSION="3.*"
6073 4.*)
6074 COMPILER_VERSION="4"
6078 esac
6079 [ '!' -z "$COMPILER_VERSION" ] && COMPILER="g++-${COMPILER_VERSION}"
6084 esac
6086 # QT_CONFIG can contain the following:
6088 # Things that affect the Qt API/ABI:
6090 # Options:
6091 # minimal-config small-config medium-config large-config full-config
6093 # Different edition modules:
6094 # network canvas table xml opengl sql
6096 # Options:
6097 # stl
6099 # Things that do not affect the Qt API/ABI:
6100 # system-jpeg no-jpeg jpeg
6101 # system-mng no-mng mng
6102 # system-png no-png png
6103 # system-zlib no-zlib zlib
6104 # system-libtiff no-libtiff
6105 # no-gif gif
6106 # debug release
6107 # dll staticlib
6109 # internal
6110 # nocrosscompiler
6111 # GNUmake
6112 # largefile
6113 # nis
6114 # nas
6115 # tablet
6116 # ipv6
6118 # X11 : x11sm xinerama xcursor xfixes xrandr xrender mitshm fontconfig xkb
6119 # Embedded: embedded freetype
6121 ALL_OPTIONS="stl"
6122 BUILD_CONFIG=
6123 BUILD_OPTIONS=
6125 # determine the build options
6126 for config_option in $QMAKE_CONFIG $QT_CONFIG; do
6127 SKIP="yes"
6128 case "$config_option" in
6129 *-config)
6130 # take the last *-config setting. this is the highest config being used,
6131 # and is the one that we will use for tagging plugins
6132 BUILD_CONFIG="$config_option"
6135 stl)
6136 # these config options affect the Qt API/ABI. they should influence
6137 # the generation of the buildkey, so we don't skip them
6138 SKIP="no"
6141 *) # skip all other options since they don't affect the Qt API/ABI.
6143 esac
6145 if [ "$SKIP" = "no" ]; then
6146 BUILD_OPTIONS="$BUILD_OPTIONS $config_option"
6148 done
6150 # put the options that we are missing into .options
6151 rm -f .options
6152 for opt in `echo $ALL_OPTIONS`; do
6153 SKIP="no"
6154 if echo $BUILD_OPTIONS | grep $opt >/dev/null 2>&1; then
6155 SKIP="yes"
6157 if [ "$SKIP" = "no" ]; then
6158 echo "$opt" >> .options
6160 done
6162 # reconstruct BUILD_OPTIONS with a sorted negative feature list
6163 # (ie. only things that are missing are will be put into the build key)
6164 BUILD_OPTIONS=
6165 if [ -f .options ]; then
6166 for opt in `sort -f .options | uniq`; do
6167 BUILD_OPTIONS="$BUILD_OPTIONS no-$opt"
6168 done
6170 rm -f .options
6172 # QT_NO* defines affect the Qt API (and binary compatibility). they need
6173 # to be included in the build key
6174 for build_option in $D_FLAGS; do
6175 build_option=`echo $build_option | cut -d \" -f 2 -`
6176 case "$build_option" in
6177 QT_NO*)
6178 echo "$build_option" >> .options
6181 # skip all other compiler defines
6183 esac
6184 done
6186 # sort the compile time defines (helps ensure that changes in this configure
6187 # script don't affect the QT_BUILD_KEY generation)
6188 if [ -f .options ]; then
6189 for opt in `sort -f .options | uniq`; do
6190 BUILD_OPTIONS="$BUILD_OPTIONS $opt"
6191 done
6193 rm -f .options
6195 BUILD_OPTIONS="$BUILD_CONFIG $BUILD_OPTIONS"
6196 # extract the operating system from the XPLATFORM
6197 TARGET_OPERATING_SYSTEM=`echo $XPLATFORM | cut -f 2- -d/ | cut -f -1 -d-`
6199 # when cross-compiling, don't include build-host information (build key is target specific)
6200 QT_BUILD_KEY="$CFG_USER_BUILD_KEY $CFG_ARCH $TARGET_OPERATING_SYSTEM $COMPILER $BUILD_OPTIONS"
6201 if [ -n "$QT_NAMESPACE" ]; then
6202 QT_BUILD_KEY="$QT_BUILD_KEY $QT_NAMESPACE"
6204 MAC_NEED_TWO_BUILD_KEYS="no"
6205 if [ "$PLATFORM_MAC" = "yes" -a "$CFG_MAC_COCOA" = "yes" ]; then
6206 QT_BUILD_KEY_CARBON=$QT_BUILD_KEY
6207 TARGET_OPERATING_SYSTEM="$TARGET_OPERATING_SYSTEM-cocoa"
6208 QT_BUILD_KEY_COCOA="$CFG_USER_BUILD_KEY $CFG_ARCH $TARGET_OPERATING_SYSTEM $COMPILER $BUILD_OPTIONS"
6209 if [ "$CFG_MAC_CARBON" = "no" ]; then
6210 QT_BUILD_KEY=$QT_BUILD_KEY_COCOA
6211 else
6212 MAC_NEED_TWO_BUILD_KEYS="yes"
6215 # don't break loading plugins build with an older version of Qt
6216 QT_BUILD_KEY_COMPAT=
6217 if [ "$QT_CROSS_COMPILE" = "no" ]; then
6218 # previous versions of Qt used a build key built from the uname
6219 QT_BUILD_KEY_COMPAT="$CFG_USER_BUILD_KEY $UNAME_MACHINE $UNAME_SYSTEM $COMPILER $BUILD_OPTIONS"
6220 if [ -n "$QT_NAMESPACE" ]; then
6221 QT_BUILD_KEY_COMPAT="$QT_BUILD_KEY_COMPAT $QT_NAMESPACE"
6224 # strip out leading/trailing/extra whitespace
6225 QT_BUILD_KEY=`echo $QT_BUILD_KEY | sed -e "s, *, ,g" -e "s,^ *,," -e "s, *$,,"`
6226 QT_BUILD_KEY_COMPAT=`echo $QT_BUILD_KEY_COMPAT | sed -e "s, *, ,g" -e "s,^ *,," -e "s, *$,,"`
6228 #-------------------------------------------------------------------------------
6229 # part of configuration information goes into qconfig.h
6230 #-------------------------------------------------------------------------------
6232 case "$CFG_QCONFIG" in
6233 full)
6234 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
6237 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
6238 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
6239 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
6240 echo "#endif" >>"$tmpconfig"
6242 esac
6244 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6246 /* Qt Edition */
6247 #ifndef QT_EDITION
6248 # define QT_EDITION $QT_EDITION
6249 #endif
6251 /* Machine byte-order */
6252 #define Q_BIG_ENDIAN 4321
6253 #define Q_LITTLE_ENDIAN 1234
6256 if [ "$MAC_NEED_TWO_BUILD_KEYS" = "no" ]; then
6257 echo "#define QT_BUILD_KEY \"$QT_BUILD_KEY\"" \
6258 >> "$outpath/src/corelib/global/qconfig.h.new"
6259 else
6260 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6262 #define QT_BUILD_KEY_CARBON "$QT_BUILD_KEY_CARBON"
6263 #define QT_BUILD_KEY_COCOA "$QT_BUILD_KEY_COCOA"
6267 if [ -n "$QT_BUILD_KEY_COMPAT" ]; then
6268 echo "#define QT_BUILD_KEY_COMPAT \"$QT_BUILD_KEY_COMPAT\"" \
6269 >> "$outpath/src/corelib/global/qconfig.h.new"
6271 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
6273 echo "#ifdef QT_BOOTSTRAPPED" >>"$outpath/src/corelib/global/qconfig.h.new"
6274 if [ "$CFG_HOST_ENDIAN" = "auto" ]; then
6275 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6276 #if defined(__BIG_ENDIAN__)
6277 # define Q_BYTE_ORDER Q_BIG_ENDIAN
6278 #elif defined(__LITTLE_ENDIAN__)
6279 # define Q_BYTE_ORDER Q_LITTLE_ENDIAN
6280 #else
6281 # error "Unable to determine byte order!"
6282 #endif
6284 else
6285 echo "#define Q_BYTE_ORDER $CFG_HOST_ENDIAN" >>"$outpath/src/corelib/global/qconfig.h.new"
6287 echo "#else" >>"$outpath/src/corelib/global/qconfig.h.new"
6288 if [ "$CFG_ENDIAN" = "auto" ]; then
6289 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6290 #if defined(__BIG_ENDIAN__)
6291 # define Q_BYTE_ORDER Q_BIG_ENDIAN
6292 #elif defined(__LITTLE_ENDIAN__)
6293 # define Q_BYTE_ORDER Q_LITTLE_ENDIAN
6294 #else
6295 # error "Unable to determine byte order!"
6296 #endif
6298 else
6299 echo "#define Q_BYTE_ORDER $CFG_ENDIAN" >>"$outpath/src/corelib/global/qconfig.h.new"
6301 echo "#endif" >>"$outpath/src/corelib/global/qconfig.h.new"
6303 if [ "$CFG_DOUBLEFORMAT" != "normal" ]; then
6304 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6305 /* Non-IEEE double format */
6306 #define Q_DOUBLE_LITTLE "01234567"
6307 #define Q_DOUBLE_BIG "76543210"
6308 #define Q_DOUBLE_LITTLE_SWAPPED "45670123"
6309 #define Q_DOUBLE_BIG_SWAPPED "32107654"
6310 #define Q_DOUBLE_FORMAT $CFG_DOUBLEFORMAT
6313 if [ "$CFG_ARMFPA" = "yes" ]; then
6314 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
6315 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6316 #ifndef QT_BOOTSTRAPPED
6317 # define QT_ARMFPA
6318 #endif
6320 else
6321 echo "#define QT_ARMFPA" >>"$outpath/src/corelib/global/qconfig.h.new"
6325 CFG_ARCH_STR=`echo $CFG_ARCH | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6326 CFG_HOST_ARCH_STR=`echo $CFG_HOST_ARCH | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6327 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6328 /* Machine Architecture */
6329 #ifndef QT_BOOTSTRAPPED
6330 # define QT_ARCH_${CFG_ARCH_STR}
6331 #else
6332 # define QT_ARCH_${CFG_HOST_ARCH_STR}
6333 #endif
6336 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
6337 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
6339 if [ "$CFG_LARGEFILE" = "yes" ]; then
6340 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
6343 # if both carbon and cocoa are specified, enable the autodetection code.
6344 if [ "$CFG_MAC_COCOA" = "yes" -a "$CFG_MAC_CARBON" = "yes" ]; then
6345 echo "#define AUTODETECT_COCOA 1" >>"$outpath/src/corelib/global/qconfig.h.new"
6346 elif [ "$CFG_MAC_COCOA" = "yes" ]; then
6347 echo "#define QT_MAC_USE_COCOA 1" >>"$outpath/src/corelib/global/qconfig.h.new"
6350 if [ "$CFG_FRAMEWORK" = "yes" ]; then
6351 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
6354 if [ "$PLATFORM_MAC" = "yes" ]; then
6355 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6356 #if defined(__LP64__)
6357 # define QT_POINTER_SIZE 8
6358 #else
6359 # define QT_POINTER_SIZE 4
6360 #endif
6362 else
6363 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
6364 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
6368 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
6370 if [ "$CFG_DEV" = "yes" ]; then
6371 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
6374 # Embedded compile time options
6375 if [ "$PLATFORM_QWS" = "yes" ]; then
6376 # Add QWS to config.h
6377 QCONFIG_FLAGS="$QCONFIG_FLAGS Q_WS_QWS"
6379 # Add excluded decorations to $QCONFIG_FLAGS
6380 decors=`grep '^decorations -= ' "$QMAKE_VARS_FILE" | ${AWK} '{print $3}'`
6381 for decor in $decors; do
6382 NODECORATION=`echo $decor | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6383 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_NO_QWS_DECORATION_${NODECORATION}"
6384 done
6386 # Figure which embedded drivers which are turned off
6387 CFG_GFX_OFF="$CFG_GFX_AVAILABLE"
6388 for ADRIVER in $CFG_GFX_ON; do
6389 CFG_GFX_OFF=`echo "${CFG_GFX_OFF} " | sed "s,${ADRIVER} ,,g"`
6390 done
6392 CFG_KBD_OFF="$CFG_KBD_AVAILABLE"
6393 # the um driver is currently not in the available list for external builds
6394 if [ "$CFG_DEV" = "no" ]; then
6395 CFG_KBD_OFF="$CFG_KBD_OFF um"
6397 for ADRIVER in $CFG_KBD_ON; do
6398 CFG_KBD_OFF=`echo "${CFG_KBD_OFF} " | sed "s,${ADRIVER} ,,g"`
6399 done
6401 CFG_MOUSE_OFF="$CFG_MOUSE_AVAILABLE"
6402 for ADRIVER in $CFG_MOUSE_ON; do
6403 CFG_MOUSE_OFF=`echo "${CFG_MOUSE_OFF} " | sed "s,${ADRIVER} ,,g"`
6404 done
6406 for DRIVER in $CFG_GFX_OFF; do
6407 NODRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6408 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_QWS_$NODRIVER"
6409 done
6411 for DRIVER in $CFG_KBD_OFF; do
6412 NODRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6413 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_QWS_KBD_$NODRIVER"
6414 done
6416 for DRIVER in $CFG_MOUSE_OFF; do
6417 NODRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6418 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_QWS_MOUSE_$NODRIVER"
6419 done
6420 fi # QWS
6422 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
6423 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
6426 # Add turned on SQL drivers
6427 for DRIVER in $CFG_SQL_AVAILABLE; do
6428 eval "VAL=\$CFG_SQL_$DRIVER"
6429 case "$VAL" in
6431 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6432 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
6433 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
6435 plugin)
6436 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
6438 esac
6439 done
6442 QMakeVar set sql-drivers "$SQL_DRIVERS"
6443 QMakeVar set sql-plugins "$SQL_PLUGINS"
6445 # Add other configuration options to the qconfig.h file
6446 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
6447 [ "$CFG_TIFF" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_TIFF"
6448 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
6449 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
6450 [ "$CFG_MNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_MNG"
6451 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
6452 [ "$CFG_EXCEPTIONS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EXCEPTIONS"
6453 [ "$CFG_IPV6" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6"
6454 [ "$CFG_SXE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SXE"
6455 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
6457 if [ "$PLATFORM_QWS" != "yes" ]; then
6458 [ "$CFG_GRAPHICS_SYSTEM" = "raster" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GRAPHICSSYSTEM_RASTER"
6459 [ "$CFG_GRAPHICS_SYSTEM" = "opengl" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GRAPHICSSYSTEM_OPENGL"
6462 # X11/Unix/Mac only configs
6463 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
6464 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
6465 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
6466 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
6467 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
6468 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
6469 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
6470 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
6471 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
6472 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
6473 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
6474 [ "$CFG_NAS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NAS"
6475 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
6476 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL"
6477 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
6479 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
6480 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
6481 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
6482 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
6483 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
6484 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
6485 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
6486 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
6487 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
6488 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
6489 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
6491 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
6492 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
6493 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
6494 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
6495 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
6497 # sort QCONFIG_FLAGS for neatness if we can
6498 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
6499 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
6501 if [ -n "$QCONFIG_FLAGS" ]; then
6502 for cfg in $QCONFIG_FLAGS; do
6503 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
6504 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
6505 # figure out define logic, so we can output the correct
6506 # ifdefs to override the global defines in a project
6507 cfgdNeg=
6508 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
6509 # QT_NO_option can be forcefully turned on by QT_option
6510 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
6511 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
6512 # QT_option can be forcefully turned off by QT_NO_option
6513 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
6516 if [ -z $cfgdNeg ]; then
6517 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
6518 #ifndef $cfgd
6519 # define $cfg
6520 #endif
6523 else
6524 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
6525 #if defined($cfgd) && defined($cfgdNeg)
6526 # undef $cfgd
6527 #elif !defined($cfgd) && !defined($cfgdNeg)
6528 # define $cfg
6529 #endif
6533 done
6536 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
6537 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
6538 #define QT_VISIBILITY_AVAILABLE
6543 # avoid unecessary rebuilds by copying only if qconfig.h has changed
6544 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
6545 rm -f "$outpath/src/corelib/global/qconfig.h.new"
6546 else
6547 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
6548 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
6549 chmod -w "$outpath/src/corelib/global/qconfig.h"
6550 for conf in "$outpath/include/QtCore/qconfig.h" "$outpath/include/Qt/qconfig.h"; do
6551 if [ '!' -f "$conf" ]; then
6552 ln -s "$outpath/src/corelib/global/qconfig.h" "$conf"
6554 done
6557 #-------------------------------------------------------------------------------
6558 # save configuration into qconfig.pri
6559 #-------------------------------------------------------------------------------
6561 QTCONFIG="$outpath/mkspecs/qconfig.pri"
6562 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
6563 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
6564 if [ "$CFG_DEBUG" = "yes" ]; then
6565 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
6566 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6567 QT_CONFIG="$QT_CONFIG release"
6569 QT_CONFIG="$QT_CONFIG debug"
6570 elif [ "$CFG_DEBUG" = "no" ]; then
6571 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
6572 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6573 QT_CONFIG="$QT_CONFIG debug"
6575 QT_CONFIG="$QT_CONFIG release"
6577 if [ "$CFG_STL" = "yes" ]; then
6578 QTCONFIG_CONFIG="$QTCONFIG_CONFIG stl"
6580 if [ "$CFG_FRAMEWORK" = "no" ]; then
6581 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
6582 else
6583 QT_CONFIG="$QT_CONFIG qt_framework"
6584 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
6586 if [ "$PLATFORM_MAC" = "yes" ]; then
6587 QT_CONFIG="$QT_CONFIG $CFG_MAC_ARCHS"
6590 # Make the application arch follow the Qt arch for single arch builds.
6591 # (for multiple-arch builds, set CONFIG manually in the application .pro file)
6592 if [ `echo "$CFG_MAC_ARCHS" | wc -w` -eq 1 ]; then
6593 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $CFG_MAC_ARCHS"
6596 cat >>"$QTCONFIG.tmp" <<EOF
6597 #configuration
6598 CONFIG += $QTCONFIG_CONFIG
6599 QT_ARCH = $CFG_ARCH
6600 QT_EDITION = $Edition
6601 QT_CONFIG += $QT_CONFIG
6603 #versioning
6604 QT_VERSION = $QT_VERSION
6605 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
6606 QT_MINOR_VERSION = $QT_MINOR_VERSION
6607 QT_PATCH_VERSION = $QT_PATCH_VERSION
6609 #namespaces
6610 QT_LIBINFIX = $QT_LIBINFIX
6611 QT_NAMESPACE = $QT_NAMESPACE
6612 QT_NAMESPACE_MAC_CRC = $QT_NAMESPACE_MAC_CRC
6615 if [ "$CFG_RPATH" = "yes" ]; then
6616 echo "QMAKE_RPATHDIR += \"$QT_INSTALL_LIBS\"" >> "$QTCONFIG.tmp"
6618 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6619 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6620 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6621 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6623 # replace qconfig.pri if it differs from the newly created temp file
6624 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6625 rm -f "$QTCONFIG.tmp"
6626 else
6627 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6630 #-------------------------------------------------------------------------------
6631 # save configuration into .qmake.cache
6632 #-------------------------------------------------------------------------------
6634 CACHEFILE="$outpath/.qmake.cache"
6635 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6636 cat >>"$CACHEFILE.tmp" <<EOF
6637 CONFIG += $QMAKE_CONFIG dylib create_prl link_prl depend_includepath fix_output_dirs QTDIR_build
6638 QT_SOURCE_TREE = \$\$quote($relpath)
6639 QT_BUILD_TREE = \$\$quote($outpath)
6640 QT_BUILD_PARTS = $CFG_BUILD_PARTS
6641 QMAKE_ABSOLUTE_SOURCE_ROOT = \$\$QT_SOURCE_TREE
6642 QMAKE_MOC_SRC = \$\$QT_BUILD_TREE/src/moc
6644 #local paths that cannot be queried from the QT_INSTALL_* properties while building QTDIR
6645 QMAKE_MOC = \$\$QT_BUILD_TREE/bin/moc
6646 QMAKE_UIC = \$\$QT_BUILD_TREE/bin/uic
6647 QMAKE_UIC3 = \$\$QT_BUILD_TREE/bin/uic3
6648 QMAKE_RCC = \$\$QT_BUILD_TREE/bin/rcc
6649 QMAKE_QDBUSXML2CPP = \$\$QT_BUILD_TREE/bin/qdbusxml2cpp
6650 QMAKE_INCDIR_QT = \$\$QT_BUILD_TREE/include
6651 QMAKE_LIBDIR_QT = \$\$QT_BUILD_TREE/lib
6655 if [ -n "$QT_CFLAGS_PSQL" ]; then
6656 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$CACHEFILE.tmp"
6658 if [ -n "$QT_LFLAGS_PSQL" ]; then
6659 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$CACHEFILE.tmp"
6661 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6662 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$CACHEFILE.tmp"
6664 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6665 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$CACHEFILE.tmp"
6667 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6668 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$CACHEFILE.tmp"
6670 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6671 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$CACHEFILE.tmp"
6674 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6675 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$CACHEFILE.tmp"
6678 #dump in the OPENSSL_LIBS info
6679 if [ '!' -z "$OPENSSL_LIBS" ]; then
6680 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$CACHEFILE.tmp"
6681 elif [ "$CFG_OPENSSL" = "linked" ]; then
6682 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$CACHEFILE.tmp"
6685 #dump in the SDK info
6686 if [ '!' -z "$CFG_SDK" ]; then
6687 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$CACHEFILE.tmp"
6690 # mac gcc -Xarch support
6691 if [ "$CFG_MAC_XARCH" = "no" ]; then
6692 echo "QMAKE_MAC_XARCH = no" >> "$CACHEFILE.tmp"
6695 #dump the qmake spec
6696 if [ -d "$outpath/mkspecs/$XPLATFORM" ]; then
6697 echo "QMAKESPEC = \$\$QT_BUILD_TREE/mkspecs/$XPLATFORM" >> "$CACHEFILE.tmp"
6698 else
6699 echo "QMAKESPEC = $XPLATFORM" >> "$CACHEFILE.tmp"
6702 # cmdline args
6703 cat "$QMAKE_VARS_FILE" >> "$CACHEFILE.tmp"
6704 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6706 # incrementals
6707 INCREMENTAL=""
6708 [ "$CFG_INCREMENTAL" = "auto" ] && "$WHICH" p4 >/dev/null 2>&1 && [ "$CFG_DEV" = "yes" ] && CFG_INCREMENTAL="yes"
6709 if [ "$CFG_INCREMENTAL" = "yes" ]; then
6710 find "$relpath" -perm u+w -mtime -3 | grep 'cpp$' | while read f; do
6711 # don't need to worry about generated files
6712 [ -r `echo $f | sed "s,cpp$,ui,"` ] && continue
6713 basename "$f" | grep '^moc_' >/dev/null 2>&1 && continue
6714 # done
6715 INCREMENTAL="$INCREMENTAL `basename \"$f\" | sed 's,.cpp,.o,'`"
6716 done
6717 [ '!' -z "$INCREMENTAL" ] && echo "QMAKE_INCREMENTAL += $INCREMENTAL" >> "$CACHEFILE.tmp"
6718 [ -r "$outpath/.qmake.incremental" ] && echo "include($outpath/.qmake.incremental)" >> "$CACHEFILE.tmp"
6721 # replace .qmake.cache if it differs from the newly created temp file
6722 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6723 rm -f "$CACHEFILE.tmp"
6724 else
6725 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6728 #-------------------------------------------------------------------------------
6729 # give feedback on configuration
6730 #-------------------------------------------------------------------------------
6732 case "$COMPILER" in
6733 g++*)
6734 if [ "$CFG_EXCEPTIONS" != "no" ]; then
6735 cat <<EOF
6737 This target is using the GNU C++ compiler ($PLATFORM).
6739 Recent versions of this compiler automatically include code for
6740 exceptions, which increase both the size of the Qt libraries and
6741 the amount of memory taken by your applications.
6743 You may choose to re-run `basename $0` with the -no-exceptions
6744 option to compile Qt without exceptions. This is completely binary
6745 compatible, and existing applications will continue to work.
6750 cc*)
6751 case "$PLATFORM" in
6752 irix-cc*)
6753 if [ "$CFG_EXCEPTIONS" != "no" ]; then
6754 cat <<EOF
6756 This target is using the MIPSpro C++ compiler ($PLATFORM).
6758 You may choose to re-run `basename $0` with the -no-exceptions
6759 option to compile Qt without exceptions. This will make the
6760 size of the Qt library smaller and reduce the amount of memory
6761 taken by your applications.
6766 *) ;;
6767 esac
6769 *) ;;
6770 esac
6772 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_DWARF2" == "no" ] && [ "$CFG_WEBKIT" = "yes" ] && [ "$CFG_DEBUG_RELEASE" == "yes" ]; then
6773 cat <<EOF
6774 WARNING: DWARF2 debug symbols are not enabled. Linking webkit
6775 in debug mode will run out of memory on systems with 2GB or less.
6776 Install Xcode 2.4.1 or higher to enable DWARF2, or configure with
6777 -no-webkit or -release to skip webkit debug.
6781 echo
6782 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6783 echo "Build type: $PLATFORM"
6784 else
6785 echo "Building on: $PLATFORM"
6786 echo "Building for: $XPLATFORM"
6789 if [ "$PLATFORM_MAC" = "yes" ]; then
6790 echo "Architecture: $CFG_ARCH ($CFG_MAC_ARCHS )"
6791 else
6792 echo "Architecture: $CFG_ARCH"
6795 if [ "$PLATFORM_QWS" = "yes" ]; then
6796 echo "Host architecture: $CFG_HOST_ARCH"
6799 if [ "$PLATFORM_MAC" = "yes" ]; then
6800 if [ "$CFG_MAC_COCOA" = "yes" ]; then
6801 if [ "$CFG_MAC_CARBON" = "yes" ]; then
6802 echo "Using framework: Carbon for 32-bit, Cocoa for 64-bit"
6803 else
6804 echo "Using framework: Cocoa"
6806 else
6807 echo "Using framework: Carbon"
6811 if [ -n "$PLATFORM_NOTES" ]; then
6812 echo "Platform notes:"
6813 echo "$PLATFORM_NOTES"
6814 else
6815 echo
6818 if [ "$OPT_VERBOSE" = "yes" ]; then
6819 if echo '\c' | grep '\c' >/dev/null; then
6820 echo -n "qmake vars .......... "
6821 else
6822 echo "qmake vars .......... \c"
6824 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6825 echo "qmake switches ...... $QMAKE_SWITCHES"
6828 [ "$CFG_INCREMENTAL" = "yes" ] && [ '!' -z "$INCREMENTAL" ] && echo "Incremental ......... $INCREMENTAL"
6829 echo "Build ............... $CFG_BUILD_PARTS"
6830 echo "Configuration ....... $QMAKE_CONFIG $QT_CONFIG"
6831 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6832 echo "Debug ............... yes (combined)"
6833 if [ "$CFG_DEBUG" = "yes" ]; then
6834 echo "Default Link ........ debug"
6835 else
6836 echo "Default Link ........ release"
6838 else
6839 echo "Debug ............... $CFG_DEBUG"
6841 echo "Qt 3 compatibility .. $CFG_QT3SUPPORT"
6842 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module ....... no"
6843 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module ....... yes (run-time)"
6844 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module ....... yes (linked)"
6845 echo "QtScriptTools module $CFG_SCRIPTTOOLS"
6846 echo "QtXmlPatterns module $CFG_XMLPATTERNS"
6847 echo "Phonon module ....... $CFG_PHONON"
6848 echo "SVG module .......... $CFG_SVG"
6849 echo "WebKit module ....... $CFG_WEBKIT"
6850 echo "STL support ......... $CFG_STL"
6851 echo "PCH support ......... $CFG_PRECOMPILE"
6852 echo "MMX/3DNOW/SSE/SSE2.. ${CFG_MMX}/${CFG_3DNOW}/${CFG_SSE}/${CFG_SSE2}"
6853 if [ "${CFG_ARCH}" = "arm" ]; then
6854 echo "iWMMXt support ...... ${CFG_IWMMXT}"
6856 [ "${PLATFORM_QWS}" != "yes" ] && echo "Graphics System ..... $CFG_GRAPHICS_SYSTEM"
6857 echo "IPv6 support ........ $CFG_IPV6"
6858 echo "IPv6 ifname support . $CFG_IPV6IFNAME"
6859 echo "getaddrinfo support . $CFG_GETADDRINFO"
6860 echo "getifaddrs support .. $CFG_GETIFADDRS"
6861 echo "Accessibility ....... $CFG_ACCESSIBILITY"
6862 echo "NIS support ......... $CFG_NIS"
6863 echo "CUPS support ........ $CFG_CUPS"
6864 echo "Iconv support ....... $CFG_ICONV"
6865 echo "Glib support ........ $CFG_GLIB"
6866 echo "GStreamer support ... $CFG_GSTREAMER"
6867 echo "Large File support .. $CFG_LARGEFILE"
6868 echo "GIF support ......... $CFG_GIF"
6869 if [ "$CFG_TIFF" = "no" ]; then
6870 echo "TIFF support ........ $CFG_TIFF"
6871 else
6872 echo "TIFF support ........ $CFG_TIFF ($CFG_LIBTIFF)"
6874 if [ "$CFG_JPEG" = "no" ]; then
6875 echo "JPEG support ........ $CFG_JPEG"
6876 else
6877 echo "JPEG support ........ $CFG_JPEG ($CFG_LIBJPEG)"
6879 if [ "$CFG_PNG" = "no" ]; then
6880 echo "PNG support ......... $CFG_PNG"
6881 else
6882 echo "PNG support ......... $CFG_PNG ($CFG_LIBPNG)"
6884 if [ "$CFG_MNG" = "no" ]; then
6885 echo "MNG support ......... $CFG_MNG"
6886 else
6887 echo "MNG support ......... $CFG_MNG ($CFG_LIBMNG)"
6889 echo "zlib support ........ $CFG_ZLIB"
6890 echo "Session management .. $CFG_SM"
6891 if [ "$PLATFORM_QWS" = "yes" ]; then
6892 echo "Embedded support .... $CFG_EMBEDDED"
6893 if [ "$CFG_QWS_FREETYPE" = "auto" ]; then
6894 echo "Freetype2 support ... $CFG_QWS_FREETYPE ($CFG_LIBFREETYPE)"
6895 else
6896 echo "Freetype2 support ... $CFG_QWS_FREETYPE"
6898 # Normalize the decoration output first
6899 CFG_GFX_ON=`echo ${CFG_GFX_ON}`
6900 CFG_GFX_PLUGIN=`echo ${CFG_GFX_PLUGIN}`
6901 echo "Graphics (qt) ....... ${CFG_GFX_ON}"
6902 echo "Graphics (plugin) ... ${CFG_GFX_PLUGIN}"
6903 CFG_DECORATION_ON=`echo ${CFG_DECORATION_ON}`
6904 CFG_DECORATION_PLUGIN=`echo ${CFG_DECORATION_PLUGIN}`
6905 echo "Decorations (qt) .... $CFG_DECORATION_ON"
6906 echo "Decorations (plugin) $CFG_DECORATION_PLUGIN"
6907 CFG_KBD_ON=`echo ${CFG_KBD_ON}`
6908 CFG_KBD_PLUGIN=`echo ${CFG_KBD_PLUGIN}`
6909 echo "Keyboard driver (qt). ${CFG_KBD_ON}"
6910 echo "Keyboard driver (plugin) ${CFG_KBD_PLUGIN}"
6911 CFG_MOUSE_ON=`echo ${CFG_MOUSE_ON}`
6912 CFG_MOUSE_PLUGIN=`echo ${CFG_MOUSE_PLUGIN}`
6913 echo "Mouse driver (qt) ... $CFG_MOUSE_ON"
6914 echo "Mouse driver (plugin) $CFG_MOUSE_PLUGIN"
6916 if [ "$CFG_OPENGL" = "desktop" ]; then
6917 echo "OpenGL support ...... yes (Desktop OpenGL)"
6918 elif [ "$CFG_OPENGL" = "es1" ]; then
6919 echo "OpenGL support ...... yes (OpenGL ES 1.x Common profile)"
6920 elif [ "$CFG_OPENGL" = "es1cl" ]; then
6921 echo "OpenGL support ...... yes (OpenGL ES 1.x Common Lite profile)"
6922 elif [ "$CFG_OPENGL" = "es2" ]; then
6923 echo "OpenGL support ...... yes (OpenGL ES 2.x)"
6924 else
6925 echo "OpenGL support ...... no"
6927 if [ "$PLATFORM_X11" = "yes" ]; then
6928 echo "NAS sound support ... $CFG_NAS"
6929 echo "XShape support ...... $CFG_XSHAPE"
6930 echo "Xinerama support .... $CFG_XINERAMA"
6931 echo "Xcursor support ..... $CFG_XCURSOR"
6932 echo "Xfixes support ...... $CFG_XFIXES"
6933 echo "Xrandr support ...... $CFG_XRANDR"
6934 echo "Xrender support ..... $CFG_XRENDER"
6935 echo "Xi support .......... $CFG_XINPUT"
6936 echo "MIT-SHM support ..... $CFG_MITSHM"
6937 echo "FontConfig support .. $CFG_FONTCONFIG"
6938 echo "XKB Support ......... $CFG_XKB"
6939 echo "immodule support .... $CFG_IM"
6940 echo "GTK theme support ... $CFG_QGTKSTYLE"
6942 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support ....... $CFG_SQL_mysql"
6943 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support .. $CFG_SQL_psql"
6944 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........ $CFG_SQL_odbc"
6945 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ......... $CFG_SQL_oci"
6946 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ......... $CFG_SQL_tds"
6947 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ......... $CFG_SQL_db2"
6948 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ... $CFG_SQL_ibase"
6949 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support .... $CFG_SQL_sqlite2"
6950 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ...... $CFG_SQL_sqlite ($CFG_SQLITE)"
6952 OPENSSL_LINKAGE=""
6953 if [ "$CFG_OPENSSL" = "yes" ]; then
6954 OPENSSL_LINKAGE="(run-time)"
6955 elif [ "$CFG_OPENSSL" = "linked" ]; then
6956 OPENSSL_LINKAGE="(linked)"
6958 echo "OpenSSL support ..... $CFG_OPENSSL $OPENSSL_LINKAGE"
6960 [ "$CFG_PTMALLOC" != "no" ] && echo "Use ptmalloc ........ $CFG_PTMALLOC"
6962 # complain about not being able to use dynamic plugins if we are using a static build
6963 if [ "$CFG_SHARED" = "no" ]; then
6964 echo
6965 echo "WARNING: Using static linking will disable the use of dynamically"
6966 echo "loaded plugins. Make sure to import all needed static plugins,"
6967 echo "or compile needed modules into the library."
6968 echo
6970 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6971 echo
6972 echo "NOTE: When linking against OpenSSL, you can override the default"
6973 echo "library names through OPENSSL_LIBS."
6974 echo "For example:"
6975 echo " ./configure -openssl-linked OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto'"
6976 echo
6978 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6979 echo
6980 echo "NOTE: Mac OS X frameworks implicitly build debug and release Qt libraries."
6981 echo
6983 echo
6985 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6986 PROCS=1
6987 EXEC=""
6990 #-------------------------------------------------------------------------------
6991 # build makefiles based on the configuration
6992 #-------------------------------------------------------------------------------
6994 echo "Finding project files. Please wait..."
6995 "$outpath/bin/qmake" -prl -r "${relpath}/projects.pro"
6996 if [ -f "${relpath}/projects.pro" ]; then
6997 mkfile="${outpath}/Makefile"
6998 [ -f "$mkfile" ] && chmod +w "$mkfile"
6999 QTDIR="$outpath" "$outpath/bin/qmake" -spec "$XQMAKESPEC" "${relpath}/projects.pro" -o "$mkfile"
7002 # .projects -> projects to process
7003 # .projects.1 -> qt and moc
7004 # .projects.2 -> subdirs and libs
7005 # .projects.3 -> the rest
7006 rm -f .projects .projects.1 .projects.2 .projects.3
7008 QMAKE_PROJECTS=`find "$relpath/." -name '*.pro' -print | sed 's-/\./-/-'`
7009 if [ -z "$AWK" ]; then
7010 for p in `echo $QMAKE_PROJECTS`; do
7011 echo "$p" >> .projects
7012 done
7013 else
7014 cat >projects.awk <<EOF
7015 BEGIN {
7016 files = 0
7017 target_file = ""
7018 input_file = ""
7020 first = "./.projects.1.tmp"
7021 second = "./.projects.2.tmp"
7022 third = "./.projects.3.tmp"
7025 FNR == 1 {
7026 if ( input_file ) {
7027 if ( ! target_file )
7028 target_file = third
7029 print input_file >target_file
7032 matched_target = 0
7033 template_lib = 0
7034 input_file = FILENAME
7035 target_file = ""
7038 /^(TARGET.*=)/ {
7039 if ( \$3 == "moc" || \$3 ~ /^Qt/ ) {
7040 target_file = first
7041 matched_target = 1
7045 matched_target == 0 && /^(TEMPLATE.*=)/ {
7046 if ( \$3 == "subdirs" )
7047 target_file = second
7048 else if ( \$3 == "lib" )
7049 template_lib = 1
7050 else
7051 target_file = third
7054 matched_target == 0 && template_lib == 1 && /^(CONFIG.*=)/ {
7055 if ( \$0 ~ /plugin/ )
7056 target_file = third
7057 else
7058 target_file = second
7061 END {
7062 if ( input_file ) {
7063 if ( ! target_file )
7064 target_file = third
7065 print input_file >>target_file
7071 rm -f .projects.all
7072 for p in `echo $QMAKE_PROJECTS`; do
7073 echo "$p" >> .projects.all
7074 done
7076 # if you get errors about the length of the command line to awk, change the -l arg
7077 # to split below
7078 split -l 100 .projects.all .projects.all.
7079 for p in .projects.all.*; do
7080 "$AWK" -f projects.awk `cat $p`
7081 [ -f .projects.1.tmp ] && cat .projects.1.tmp >> .projects.1
7082 [ -f .projects.2.tmp ] && cat .projects.2.tmp >> .projects.2
7083 [ -f .projects.3.tmp ] && cat .projects.3.tmp >> .projects.3
7084 rm -f .projects.1.tmp .projects.2.tmp .projects.3.tmp $p
7085 done
7086 rm -f .projects.all* projects.awk
7088 [ -f .projects.1 ] && cat .projects.1 >>.projects
7089 [ -f .projects.2 ] && cat .projects.2 >>.projects
7090 rm -f .projects.1 .projects.2
7091 if [ -f .projects.3 ] && [ "$OPT_FAST" = "no" ]; then
7092 cat .projects.3 >>.projects
7093 rm -f .projects.3
7096 # don't sort Qt and MOC in with the other project files
7097 # also work around a segfaulting uniq(1)
7098 if [ -f .sorted.projects.2 ]; then
7099 sort .sorted.projects.2 > .sorted.projects.2.new
7100 mv -f .sorted.projects.2.new .sorted.projects.2
7101 cat .sorted.projects.2 >> .sorted.projects.1
7103 [ -f .sorted.projects.1 ] && sort .sorted.projects.1 >> .sorted.projects
7104 rm -f .sorted.projects.2 .sorted.projects.1
7106 NORM_PROJECTS=0
7107 FAST_PROJECTS=0
7108 if [ -f .projects ]; then
7109 uniq .projects >.tmp
7110 mv -f .tmp .projects
7111 NORM_PROJECTS=`cat .projects | wc -l | sed -e "s, ,,g"`
7113 if [ -f .projects.3 ]; then
7114 uniq .projects.3 >.tmp
7115 mv -f .tmp .projects.3
7116 FAST_PROJECTS=`cat .projects.3 | wc -l | sed -e "s, ,,g"`
7118 echo " `expr $NORM_PROJECTS + $FAST_PROJECTS` projects found."
7119 echo
7121 PART_ROOTS=
7122 for part in $CFG_BUILD_PARTS; do
7123 case "$part" in
7124 tools) PART_ROOTS="$PART_ROOTS tools" ;;
7125 libs) PART_ROOTS="$PART_ROOTS src" ;;
7126 examples) PART_ROOTS="$PART_ROOTS examples demos" ;;
7127 *) ;;
7128 esac
7129 done
7131 if [ "$CFG_DEV" = "yes" ]; then
7132 PART_ROOTS="$PART_ROOTS tests"
7135 echo "Creating makefiles. Please wait..."
7136 for file in .projects .projects.3; do
7137 [ '!' -f "$file" ] && continue
7138 for a in `cat $file`; do
7139 IN_ROOT=no
7140 for r in $PART_ROOTS; do
7141 if echo "$a" | grep "^$r" >/dev/null 2>&1 || echo "$a" | grep "^$relpath/$r" >/dev/null 2>&1; then
7142 IN_ROOT=yes
7143 break
7145 done
7146 [ "$IN_ROOT" = "no" ] && continue
7148 case $a in
7149 *winmain/winmain.pro) continue ;;
7150 */qmake/qmake.pro) continue ;;
7151 *tools/bootstrap*|*tools/moc*|*tools/rcc*|*tools/uic*) SPEC=$QMAKESPEC ;;
7152 *) SPEC=$XQMAKESPEC ;;
7153 esac
7154 dir=`dirname "$a" | sed -e "s;$sepath;.;g"`
7155 test -d "$dir" || mkdir -p "$dir"
7156 OUTDIR="$outpath/$dir"
7157 if [ -f "${OUTDIR}/Makefile" ] && [ "$OPT_FAST" = "yes" ]; then
7158 # fast configure - the makefile exists, skip it
7159 # since the makefile exists, it was generated by qmake, which means we
7160 # can skip it, since qmake has a rule to regenerate the makefile if the .pro
7161 # file changes...
7162 [ "$OPT_VERBOSE" = "yes" ] && echo " skipping $a"
7163 continue;
7165 QMAKE_SPEC_ARGS="-spec $SPEC"
7166 if echo '\c' | grep '\c' >/dev/null; then
7167 echo -n " for $a"
7168 else
7169 echo " for $a\c"
7172 QMAKE="$outpath/bin/qmake"
7173 QMAKE_ARGS="$QMAKE_SWITCHES $QMAKE_SPEC_ARGS"
7174 if [ "$file" = ".projects.3" ]; then
7175 if echo '\c' | grep '\c' >/dev/null; then
7176 echo -n " (fast)"
7177 else
7178 echo " (fast)\c"
7180 echo
7182 cat >"${OUTDIR}/Makefile" <<EOF
7183 # ${OUTDIR}/Makefile: generated by configure
7185 # WARNING: This makefile will be replaced with a real makefile.
7186 # All changes made to this file will be lost.
7188 [ "$CFG_DEBUG_RELEASE" = "no" ] && echo "first_target: first" >>${OUTDIR}/Makefile
7190 cat >>"${OUTDIR}/Makefile" <<EOF
7191 QMAKE = "$QMAKE"
7192 all clean install qmake first Makefile: FORCE
7193 \$(QMAKE) $QMAKE_ARGS -o "$OUTDIR" "$a"
7194 cd "$OUTDIR"
7195 \$(MAKE) \$@
7197 FORCE:
7200 else
7201 if [ "$OPT_VERBOSE" = "yes" ]; then
7202 echo " (`basename $SPEC`)"
7203 echo "$QMAKE" $QMAKE_ARGS -o "$OUTDIR" "$a"
7204 else
7205 echo
7208 [ -f "${OUTDIR}/Makefile" ] && chmod +w "${OUTDIR}/Makefile"
7209 QTDIR="$outpath" "$QMAKE" $QMAKE_ARGS -o "$OUTDIR" "$a"
7211 done
7212 done
7213 rm -f .projects .projects.3
7215 #-------------------------------------------------------------------------------
7216 # XShape is important, DnD in the Designer doens't work without it
7217 #-------------------------------------------------------------------------------
7218 if [ "$PLATFORM_X11" = "yes" ] && [ "$CFG_XSHAPE" = "no" ]; then
7219 cat <<EOF
7221 NOTICE: Qt will not be built with XShape support.
7223 As a result, drag-and-drop in the Qt Designer will NOT
7224 work. We recommend that you enable XShape support by passing
7225 the -xshape switch to $0.
7229 #-------------------------------------------------------------------------------
7230 # check for platforms that we don't yet know about
7231 #-------------------------------------------------------------------------------
7232 if [ "$CFG_ARCH" = "generic" ]; then
7233 cat <<EOF
7235 NOTICE: Atomic operations are not yet supported for this
7236 architecture.
7238 Qt will use the 'generic' architecture instead, which uses a
7239 single pthread_mutex_t to protect all atomic operations. This
7240 implementation is the slow (but safe) fallback implementation
7241 for architectures Qt does not yet support.
7245 #-------------------------------------------------------------------------------
7246 # check if the user passed the -no-zlib option, which is no longer supported
7247 #-------------------------------------------------------------------------------
7248 if [ -n "$ZLIB_FORCED" ]; then
7249 which_zlib="supplied"
7250 if [ "$CFG_ZLIB" = "system" ]; then
7251 which_zlib="system"
7254 cat <<EOF
7256 NOTICE: The -no-zlib option was supplied but is no longer
7257 supported.
7259 Qt now requires zlib support in all builds, so the -no-zlib
7260 option was ignored. Qt will be built using the $which_zlib
7261 zlib.
7265 #-------------------------------------------------------------------------------
7266 # finally save the executed command to another script
7267 #-------------------------------------------------------------------------------
7268 if [ `basename $0` != "config.status" ]; then
7269 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
7271 # add the system variables
7272 for varname in $SYSTEM_VARIABLES; do
7273 cmd=`echo \
7274 'if [ -n "\$'${varname}'" ]; then
7275 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
7276 fi'`
7277 eval "$cmd"
7278 done
7280 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
7282 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
7283 echo "#!/bin/sh" > "$outpath/config.status"
7284 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
7285 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
7286 echo "else" >> "$outpath/config.status"
7287 echo " $CONFIG_STATUS" >> "$outpath/config.status"
7288 echo "fi" >> "$outpath/config.status"
7289 chmod +x "$outpath/config.status"
7292 if [ -n "$RPATH_MESSAGE" ]; then
7293 echo
7294 echo "$RPATH_MESSAGE"
7297 MAKE=`basename "$MAKE"`
7298 echo
7299 echo Qt is now configured for building. Just run \'$MAKE\'.
7300 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
7301 echo Once everything is built, Qt is installed.
7302 echo You should not run \'$MAKE install\'.
7303 else
7304 echo Once everything is built, you must run \'$MAKE install\'.
7305 echo Qt will be installed into $QT_INSTALL_PREFIX
7307 echo
7308 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.
7309 echo