1 dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil; -*-
2 dnl vi: set tabstop=4 shiftwidth=4 expandtab:
3 dnl ***** BEGIN LICENSE BLOCK *****
4 dnl Version: MPL 1.1/GPL 2.0/LGPL 2.1
6 dnl The contents of this file are subject to the Mozilla Public License Version
7 dnl 1.1 (the "License"); you may not use this file except in compliance with
8 dnl the License. You may obtain a copy of the License at
9 dnl http://www.mozilla.org/MPL/
11 dnl Software distributed under the License is distributed on an "AS IS" basis,
12 dnl WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13 dnl for the specific language governing rights and limitations under the
16 dnl The Original Code is this file as it was released upon August 6, 1998.
18 dnl The Initial Developer of the Original Code is
19 dnl Christopher Seawood.
20 dnl Portions created by the Initial Developer are Copyright (C) 1998-2001
21 dnl the Initial Developer. All Rights Reserved.
24 dnl Jamie Zawinski <jwz@jwz.org>
25 dnl gettimeofday args check
26 dnl Christopher Blizzard <blizzard@appliedtheory.com>
27 dnl gnomefe update & enable-pthreads
28 dnl Ramiro Estrugo <ramiro@netscape.com>
29 dnl X11 makedepend support
31 dnl Henry Sobotka <sobotka@axess.com>
33 dnl Dan Mosedale <dmose@mozilla.org>
35 dnl Seth Spitzer <sspitzer@netscape.com>
37 dnl Benjamin Smedberg <benjamin@smedbergs.us>
38 dnl Howard Chu <hyc@symas.com>
40 dnl Mark Mentovai <mark@moxienet.com>:
41 dnl Mac OS X 10.4 support
42 dnl Giorgio Maone <g.maone@informaction.com>
43 dnl MSVC l10n compatible version check
44 dnl Ben Turner <mozilla@songbirdnest.com>
45 dnl Windows x64 support
46 dnl Makoto Kato <m_kato@ga2.so-net.ne.jp>
48 dnl Alternatively, the contents of this file may be used under the terms of
49 dnl either the GNU General Public License Version 2 or later (the "GPL"), or
50 dnl the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
51 dnl in which case the provisions of the GPL or the LGPL are applicable instead
52 dnl of those above. If you wish to allow use of your version of this file only
53 dnl under the terms of either the GPL or the LGPL, and not to allow others to
54 dnl use your version of this file under the terms of the MPL, indicate your
55 dnl decision by deleting the provisions above and replace them with the notice
56 dnl and other provisions required by the GPL or the LGPL. If you do not delete
57 dnl the provisions above, a recipient may use your version of this file under
58 dnl the terms of any one of the MPL, the GPL or the LGPL.
60 dnl ***** END LICENSE BLOCK *****
62 dnl Process this file with autoconf to produce a configure script.
63 dnl ========================================================
66 AC_INIT(config/config.mk)
67 AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf)
69 TARGET_CPU="${target_cpu}"
70 TARGET_VENDOR="${target_vendor}"
71 TARGET_OS="${target_os}"
74 MOZ_DEB_TIMESTAMP=`date +"%a, %d %b %Y %T %z" 2>&1`
75 AC_SUBST(MOZ_DEB_TIMESTAMP)
78 dnl ========================================================
80 dnl = Don't change the following two lines. Doing so breaks:
82 dnl = CFLAGS="-foo" ./configure
84 dnl ========================================================
86 CPPFLAGS="${CPPFLAGS=}"
87 CXXFLAGS="${CXXFLAGS=}"
89 HOST_CFLAGS="${HOST_CFLAGS=}"
90 HOST_CXXFLAGS="${HOST_CXXFLAGS=}"
91 HOST_LDFLAGS="${HOST_LDFLAGS=}"
93 dnl ========================================================
94 dnl = Preserve certain environment flags passed to configure
95 dnl = We want sub projects to receive the same flags
96 dnl = untainted by this configure script
97 dnl ========================================================
100 _SUBDIR_CFLAGS="$CFLAGS"
101 _SUBDIR_CPPFLAGS="$CPPFLAGS"
102 _SUBDIR_CXXFLAGS="$CXXFLAGS"
103 _SUBDIR_LDFLAGS="$LDFLAGS"
104 _SUBDIR_HOST_CC="$HOST_CC"
105 _SUBDIR_HOST_CFLAGS="$HOST_CFLAGS"
106 _SUBDIR_HOST_CXXFLAGS="$HOST_CXXFLAGS"
107 _SUBDIR_HOST_LDFLAGS="$HOST_LDFLAGS"
108 _SUBDIR_CONFIG_ARGS="$ac_configure_args"
110 dnl Set the version number of the libs included with mozilla
111 dnl ========================================================
118 dnl Set the minimum version of toolkit libs used by mozilla
119 dnl ========================================================
127 WINDRES_VERSION=2.14.90
130 GNOMEUI_VERSION=2.2.0
133 STARTUP_NOTIFICATION_VERSION=0.8
135 SQLITE_VERSION=3.7.0.1
136 LIBNOTIFY_VERSION=0.4
140 dnl Set various checks
141 dnl ========================================================
145 dnl Initialize the Pthread test variables early so they can be
146 dnl overridden by each platform.
147 dnl ========================================================
151 dnl Do not allow a separate objdir build if a srcdir build exists.
152 dnl ==============================================================
153 _topsrcdir=`cd \`dirname $0\`; pwd`
156 if test "$_topsrcdir" != "$_objdir"
158 # Check for a couple representative files in the source tree
160 for file in $_topsrcdir/Makefile $_topsrcdir/config/autoconf.mk; do
161 if test -f $file; then
162 _conflict_files="$_conflict_files $file"
165 if test "$_conflict_files"; then
167 echo "* Your source tree contains these files:"
168 for file in $_conflict_files; do
172 * This indicates that you previously built in the source tree.
173 * A source tree build can confuse the separate objdir build.
175 * To clean up the source tree:
186 dnl Default to MSVC for win32 and gcc-4.2 for darwin
187 dnl ==============================================================
188 if test -z "$CROSS_COMPILE"; then
190 *-cygwin*|*-mingw*|*-msvc*|*-mks*)
191 if test -z "$CC"; then CC=cl; fi
192 if test -z "$CXX"; then CXX=cl; fi
193 if test -z "$CPP"; then CPP="cl -E -nologo"; fi
194 if test -z "$CXXCPP"; then CXXCPP="cl -TP -E -nologo"; ac_cv_prog_CXXCPP="$CXXCPP"; fi
195 if test -z "$LD"; then LD=link; fi
196 if test -z "$AS"; then
197 case "${target_cpu}" in
206 if test -z "$MIDL"; then MIDL=midl; fi
209 if test -z "$CC"; then CC=gcc-4.2; fi
210 if test -z "$CXX"; then CXX=g++-4.2; fi
215 COMPILE_ENVIRONMENT=1
216 MOZ_ARG_DISABLE_BOOL(compile-environment,
217 [ --disable-compile-environment
218 Disable compiler/library checks.],
219 COMPILE_ENVIRONMENT= )
220 AC_SUBST(COMPILE_ENVIRONMENT)
222 MOZ_ARG_WITH_STRING(l10n-base,
223 [ --with-l10n-base=DIR path to l10n repositories],
224 L10NBASEDIR=$withval)
225 if test ! -z "$L10NBASEDIR"; then
226 if test "$L10NBASEDIR" = "yes" -o "$L10NBASEDIR" = "no"; then
227 AC_MSG_ERROR([--with-l10n-base must specify a path])
228 elif test -d "$L10NBASEDIR"; then
229 L10NBASEDIR=`cd "$L10NBASEDIR" && pwd`
231 AC_MSG_ERROR([Invalid value --with-l10n-base, $L10NBASEDIR doesn't exist])
234 AC_SUBST(L10NBASEDIR)
236 dnl Check for Perl first -- needed for win32 SDK checks
237 MOZ_PATH_PROGS(PERL, $PERL perl5 perl )
238 if test -z "$PERL" -o "$PERL" = ":"; then
239 AC_MSG_ERROR([perl not found in \$PATH])
242 dnl ========================================================
243 dnl = Android uses a very custom (hacky) toolchain; we need to do this
244 dnl = here, so that the compiler checks can succeed
245 dnl ========================================================
247 MOZ_ARG_WITH_STRING(android-ndk,
248 [ --with-android-ndk=DIR
249 location where the Android NDK can be found],
250 android_ndk=$withval)
252 MOZ_ARG_WITH_STRING(android-toolchain,
253 [ --with-android-toolchain=DIR
254 location of the android toolchain, default NDK/build/prebuilt/HOST/arm-eabi-4.4.0],
255 android_toolchain=$withval)
258 MOZ_ARG_WITH_STRING(android-version,
259 [ --with-android-version=VER
260 android platform version, default 5],
261 android_version=$withval,
264 MOZ_ARG_WITH_STRING(android-sdk,
265 [ --with-android-sdk=DIR
266 location where the Android SDK can be found (base directory, e.g. .../android/platforms/android-6)],
267 android_sdk=$withval)
269 MOZ_ARG_WITH_STRING(android-tools,
270 [ --with-android-tools=DIR
271 location where the Android Tools can be found (base directory, e.g. .../android/tools)],
272 android_tools=$withval)
274 if test "$target" = "arm-android-eabi" ; then
275 if test -z "$android_ndk" ; then
276 AC_MSG_ERROR([You must specify --with-android-ndk=/path/to/ndk when targeting Android.])
279 if test -z "$android_sdk" ; then
280 AC_MSG_ERROR([You must specify --with-android-sdk=/path/to/sdk when targeting Android.])
283 if test -z "$android_tools" ; then
284 AC_MSG_ERROR([You must specify --with-android-tools=/path/to/sdk/tools when targeting Android.])
287 if test -z "$android_toolchain" ; then
288 android_toolchain="$android_ndk"/build/prebuilt/`uname -s | tr "[[:upper:]]" "[[:lower:]]"`-x86/arm-eabi-4.4.0
291 if test -z "$android_platform" ; then
292 android_platform="$android_ndk"/build/platforms/android-"$android_version"/arch-"$target_cpu"
296 AS="$android_toolchain"/bin/arm-eabi-as
297 CC="$android_toolchain"/bin/arm-eabi-gcc
298 CXX="$android_toolchain"/bin/arm-eabi-g++
299 CPP="$android_toolchain"/bin/arm-eabi-cpp
300 LD="$android_toolchain"/bin/arm-eabi-ld
301 AR="$android_toolchain"/bin/arm-eabi-ar
302 RANLIB="$android_toolchain"/bin/arm-eabi-ranlib
303 STRIP="$android_toolchain"/bin/arm-eabi-strip
305 CPPFLAGS="-I$android_platform/usr/include $CPPFLAGS"
306 CFLAGS="-mandroid -I$android_platform/usr/include -msoft-float -fno-short-enums -fno-exceptions -march=armv5te -mthumb-interwork $CFLAGS"
307 CXXFLAGS="-mandroid -I$android_platform/usr/include -msoft-float -fno-short-enums -fno-exceptions -march=armv5te -mthumb-interwork $CXXFLAGS"
309 dnl Add -llog by default, since we use it all over the place.
310 dnl Add --allow-shlib-undefined, because libGLESv2 links to an
311 dnl undefined symbol (present on the hardware, just not in the
313 LDFLAGS="-mandroid -L$android_platform/usr/lib -Wl,-rpath-link=$android_platform/usr/lib --sysroot=$android_platform -llog -Wl,--allow-shlib-undefined $LDFLAGS"
315 dnl prevent cross compile section from using these flags as host flags
316 if test -z "$HOST_CPPFLAGS" ; then
319 if test -z "$HOST_CFLAGS" ; then
322 if test -z "$HOST_CXXFLAGS" ; then
325 if test -z "$HOST_LDFLAGS" ; then
329 ANDROID_NDK="${android_ndk}"
330 ANDROID_TOOLCHAIN="{android_toolchain}"
331 ANDROID_PLATFORM="{android_platform}"
332 ANDROID_SDK="${android_sdk}"
333 ANDROID_TOOLS="${android_tools}"
334 ANDROID_VERSION="${android_version}"
337 AC_DEFINE_UNQUOTED(ANDROID_VERSION, $android_version)
338 AC_SUBST(ANDROID_VERSION)
340 MOZ_CHROME_FILE_FORMAT=omni
343 AC_SUBST(ANDROID_NDK)
344 AC_SUBST(ANDROID_TOOLCHAIN)
345 AC_SUBST(ANDROID_PLATFORM)
346 AC_SUBST(ANDROID_SDK)
347 AC_SUBST(ANDROID_TOOLS)
349 dnl ========================================================
350 dnl Checks for compilers.
351 dnl ========================================================
352 dnl Set CROSS_COMPILE in the environment when running configure
353 dnl to use the cross-compile setup for now
354 dnl ========================================================
356 dnl AR_FLAGS set here so HOST_AR_FLAGS can be set correctly (see bug 538269)
359 if test "$COMPILE_ENVIRONMENT"; then
361 dnl Do some special WinCE toolchain stuff
365 MOZ_ARG_WITH_STRING(wince-sdk,
366 [ --with-wince-sdk=WINCE_SDK_DIR
367 The path to the Windows CE SDK],
368 WINCE_SDK_DIR=$withval)
370 MOZ_ARG_WITH_STRING(ogles-sdk,
371 [ --with-ogles-sdk=OGLES_SDK_DIR
372 The path to the OGLES SDK],
373 OGLES_SDK_DIR=$withval)
379 echo -----------------------------------------------------------------------------
380 echo Building Windows CE Shunt Library and Tool Chain
387 _topsrcdirwin=`cd \`dirname $0\`; pwd -W`
388 make OGLES_SDK_DIR="$OGLES_SDK_DIR" WINCE_SDK_DIR="$WINCE_SDK_DIR" \
389 TOPSRCDIR="$_topsrcdirwin" OBJDIR="$_pwd" target="$target" \
390 -C $srcdir/build/wince/tools
392 CC="$_pwd/dist/sdk/bin/$target-gcc.exe"
393 CXX="$_pwd/dist/sdk/bin/$target-gcc.exe"
394 CPP="$_pwd/dist/sdk/bin/$target-gcc.exe -E -nologo"
395 CXXCPP="$_pwd/dist/sdk/bin/$target-gcc.exe -TP -E -nologo"
396 LD="$_pwd/dist/sdk/bin/$target-link.exe"
397 AR="$_pwd/dist/sdk/bin/$target-lib.exe"
398 AS="$_pwd/dist/sdk/bin/$target-as.exe"
399 RC="$_pwd/dist/sdk/bin/$target-res.exe"
402 echo -----------------------------------------------------------------------------
407 if test -n "$CROSS_COMPILE" -a "$target" != "$host"; then
408 echo "cross compiling from $host to $target"
412 _SAVE_CFLAGS="$CFLAGS"
413 _SAVE_LDFLAGS="$LDFLAGS"
415 AC_MSG_CHECKING([for host c compiler])
416 AC_CHECK_PROGS(HOST_CC, $HOST_CC gcc cc /usr/ucb/cc cl icc, "")
417 if test -z "$HOST_CC"; then
418 AC_MSG_ERROR([no acceptable c compiler found in \$PATH])
420 AC_MSG_RESULT([$HOST_CC])
421 AC_MSG_CHECKING([for host c++ compiler])
422 AC_CHECK_PROGS(HOST_CXX, $HOST_CXX $CCC c++ g++ gcc CC cxx cc++ cl icc, "")
423 if test -z "$HOST_CXX"; then
424 AC_MSG_ERROR([no acceptable c++ compiler found in \$PATH])
426 AC_MSG_RESULT([$HOST_CXX])
428 if test -z "$HOST_CFLAGS"; then
429 HOST_CFLAGS="$CFLAGS"
431 if test -z "$HOST_CXXFLAGS"; then
432 HOST_CXXFLAGS="$CXXFLAGS"
434 if test -z "$HOST_LDFLAGS"; then
435 HOST_LDFLAGS="$LDFLAGS"
437 if test -z "$HOST_AR_FLAGS"; then
438 HOST_AR_FLAGS="$AR_FLAGS"
440 AC_CHECK_PROGS(HOST_RANLIB, $HOST_RANLIB ranlib, ranlib, :)
441 AC_CHECK_PROGS(HOST_AR, $HOST_AR ar, ar, :)
443 CFLAGS="$HOST_CFLAGS"
444 LDFLAGS="$HOST_LDFLAGS"
446 AC_MSG_CHECKING([whether the host c compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works])
447 AC_TRY_COMPILE([], [return(0);],
448 [ac_cv_prog_hostcc_works=1 AC_MSG_RESULT([yes])],
449 AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CC cannot create executables.]) )
452 CFLAGS="$HOST_CXXFLAGS"
454 AC_MSG_CHECKING([whether the host c++ compiler ($HOST_CXX $HOST_CXXFLAGS $HOST_LDFLAGS) works])
455 AC_TRY_COMPILE([], [return(0);],
456 [ac_cv_prog_hostcxx_works=1 AC_MSG_RESULT([yes])],
457 AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CXX cannot create executables.]) )
461 LDFLAGS=$_SAVE_LDFLAGS
463 case "$build:$target" in
464 powerpc-apple-darwin8*:i?86-apple-darwin*)
465 dnl The Darwin cross compiler doesn't necessarily point itself at a
466 dnl root that has libraries for the proper architecture, it defaults
467 dnl to the system root. The libraries in the system root on current
468 dnl versions of PPC OS X 10.4 aren't fat, so these target compiler
469 dnl checks will fail. Fake a working SDK in that case.
471 _SAVE_CXXFLAGS=$CXXLAGS
472 CFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk $CFLAGS"
473 CXXFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk $CXXFLAGS"
477 AC_CHECK_PROGS(CC, $CC "${target_alias}-gcc" "${target}-gcc", :)
480 AC_CHECK_PROGS(CXX, $CXX "${target_alias}-g++" "${target}-g++", :)
484 case "$build:$target" in
485 powerpc-apple-darwin8*:i?86-apple-darwin*)
486 dnl Revert the changes made above. From this point on, the target
487 dnl compiler will never be used without applying the SDK to CFLAGS
488 dnl (see --with-macos-sdk below).
490 CXXFLAGS=$_SAVE_CXXFLAGS
494 AC_CHECK_PROGS(RANLIB, $RANLIB "${target_alias}-ranlib" "${target}-ranlib", :)
495 AC_CHECK_PROGS(AR, $AR "${target_alias}-ar" "${target}-ar", :)
496 MOZ_PATH_PROGS(AS, $AS "${target_alias}-as" "${target}-as", :)
497 AC_CHECK_PROGS(LD, $LD "${target_alias}-ld" "${target}-ld", :)
498 AC_CHECK_PROGS(STRIP, $STRIP "${target_alias}-strip" "${target}-strip", :)
499 AC_CHECK_PROGS(WINDRES, $WINDRES "${target_alias}-windres" "${target}-windres", :)
500 AC_DEFINE(CROSS_COMPILE)
505 MOZ_PATH_PROGS(AS, $AS as, $CC)
506 AC_CHECK_PROGS(AR, ar, :)
507 AC_CHECK_PROGS(LD, ld, :)
508 AC_CHECK_PROGS(STRIP, strip, :)
509 AC_CHECK_PROGS(WINDRES, windres, :)
510 if test -z "$HOST_CC"; then
513 if test -z "$HOST_CFLAGS"; then
514 HOST_CFLAGS='$(CFLAGS)'
516 if test -z "$HOST_CXX"; then
519 if test -z "$HOST_CXXFLAGS"; then
520 HOST_CXXFLAGS='$(CXXFLAGS)'
522 if test -z "$HOST_LDFLAGS"; then
523 HOST_LDFLAGS='$(LDFLAGS)'
525 if test -z "$HOST_RANLIB"; then
526 HOST_RANLIB='$(RANLIB)'
528 if test -z "$HOST_AR"; then
531 if test -z "$HOST_AR_FLAGS"; then
532 HOST_AR_FLAGS='$(AR_FLAGS)'
542 if test "$GCC" = "yes"; then
544 CC_VERSION=`$CC -v 2>&1 | grep 'gcc version'`
546 if test "$GXX" = "yes"; then
548 CXX_VERSION=`$CXX -v 2>&1 | grep 'gcc version'`
550 if test "`echo | $AS -v 2>&1 | grep -c GNU`" != "0"; then
553 if test "`echo | $LD -v 2>&1 | grep -c GNU`" != "0"; then
556 if test "$GNU_CC"; then
557 if `$CC -print-prog-name=ld` -v 2>&1 | grep -c GNU >/dev/null; then
564 if test "$GCC" = yes; then
565 if test "`$CC -help 2>&1 | grep -c 'Intel(R) C++ Compiler'`" != "0"; then
570 if test "$GXX" = yes; then
571 if test "`$CXX -help 2>&1 | grep -c 'Intel(R) C++ Compiler'`" != "0"; then
576 dnl Special win32 checks
577 dnl ========================================================
585 dnl Target the Windows 7 SDK by default
590 MOZ_ARG_WITH_STRING(windows-version,
591 [ --with-windows-version=WINSDK_TARGETVER
592 Highest Windows version to target using this SDK
593 502: Windows Server 2003
596 WINSDK_TARGETVER=$withval)
598 case "$WINSDK_TARGETVER" in
600 MOZ_WINSDK_TARGETVER=0${WINSDK_TARGETVER}0000
604 AC_MSG_ERROR([Invalid value for --with-windows-version ($WINSDK_TARGETVER), must be 502, 600 or 601]);
609 if test -n "$COMPILE_ENVIRONMENT"; then
610 if test "$MOZ_WINSDK_TARGETVER" -lt "06000000"; then
611 # We can't build parental controls either
612 MOZ_DISABLE_PARENTAL_CONTROLS=1
617 *-cygwin*|*-mingw*|*-msvc*|*-mks*|*-wince|*-winmo)
618 if test "$GCC" != "yes"; then
619 # Check to see if we are really running in a msvc environemnt
621 AC_CHECK_PROGS(MIDL, midl)
623 # Make sure compilers are valid
624 CFLAGS="$CFLAGS -TC -nologo"
625 CXXFLAGS="$CXXFLAGS -TP -nologo"
628 AC_TRY_COMPILE([#include <stdio.h>],
629 [ printf("Hello World\n"); ],,
630 AC_MSG_ERROR([\$(CC) test failed. You must have MS VC++ in your path to build.]) )
633 AC_TRY_COMPILE([#include <new.h>],
634 [ unsigned *test = new unsigned(42); ],,
635 AC_MSG_ERROR([\$(CXX) test failed. You must have MS VC++ in your path to build.]) )
639 _MSVC_VER_FILTER='s|.* ([0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?).*|\1|p'
642 # Determine compiler version
643 CC_VERSION=`"${CC}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
644 _CC_MAJOR_VERSION=`echo ${CC_VERSION} | $AWK -F\. '{ print $1 }'`
645 _CC_MINOR_VERSION=`echo ${CC_VERSION} | $AWK -F\. '{ print $2 }'`
646 _CC_RELEASE=`echo ${CC_VERSION} | $AWK -F\. '{ print $3 }'`
647 _CC_BUILD=`echo ${CC_VERSION} | $AWK -F\. '{ print $4 }'`
648 _MSC_VER=${_CC_MAJOR_VERSION}${_CC_MINOR_VERSION}
650 CXX_VERSION=`"${CXX}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
651 _CXX_MAJOR_VERSION=`echo ${CXX_VERSION} | $AWK -F\. '{ print $1 }'`
653 if test "$_CC_MAJOR_VERSION" != "$_CXX_MAJOR_VERSION"; then
654 AC_MSG_ERROR([The major versions of \$CC and \$CXX do not match.])
656 if test "$_CC_MAJOR_VERSION" = "13"; then
658 elif test "$_CC_MAJOR_VERSION" = "14"; then
660 CXXFLAGS="$CXXFLAGS -Zc:wchar_t-"
661 dnl -DYNAMICBASE is only supported on VC8SP1 or newer,
662 dnl so be very specific here!
663 dnl VC8 is 14.00.50727.42, VC8SP1 is 14.00.50727.762
664 if test $_CC_RELEASE -gt 50727; then
666 elif test $_CC_BUILD -ge 762; then
669 AC_DEFINE(_CRT_SECURE_NO_DEPRECATE)
670 AC_DEFINE(_CRT_NONSTDC_NO_DEPRECATE)
671 elif test "$_CC_MAJOR_VERSION" = "15"; then
673 CXXFLAGS="$CXXFLAGS -Zc:wchar_t-"
675 AC_DEFINE(_CRT_SECURE_NO_WARNINGS)
676 AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)
677 elif test "$_CC_MAJOR_VERSION" = "16"; then
679 CXXFLAGS="$CXXFLAGS -Zc:wchar_t-"
681 AC_DEFINE(_CRT_SECURE_NO_WARNINGS)
682 AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)
684 AC_MSG_ERROR([This version of the MSVC compiler, $CC_VERSION , is unsupported.])
687 _MOZ_RTTI_FLAGS_ON='-GR'
688 _MOZ_RTTI_FLAGS_OFF='-GR-'
689 _MOZ_EXCEPTIONS_FLAGS_ON='-EHsc'
690 _MOZ_EXCEPTIONS_FLAGS_OFF=''
692 if test -n "$WIN32_REDIST_DIR"; then
693 WIN32_REDIST_DIR=`cd "$WIN32_REDIST_DIR" && pwd`
697 # ensure that mt.exe is Microsoft (R) Manifest Tool and not magnetic tape manipulation utility (or something else)
698 if test "$_CC_SUITE" -ge "8"; then
700 _MSMT_VER_FILTER='s|.* \([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*|\1|p'
703 MSMT_TOOL=`mt 2>&1|grep 'Microsoft (R) Manifest Tool'`
704 if test -n "$MSMT_TOOL"; then
705 MSMANIFEST_TOOL_VERSION=`echo ${MSMT_TOOL}|sed -ne "$_MSMT_VER_FILTER"`
706 if test -z "$MSMANIFEST_TOOL_VERSION"; then
707 AC_MSG_WARN([Unknown version of the Microsoft (R) Manifest Tool.])
712 AC_MSG_ERROR([Microsoft (R) Manifest Tool must be in your \$PATH.])
716 # Check linker version
717 _LD_FULL_VERSION=`"${LD}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
718 _LD_MAJOR_VERSION=`echo ${_LD_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
719 if test "$_LD_MAJOR_VERSION" != "$_CC_SUITE"; then
720 AC_MSG_ERROR([The linker major version, $_LD_FULL_VERSION, does not match the compiler suite version, $_CC_SUITE.])
725 _MIDL_FULL_VERSION=`"${MIDL}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
726 _MIDL_MAJOR_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
727 _MIDL_MINOR_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $2 }'`
728 _MIDL_REV_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $3 }'`
729 # Add flags if necessary
730 AC_MSG_CHECKING([for midl flags])
733 if test \( "$_MIDL_MAJOR_VERSION" = "7" -a "$_MIDL_MINOR_VERSION" = "00" -a "$_MIDL_REV_VERSION" = "0499" \); then
734 # MIDL version 7.00.0499 defaults /env win64 on x64 platforms.
735 # MIDL version 7.00.0500 or later has no problem.
736 MIDL_FLAGS="${MIDL_FLAGS} -env win32"
737 AC_MSG_RESULT([need -env win32])
739 AC_MSG_RESULT([none needed])
743 MIDL_FLAGS="${MIDL_FLAGS} -env x64"
746 AC_MSG_RESULT([none needed])
750 # Identify which version of the SDK we're building with
751 # Windows Server 2008 and newer SDKs have WinSDKVer.h, get the version
753 AC_CHECK_HEADERS([winsdkver.h])
754 if test "$ac_cv_header_winsdkver_h" = "yes"; then
755 # Get the highest _WIN32_WINNT and NTDDI versions supported
756 # Take the higher of the two
757 # This is done because the Windows 7 beta SDK reports its
758 # NTDDI_MAXVER to be 0x06000100 instead of 0x06010000, as it should
759 AC_CACHE_CHECK(for highest Windows version supported by this SDK,
761 [cat > conftest.h <<EOF
762 #include <winsdkver.h>
763 #include <sdkddkver.h>
765 #if (NTDDI_VERSION_FROM_WIN32_WINNT(_WIN32_WINNT_MAXVER) > NTDDI_MAXVER)
766 #define WINSDK_MAXVER NTDDI_VERSION_FROM_WIN32_WINNT(_WIN32_WINNT_MAXVER)
768 #define WINSDK_MAXVER NTDDI_MAXVER
773 ac_cv_winsdk_maxver=`$CPP conftest.h 2>/dev/null | tail -n1`
776 MOZ_WINSDK_MAXVER=${ac_cv_winsdk_maxver}
778 # The Vista SDK is the only one to have sdkddkver.h but not
780 AC_CHECK_HEADERS([sdkddkver.h])
781 if test "$ac_cv_header_sdkddkver_h" = "yes"; then
782 MOZ_WINSDK_MAXVER=0x06000000
784 # Assume the Server 2003 Platform SDK
785 MOZ_WINSDK_MAXVER=0x05020000
789 unset _MSVC_VER_FILTER
791 AC_CACHE_CHECK(for std::_Throw, ac_cv_have_std__Throw,
795 _SAVE_CXXFLAGS="$CXXFLAGS"
796 CXXFLAGS="${CXXFLAGS} -D_HAS_EXCEPTIONS=0"
797 AC_TRY_COMPILE([#include <exception>],
798 [std::_Throw(std::exception()); return 0;],
799 ac_cv_have_std__Throw="yes",
800 ac_cv_have_std__Throw="no")
801 CXXFLAGS="$_SAVE_CXXFLAGS"
805 if test "$ac_cv_have_std__Throw" == "yes"; then
806 AC_CACHE_CHECK(for |class __declspec(dllimport) exception| bug,
807 ac_cv_have_dllimport_exception_bug,
811 _SAVE_CXXFLAGS="$CXXFLAGS"
812 CXXFLAGS="${CXXFLAGS} -D_HAS_EXCEPTIONS=0"
813 AC_TRY_LINK([#include <vector>],
814 [std::vector<int> v; return v.at(1);],
815 ac_cv_have_dllimport_exception_bug="no",
816 ac_cv_have_dllimport_exception_bug="yes")
817 CXXFLAGS="$_SAVE_CXXFLAGS"
820 if test "$ac_cv_have_dllimport_exception_bug" = "no"; then
822 MOZ_MSVC_STL_WRAP__Throw=1
823 AC_DEFINE(MOZ_MSVC_STL_WRAP__Throw)
826 AC_CACHE_CHECK(for overridable _RAISE,
831 _SAVE_CXXFLAGS="$CXXFLAGS"
832 CXXFLAGS="${CXXFLAGS} -D_HAS_EXCEPTIONS=0"
833 AC_TRY_COMPILE([#include <xstddef>
835 #define _RAISE(x) externallyDefinedFunction((x).what())
838 [std::vector<int> v; return v.at(1);],
839 ac_cv_have__RAISE="no",
840 ac_cv_have__RAISE="yes")
841 CXXFLAGS="$_SAVE_CXXFLAGS"
844 if test "$ac_cv_have__RAISE" = "yes"; then
846 MOZ_MSVC_STL_WRAP__RAISE=1
847 AC_DEFINE(MOZ_MSVC_STL_WRAP__RAISE)
849 AC_MSG_ERROR([Gecko exception wrapping doesn't understand your your MSVC/SDK. Please file a bug describing this error and your build configuration.])
853 if test "$WRAP_STL_INCLUDES" = "1"; then
854 STL_FLAGS='-D_HAS_EXCEPTIONS=0 -I$(DIST)/stl_wrappers'
857 # Check w32api version
858 _W32API_MAJOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $1 }'`
859 _W32API_MINOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $2 }'`
860 AC_MSG_CHECKING([for w32api version >= $W32API_VERSION])
861 AC_TRY_COMPILE([#include <w32api.h>],
862 #if (__W32API_MAJOR_VERSION < $_W32API_MAJOR_VERSION) || \
863 (__W32API_MAJOR_VERSION == $_W32API_MAJOR_VERSION && \
864 __W32API_MINOR_VERSION < $_W32API_MINOR_VERSION)
865 #error "test failed."
867 , [ res=yes ], [ res=no ])
868 AC_MSG_RESULT([$res])
869 if test "$res" != "yes"; then
870 AC_MSG_ERROR([w32api version $W32API_VERSION or higher required.])
872 # Check windres version
873 AC_MSG_CHECKING([for windres version >= $WINDRES_VERSION])
874 _WINDRES_VERSION=`${WINDRES} --version 2>&1 | grep -i windres 2>/dev/null | $AWK '{ print $3 }'`
875 AC_MSG_RESULT([$_WINDRES_VERSION])
876 _WINDRES_MAJOR_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $1 }'`
877 _WINDRES_MINOR_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $2 }'`
878 _WINDRES_RELEASE_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $3 }'`
879 WINDRES_MAJOR_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $1 }'`
880 WINDRES_MINOR_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $2 }'`
881 WINDRES_RELEASE_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $3 }'`
882 if test "$_WINDRES_MAJOR_VERSION" -lt "$WINDRES_MAJOR_VERSION" -o \
883 "$_WINDRES_MAJOR_VERSION" -eq "$WINDRES_MAJOR_VERSION" -a \
884 "$_WINDRES_MINOR_VERSION" -lt "$WINDRES_MINOR_VERSION" -o \
885 "$_WINDRES_MAJOR_VERSION" -eq "$WINDRES_MAJOR_VERSION" -a \
886 "$_WINDRES_MINOR_VERSION" -eq "$WINDRES_MINOR_VERSION" -a \
887 "$_WINDRES_RELEASE_VERSION" -lt "$WINDRES_RELEASE_VERSION"
889 AC_MSG_ERROR([windres version $WINDRES_VERSION or higher is required to build.])
892 # Server 2003 is the highest version supported
893 MOZ_WINSDK_MAXVER=0x05020000
896 AC_DEFINE_UNQUOTED(WINVER,0x$WINVER)
897 AC_DEFINE_UNQUOTED(_WIN32_WINNT,0x$WINVER)
898 # Require OS features provided by IE 5.0
899 AC_DEFINE_UNQUOTED(_WIN32_IE,0x0500)
901 # If the maximum version supported by this SDK is lower than the target
903 AC_MSG_CHECKING([for Windows SDK being recent enough])
904 if $PERL -e "exit(0x$MOZ_WINSDK_TARGETVER > $MOZ_WINSDK_MAXVER)"; then
908 AC_MSG_ERROR([You are targeting Windows version 0x$MOZ_WINSDK_TARGETVER, but your SDK only supports up to version $MOZ_WINSDK_MAXVER. Install and use an updated SDK, or target a lower version using --with-windows-version. Alternatively, try running the Windows SDK Configuration Tool and selecting a newer SDK. See https://developer.mozilla.org/En/Windows_SDK_versions for more details on fixing this.])
911 AC_DEFINE_UNQUOTED(MOZ_WINSDK_TARGETVER,0x$MOZ_WINSDK_TARGETVER)
912 # Definitions matching sdkddkver.h
913 AC_DEFINE_UNQUOTED(MOZ_NTDDI_WS03, 0x05020000)
914 AC_DEFINE_UNQUOTED(MOZ_NTDDI_LONGHORN, 0x06000000)
915 AC_DEFINE_UNQUOTED(MOZ_NTDDI_WIN7, 0x06010000)
919 dnl Test breaks icc on OS/2 && MSVC
920 if test "$CC" != "icc" -a -z "$_WIN32_MSVC"; then
922 if grep "NO_MINUS_C_MINUS_O 1" ./confdefs.h >/dev/null; then
926 CC="${srcdir}/build/hcc '$CC'"
927 CXX="${srcdir}/build/hcpp '$CXX'"
934 if test -n "$_WIN32_MSVC"; then
936 SKIP_COMPILER_CHECKS=1
937 SKIP_LIBRARY_CHECKS=1
939 # Since we're skipping compiler and library checks, hard-code
946 AC_DEFINE(HAVE_SETBUF)
947 AC_DEFINE(HAVE_ISATTY)
952 fi # COMPILE_ENVIRONMENT
965 AC_SUBST(WRAP_STL_INCLUDES)
966 AC_SUBST(MOZ_MSVC_STL_WRAP__Throw)
967 AC_SUBST(MOZ_MSVC_STL_WRAP__RAISE)
969 dnl ========================================================
970 dnl Checks for programs.
971 dnl ========================================================
975 if test -z "$TINDERBOX_SKIP_PERL_VERSION_CHECK"; then
976 AC_MSG_CHECKING([for minimum required perl version >= $PERL_VERSION])
977 _perl_version=`PERL_VERSION=$PERL_VERSION $PERL -e 'print "$]"; if ($] >= $ENV{PERL_VERSION}) { exit(0); } else { exit(1); }' 2>&5`
979 AC_MSG_RESULT([$_perl_version])
981 if test "$_perl_res" != 0; then
982 AC_MSG_ERROR([Perl $PERL_VERSION or higher is required.])
986 AC_MSG_CHECKING([for full perl installation])
987 _perl_archlib=`$PERL -e 'use Config; if ( -d $Config{archlib} ) { exit(0); } else { exit(1); }' 2>&5`
989 if test "$_perl_res" != 0; then
991 AC_MSG_ERROR([Cannot find Config.pm or \$Config{archlib}. A full perl installation is required.])
996 MOZ_PATH_PROGS(PYTHON, $PYTHON python2.6 python2.5 python2.4 python)
997 if test -z "$PYTHON"; then
998 AC_MSG_ERROR([python was not found in \$PATH])
1001 if test -z "$COMPILE_ENVIRONMENT"; then
1002 NSINSTALL_BIN='$(PYTHON) $(topsrcdir)/config/nsinstall.py'
1004 AC_SUBST(NSINSTALL_BIN)
1006 MOZ_PATH_PROG(DOXYGEN, doxygen, :)
1007 MOZ_PATH_PROG(AUTOCONF, autoconf, :)
1008 MOZ_PATH_PROG(UNZIP, unzip, :)
1009 MOZ_PATH_PROGS(ZIP, zip)
1010 if test -z "$ZIP" -o "$ZIP" = ":"; then
1011 AC_MSG_ERROR([zip not found in \$PATH])
1013 MOZ_PATH_PROG(SYSTEM_MAKEDEPEND, makedepend)
1014 MOZ_PATH_PROG(XARGS, xargs)
1015 if test -z "$XARGS" -o "$XARGS" = ":"; then
1016 AC_MSG_ERROR([xargs not found in \$PATH .])
1019 if test "$COMPILE_ENVIRONMENT"; then
1021 dnl ========================================================
1022 dnl = Mac OS X toolchain support
1023 dnl ========================================================
1025 case "$target_os" in
1027 dnl Current known valid versions for GCC_VERSION are 2.95.2 3.1 3.3 4.0.
1028 dnl 4.0 identifies itself as 4.0.x, so strip the decidecimal for
1029 dnl the environment and includedir purposes (when using an SDK, below),
1030 dnl but remember the full version number for the libdir (SDK).
1032 GCC_VERSION_FULL=`echo $CXX_VERSION | $PERL -pe 's/^.*gcc version ([^ ]*).*/$1/'`
1033 GCC_VERSION=`echo $GCC_VERSION_FULL | $PERL -pe '(split(/\./))[0]>=4&&s/(^\d*\.\d*).*/$1/;'`
1035 if test "$GCC_VERSION_FULL" = "4.0.0" ; then
1036 dnl Bug 280479, but this keeps popping up in bug 292530 too because
1037 dnl 4.0.0/4061 is the default compiler in Tiger.
1039 GCC_BUILD=`echo $CXX_VERSION | $PERL -pe 's/^.*build ([^ )]*).*/$1/'`
1041 if test "$GCC_BUILD" = "4061" ; then
1042 AC_MSG_ERROR([You are attempting to use Apple gcc 4.0 build 4061.
1043 This compiler was supplied with Xcode 2.0, and contains bugs that prevent it
1044 from building Mozilla. Upgrade to Xcode 2.1 or later.])
1048 dnl xcodebuild needs GCC_VERSION defined in the environment, since it
1049 dnl doesn't respect the CC/CXX setting. With GCC_VERSION set, it will use
1050 dnl /usr/bin/g(cc|++)-$GCC_VERSION.
1051 MOZ_PATH_PROGS(PBBUILD, pbbuild xcodebuild pbxbuild)
1056 XCODEBUILD_VERSION=`$PBBUILD -version 2>/dev/null | xargs | sed -e 's/.*DevToolsCore-\([0-9]*\).*/\1/'`
1058 if test -n "$XCODEBUILD_VERSION" -a "$XCODEBUILD_VERSION" -ge 620 ; then
1064 dnl sdp was formerly in /Developer/Tools. As of Mac OS X 10.4 (Darwin 8),
1065 dnl it has moved into /usr/bin.
1066 MOZ_PATH_PROG(SDP, sdp, :, [$PATH:/usr/bin:/Developer/Tools])
1070 AC_SUBST(GCC_VERSION)
1071 AC_SUBST(XCODEBUILD_VERSION)
1072 AC_SUBST(HAS_XCODE_2_1)
1074 dnl The universal machinery sets UNIVERSAL_BINARY to inform packager.mk
1075 dnl that a universal binary is being produced.
1076 AC_SUBST(UNIVERSAL_BINARY)
1078 dnl ========================================================
1079 dnl Check for MacOS deployment target version
1080 dnl ========================================================
1082 MOZ_ARG_ENABLE_STRING(macos-target,
1083 [ --enable-macos-target=VER (default=10.5)
1084 Set the minimum MacOS version needed at runtime],
1085 [_MACOSX_DEPLOYMENT_TARGET=$enableval])
1089 if test -n "$_MACOSX_DEPLOYMENT_TARGET" ; then
1090 dnl Use the specified value
1091 export MACOSX_DEPLOYMENT_TARGET=$_MACOSX_DEPLOYMENT_TARGET
1092 AC_DEFINE_UNQUOTED(__ENVIRONMENT_MAC_OS_X_VERION_MIN_REQUIRED__,$_MACOSX_DEPLOYMENT_TARGET)
1093 elif test -z "$MACOSX_DEPLOYMENT_TARGET" ; then
1094 dnl No value specified on the command line or in the environment,
1095 dnl use architecture minimum.
1096 export MACOSX_DEPLOYMENT_TARGET=10.5
1101 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
1103 dnl ========================================================
1104 dnl = Mac OS X SDK support
1105 dnl ========================================================
1108 MOZ_ARG_WITH_STRING(macos-sdk,
1109 [ --with-macos-sdk=dir Location of platform SDK to use (Mac OS X only)],
1110 MACOS_SDK_DIR=$withval)
1112 dnl MACOS_SDK_DIR will be set to the SDK location whenever one is in use.
1113 dnl NEXT_ROOT will be set and exported only if it's needed.
1114 AC_SUBST(MACOS_SDK_DIR)
1117 if test "$MACOS_SDK_DIR"; then
1118 dnl Sync this section with the ones in NSPR and NSS.
1119 dnl Changes to the cross environment here need to be accounted for in
1120 dnl the libIDL checks (below) and xpidl build.
1122 if test ! -d "$MACOS_SDK_DIR"; then
1123 AC_MSG_ERROR([SDK not found. When using --with-macos-sdk, you must
1124 specify a valid SDK. SDKs are installed when the optional cross-development
1125 tools are selected during the Xcode/Developer Tools installation.])
1128 GCC_VERSION_MAJOR=`echo $GCC_VERSION_FULL | $PERL -pe 's/(^\d*).*/$1/;'`
1129 if test "$GCC_VERSION_MAJOR" -lt "4" ; then
1130 AC_MSG_ERROR([You need to upgrade the compiler version to 4.x])
1132 CFLAGS="$CFLAGS -isysroot ${MACOS_SDK_DIR}"
1133 CXXFLAGS="$CXXFLAGS -isysroot ${MACOS_SDK_DIR}"
1135 dnl CPP/CXXCPP needs to be set for AC_CHECK_HEADER.
1136 CPP="$CPP -isysroot ${MACOS_SDK_DIR}"
1137 CXXCPP="$CXXCPP -isysroot ${MACOS_SDK_DIR}"
1139 if test "$GCC_VERSION_FULL" = "4.0.0" ; then
1140 dnl If gcc >= 4.0, we're guaranteed to be on Tiger, which has an ld
1141 dnl that supports -syslibroot. Don't set NEXT_ROOT because it will
1142 dnl be ignored and cause warnings when -syslibroot is specified.
1143 dnl gcc 4.0.1 will pass -syslibroot to ld automatically based on
1144 dnl the -isysroot it receives, so this is only needed with 4.0.0.
1145 LDFLAGS="$LDFLAGS -Wl,-syslibroot,${MACOS_SDK_DIR}"
1150 AC_MSG_CHECKING([for valid compiler/Mac OS X SDK combination])
1152 AC_TRY_COMPILE([#include <new>
1153 int main() { return 0; }],
1157 AC_MSG_RESULT($result)
1159 if test "$result" = "no" ; then
1160 AC_MSG_ERROR([The selected compiler and Mac OS X SDK are incompatible.])
1164 fi # COMPILE_ENVIRONMENT
1166 if test -n "$MAKE"; then
1167 if test `echo $MAKE | grep -c make.py` != 1; then
1173 cygwin*|mingw*|mks*|msvc*)
1174 MOZ_PATH_PROGS(GMAKE, $GMAKE $NOT_PYMAKE make gmake, :)
1177 MOZ_PATH_PROGS(GMAKE, $GMAKE $NOT_PYMAKE gmake make, :)
1180 if test "$GMAKE" = ":"; then
1181 AC_MSG_ERROR([GNU make not found])
1185 if test "$COMPILE_ENVIRONMENT"; then
1191 fi # COMPILE_ENVIRONMENT
1193 dnl ========================================================
1194 dnl set the defaults first
1195 dnl ========================================================
1198 AR_EXTRACT='$(AR) x'
1213 MOZ_USER_DIR=".mozilla"
1216 MOZ_JPEG_LIBS='$(call EXPAND_LIBNAME_PATH,mozjpeg,$(DEPTH)/jpeg)'
1218 MOZ_ZLIB_LIBS='$(call EXPAND_LIBNAME_PATH,mozz,$(DEPTH)/modules/zlib/src)'
1220 MOZ_BZ2_LIBS='$(call EXPAND_LIBNAME_PATH,bz2,$(DEPTH)/modules/libbz2/src)'
1222 MOZ_PNG_LIBS='$(call EXPAND_LIBNAME_PATH,mozpng,$(DEPTH)/modules/libimg/png)'
1224 MOZ_JS_LIBS='-L$(LIBXUL_DIST)/bin -lmozjs'
1225 DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/bin -lxpcom -lxpcom_core -lmozalloc'
1226 MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib'
1227 XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/bin -lxpcom -lmozalloc'
1228 LIBXUL_LIBS='$(XPCOM_FROZEN_LDOPTS) -lxul'
1229 XPCOM_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue_s.$(LIB_SUFFIX) $(XPCOM_FROZEN_LDOPTS)'
1230 XPCOM_STANDALONE_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue.$(LIB_SUFFIX)'
1234 MOZ_COMPONENT_NSPR_LIBS='-L$(LIBXUL_DIST)/bin $(NSPR_LIBS)'
1236 USE_DEPENDENT_LIBS=1
1238 _PLATFORM_DEFAULT_TOOLKIT=cairo-gtk2
1240 if test -n "$CROSS_COMPILE"; then
1241 OS_TARGET="${target_os}"
1242 OS_ARCH=`echo $target_os | sed -e 's|/|_|g'`
1244 case "${target_os}" in
1245 linux*) OS_ARCH=Linux OS_TARGET=Linux ;;
1246 kfreebsd*-gnu) OS_ARCH=GNU_kFreeBSD OS_TARGET=GNU_kFreeBSD ;;
1247 gnu*) OS_ARCH=GNU ;;
1248 solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;;
1249 mingw*) OS_ARCH=WINNT ;;
1250 wince*) OS_ARCH=WINCE ;;
1251 winmo*) OS_ARCH=WINCE ;;
1252 darwin*) OS_ARCH=Darwin OS_TARGET=Darwin ;;
1255 arm-android-eabi) OS_ARCH=Linux OS_TARGET=Android ;;
1258 OS_TARGET=`uname -s`
1259 OS_ARCH=`uname -s | sed -e 's|/|_|g'`
1260 OS_RELEASE=`uname -r`
1263 # Before this used `uname -m` when not cross compiling
1264 # but that breaks when you have a 64 bit kernel with a 32 bit userland.
1265 OS_TEST="${target_cpu}"
1269 HOST_OS_ARCH=`echo $host_os | sed -e 's|/|_|g'`
1271 #######################################################################
1272 # Master "Core Components" macros for getting the OS target #
1273 #######################################################################
1276 # If OS_TARGET is not specified, it defaults to $(OS_ARCH), i.e., no
1277 # cross-compilation.
1281 # Define and override various archtecture-specific variables, including
1290 case "$HOST_OS_ARCH" in
1291 cygwin*|mingw*|mks*|msvc*)
1304 if test -z "$GNU_CC"; then
1305 if test "`$CC -V 2>&1 | egrep -c 'Sun.*C '`" != "0"; then
1310 if test -z "$GNU_CXX"; then
1311 if test "`$CXX -V 2>&1 | egrep -c 'Sun.*C\+\+ '`" != "0"; then
1312 SOLARIS_SUNPRO_CXX=1
1315 AC_SUBST(SOLARIS_SUNPRO_CC)
1316 AC_SUBST(SOLARIS_SUNPRO_CXX)
1328 if "`cat /etc/bcheckrc | grep -c NCR 2>/dev/null`" != "0"; then
1331 HOST_OS_ARCH=UNIXWARE
1343 HOST_OS_ARCH=OpenVMS
1353 SINIX-N | SINIX-Y | SINIX-Z |ReliantUNIX-M)
1357 HOST_OS_ARCH=UNIXWARE
1363 if test -z "$CROSS_COMPILE" ; then
1369 # If uname -s returns "Windows_NT", we assume that we are using
1370 # the uname.exe in MKS toolkit.
1372 # The -r option of MKS uname only returns the major version number.
1373 # So we need to use its -v option to get the minor version number.
1374 # Moreover, it doesn't have the -p option, so we need to use uname -m.
1378 OS_MINOR_RELEASE=`uname -v`
1379 if test "$OS_MINOR_RELEASE" = "00"; then
1382 OS_RELEASE="${OS_RELEASE}.${OS_MINOR_RELEASE}"
1384 CYGWIN32_NT|CYGWIN_NT*|MINGW*_NT*)
1386 # If uname -s returns "CYGWIN_NT-4.0", we assume that we are using
1387 # the uname.exe in the Cygwin tools.
1388 # Prior to the Beta 20 release, Cygwin was called GNU-Win32.
1389 # If uname -s returns "CYGWIN32/NT", we assume that we are using
1390 # the uname.exe in the GNU-Win32 tools.
1391 # If uname -s returns MINGW32_NT-5.1, we assume that we are using
1392 # the uname.exe in the MSYS tools.
1394 OS_RELEASE=`expr $OS_ARCH : '.*NT-\(.*\)'`
1399 OS_RELEASE=`uname -v`.`uname -r`
1400 OS_TEST=${target_cpu}
1412 if "`cat /etc/bcheckrc | grep -c NCR 2>/dev/null`" != "0"; then
1416 OS_RELEASE=`uname -v`
1440 OS_RELEASE=`uname -v`
1446 OS_RELEASE=`uname -v`
1449 if test "$OS_TARGET" != "NTO"; then
1451 OS_RELEASE=`uname -v | sed 's/^\([0-9]\)\([0-9]*\)$/\1.\2/'`
1460 SINIX-N | SINIX-Y | SINIX-Z |ReliantUNIX-M)
1466 OS_RELEASE=`uname -v`
1470 case "${target_os}" in
1473 WINCE_WINDOWS_MOBILE=1
1474 AC_DEFINE(WINCE_WINDOWS_MOBILE)
1482 case "${target_cpu}" in
1493 if test -z "$CROSS_COMPILE" ; then
1501 if test "$OS_ARCH" = "NCR"; then
1503 OS_RELEASE=`awk '{print $3}' /etc/.relid | sed 's/^\([0-9]\)\(.\)\(..\)\(.*\)$/\2.\3/'`
1507 # Only set CPU_ARCH if we recognize the value of OS_TEST
1518 powerpc | ppc | rs6000)
1522 Alpha | alpha | ALPHA)
1551 if test -z "$OS_TARGET"; then
1554 OS_CONFIG="${OS_TARGET}${OS_RELEASE}"
1556 dnl ========================================================
1557 dnl GNU specific defaults
1558 dnl ========================================================
1559 if test "$GNU_CC"; then
1560 # FIXME: Let us build with strict aliasing. bug 414641.
1561 CFLAGS="$CFLAGS -fno-strict-aliasing"
1562 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@'
1563 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@'
1564 DSO_LDOPTS='-shared'
1565 if test "$GCC_USE_GNU_LD"; then
1566 # Don't allow undefined symbols in libraries
1567 DSO_LDOPTS="$DSO_LDOPTS -Wl,-z,defs"
1569 WARNINGS_AS_ERRORS='-Werror'
1571 DSO_PIC_CFLAGS='-fPIC'
1572 ASFLAGS="$ASFLAGS -fPIC"
1573 _MOZ_RTTI_FLAGS_ON=${_COMPILER_PREFIX}-frtti
1574 _MOZ_RTTI_FLAGS_OFF=${_COMPILER_PREFIX}-fno-rtti
1575 _MOZ_EXCEPTIONS_FLAGS_ON='-fexceptions'
1576 _MOZ_EXCEPTIONS_FLAGS_OFF='-fno-exceptions'
1578 # Turn on GNU specific features
1579 # -Wall - turn on all warnings
1580 # -pedantic - make compiler warn about non-ANSI stuff, and
1581 # be a little bit stricter
1582 # Warnings slamm took out for now (these were giving more noise than help):
1583 # -Wbad-function-cast - warns when casting a function to a new return type
1584 # -Wshadow - removed because it generates more noise than help --pete
1585 _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -W -Wno-unused -Wpointer-arith"
1586 if test -z "$INTEL_CC"; then
1587 # Don't use -Wcast-align with ICC
1589 # And don't use it on hppa, ia64, sparc, arm, since it's noisy there
1590 hppa | ia64 | sparc | arm)
1593 _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wcast-align"
1598 dnl Turn pedantic on but disable the warnings for long long
1601 if test -z "$INTEL_CC"; then
1602 _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -W"
1605 _DEFINES_CFLAGS='-include $(DEPTH)/mozilla-config.h -DMOZILLA_CLIENT'
1606 _USE_CPP_INCLUDE_FLAG=1
1607 elif test "$SOLARIS_SUNPRO_CC"; then
1609 if test "$CPU_ARCH" = "sparc"; then
1610 # for Sun Studio on Solaris/SPARC
1611 DSO_PIC_CFLAGS='-xcode=pic32'
1613 DSO_PIC_CFLAGS='-KPIC'
1615 _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
1617 MKSHLIB='$(LD) $(DSO_LDOPTS) -h $@ -o $@'
1618 MKCSHLIB='$(LD) $(DSO_LDOPTS) -h $@ -o $@'
1620 DSO_LDOPTS='-shared'
1621 if test "$GNU_LD"; then
1622 # Don't allow undefined symbols in libraries
1623 DSO_LDOPTS="$DSO_LDOPTS -z defs"
1627 DSO_PIC_CFLAGS='-KPIC'
1628 _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
1631 if test "$GNU_CXX"; then
1632 # FIXME: Let us build with strict aliasing. bug 414641.
1633 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
1634 # Turn on GNU specific features
1635 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor"
1636 if test -z "$INTEL_CC"; then
1637 # Don't use -Wcast-align with ICC
1639 # And don't use it on hppa, ia64, sparc, arm, since it's noisy there
1640 hppa | ia64 | sparc | arm)
1643 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wcast-align"
1648 _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -include $(DEPTH)/mozilla-config.h'
1649 _USE_CPP_INCLUDE_FLAG=1
1651 AC_CACHE_CHECK(whether the compiler supports -Wno-invalid-offsetof,
1652 ac_has_wno_invalid_offsetof,
1656 _SAVE_CXXFLAGS="$CXXFLAGS"
1657 CXXFLAGS="$CXXFLAGS ${_COMPILER_PREFIX}-Wno-invalid-offsetof"
1660 ac_has_wno_invalid_offsetof="yes",
1661 ac_has_wno_invalid_offsetof="no")
1662 CXXFLAGS="$_SAVE_CXXFLAGS"
1665 if test "$ac_has_wno_invalid_offsetof" = "yes"; then
1666 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-Wno-invalid-offsetof"
1669 AC_CACHE_CHECK(whether the compiler supports -Wno-variadic-macros,
1670 ac_has_wno_variadic_macros,
1674 _SAVE_CXXFLAGS="$CXXFLAGS"
1675 CXXFLAGS="$CXXFLAGS ${_COMPILER_PREFIX}-Wno-variadic-macros"
1678 ac_has_wno_variadic_macros="yes",
1679 ac_has_wno_variadic_macros="no")
1680 CXXFLAGS="$_SAVE_CXXFLAGS"
1683 if test "$ac_has_wno_variadic_macros" = "yes"; then
1684 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-Wno-variadic-macros"
1687 AC_CACHE_CHECK(whether the compiler supports -Werror=return-type,
1688 ac_has_werror_return_type,
1692 _SAVE_CXXFLAGS="$CXXFLAGS"
1693 CXXFLAGS="$CXXFLAGS -Werror=return-type"
1696 ac_has_werror_return_type="yes",
1697 ac_has_werror_return_type="no")
1698 CXXFLAGS="$_SAVE_CXXFLAGS"
1701 if test "$ac_has_werror_return_type" = "yes"; then
1702 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Werror=return-type"
1706 _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -D_MOZILLA_CONFIG_H_ $(ACDEFINES)'
1709 dnl gcc can come with its own linker so it is better to use the pass-thru calls
1710 dnl MKSHLIB_FORCE_ALL is used to force the linker to include all object
1711 dnl files present in an archive. MKSHLIB_UNFORCE_ALL reverts the linker to
1712 dnl normal behavior.
1713 dnl ========================================================
1715 MKSHLIB_UNFORCE_ALL=
1717 if test "$COMPILE_ENVIRONMENT"; then
1718 if test "$GNU_CC"; then
1719 AC_MSG_CHECKING(whether ld has archive extraction flags)
1720 AC_CACHE_VAL(ac_cv_mkshlib_force_and_unforce,
1721 [_SAVE_LDFLAGS=$LDFLAGS; _SAVE_LIBS=$LIBS
1722 ac_cv_mkshlib_force_and_unforce="no"
1723 exec 3<&0 <<LOOP_INPUT
1724 force="-Wl,--whole-archive"; unforce="-Wl,--no-whole-archive"
1725 force="-Wl,-z -Wl,allextract"; unforce="-Wl,-z -Wl,defaultextract"
1726 force="-Wl,-all"; unforce="-Wl,-none"
1733 AC_TRY_LINK(,, ac_cv_mkshlib_force_and_unforce=$line; break)
1736 LDFLAGS=$_SAVE_LDFLAGS; LIBS=$_SAVE_LIBS
1738 if test "$ac_cv_mkshlib_force_and_unforce" = "no"; then
1742 eval $ac_cv_mkshlib_force_and_unforce
1743 MKSHLIB_FORCE_ALL=$force
1744 MKSHLIB_UNFORCE_ALL=$unforce
1747 fi # COMPILE_ENVIRONMENT
1749 dnl =================================================================
1750 dnl Set up and test static assertion macros used to avoid AC_TRY_RUN,
1751 dnl which is bad when cross compiling.
1752 dnl =================================================================
1753 if test "$COMPILE_ENVIRONMENT"; then
1754 configure_static_assert_macros='
1755 #define CONFIGURE_STATIC_ASSERT(condition) CONFIGURE_STATIC_ASSERT_IMPL(condition, __LINE__)
1756 #define CONFIGURE_STATIC_ASSERT_IMPL(condition, line) CONFIGURE_STATIC_ASSERT_IMPL2(condition, line)
1757 #define CONFIGURE_STATIC_ASSERT_IMPL2(condition, line) typedef int static_assert_line_##line[(condition) ? 1 : -1]
1760 dnl test that the macros actually work:
1761 AC_MSG_CHECKING(that static assertion macros used in autoconf tests work)
1762 AC_CACHE_VAL(ac_cv_static_assertion_macros_work,
1765 ac_cv_static_assertion_macros_work="yes"
1766 AC_TRY_COMPILE([$configure_static_assert_macros],
1767 [CONFIGURE_STATIC_ASSERT(1)],
1769 ac_cv_static_assertion_macros_work="no")
1770 AC_TRY_COMPILE([$configure_static_assert_macros],
1771 [CONFIGURE_STATIC_ASSERT(0)],
1772 ac_cv_static_assertion_macros_work="no",
1775 AC_TRY_COMPILE([$configure_static_assert_macros],
1776 [CONFIGURE_STATIC_ASSERT(1)],
1778 ac_cv_static_assertion_macros_work="no")
1779 AC_TRY_COMPILE([$configure_static_assert_macros],
1780 [CONFIGURE_STATIC_ASSERT(0)],
1781 ac_cv_static_assertion_macros_work="no",
1785 AC_MSG_RESULT("$ac_cv_static_assertion_macros_work")
1786 if test "$ac_cv_static_assertion_macros_work" = "no"; then
1787 AC_MSG_ERROR([Compiler cannot compile macros used in autoconf tests.])
1789 fi # COMPILE_ENVIRONMENT
1791 dnl ========================================================
1792 dnl Checking for 64-bit OS
1793 dnl ========================================================
1794 if test "$COMPILE_ENVIRONMENT"; then
1797 AC_MSG_CHECKING(for 64-bit OS)
1798 AC_TRY_COMPILE([$configure_static_assert_macros],
1799 [CONFIGURE_STATIC_ASSERT(sizeof(void*) == 8)],
1800 result="yes", result="no")
1801 AC_MSG_RESULT("$result")
1802 if test "$result" = "yes"; then
1803 AC_DEFINE(HAVE_64BIT_OS)
1806 AC_SUBST(HAVE_64BIT_OS)
1808 fi # COMPILE_ENVIRONMENT
1810 dnl ========================================================
1811 dnl Enable high-memory support on OS/2 by default.
1812 dnl ========================================================
1813 MOZ_OS2_HIGH_MEMORY=1
1814 MOZ_ARG_DISABLE_BOOL(os2-high-mem,
1815 [ --disable-os2-high-mem Disable high-memory support on OS/2],
1816 MOZ_OS2_HIGH_MEMORY=,
1817 MOZ_OS2_HIGH_MEMORY=1 )
1818 AC_SUBST(MOZ_OS2_HIGH_MEMORY)
1820 dnl ========================================================
1821 dnl System overrides of the defaults for host
1822 dnl ========================================================
1825 HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE -DNO_X11"
1826 HOST_NSPR_MDCPUCFG='\"md/_beos.cfg\"'
1827 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
1830 *cygwin*|*mingw*|*mks*|*msvc*|*wince|*winmo)
1831 # we need Python 2.5 on Windows
1833 if test -n "$_WIN32_MSVC"; then
1835 HOST_AR_FLAGS='-NOLOGO -OUT:"$@"'
1836 HOST_CFLAGS="$HOST_CFLAGS -TC -nologo -Fd\$(HOST_PDBFILE)"
1837 HOST_RANLIB='echo ranlib'
1839 HOST_CFLAGS="$HOST_CFLAGS -mno-cygwin"
1841 HOST_CFLAGS="$HOST_CFLAGS -DXP_WIN32 -DXP_WIN -DWIN32 -D_WIN32 -DNO_X11"
1842 HOST_NSPR_MDCPUCFG='\"md/_winnt.cfg\"'
1843 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
1844 HOST_BIN_SUFFIX=.exe
1847 dnl MinGW/MSYS does not need CYGWIN_WRAPPER
1848 PERL="/bin/sh ${_topsrcdir}/build/msys-perl-wrapper"
1851 CYGWIN_WRAPPER="${srcdir}/build/cygwin-wrapper"
1852 if test "`echo ${srcdir} | grep -c ^/ 2>/dev/null`" = 0; then
1854 CYGWIN_WRAPPER="${_pwd}/${srcdir}/build/cygwin-wrapper"
1856 if test "`${PERL} -v | grep -c cygwin 2>/dev/null`" = 0; then
1858 PERL="${CYGWIN_WRAPPER} $PERL"
1861 if test "`${PYTHON} -c 'import sys; print sys.platform;'`" != "cygwin"; then
1862 PYTHON="${CYGWIN_WRAPPER} $PYTHON"
1867 case "${host_cpu}" in
1869 HOST_CFLAGS="$HOST_CFLAGS -D_AMD64_"
1875 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX -DXP_MACOSX -DNO_X11"
1876 HOST_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
1877 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
1880 *-linux*|*-kfreebsd*-gnu|*-gnu*)
1881 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
1882 HOST_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
1883 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
1887 HOST_CFLAGS="$HOST_CFLAGS -DXP_OS2 -DNO_X11 -Zomf"
1888 HOST_NSPR_MDCPUCFG='\"md/_os2.cfg\"'
1889 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
1890 HOST_BIN_SUFFIX=.exe
1895 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
1896 HOST_NSPR_MDCPUCFG='\"md/_osf1.cfg\"'
1897 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
1901 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
1902 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
1906 dnl We require version 2.4 or newer of Python to build,
1907 dnl and 2.5 or newer on Windows.
1908 AC_MSG_CHECKING([for minimum required Python version >= $PYTHON_VERSION])
1910 $PYTHON -c "import sys; sys.exit(sys.version[:3] < sys.argv[1])" $PYTHON_VERSION
1913 if test "$_python_res" != 0; then
1914 AC_MSG_ERROR([Python $PYTHON_VERSION or higher is required.])
1916 AC_MSG_RESULT([yes])
1918 dnl Get mozilla version from central milestone file
1919 MOZILLA_VERSION=`$PERL $srcdir/config/milestone.pl -topsrcdir $srcdir`
1921 dnl Get version of various core apps from the version files.
1922 FIREFOX_VERSION=`cat $topsrcdir/browser/config/version.txt`
1924 AC_DEFINE_UNQUOTED(MOZILLA_VERSION,"$MOZILLA_VERSION")
1925 AC_DEFINE_UNQUOTED(MOZILLA_VERSION_U,$MOZILLA_VERSION)
1927 dnl ========================================================
1928 dnl System overrides of the defaults for target
1929 dnl ========================================================
1934 if test ! "$GNU_CC"; then
1935 if test ! "$HAVE_64BIT_OS"; then
1936 # Compiling with Visual Age C++ object model compat is the
1937 # default. To compile with object model ibm, add
1938 # AIX_OBJMODEL=ibm to .mozconfig.
1939 if test "$AIX_OBJMODEL" = "ibm"; then
1940 CXXFLAGS="$CXXFLAGS -qobjmodel=ibm"
1947 AC_SUBST(AIX_OBJMODEL)
1948 DSO_LDOPTS='-qmkshrobj=1'
1949 DSO_CFLAGS='-qflag=w:w'
1951 LDFLAGS="$LDFLAGS -Wl,-brtl -blibpath:/usr/lib:/lib"
1952 AC_MSG_WARN([Clearing MOZ_FIX_LINK_PATHS till we can fix bug 332075.])
1954 MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@'
1955 MKCSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
1956 if test "$COMPILE_ENVIRONMENT"; then
1959 AC_MSG_CHECKING([for VisualAge C++ compiler version >= 6.0.0.3])
1961 [#if (__IBMCPP__ < 600)
1962 #error "Bad compiler"
1964 _BAD_COMPILER=,_BAD_COMPILER=1)
1965 if test -n "$_BAD_COMPILER"; then
1967 AC_MSG_ERROR([VisualAge C++ version 6.0.0.3 or higher is required to build.])
1969 AC_MSG_RESULT([yes])
1972 TARGET_COMPILER_ABI="ibmc"
1973 CC_VERSION=`lslpp -Lcq vac.C 2>/dev/null | awk -F: '{ print $3 }'`
1974 CXX_VERSION=`lslpp -Lcq vacpp.cmp.core 2>/dev/null | awk -F: '{ print $3 }'`
1977 case "${target_os}" in
1982 if test "$COMPILE_ENVIRONMENT"; then
1983 AC_CHECK_HEADERS(sys/inttypes.h)
1985 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
1990 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@'
1991 _PLATFORM_DEFAULT_TOOLKIT="cairo-beos"
1992 DSO_LDOPTS='-nostart'
1993 TK_LIBS='-lbe -lroot'
1995 if test "$COMPILE_ENVIRONMENT"; then
1996 AC_CHECK_LIB(bind,main,LIBS="$LIBS -lbind")
1997 AC_CHECK_LIB(zeta,main,LIBS="$LIBS -lzeta")
1999 _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-multichar"
2000 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-multichar"
2003 MOZ_USER_DIR="Mozilla"
2007 dnl -pedantic doesn't play well with BSDI's _very_ modified gcc (shlicc2)
2016 _WARNINGS_CFLAGS="-Wall"
2017 _WARNINGS_CXXFLAGS="-Wall"
2018 # The test above doesn't work properly, at least on 3.1.
2019 MKSHLIB_FORCE_ALL=''
2020 MKSHLIB_UNFORCE_ALL=''
2026 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
2027 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
2028 MOZ_OPTIMIZE_FLAGS="-O3"
2030 CFLAGS="$CFLAGS -fpascal-strings -fno-common"
2031 CXXFLAGS="$CXXFLAGS -fpascal-strings -fno-common"
2034 STRIP="$STRIP -x -S"
2035 _PLATFORM_DEFAULT_TOOLKIT='cairo-cocoa'
2036 TARGET_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
2037 # The ExceptionHandling framework is needed for Objective-C exception
2038 # logging code in nsObjCExceptions.h. Currently we only use that in debug
2040 MOZ_DEBUG_LDFLAGS="$MOZ_DEBUG_LDFLAGS -framework ExceptionHandling"
2042 dnl DTrace and -dead_strip don't interact well. See bug 403132.
2043 dnl ===================================================================
2044 if test "x$enable_dtrace" = "xyes"; then
2045 echo "Skipping -dead_strip because DTrace is enabled. See bug 403132."
2047 dnl check for the presence of the -dead_strip linker flag
2048 AC_MSG_CHECKING([for -dead_strip option to ld])
2049 _SAVE_LDFLAGS=$LDFLAGS
2050 LDFLAGS="$LDFLAGS -Wl,-dead_strip"
2051 AC_TRY_LINK(,[return 0;],_HAVE_DEAD_STRIP=1,_HAVE_DEAD_STRIP=)
2052 if test -n "$_HAVE_DEAD_STRIP" ; then
2053 AC_MSG_RESULT([yes])
2054 MOZ_OPTIMIZE_LDFLAGS="-Wl,-dead_strip"
2059 LDFLAGS=$_SAVE_LDFLAGS
2061 MOZ_FIX_LINK_PATHS='-Wl,-executable_path,$(LIBXUL_DIST)/bin'
2065 if test `test -x /usr/bin/objformat && /usr/bin/objformat || echo elf` != "elf"; then
2066 DLL_SUFFIX=".so.1.0"
2067 DSO_LDOPTS="-shared"
2069 if test ! "$GNU_CC"; then
2070 DSO_LDOPTS="-Bshareable $DSO_LDOPTS"
2076 if test ! "$GNU_CC"; then
2080 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -o $@'
2081 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_LDOPTS) -o $@'
2082 CXXFLAGS="$CXXFLAGS -Wc,-ansi_for_scope,on"
2085 MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
2086 MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
2090 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2091 AC_DEFINE(_LARGEFILE64_SOURCE)
2096 if test ! "$GNU_CC"; then
2097 DSO_LDOPTS='-b -Wl,+s'
2100 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -o $@'
2101 MKCSHLIB='$(LD) -b +s -L$(LIBXUL_DIST)/bin -o $@'
2102 CXXFLAGS="$CXXFLAGS -Wc,-ansi_for_scope,on"
2104 DSO_LDOPTS='-b -E +s'
2105 MKSHLIB='$(LD) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -L$(LIBXUL_DIST)/lib -o $@'
2106 MKCSHLIB='$(LD) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -L$(LIBXUL_DIST)/lib -o $@'
2108 MOZ_POST_PROGRAM_COMMAND='chatr +s enable'
2109 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2114 DSO_LDOPTS='-elf -shared'
2116 if test "$GNU_CC"; then
2117 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
2118 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
2119 MKSHLIB_FORCE_ALL='-Wl,-all'
2120 MKSHLIB_UNFORCE_ALL='-Wl,-none'
2121 CXXFLAGS="$CXXFLAGS -D_LANGUAGE_C_PLUS_PLUS"
2123 MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
2124 MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
2125 MKSHLIB_FORCE_ALL='-all'
2126 MKSHLIB_UNFORCE_ALL='-none'
2132 dnl the irix specific xptcinvoke code is written against the n32 ABI so we *must*
2133 dnl compile and link using -n32
2135 TARGET_COMPILER_ABI=n32
2136 DSO_LDOPTS='-elf -shared'
2137 MKSHLIB='$(CCC) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
2138 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
2139 _MOZ_EXCEPTIONS_FLAGS_OFF="-LANG:exceptions=OFF"
2140 _MOZ_EXCEPTIONS_FLAGS_ON="-LANG:exceptions=ON"
2141 if test "$GNU_CC"; then
2142 MKSHLIB_FORCE_ALL='-Wl,-all'
2143 MKSHLIB_UNFORCE_ALL='-Wl,-none'
2144 _WARNINGS_CFLAGS="-Wall"
2145 _WARNINGS_CXXFLAGS="-Wall"
2146 CXXFLAGS="$CXXFLAGS -D_LANGUAGE_C_PLUS_PLUS"
2148 MKSHLIB_FORCE_ALL='-all'
2149 MKSHLIB_UNFORCE_ALL='-none'
2155 CFLAGS="$CFLAGS -woff 3262 -G 4"
2156 CXXFLAGS="$CXXFLAGS -woff 3262 -G 4"
2157 if test -n "$USE_N32"; then
2158 ASFLAGS="$ASFLAGS -n32"
2159 CFLAGS="$CFLAGS -n32"
2160 CXXFLAGS="$CXXFLAGS -n32"
2161 LDFLAGS="$LDFLAGS -n32"
2163 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2164 AC_MSG_WARN([Clearing MOZ_FIX_LINK_PATHS for OSF/1 as fix for bug 333545 (till the reference bug 332075 is fixed.])
2167 if test -z "$GNU_CXX"; then
2173 # Note: both GNU_CC and INTEL_CC are set when using Intel's C compiler.
2174 # Similarly for GNU_CXX and INTEL_CXX.
2175 if test "$INTEL_CC" -o "$INTEL_CXX"; then
2176 # -Os has been broken on Intel's C/C++ compilers for quite a
2177 # while; Intel recommends against using it.
2178 MOZ_OPTIMIZE_FLAGS="-O2"
2179 MOZ_DEBUG_FLAGS="-g"
2180 elif test "$GNU_CC" -o "$GNU_CXX"; then
2181 GCC_VERSION=`$CC -v 2>&1 | awk '/^gcc version/ { print $3 }'`
2182 case $GCC_VERSION in
2184 # -Os is broken on gcc 4.1.x 4.2.x, 4.5.x we need to tweak it to get good results.
2185 MOZ_OPTIMIZE_SIZE_TWEAK="-finline-limit=50"
2187 MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks -fomit-frame-pointer $MOZ_OPTIMIZE_SIZE_TWEAK"
2188 MOZ_DEBUG_FLAGS="-g"
2191 TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
2195 case "${target_cpu}" in
2197 CFLAGS="$CFLAGS -mieee"
2198 CXXFLAGS="$CXXFLAGS -mieee"
2204 MOZ_DEBUG_FLAGS="-g" # We want inlining
2210 TARGET_COMPILER_ABI=msvc
2211 _PLATFORM_DEFAULT_TOOLKIT=cairo-windows
2212 MOZ_TOOLS_DIR=`cd $MOZ_TOOLS && pwd -W`
2213 MOZ_BUILD_ROOT=`cd $MOZ_BUILD_ROOT && pwd -W`
2215 AR_EXTRACT="$AR -extract"
2217 AR_FLAGS='-OUT:"$@"'
2221 ac_configure_args="$ac_configure_args --enable-win32-target=WINCE"
2223 if test "$AS_BIN"; then
2230 if test -z "$RC"; then
2233 # certain versions of cygwin's makedepend barf on the
2234 # #include <string> vs -I./dist/include/string issue so don't use it
2240 HOST_AR='lib -OUT:$@'
2241 HOST_RANLIB='echo ranlib'
2242 HOST_CFLAGS="$HOST_CFLAGS -D_X86_"
2245 WARNINGS_AS_ERRORS='-WX'
2246 MOZ_OPTIMIZE_FLAGS='-Ox'
2247 AR_FLAGS='-NOLOGO -OUT:"$@"'
2249 CFLAGS="$CFLAGS -W3 -Gy -Fd\$(COMPILE_PDBFILE)"
2250 CXXFLAGS="$CXXFLAGS -W3 -Gy -Fd\$(COMPILE_PDBFILE)"
2253 DSO_LDOPTS=-SUBSYSTEM:WINDOWSCE
2254 DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcom_core.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
2256 IMPORT_LIB_SUFFIX=lib
2257 dnl Need to force-link against mozalloc because it's used in the shunt
2258 LIBS="$LIBS \$(LIBXUL_DIST)/lib/mozalloc.lib"
2259 LIBXUL_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
2262 MKCSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ $(DSO_LDOPTS)'
2263 MKSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ $(DSO_LDOPTS)'
2265 MKSHLIB_UNFORCE_ALL=
2266 MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
2267 MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
2268 MOZ_DEBUG_FLAGS='-Zi'
2269 MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV'
2271 MOZ_JS_LIBS='$(LIBXUL_DIST)/lib/mozjs.lib'
2273 RANLIB='echo not_ranlib'
2274 STRIP='echo not_strip'
2275 TARGET_NSPR_MDCPUCFG='\"md/_wince.cfg\"'
2278 XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
2282 AC_DEFINE(HAVE_SNPRINTF)
2287 AC_DEFINE(HW_THREADS)
2288 AC_DEFINE(STDC_HEADERS)
2289 AC_DEFINE(NEW_H, <new>)
2290 AC_DEFINE(WIN32_LEAN_AND_MEAN)
2291 AC_DEFINE(HAVE_LOCALTIME_R)
2293 TARGET_MD_ARCH=win32
2294 _PLATFORM_DEFAULT_TOOLKIT='cairo-windows'
2296 MOZ_USER_DIR="Mozilla"
2298 MOZ_GFX_OPTIMIZE_MOBILE=1
2300 # Sanity check for WINCE_WINDOWS_MOBILE
2301 # XXX disabled until we can fix the mobile tinderbox
2302 ##if test "$WINCE_WINDOWS_MOBILE"; then
2303 ## AC_CHECK_HEADER(tpcshell.h, [],
2304 ## AC_MSG_ERROR([Can't find tpcshell.h in your SDK; are you sure you don't need --disable-windows-mobile-components?]))
2309 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
2314 # certain versions of cygwin's makedepend barf on the
2315 # #include <string> vs -I./dist/include/string issue so don't use it
2317 if test -n "$GNU_CC"; then
2318 CC="$CC -mno-cygwin"
2319 CXX="$CXX -mno-cygwin"
2320 CPP="$CPP -mno-cygwin"
2321 CFLAGS="$CFLAGS -mms-bitfields"
2322 CXXFLAGS="$CXXFLAGS -mms-bitfields"
2323 DSO_LDOPTS='-shared'
2324 MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@'
2325 MKCSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
2327 # Use temp file for windres (bug 213281)
2328 RCFLAGS='-O coff --use-temp-file'
2329 # mingw doesn't require kernel32, user32, and advapi32 explicitly
2330 LIBS="$LIBS -luuid -lgdi32 -lwinmm -lwsock32"
2331 MOZ_JS_LIBS='-L$(LIBXUL_DIST)/lib -lmozjs'
2333 DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/lib -lxpcom -lxpcom_core -lmozalloc'
2334 XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/lib -lxpcom -lmozalloc'
2336 IMPORT_LIB_SUFFIX=dll.a
2337 GCC_VERSION=`$CC -v 2>&1 | awk '/^gcc version/ { print $3 }'`
2339 TARGET_COMPILER_ABI=msvc
2343 if test "$AS_BIN"; then
2344 AS="$(basename "$AS_BIN")"
2346 AR='lib -NOLOGO -OUT:"$@"'
2348 RANLIB='echo not_ranlib'
2349 STRIP='echo not_strip'
2354 GARBAGE='$(OBJDIR)/vc20.pdb $(OBJDIR)/vc40.pdb'
2360 IMPORT_LIB_SUFFIX=lib
2361 MKSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ -PDB:$(LINK_PDBFILE) $(DSO_LDOPTS)'
2362 MKCSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ -PDB:$(LINK_PDBFILE) $(DSO_LDOPTS)'
2364 MKSHLIB_UNFORCE_ALL=
2365 DSO_LDOPTS=-SUBSYSTEM:WINDOWS
2366 _USE_CPP_INCLUDE_FLAG=1
2367 _DEFINES_CFLAGS='-FI $(DEPTH)/dist/include/mozilla-config.h -DMOZILLA_CLIENT'
2368 _DEFINES_CXXFLAGS='-FI $(DEPTH)/dist/include/mozilla-config.h -DMOZILLA_CLIENT'
2369 CFLAGS="$CFLAGS -W3 -Gy -Fd\$(COMPILE_PDBFILE)"
2370 CXXFLAGS="$CXXFLAGS -W3 -Gy -Fd\$(COMPILE_PDBFILE)"
2371 CXXFLAGS="$CXXFLAGS -wd4800" # disable warning "forcing value to bool"
2372 LIBS="$LIBS kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib"
2373 MOZ_DEBUG_FLAGS='-Zi'
2374 MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV'
2375 WARNINGS_AS_ERRORS='-WX'
2376 MOZ_OPTIMIZE_FLAGS='-O1'
2377 MOZ_JS_LIBS='$(LIBXUL_DIST)/lib/mozjs.lib'
2379 DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcom_core.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
2380 XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
2381 LIBXUL_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
2382 MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
2383 if test $_MSC_VER -ge 1400; then
2384 LDFLAGS="$LDFLAGS -NXCOMPAT"
2385 dnl For profile-guided optimization
2386 PROFILE_GEN_CFLAGS="-GL"
2387 PROFILE_GEN_LDFLAGS="-LTCG:PGINSTRUMENT"
2388 dnl XXX: PGO builds can fail with warnings treated as errors,
2389 dnl specifically "no profile data available" appears to be
2390 dnl treated as an error sometimes. This might be a consequence
2391 dnl of using WARNINGS_AS_ERRORS in some modules, combined
2392 dnl with the linker doing most of the work in the whole-program
2393 dnl optimization/PGO case. I think it's probably a compiler bug,
2394 dnl but we work around it here.
2395 PROFILE_USE_CFLAGS="-GL -wd4624 -wd4952"
2396 dnl XXX: should be -LTCG:PGOPTIMIZE, but that fails on libxul.
2397 dnl Probably also a compiler bug, but what can you do?
2398 PROFILE_USE_LDFLAGS="-LTCG:PGUPDATE"
2399 if test -n "$_USE_DYNAMICBASE"; then
2400 LDFLAGS="$LDFLAGS -DYNAMICBASE"
2404 MOZ_JPEG_LIBS='$(call EXPAND_LIBNAME_PATH,jpeg32$(VERSION_NUMBER),$(DEPTH)/jpeg)'
2405 MOZ_PNG_LIBS='$(call EXPAND_LIBNAME_PATH,png,$(DEPTH)/modules/libimg/png)'
2406 AC_DEFINE(HAVE_SNPRINTF)
2411 AC_DEFINE(HW_THREADS)
2412 AC_DEFINE(STDC_HEADERS)
2413 AC_DEFINE(NEW_H, <new>)
2414 AC_DEFINE(WIN32_LEAN_AND_MEAN)
2415 TARGET_MD_ARCH=win32
2416 _PLATFORM_DEFAULT_TOOLKIT='cairo-windows'
2418 MOZ_USER_DIR="Mozilla"
2420 dnl Hardcode to win95 for now - cls
2421 TARGET_NSPR_MDCPUCFG='\"md/_win95.cfg\"'
2423 dnl set NO_X11 defines here as the general check is skipped on win32
2427 dnl MinGW/MSYS doesn't provide or need cygpath
2432 MOZ_BUILD_ROOT=`cd $MOZ_BUILD_ROOT && pwd -W`
2434 *-cygwin*|*-msvc*|*-mks*)
2435 CYGPATH_W="cygpath -a -w"
2436 CYGPATH_S="sed -e s|\\\\|/|g"
2437 MOZ_BUILD_ROOT=`$CYGPATH_W $MOZ_BUILD_ROOT | $CYGPATH_S`
2441 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
2443 if test -z "$MOZ_TOOLS"; then
2444 AC_MSG_ERROR([MOZ_TOOLS is not set])
2447 MOZ_TOOLS_DIR=`cd $MOZ_TOOLS && pwd -W`
2448 if test "$?" != "0" -o -z "$MOZ_TOOLS_DIR"; then
2449 AC_MSG_ERROR([cd \$MOZ_TOOLS failed. MOZ_TOOLS ==? $MOZ_TOOLS])
2451 MOZ_TOOLS_BIN_DIR="$(cd "$MOZ_TOOLS_DIR/bin" && pwd)"
2452 if test `echo ${PATH}: | grep -ic "$MOZ_TOOLS_BINDIR:"` = 0; then
2453 AC_MSG_ERROR([\$MOZ_TOOLS\\bin must be in your path.])
2455 MOZ_TOOLS_DIR=`$CYGPATH_W $MOZ_TOOLS_DIR | $CYGPATH_S`
2462 AC_MSG_WARN([Using a cygwin build environment is unsupported. Configure cannot check for the presence of necessary headers. Please upgrade to MozillaBuild; see http://developer.mozilla.org/en/docs/Windows_Build_Prerequisites])
2466 AC_CHECK_HEADERS(oleacc.idl)
2470 AC_CHECK_HEADERS(atlbase.h)
2477 if test "$HAVE_64BIT_OS"; then
2478 AC_MSG_ERROR([You are targeting i386 but using the 64-bit compiler.])
2481 if test $_MSC_VER -ge 1400; then
2482 LDFLAGS="$LDFLAGS -SAFESEH"
2484 AC_CHECK_HEADERS(mmintrin.h)
2497 AC_DEFINE(_CPU_ARCH_NOT_DEFINED)
2501 if test "$HAVE_64BIT_OS"; then
2508 CFLAGS="$CFLAGS -Dunix"
2509 CXXFLAGS="$CXXFLAGS -Dunix"
2510 if $CC -E - -dM </dev/null | grep __ELF__ >/dev/null; then
2512 DSO_PIC_CFLAGS='-fPIC -DPIC'
2513 DSO_LDOPTS='-shared'
2514 BIN_FLAGS='-Wl,--export-dynamic'
2516 DSO_PIC_CFLAGS='-fPIC -DPIC'
2517 DLL_SUFFIX=".so.1.0"
2518 DSO_LDOPTS='-shared'
2520 # This will fail on a.out systems prior to 1.5.1_ALPHA.
2521 MKSHLIB_FORCE_ALL='-Wl,--whole-archive'
2522 MKSHLIB_UNFORCE_ALL='-Wl,--no-whole-archive'
2523 if test "$LIBRUNPATH"; then
2524 DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS"
2526 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX) -o $@'
2527 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX) -o $@'
2532 AC_DEFINE(_QNX_SOURCE)
2535 WARNINGS_AS_ERRORS=''
2536 MOZ_OPTIMIZE_FLAGS="-O"
2537 MOZ_DEBUG_FLAGS="-gstabs"
2540 LIBS="$LIBS -lsocket -lstdc++"
2541 _DEFINES_CFLAGS='-include $(DEPTH)/mozilla-config.h -DMOZILLA_CLIENT -D_POSIX_C_SOURCE=199506'
2542 _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -include $(DEPTH)/mozilla-config.h -D_POSIX_C_SOURCE=199506'
2543 if test "$with_x" != "yes"
2545 _PLATFORM_DEFAULT_TOOLKIT="photon"
2546 TK_CFLAGS='-I/usr/include/photon'
2549 case "${target_cpu}" in
2551 AC_DEFINE(HAVE_VA_LIST_AS_ARRAY)
2554 case "${host_cpu}" in
2562 DLL_SUFFIX=".so.1.0"
2564 DSO_PIC_CFLAGS='-fPIC'
2565 DSO_LDOPTS='-shared -fPIC'
2566 if test "$LIBRUNPATH"; then
2567 DSO_LDOPTS="-R$LIBRUNPATH $DSO_LDOPTS"
2572 AC_DEFINE(NO_PW_GECOS)
2573 AC_DEFINE(NO_UDSOCK)
2574 AC_DEFINE(POLL_WITH_XCONNECTIONNUMBER)
2576 MKSHLIB_FORCE_ALL='-all'
2577 MKSHLIB_UNFORCE_ALL='-none'
2579 AS_DASH_C_FLAG='-Wc/names=as_is'
2581 DSO_LDOPTS='-shared -auto_symvec'
2583 MOZ_DEBUG_LDFLAGS='-g'
2585 CC_VERSION=`$CC -V 2>&1 | awk '/ C / { print $3 }'`
2586 CXX_VERSION=`$CXX -V 2>&1 | awk '/ C\+\+ / { print $3 }'`
2591 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
2592 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
2595 AC_DEFINE(OS2EMX_PLAIN_CHAR)
2596 AC_DEFINE(TCPV40HDRS)
2602 IMPORT_LIB_SUFFIX=lib
2606 CFLAGS="$CFLAGS -Zomf"
2607 CXXFLAGS="$CXXFLAGS -Zomf"
2609 BIN_FLAGS='-Zlinker /ST:0x100000'
2613 WARNINGS_AS_ERRORS='-Werror'
2614 MOZ_DEBUG_FLAGS="-g -fno-inline"
2615 MOZ_OPTIMIZE_FLAGS="-O2"
2616 MOZ_OPTIMIZE_LDFLAGS="-s -Zlinker /EXEPACK:2 -Zlinker /PACKCODE -Zlinker /PACKDATA"
2617 DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/lib $(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcom_core.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
2618 LIBXUL_LIBS='-L$(LIBXUL_DIST)/lib $(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
2620 _PLATFORM_DEFAULT_TOOLKIT="cairo-os2"
2623 MOZ_USER_DIR="Mozilla"
2625 if test "$MOZTOOLS"; then
2626 MOZ_TOOLS_DIR=`echo $MOZTOOLS | sed -e 's|\\\\|/|g'`
2628 AC_MSG_ERROR([MOZTOOLS is not set])
2630 if test -n "$MOZ_OS2_HIGH_MEMORY"; then
2631 DSO_LDOPTS="$DSO_LDOPTS -Zhigh-mem"
2632 LDFLAGS="$LDFLAGS -Zhigh-mem"
2633 MOZ_OPTIMIZE_LDFLAGS="$MOZ_OPTIMIZE_LDFLAGS -Zhigh-mem"
2634 AC_DEFINE(MOZ_OS2_HIGH_MEMORY)
2637 # GCC for OS/2 currently predefines these, but we don't want them
2638 _DEFINES_CFLAGS="$_DEFINES_CFLAGS -Uunix -U__unix -U__unix__"
2639 _DEFINES_CXXFLAGS="$_DEFINES_CXXFLAGS -Uunix -U__unix -U__unix__"
2641 AC_CACHE_CHECK(for __declspec(dllexport),
2643 [AC_TRY_COMPILE([__declspec(dllexport) void ac_os2_declspec(void) {}],
2645 ac_os2_declspec="yes",
2646 ac_os2_declspec="no")])
2647 if test "$ac_os2_declspec" = "yes"; then
2649 MOZ_OS2_USE_DECLSPEC='1'
2654 if test "$GNU_CC"; then
2655 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$@ -o $@'
2656 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$@ -o $@'
2659 MOZ_DEBUG_FLAGS='-g'
2660 ASFLAGS='-I$(topsrcdir)/xpcom/reflect/xptcall/public -g'
2661 CFLAGS="$CFLAGS -ieee"
2662 CXXFLAGS="$CXXFLAGS "'-noexceptions -ieee -ptr $(DIST)/cxx_repository'
2663 DSO_LDOPTS='-shared -msym -expect_unresolved \* -update_registry $(DIST)/so_locations'
2666 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -soname $@ -o $@'
2667 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -soname $@ -o $@'
2668 MKSHLIB_FORCE_ALL='-all'
2669 MKSHLIB_UNFORCE_ALL='-none'
2670 dnl Might fix the libxpcom.so breakage on this platform as well....
2671 AC_DEFINE(NSCAP_DISABLE_TEST_DONTQUERY_CASES)
2672 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2674 if test -z "$GNU_CXX"; then
2677 AC_DEFINE(NEED_USLEEP_PROTOTYPE)
2681 DIRENT_INO=d_stat.st_ino
2682 dnl Solves the problems the QNX compiler has with nsCOMPtr.h.
2683 AC_DEFINE(NSCAP_DISABLE_TEST_DONTQUERY_CASES)
2684 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2685 dnl Explicit set STDC_HEADERS to workaround QNX 6.0's failing of std test
2686 AC_DEFINE(STDC_HEADERS)
2687 if test "$no_x" = "yes"; then
2688 _PLATFORM_DEFAULT_TOOLKIT='photon'
2689 TK_CFLAGS='-I/usr/nto/include/photon'
2690 TK_LIBS='-lphoton -lphrender'
2695 AC_DEFINE(NSCAP_DISABLE_TEST_DONTQUERY_CASES)
2696 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2697 CXXFLAGS="$CXXFLAGS -I/usr/include/CC"
2698 if test ! "$GNU_CC"; then
2705 TARGET_NSPR_MDCPUCFG='\"md/_solaris.cfg\"'
2708 # $ORIGIN/.. is for shared libraries under components/ to locate shared
2709 # libraries one level up (e.g. libnspr4.so)
2710 if test "$SOLARIS_SUNPRO_CC"; then
2711 LDFLAGS="$LDFLAGS -z ignore -R '\$\$ORIGIN:\$\$ORIGIN/..' -z lazyload -z combreloc -z muldefs"
2712 LIBS="-lCrun -lCstd -lc $LIBS"
2714 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2715 CFLAGS="$CFLAGS -xlibmieee -xstrconst -xbuiltin=%all -D__FUNCTION__=__func__"
2716 CXXFLAGS="$CXXFLAGS -xlibmieee -xbuiltin=%all -features=tmplife,tmplrefstatic,extensions -norunpath -D__FUNCTION__=__func__ -template=no%extdef"
2717 _MOZ_EXCEPTIONS_FLAGS_ON='-features=except'
2718 _MOZ_EXCEPTIONS_FLAGS_OFF='-features=no%except'
2719 LDFLAGS="-xildoff $LDFLAGS"
2720 if test -z "$CROSS_COMPILE" -a -f /usr/lib/ld/map.noexstk; then
2721 _SAVE_LDFLAGS=$LDFLAGS
2722 LDFLAGS="-M /usr/lib/ld/map.noexstk $LDFLAGS"
2723 AC_TRY_LINK([#include <stdio.h>],
2724 [printf("Hello World\n");],
2726 [LDFLAGS=$_SAVE_LDFLAGS])
2728 WARNINGS_AS_ERRORS='-Werror'
2729 MOZ_OPTIMIZE_FLAGS="-xO4"
2730 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_FLAGS) $(DSO_LDOPTS) -h $@ -o $@'
2731 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_FLAGS) $(DSO_LDOPTS) -h $@ -o $@'
2732 MKSHLIB_FORCE_ALL='-z allextract'
2733 MKSHLIB_UNFORCE_ALL='-z defaultextract'
2740 AS='/usr/ccs/bin/as'
2741 ASFLAGS="$ASFLAGS -K PIC -L -P -D_ASM -D__STDC__=0"
2743 TARGET_COMPILER_ABI="sunc"
2744 CC_VERSION=`$CC -V 2>&1 | grep '^cc:' 2>/dev/null | $AWK -F\: '{ print $2 }'`
2745 CXX_VERSION=`$CXX -V 2>&1 | grep '^CC:' 2>/dev/null | $AWK -F\: '{ print $2 }'`
2746 AC_MSG_CHECKING([for Sun C++ compiler version >= 5.9])
2750 [#if (__SUNPRO_CC < 0x590)
2753 _BAD_COMPILER=,_BAD_COMPILER=1)
2754 if test -n "$_BAD_COMPILER"; then
2756 AC_MSG_ERROR([Sun C++ 5.9 (Sun Studio 12) or higher is required to build. Your compiler version is $CXX_VERSION .])
2761 [#if (__SUNPRO_CC >= 0x5100)
2762 #error "Sun C++ 5.10 or above"
2764 _ABOVE_SS12U1=,_ABOVE_SS12U1=1)
2765 if test "$_ABOVE_SS12U1"; then
2767 CXXFLAGS="$CXXFLAGS -xannotate=no"
2769 AC_MSG_RESULT([$_res])
2772 LDFLAGS="$LDFLAGS -Wl,-z,ignore -Wl,-R,'\$\$ORIGIN:\$\$ORIGIN/..' -Wl,-z,lazyload -Wl,-z,combreloc -Wl,-z,muldefs"
2774 MKSHLIB_FORCE_ALL='-Wl,-z -Wl,allextract'
2775 MKSHLIB_UNFORCE_ALL='-Wl,-z -Wl,defaultextract'
2776 ASFLAGS="$ASFLAGS -fPIC"
2777 DSO_LDOPTS='-shared'
2779 _WARNINGS_CXXFLAGS=''
2780 if test "$OS_RELEASE" = "5.3"; then
2781 AC_DEFINE(MUST_UNDEF_HAVE_BOOLEAN_AFTER_INCLUDES)
2784 if test "$OS_RELEASE" = "5.5.1"; then
2785 AC_DEFINE(NEED_USLEEP_PROTOTYPE)
2790 DSO_LDOPTS='-Bdynamic'
2791 MKSHLIB='-$(LD) $(DSO_LDOPTS) -o $@'
2792 MKCSHLIB='-$(LD) $(DSO_LDOPTS) -o $@'
2794 AC_DEFINE(SPRINTF_RETURNS_STRING)
2795 case "$(target_os)" in
2797 DLL_SUFFIX='.so.1.0'
2803 NSPR_LIBS="-lnspr$NSPR_VERSION -lplc$NSPR_VERSION -lplds$NSPR_VERSION -L/usr/ccs/lib -lcrt"
2807 HOST_NSPR_MDCPUCFG='\"md/_os2.cfg\"'
2811 AC_DEFINE(NO_PW_GECOS)
2813 _PLATFORM_DEFAULT_TOOLKIT=cairo-android
2814 TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
2816 MOZ_GFX_OPTIMIZE_MOBILE=1
2817 MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks -fno-reorder-functions -fomit-frame-pointer"
2822 dnl Only one oddball right now (QNX), but this gives us flexibility
2823 dnl if any other platforms need to override this in the future.
2824 AC_DEFINE_UNQUOTED(D_INO,$DIRENT_INO)
2826 dnl ========================================================
2827 dnl Any platform that doesn't have MKSHLIB_FORCE_ALL defined
2828 dnl by now will not have any way to link most binaries (tests
2829 dnl as well as viewer, apprunner, etc.), because some symbols
2830 dnl will be left out of the "composite" .so's by ld as unneeded.
2831 dnl So, by defining NO_LD_ARCHIVE_FLAGS for these platforms,
2832 dnl they can link in the static libs that provide the missing
2834 dnl ========================================================
2835 NO_LD_ARCHIVE_FLAGS=
2836 if test -z "$MKSHLIB_FORCE_ALL" -o -z "$MKSHLIB_UNFORCE_ALL"; then
2837 NO_LD_ARCHIVE_FLAGS=1
2841 NO_LD_ARCHIVE_FLAGS=
2844 NO_LD_ARCHIVE_FLAGS=
2847 NO_LD_ARCHIVE_FLAGS=
2849 *-msvc*|*-mks*|*-mingw*|*-cygwin*|*-wince|*-winmo)
2850 if test -z "$GNU_CC"; then
2851 NO_LD_ARCHIVE_FLAGS=
2855 AC_SUBST(NO_LD_ARCHIVE_FLAGS)
2857 dnl ========================================================
2858 dnl = Flags to strip unused symbols from .so components
2859 dnl ========================================================
2861 *-linux*|*-kfreebsd*-gnu|*-gnu*)
2862 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
2865 if test -z "$GNU_CC"; then
2866 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-M $(BUILD_TOOLS)/gnu-ld-scripts/components-mapfile'
2868 if test -z "$GCC_USE_GNU_LD"; then
2869 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,-M -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-mapfile'
2871 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
2876 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
2879 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,-exported_symbols_list -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-export-list'
2881 *-cygwin*|*-mingw*|*-mks*|*-msvc|*-wince|*-winmo)
2882 if test -n "$GNU_CC"; then
2883 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
2888 if test -z "$COMPILE_ENVIRONMENT"; then
2889 SKIP_COMPILER_CHECKS=1
2890 SKIP_LIBRARY_CHECKS=1
2893 if test -z "$SKIP_COMPILER_CHECKS"; then
2894 dnl Checks for typedefs, structures, and compiler characteristics.
2895 dnl ========================================================
2903 AC_MSG_CHECKING(for __stdcall)
2904 AC_CACHE_VAL(ac_cv___stdcall,
2905 [AC_TRY_COMPILE([template <typename Method> struct foo;
2906 template <> struct foo<void (*)()> {};
2907 template <> struct foo<void (__stdcall*)()> {};],
2909 [ac_cv___stdcall=true],
2910 [ac_cv___stdcall=false])])
2911 if test "$ac_cv___stdcall" = true ; then
2912 AC_DEFINE(HAVE_STDCALL)
2918 AC_MSG_CHECKING(for ssize_t)
2919 AC_CACHE_VAL(ac_cv_type_ssize_t,
2920 [AC_TRY_COMPILE([#include <stdio.h>
2921 #include <sys/types.h>],
2923 [ac_cv_type_ssize_t=true],
2924 [ac_cv_type_ssize_t=false])])
2925 if test "$ac_cv_type_ssize_t" = true ; then
2926 AC_DEFINE(HAVE_SSIZE_T)
2931 AC_STRUCT_ST_BLKSIZE
2932 AC_MSG_CHECKING(for siginfo_t)
2933 AC_CACHE_VAL(ac_cv_siginfo_t,
2934 [AC_TRY_COMPILE([#define _POSIX_C_SOURCE 199506L
2935 #include <signal.h>],
2937 [ac_cv_siginfo_t=true],
2938 [ac_cv_siginfo_t=false])])
2939 if test "$ac_cv_siginfo_t" = true ; then
2940 AC_DEFINE(HAVE_SIGINFO_T)
2946 dnl Check for int16_t, int32_t, int64_t, int64, uint, uint_t, and uint16_t.
2947 dnl ========================================================
2948 AC_MSG_CHECKING(for int16_t)
2949 AC_CACHE_VAL(ac_cv_int16_t,
2950 [AC_TRY_COMPILE([#include <stdio.h>
2951 #include <sys/types.h>],
2953 [ac_cv_int16_t=true],
2954 [ac_cv_int16_t=false])])
2955 if test "$ac_cv_int16_t" = true ; then
2956 AC_DEFINE(HAVE_INT16_T)
2961 AC_MSG_CHECKING(for int32_t)
2962 AC_CACHE_VAL(ac_cv_int32_t,
2963 [AC_TRY_COMPILE([#include <stdio.h>
2964 #include <sys/types.h>],
2966 [ac_cv_int32_t=true],
2967 [ac_cv_int32_t=false])])
2968 if test "$ac_cv_int32_t" = true ; then
2969 AC_DEFINE(HAVE_INT32_T)
2974 AC_MSG_CHECKING(for int64_t)
2975 AC_CACHE_VAL(ac_cv_int64_t,
2976 [AC_TRY_COMPILE([#include <stdio.h>
2977 #include <sys/types.h>],
2979 [ac_cv_int64_t=true],
2980 [ac_cv_int64_t=false])])
2981 if test "$ac_cv_int64_t" = true ; then
2982 AC_DEFINE(HAVE_INT64_T)
2987 AC_MSG_CHECKING(for int64)
2988 AC_CACHE_VAL(ac_cv_int64,
2989 [AC_TRY_COMPILE([#include <stdio.h>
2990 #include <sys/types.h>],
2993 [ac_cv_int64=false])])
2994 if test "$ac_cv_int64" = true ; then
2995 AC_DEFINE(HAVE_INT64)
3000 AC_MSG_CHECKING(for uint)
3001 AC_CACHE_VAL(ac_cv_uint,
3002 [AC_TRY_COMPILE([#include <stdio.h>
3003 #include <sys/types.h>],
3006 [ac_cv_uint=false])])
3007 if test "$ac_cv_uint" = true ; then
3008 AC_DEFINE(HAVE_UINT)
3013 AC_MSG_CHECKING(for uint_t)
3014 AC_CACHE_VAL(ac_cv_uint_t,
3015 [AC_TRY_COMPILE([#include <stdio.h>
3016 #include <sys/types.h>],
3018 [ac_cv_uint_t=true],
3019 [ac_cv_uint_t=false])])
3020 if test "$ac_cv_uint_t" = true ; then
3021 AC_DEFINE(HAVE_UINT_T)
3026 AC_MSG_CHECKING(for uint16_t)
3027 AC_CACHE_VAL(ac_cv_uint16_t,
3028 [AC_TRY_COMPILE([#include <stdio.h>
3029 #include <sys/types.h>],
3030 [uint16_t foo = 0;],
3031 [ac_cv_uint16_t=true],
3032 [ac_cv_uint16_t=false])])
3033 if test "$ac_cv_uint16_t" = true ; then
3034 AC_DEFINE(HAVE_UINT16_T)
3040 dnl On the gcc trunk (as of 2001-02-09) _GNU_SOURCE, and thus __USE_GNU,
3041 dnl are defined when compiling C++ but not C. Since the result of this
3042 dnl test is used only in C++, do it in C++.
3045 AC_MSG_CHECKING(for uname.domainname)
3046 AC_CACHE_VAL(ac_cv_have_uname_domainname_field,
3047 [AC_TRY_COMPILE([#include <sys/utsname.h>],
3048 [ struct utsname *res; char *domain;
3049 (void)uname(res); if (res != 0) { domain = res->domainname; } ],
3050 [ac_cv_have_uname_domainname_field=true],
3051 [ac_cv_have_uname_domainname_field=false])])
3053 if test "$ac_cv_have_uname_domainname_field" = "true"; then
3054 AC_DEFINE(HAVE_UNAME_DOMAINNAME_FIELD)
3060 AC_MSG_CHECKING(for uname.__domainname)
3061 AC_CACHE_VAL(ac_cv_have_uname_us_domainname_field,
3062 [AC_TRY_COMPILE([#include <sys/utsname.h>],
3063 [ struct utsname *res; char *domain;
3064 (void)uname(res); if (res != 0) { domain = res->__domainname; } ],
3065 [ac_cv_have_uname_us_domainname_field=true],
3066 [ac_cv_have_uname_us_domainname_field=false])])
3068 if test "$ac_cv_have_uname_us_domainname_field" = "true"; then
3069 AC_DEFINE(HAVE_UNAME_US_DOMAINNAME_FIELD)
3077 dnl Check for usable char16_t (2 bytes, unsigned)
3078 dnl (we might not need the unsignedness check anymore)
3079 AC_CACHE_CHECK(for usable char16_t (2 bytes, unsigned),
3080 ac_cv_have_usable_char16_t,
3081 [AC_TRY_COMPILE([$configure_static_assert_macros],
3082 [CONFIGURE_STATIC_ASSERT(sizeof(char16_t) == 2);
3083 CONFIGURE_STATIC_ASSERT(char16_t(-1) > char16_t(0));
3084 CONFIGURE_STATIC_ASSERT(sizeof((u"hello")[0]) == 2);
3085 CONFIGURE_STATIC_ASSERT(sizeof(u'a') == 2);
3086 CONFIGURE_STATIC_ASSERT(u'\xFFFF' > u'\x0')],
3087 ac_cv_have_usable_char16_t="yes",
3088 ac_cv_have_usable_char16_t="no")])
3089 if test "$ac_cv_have_usable_char16_t" = "yes"; then
3090 AC_DEFINE(HAVE_CPP_CHAR16_T)
3094 dnl Check for usable wchar_t (2 bytes, unsigned)
3095 dnl (we really don't need the unsignedness check anymore)
3096 dnl ========================================================
3098 AC_CACHE_CHECK(for usable wchar_t (2 bytes, unsigned),
3099 ac_cv_have_usable_wchar_v2,
3100 [AC_TRY_COMPILE([#include <stddef.h>
3101 $configure_static_assert_macros],
3102 [CONFIGURE_STATIC_ASSERT(sizeof(wchar_t) == 2);
3103 CONFIGURE_STATIC_ASSERT((wchar_t)-1 > (wchar_t) 0)],
3104 ac_cv_have_usable_wchar_v2="yes",
3105 ac_cv_have_usable_wchar_v2="no")])
3106 if test "$ac_cv_have_usable_wchar_v2" = "yes"; then
3107 AC_DEFINE(HAVE_CPP_2BYTE_WCHAR_T)
3108 HAVE_CPP_2BYTE_WCHAR_T=1
3109 elif test "$ac_cv_have_usable_char16_t" != "yes"; then
3110 dnl This is really gcc-only
3111 dnl Do this test using CXX only since some versions of gcc
3112 dnl 2.95-2.97 have a signed wchar_t in c++ only and some versions
3113 dnl only have short-wchar support for c++.
3114 dnl Note that we assume that mac & win32 have short wchar (see nscore.h)
3116 _SAVE_CXXFLAGS=$CXXFLAGS
3117 CXXFLAGS="$CXXFLAGS -fshort-wchar"
3119 AC_CACHE_CHECK(for compiler -fshort-wchar option,
3120 ac_cv_have_usable_wchar_option_v2,
3121 [AC_TRY_LINK([#include <stddef.h>
3122 $configure_static_assert_macros],
3123 [CONFIGURE_STATIC_ASSERT(sizeof(wchar_t) == 2);
3124 CONFIGURE_STATIC_ASSERT((wchar_t)-1 > (wchar_t) 0)],
3125 ac_cv_have_usable_wchar_option_v2="yes",
3126 ac_cv_have_usable_wchar_option_v2="no")])
3128 if test "$ac_cv_have_usable_wchar_option_v2" = "yes"; then
3129 AC_DEFINE(HAVE_CPP_2BYTE_WCHAR_T)
3130 HAVE_CPP_2BYTE_WCHAR_T=1
3131 WCHAR_CFLAGS="-fshort-wchar"
3133 CXXFLAGS=$_SAVE_CXXFLAGS
3139 dnl Check for .hidden assembler directive and visibility attribute.
3140 dnl Borrowed from glibc configure.in
3141 dnl ===============================================================
3142 if test "$GNU_CC"; then
3143 AC_CACHE_CHECK(for visibility(hidden) attribute,
3144 ac_cv_visibility_hidden,
3145 [cat > conftest.c <<EOF
3146 int foo __attribute__ ((visibility ("hidden"))) = 1;
3148 ac_cv_visibility_hidden=no
3149 if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
3150 if egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
3151 ac_cv_visibility_hidden=yes
3156 if test "$ac_cv_visibility_hidden" = "yes"; then
3157 AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
3159 AC_CACHE_CHECK(for visibility(default) attribute,
3160 ac_cv_visibility_default,
3161 [cat > conftest.c <<EOF
3162 int foo __attribute__ ((visibility ("default"))) = 1;
3164 ac_cv_visibility_default=no
3165 if ${CC-cc} -fvisibility=hidden -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
3166 if ! egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
3167 ac_cv_visibility_default=yes
3172 if test "$ac_cv_visibility_default" = "yes"; then
3173 AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
3175 AC_CACHE_CHECK(for visibility pragma support,
3176 ac_cv_visibility_pragma,
3177 [cat > conftest.c <<EOF
3178 #pragma GCC visibility push(hidden)
3180 #pragma GCC visibility push(default)
3181 int foo_default = 1;
3183 ac_cv_visibility_pragma=no
3184 if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
3185 if egrep '\.(hidden|private_extern).*foo_hidden' conftest.s >/dev/null; then
3186 if ! egrep '\.(hidden|private_extern).*foo_default' conftest.s > /dev/null; then
3187 ac_cv_visibility_pragma=yes
3193 if test "$ac_cv_visibility_pragma" = "yes"; then
3194 AC_CACHE_CHECK(For gcc visibility bug with class-level attributes (GCC bug 26905),
3195 ac_cv_have_visibility_class_bug,
3196 [cat > conftest.c <<EOF
3197 #pragma GCC visibility push(hidden)
3198 struct __attribute__ ((visibility ("default"))) TestStruct {
3201 __attribute__ ((visibility ("default"))) void TestFunc() {
3205 ac_cv_have_visibility_class_bug=no
3206 if ! ${CXX-g++} ${CXXFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
3207 ac_cv_have_visibility_class_bug=yes
3209 if test `egrep -c '@PLT|\\$stub' conftest.S` = 0; then
3210 ac_cv_have_visibility_class_bug=yes
3213 rm -rf conftest.{c,S}
3216 AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297),
3217 ac_cv_have_visibility_builtin_bug,
3218 [cat > conftest.c <<EOF
3219 #pragma GCC visibility push(hidden)
3220 #pragma GCC visibility push(default)
3222 #pragma GCC visibility pop
3224 __attribute__ ((visibility ("default"))) void Func() {
3226 memset(c, 0, sizeof(c));
3229 ac_cv_have_visibility_builtin_bug=no
3230 if ! ${CC-cc} ${CFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
3231 ac_cv_have_visibility_builtin_bug=yes
3233 if test `grep -c "@PLT" conftest.S` = 0; then
3234 ac_cv_visibility_builtin_bug=yes
3237 rm -f conftest.{c,S}
3239 if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
3240 "$ac_cv_have_visibility_class_bug" = "no"; then
3241 VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
3242 WRAP_SYSTEM_INCLUDES=1
3243 STL_FLAGS='-I$(DIST)/stl_wrappers'
3246 VISIBILITY_FLAGS='-fvisibility=hidden'
3247 fi # have visibility pragma bug
3248 fi # have visibility pragma
3249 fi # have visibility(default) attribute
3250 fi # have visibility(hidden) attribute
3253 # visibility hidden flag for Sun Studio on Solaris
3254 if test "$SOLARIS_SUNPRO_CC"; then
3255 VISIBILITY_FLAGS='-xldscope=hidden'
3256 fi # Sun Studio on Solaris
3258 AC_SUBST(WRAP_SYSTEM_INCLUDES)
3259 AC_SUBST(VISIBILITY_FLAGS)
3261 dnl Check for __force_align_arg_pointer__ for SSE2 on gcc
3262 dnl ========================================================
3263 if test "$GNU_CC"; then
3264 CFLAGS_save="${CFLAGS}"
3265 CFLAGS="${CFLAGS} -Werror"
3266 AC_CACHE_CHECK(for __force_align_arg_pointer__ attribute,
3267 ac_cv_force_align_arg_pointer,
3268 [AC_TRY_COMPILE([__attribute__ ((__force_align_arg_pointer__)) void test() {}],
3270 ac_cv_force_align_arg_pointer="yes",
3271 ac_cv_force_align_arg_pointer="no")])
3272 CFLAGS="${CFLAGS_save}"
3273 if test "$ac_cv_force_align_arg_pointer" = "yes"; then
3274 HAVE_GCC_ALIGN_ARG_POINTER=1
3276 HAVE_GCC_ALIGN_ARG_POINTER=
3279 AC_SUBST(HAVE_GCC_ALIGN_ARG_POINTER)
3281 dnl Checks for header files.
3282 dnl ========================================================
3284 case "$target_os" in
3286 # for stuff like -lXshm
3287 CPPFLAGS="${CPPFLAGS} ${X_CFLAGS}"
3290 AC_CHECK_HEADERS(sys/byteorder.h compat.h getopt.h)
3291 AC_CHECK_HEADERS(sys/bitypes.h memory.h unistd.h)
3292 AC_CHECK_HEADERS(gnu/libc-version.h nl_types.h)
3293 AC_CHECK_HEADERS(malloc.h)
3294 AC_CHECK_HEADERS(X11/XKBlib.h)
3295 AC_CHECK_HEADERS(io.h)
3297 dnl These are all the places some variant of statfs can be hiding.
3298 AC_CHECK_HEADERS(sys/statvfs.h sys/statfs.h sys/vfs.h sys/mount.h)
3301 AC_CHECK_HEADERS(sys/quota.h)
3302 AC_CHECK_HEADERS(linux/quota.h)
3304 dnl Try for MMX support
3305 dnl NB - later gcc versions require -mmmx for this header to be successfully
3306 dnl included (or another option which implies it, such as -march=pentium-mmx)
3307 AC_CHECK_HEADERS(mmintrin.h)
3309 dnl Check whether the compiler supports the new-style C++ standard
3310 dnl library headers (i.e. <new>) or needs the old "new.h"
3313 AC_CHECK_HEADER(new, [NEW_H=new])
3314 AC_DEFINE_UNQUOTED(NEW_H, <$NEW_H>)
3317 AC_ARG_ENABLE(dtrace,
3318 [ --enable-dtrace build with dtrace support if available (default=no)],
3319 [enable_dtrace="yes"],)
3320 if test "x$enable_dtrace" = "xyes"; then
3321 AC_CHECK_HEADER(sys/sdt.h, HAVE_DTRACE=1)
3322 if test -n "$HAVE_DTRACE"; then
3323 AC_DEFINE(INCLUDE_MOZILLA_DTRACE)
3325 AC_MSG_ERROR([dtrace enabled but sys/sdt.h not found]);
3328 AC_SUBST(HAVE_DTRACE)
3334 AC_CHECK_HEADERS(sys/cdefs.h)
3338 dnl Checks for libraries.
3339 dnl ========================================================
3344 AC_CHECK_LIB(c_r, gethostbyname_r)
3348 dnl We don't want to link with libdl even if it's present on OS X, since
3349 dnl it's not used and not part of the default installation.
3350 dnl The same goes for BeOS. OS/2 has dlfcn in libc.
3351 dnl We don't want to link against libm or libpthread on Darwin since
3352 dnl they both are just symlinks to libSystem and explicitly linking
3353 dnl against libSystem causes issues when debugging (see bug 299601).
3362 AC_CHECK_LIB(m, atan)
3363 AC_CHECK_LIB(dl, dlopen,
3364 AC_CHECK_HEADER(dlfcn.h,
3366 AC_DEFINE(HAVE_LIBDL)))
3370 _SAVE_CFLAGS="$CFLAGS"
3371 CFLAGS="$CFLAGS -D_GNU_SOURCE"
3372 AC_CHECK_FUNCS(dladdr)
3373 CFLAGS="$_SAVE_CFLAGS"
3375 if test ! "$GNU_CXX"; then
3379 AC_CHECK_LIB(C_r, demangle)
3382 AC_CHECK_LIB(C, demangle)
3387 dnl OS/2 has socket in libc.
3392 AC_CHECK_LIB(socket, socket)
3395 dnl ========================================================
3396 dnl Check whether we can compile code for Core Text
3397 dnl (available on Mac OS X 10.5 or later)
3398 dnl ========================================================
3401 AC_MSG_CHECKING([for Core Text])
3402 AC_TRY_COMPILE([#include <ApplicationServices/ApplicationServices.h>],
3403 [CTLineRef lineRef;],
3404 ac_cv_have_core_text="yes",
3405 ac_cv_have_core_text="no")
3406 AC_MSG_RESULT([$ac_cv_have_core_text])
3408 if test "$ac_cv_have_core_text" = "no"; then
3409 AC_MSG_ERROR([Core Text is required (available on Mac OS X 10.5 or later).])
3415 XLIBS="$X_EXTRA_LIBS"
3417 dnl ========================================================
3418 dnl Checks for X libraries.
3419 dnl Ordering is important.
3420 dnl Xt is dependent upon SM as of X11R6
3421 dnl ========================================================
3422 if test "$no_x" = "yes"; then
3425 AC_DEFINE_UNQUOTED(FUNCPROTO,15)
3426 XLIBS="-lX11 $XLIBS"
3427 _SAVE_LDFLAGS="$LDFLAGS"
3428 LDFLAGS="$XLDFLAGS $LDFLAGS"
3429 AC_CHECK_LIB(X11, XDrawLines, [X11_LIBS="-lX11"],
3430 [MISSING_X="$MISSING_X -lX11"], $XLIBS)
3431 AC_CHECK_LIB(Xext, XextAddDisplay, [XEXT_LIBS="-lXext"],
3432 [MISSING_X="$MISSING_X -lXext"], $XLIBS)
3434 AC_CHECK_LIB(Xt, XtFree, [ XT_LIBS="-lXt"], [
3435 unset ac_cv_lib_Xt_XtFree
3436 AC_CHECK_LIB(ICE, IceFlush, [XT_LIBS="-lICE $XT_LIBS"],, $XT_LIBS $XLIBS)
3437 AC_CHECK_LIB(SM, SmcCloseConnection, [XT_LIBS="-lSM $XT_LIBS"],, $XT_LIBS $XLIBS)
3438 AC_CHECK_LIB(Xt, XtFree, [ XT_LIBS="-lXt $XT_LIBS"],
3439 [MISSING_X="$MISSING_X -lXt"], $X_PRE_LIBS $XT_LIBS $XLIBS)
3442 # AIX needs the motif library linked before libXt to prevent
3443 # crashes in plugins linked against Motif - Bug #98892
3444 case "${target_os}" in
3446 XT_LIBS="-lXm $XT_LIBS"
3450 dnl ========================================================
3451 dnl = Check for XShm
3452 dnl ========================================================
3453 AC_CHECK_LIB(Xext, XShmCreateImage, _HAVE_XSHM_XEXT=1,,
3455 AC_CHECK_HEADER(X11/extensions/XShm.h)
3456 if test "$ac_cv_header_X11_extensions_XShm_h" = "yes" &&
3457 test -n "$_HAVE_XSHM_XEXT"; then
3458 AC_DEFINE(HAVE_XSHM)
3461 dnl ========================================================
3463 dnl ========================================================
3464 AC_CHECK_LIB(XIE, XieFloGeometry, [MOZ_XIE_LIBS="-lXIE"],,
3466 AC_CHECK_HEADER(X11/extensions/XIElib.h)
3468 if test "$MOZ_XIE_LIBS"; then
3469 dnl ====================================================
3470 dnl = If XIE is present and is desired, turn it on
3471 dnl ====================================================
3481 LDFLAGS="$_SAVE_LDFLAGS"
3483 dnl ========================================================
3484 dnl = Check for freetype2 and its functionality
3485 dnl ========================================================
3486 AC_CHECK_FT2(6.1.0, [_HAVE_FREETYPE2=1], [_HAVE_FREETYPE2=])
3488 if test "$_HAVE_FREETYPE2"; then
3490 _SAVE_CFLAGS="$CFLAGS"
3491 LIBS="$LIBS $FT2_LIBS"
3492 CFLAGS="$CFLAGS $FT2_CFLAGS"
3494 AC_CACHE_CHECK(for FT_Bitmap_Size.y_ppem,
3495 ac_cv_member_FT_Bitmap_Size_y_ppem,
3496 [AC_TRY_COMPILE([#include <ft2build.h>
3497 #include FT_FREETYPE_H],
3499 if (sizeof s.y_ppem) return 0;
3501 ac_cv_member_FT_Bitmap_Size_y_ppem=yes,
3502 ac_cv_member_FT_Bitmap_Size_y_ppem=no)])
3503 if test "$ac_cv_member_FT_Bitmap_Size_y_ppem" = yes; then
3504 HAVE_FT_BITMAP_SIZE_Y_PPEM=1
3506 HAVE_FT_BITMAP_SIZE_Y_PPEM=0
3508 AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,
3509 $HAVE_FT_BITMAP_SIZE_Y_PPEM,
3510 [FT_Bitmap_Size structure includes y_ppem field])
3512 AC_CHECK_FUNCS(FT_GlyphSlot_Embolden FT_Load_Sfnt_Table FT_Select_Size)
3515 CFLAGS="$_SAVE_CFLAGS"
3526 AC_MSG_CHECKING(for ARM SIMD support in compiler)
3528 [asm("uqadd8 r1, r1, r2");],
3529 result="yes", result="no")
3530 AC_MSG_RESULT("$result")
3531 if test "$result" = "yes"; then
3532 AC_DEFINE(HAVE_ARM_SIMD)
3535 AC_SUBST(HAVE_ARM_SIMD)
3537 AC_MSG_CHECKING(for ARM NEON support in compiler)
3538 _SAVE_CFLAGS="$CFLAGS"
3539 if test "$GNU_CC"; then
3540 # gcc needs -mfpu=neon to recognize NEON instructions
3541 CFLAGS="$CFLAGS -mfpu=neon -mfloat-abi=softfp"
3544 [asm("vadd.i8 d0, d0, d0");],
3545 result="yes", result="no")
3546 AC_MSG_RESULT("$result")
3547 if test "$result" = "yes"; then
3548 AC_DEFINE(HAVE_ARM_NEON)
3551 CFLAGS="$_SAVE_CFLAGS"
3552 AC_SUBST(HAVE_ARM_NEON)
3554 dnl ========================================================
3555 dnl = pthread support
3556 dnl = Start by checking whether the system support pthreads
3557 dnl ========================================================
3558 case "$target_os" in
3563 MOZ_CHECK_PTHREADS(pthreads,
3564 USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthreads",
3565 MOZ_CHECK_PTHREADS(pthread,
3566 USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthread",
3567 MOZ_CHECK_PTHREADS(c_r,
3568 USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lc_r",
3569 MOZ_CHECK_PTHREADS(c,
3578 dnl ========================================================
3579 dnl Check the command line for --with-pthreads
3580 dnl ========================================================
3581 MOZ_ARG_WITH_BOOL(pthreads,
3582 [ --with-pthreads Force use of system pthread library with NSPR ],
3583 [ if test "$USE_PTHREADS"x = x; then
3584 AC_MSG_ERROR([ --with-pthreads specified for a system without pthread support ]);
3590 dnl ========================================================
3591 dnl Do the platform specific pthread hackery
3592 dnl ========================================================
3593 if test "$USE_PTHREADS"x != x
3596 dnl See if -pthread is supported.
3599 ac_cv_have_dash_pthread=no
3600 AC_MSG_CHECKING(whether ${CC-cc} accepts -pthread)
3601 echo 'int main() { return 0; }' | cat > conftest.c
3602 ${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1
3603 if test $? -eq 0; then
3604 if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthread`" -a -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
3605 ac_cv_have_dash_pthread=yes
3606 case "$target_os" in
3608 # Freebsd doesn't use -pthread for compiles, it uses them for linking
3611 CFLAGS="$CFLAGS -pthread"
3612 CXXFLAGS="$CXXFLAGS -pthread"
3618 AC_MSG_RESULT($ac_cv_have_dash_pthread)
3621 dnl See if -pthreads is supported.
3623 ac_cv_have_dash_pthreads=no
3624 if test "$ac_cv_have_dash_pthread" = "no"; then
3625 AC_MSG_CHECKING(whether ${CC-cc} accepts -pthreads)
3626 echo 'int main() { return 0; }' | cat > conftest.c
3627 ${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1
3628 if test $? -eq 0; then
3629 if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthreads`" -a -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
3630 ac_cv_have_dash_pthreads=yes
3631 CFLAGS="$CFLAGS -pthreads"
3632 CXXFLAGS="$CXXFLAGS -pthreads"
3636 AC_MSG_RESULT($ac_cv_have_dash_pthreads)
3641 AC_DEFINE(_REENTRANT)
3642 AC_DEFINE(_THREAD_SAFE)
3643 dnl -pthread links in -lc_r, so don't specify it explicitly.
3644 if test "$ac_cv_have_dash_pthread" = "yes"; then
3645 _PTHREAD_LDFLAGS="-pthread"
3647 _PTHREAD_LDFLAGS="-lc_r"
3651 *-*-openbsd*|*-*-bsdi*)
3652 AC_DEFINE(_REENTRANT)
3653 AC_DEFINE(_THREAD_SAFE)
3654 dnl -pthread links in -lc_r, so don't specify it explicitly.
3655 if test "$ac_cv_have_dash_pthread" = "yes"; then
3656 _PTHREAD_LDFLAGS="-pthread"
3660 *-*-linux*|*-*-kfreebsd*-gnu|*-*-gnu*)
3661 AC_DEFINE(_REENTRANT)
3665 AC_DEFINE(_REENTRANT)
3669 AC_DEFINE(_REENTRANT)
3673 AC_DEFINE(_REENTRANT)
3677 AC_DEFINE(_REENTRANT)
3681 AC_DEFINE(_REENTRANT)
3682 if test "$SOLARIS_SUNPRO_CC"; then
3683 CFLAGS="$CFLAGS -mt"
3684 CXXFLAGS="$CXXFLAGS -mt"
3688 LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}"
3691 dnl ========================================================
3692 dnl See if mmap sees writes
3693 dnl For cross compiling, just define it as no, which is a safe default
3694 dnl ========================================================
3695 AC_MSG_CHECKING(whether mmap() sees write()s)
3701 #include <sys/mman.h>
3702 #include <sys/types.h>
3703 #include <sys/stat.h>
3706 char fname[] = "conftest.file";
3707 char zbuff[1024]; /* Fractional page is probably worst case */
3714 fd = open(fname, O_RDWR | O_CREAT, 0660);
3717 write(fd, zbuff, sizeof(zbuff));
3718 lseek(fd, 0, SEEK_SET);
3719 map = (char*)mmap(0, sizeof(zbuff), PROT_READ, MAP_SHARED, fd, 0);
3720 if(map==(char*)-1) return 2;
3721 for(i=0; fname[i]; i++) {
3722 int rc = write(fd, &fname[i], 1);
3723 if(map[i]!=fname[i]) return 4;
3730 AC_TRY_RUN($mmap_test_prog , result="yes", result="no", result="yes")
3732 AC_MSG_RESULT("$result")
3734 if test "$result" = "no"; then
3735 AC_DEFINE(MMAP_MISSES_WRITES)
3739 dnl Checks for library functions.
3740 dnl ========================================================
3741 AC_PROG_GCC_TRADITIONAL
3743 AC_CHECK_FUNCS(random strerror lchown fchmod snprintf statvfs memmove rint stat64 lstat64 truncate64 statvfs64 setbuf isatty)
3744 AC_CHECK_FUNCS(flockfile getpagesize)
3745 AC_CHECK_FUNCS(localtime_r strtok_r)
3747 dnl check for clock_gettime(), the CLOCK_MONOTONIC clock, and -lrt
3748 _SAVE_LDFLAGS=$LDFLAGS
3749 LDFLAGS="$LDFLAGS -lrt"
3750 AC_CACHE_CHECK(for clock_gettime(CLOCK_MONOTONIC) and -lrt,
3751 ac_cv_have_clock_monotonic,
3752 [AC_TRY_LINK([#include <time.h>],
3753 [ struct timespec ts;
3754 clock_gettime(CLOCK_MONOTONIC, &ts); ],
3755 ac_cv_have_clock_monotonic=yes,
3756 ac_cv_have_clock_monotonic=no)])
3757 LDFLAGS=$_SAVE_LDFLAGS
3758 if test "$ac_cv_have_clock_monotonic" = "yes"; then
3759 HAVE_CLOCK_MONOTONIC=1
3761 AC_DEFINE(HAVE_CLOCK_MONOTONIC)
3762 AC_SUBST(HAVE_CLOCK_MONOTONIC)
3763 AC_SUBST(REALTIME_LIBS)
3766 dnl check for wcrtomb/mbrtowc
3767 dnl =======================================================================
3768 if test -z "$MACOS_DEPLOYMENT_TARGET" -o "$MACOS_DEPLOYMENT_TARGET" -ge "100300"; then
3771 AC_CACHE_CHECK(for wcrtomb,
3773 [AC_TRY_LINK([#include <wchar.h>],
3774 [mbstate_t ps={0};wcrtomb(0,'f',&ps);],
3775 ac_cv_have_wcrtomb="yes",
3776 ac_cv_have_wcrtomb="no")])
3777 if test "$ac_cv_have_wcrtomb" = "yes"; then
3778 AC_DEFINE(HAVE_WCRTOMB)
3780 AC_CACHE_CHECK(for mbrtowc,
3782 [AC_TRY_LINK([#include <wchar.h>],
3783 [mbstate_t ps={0};mbrtowc(0,0,0,&ps);],
3784 ac_cv_have_mbrtowc="yes",
3785 ac_cv_have_mbrtowc="no")])
3786 if test "$ac_cv_have_mbrtowc" = "yes"; then
3787 AC_DEFINE(HAVE_MBRTOWC)
3794 ac_cv_func_res_ninit,
3797 #define _BSD_SOURCE 1
3801 [int foo = res_ninit(&_res);],
3802 [ac_cv_func_res_ninit=yes],
3803 [ac_cv_func_res_ninit=no])
3806 if test "$ac_cv_func_res_ninit" = "yes"; then
3807 AC_DEFINE(HAVE_RES_NINIT)
3808 dnl must add the link line we do something as foolish as this... dougt
3810 dnl AC_CHECK_LIB(bind, res_ninit, AC_DEFINE(HAVE_RES_NINIT),
3811 dnl AC_CHECK_LIB(resolv, res_ninit, AC_DEFINE(HAVE_RES_NINIT)))
3816 [for gnu_get_libc_version()],
3817 ac_cv_func_gnu_get_libc_version,
3819 #ifdef HAVE_GNU_LIBC_VERSION_H
3820 #include <gnu/libc-version.h>
3823 [const char *glibc_version = gnu_get_libc_version();],
3824 [ac_cv_func_gnu_get_libc_version=yes],
3825 [ac_cv_func_gnu_get_libc_version=no]
3829 if test "$ac_cv_func_gnu_get_libc_version" = "yes"; then
3830 AC_DEFINE(HAVE_GNU_GET_LIBC_VERSION)
3834 os2*|msvc*|mks*|cygwin*|mingw*|darwin*|wince*|winmo*|beos*)
3838 AC_CHECK_LIB(c, iconv, [_ICONV_LIBS="$_ICONV_LIBS"],
3839 AC_CHECK_LIB(iconv, iconv, [_ICONV_LIBS="$_ICONV_LIBS -liconv"],
3840 AC_CHECK_LIB(iconv, libiconv, [_ICONV_LIBS="$_ICONV_LIBS -liconv"])))
3842 LIBS="$LIBS $_ICONV_LIBS"
3851 iconv_t h = iconv_open("", "");
3852 iconv(h, NULL, NULL, NULL, NULL);
3855 [ac_cv_func_iconv=yes],
3856 [ac_cv_func_iconv=no]
3859 if test "$ac_cv_func_iconv" = "yes"; then
3860 AC_DEFINE(HAVE_ICONV)
3861 DYNAMIC_XPCOM_LIBS="$DYNAMIC_XPCOM_LIBS $_ICONV_LIBS"
3862 LIBXUL_LIBS="$LIBXUL_LIBS $_ICONV_LIBS"
3863 LIBICONV="$_ICONV_LIBS"
3865 [for iconv() with const input],
3866 ac_cv_func_const_iconv,
3872 const char *input = "testing";
3873 iconv_t h = iconv_open("", "");
3874 iconv(h, &input, NULL, NULL, NULL);
3877 [ac_cv_func_const_iconv=yes],
3878 [ac_cv_func_const_iconv=no]
3881 if test "$ac_cv_func_const_iconv" = "yes"; then
3882 AC_DEFINE(HAVE_ICONV_WITH_CONST_INPUT)
3894 dnl **********************
3895 dnl *** va_copy checks ***
3896 dnl **********************
3897 dnl we currently check for all three va_copy possibilities, so we get
3898 dnl all results in config.log for bug reports.
3899 AC_MSG_CHECKING(for an implementation of va_copy())
3900 AC_CACHE_VAL(ac_cv_va_copy,[
3903 void f (int i, ...) {
3904 va_list args1, args2;
3905 va_start (args1, i);
3906 va_copy (args2, args1);
3907 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
3909 va_end (args1); va_end (args2);
3911 int main() { f (0, 42); return 0; }],
3917 AC_MSG_RESULT($ac_cv_va_copy)
3918 AC_MSG_CHECKING(for an implementation of __va_copy())
3919 AC_CACHE_VAL(ac_cv___va_copy,[
3922 void f (int i, ...) {
3923 va_list args1, args2;
3924 va_start (args1, i);
3925 __va_copy (args2, args1);
3926 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
3928 va_end (args1); va_end (args2);
3930 int main() { f (0, 42); return 0; }],
3931 ac_cv___va_copy=yes,
3936 AC_MSG_RESULT($ac_cv___va_copy)
3937 AC_MSG_CHECKING(whether va_lists can be copied by value)
3938 AC_CACHE_VAL(ac_cv_va_val_copy,[
3941 void f (int i, ...) {
3942 va_list args1, args2;
3943 va_start (args1, i);
3945 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
3947 va_end (args1); va_end (args2);
3949 int main() { f (0, 42); return 0; }],
3950 ac_cv_va_val_copy=yes,
3951 ac_cv_va_val_copy=no,
3952 ac_cv_va_val_copy=yes
3955 if test "x$ac_cv_va_copy" = "xyes"; then
3956 AC_DEFINE(VA_COPY, va_copy)
3957 AC_DEFINE(HAVE_VA_COPY)
3958 elif test "x$ac_cv___va_copy" = "xyes"; then
3959 AC_DEFINE(VA_COPY, __va_copy)
3960 AC_DEFINE(HAVE_VA_COPY)
3963 if test "x$ac_cv_va_val_copy" = "xno"; then
3964 AC_DEFINE(HAVE_VA_LIST_AS_ARRAY)
3966 AC_MSG_RESULT($ac_cv_va_val_copy)
3968 dnl Check for dll-challenged libc's.
3969 dnl This check is apparently only needed for Linux.
3972 dnl ===================================================================
3975 rm -rf conftest* _conftest
3977 cat >> conftest.C <<\EOF
3982 void __dump_link_map(void) {
3983 struct link_map *map = _dl_loaded;
3984 while (NULL != map) {printf("0x%08x %s\n", map->l_addr, map->l_name); map = map->l_next;}
3987 dlopen("./conftest1.so",RTLD_LAZY);
3988 dlopen("./../_conftest/conftest1.so",RTLD_LAZY);
3989 dlopen("CURDIR/_conftest/conftest1.so",RTLD_LAZY);
3990 dlopen("CURDIR/_conftest/../_conftest/conftest1.so",RTLD_LAZY);
3994 /* _dl_loaded isn't defined, so this should be either a libc5 (glibc1) system, or a glibc2 system that doesn't have the multiple load bug (i.e., RH6.0).*/
3995 int main() { printf("./conftest1.so\n"); }
3999 $PERL -p -i -e "s/CURDIR/\$ENV{_curdir}/g;" conftest.C
4001 cat >> conftest1.C <<\EOF
4003 void foo(void) {printf("foo in dll called\n");}
4005 ${CXX-g++} -fPIC -c -g conftest1.C
4006 ${CXX-g++} -shared -Wl,-h -Wl,conftest1.so -o conftest1.so conftest1.o
4007 ${CXX-g++} -g conftest.C -o conftest -ldl
4008 cp -f conftest1.so conftest _conftest
4010 if test `./conftest | grep conftest1.so | wc -l` -gt 1
4013 echo "*** Your libc has a bug that can result in loading the same dynamic"
4014 echo "*** library multiple times. This bug is known to be fixed in glibc-2.0.7-32"
4015 echo "*** or later. However, if you choose not to upgrade, the only effect"
4016 echo "*** will be excessive memory usage at runtime."
4020 rm -rf conftest* _conftest
4021 dnl ===================================================================
4025 dnl ===================================================================
4026 dnl ========================================================
4027 dnl Put your C++ language/feature checks below
4028 dnl ========================================================
4033 if test "$GNU_CC"; then
4034 if test "$CPU_ARCH" = "arm" ; then
4035 AC_CACHE_CHECK(for ARM EABI,
4039 #if defined(__ARM_EABI__)
4042 #error Not ARM EABI.
4045 ac_cv_gcc_arm_eabi="yes",
4046 ac_cv_gcc_arm_eabi="no")])
4047 if test "$ac_cv_gcc_arm_eabi" = "yes"; then
4049 ARM_ABI_PREFIX=eabi-
4051 ARM_ABI_PREFIX=oabi-
4055 AC_CACHE_CHECK(for gcc 3.0 ABI,
4056 ac_cv_gcc_three_abi,
4059 #if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
4065 ac_cv_gcc_three_abi="yes",
4066 ac_cv_gcc_three_abi="no")])
4067 if test "$ac_cv_gcc_three_abi" = "yes"; then
4068 TARGET_COMPILER_ABI="${TARGET_COMPILER_ABI-${ARM_ABI_PREFIX}gcc3}"
4071 TARGET_COMPILER_ABI="${TARGET_COMPILER_ABI-${ARM_ABI_PREFIX}gcc2}"
4074 AC_SUBST(HAVE_GCC3_ABI)
4077 AC_CACHE_CHECK(for C++ \"explicit\" keyword,
4079 [AC_TRY_COMPILE(class X {
4080 public: explicit X(int i) : i_(i) {}
4084 ac_cv_cpp_explicit=yes,
4085 ac_cv_cpp_explicit=no)])
4086 if test "$ac_cv_cpp_explicit" = yes ; then
4087 AC_DEFINE(HAVE_CPP_EXPLICIT)
4090 AC_CACHE_CHECK(for C++ \"typename\" keyword,
4092 [AC_TRY_COMPILE(class param {
4094 typedef unsigned long num_type;
4097 template <class T> class tplt {
4099 typedef typename T::num_type t_num_type;
4100 t_num_type foo(typename T::num_type num) {
4106 ac_cv_cpp_typename=yes,
4107 ac_cv_cpp_typename=no)])
4108 if test "$ac_cv_cpp_typename" = yes ; then
4109 AC_DEFINE(HAVE_CPP_TYPENAME)
4112 dnl Check for support of modern template specialization syntax
4113 dnl Test code and requirement from scc@netscape.com.
4114 dnl Autoconf cut-and-paste job by waterson@netscape.com
4115 AC_CACHE_CHECK(for modern C++ template specialization syntax support,
4116 ac_cv_cpp_modern_specialize_template_syntax,
4117 [AC_TRY_COMPILE(template <class T> struct X { int a; };
4119 template <> struct X<Y> { double a; };,
4122 ac_cv_cpp_modern_specialize_template_syntax=yes,
4123 ac_cv_cpp_modern_specialize_template_syntax=no)])
4124 if test "$ac_cv_cpp_modern_specialize_template_syntax" = yes ; then
4125 AC_DEFINE(HAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX)
4129 dnl Some compilers support only full specialization, and some don't.
4130 AC_CACHE_CHECK(whether partial template specialization works,
4131 ac_cv_cpp_partial_specialization,
4132 [AC_TRY_COMPILE(template <class T> class Foo {};
4133 template <class T> class Foo<T*> {};,
4135 ac_cv_cpp_partial_specialization=yes,
4136 ac_cv_cpp_partial_specialization=no)])
4137 if test "$ac_cv_cpp_partial_specialization" = yes ; then
4138 AC_DEFINE(HAVE_CPP_PARTIAL_SPECIALIZATION)
4141 dnl Some compilers have limited support for operators with templates;
4142 dnl specifically, it is necessary to define derived operators when a base
4143 dnl class's operator declaration should suffice.
4144 AC_CACHE_CHECK(whether operators must be re-defined for templates derived from templates,
4145 ac_cv_need_derived_template_operators,
4146 [AC_TRY_COMPILE([template <class T> class Base { };
4148 Base<T> operator+(const Base<T>& lhs, const Base<T>& rhs) { return lhs; }
4149 template <class T> class Derived : public Base<T> { };],
4150 [Derived<char> a, b;
4151 Base<char> c = a + b;
4153 ac_cv_need_derived_template_operators=no,
4154 ac_cv_need_derived_template_operators=yes)])
4155 if test "$ac_cv_need_derived_template_operators" = yes ; then
4156 AC_DEFINE(NEED_CPP_DERIVED_TEMPLATE_OPERATORS)
4160 dnl Some compilers have trouble detecting that a template class
4161 dnl that derives from another template is actually an instance
4162 dnl of the base class. This test checks for that.
4163 AC_CACHE_CHECK(whether we need to cast a derived template to pass as its base class,
4164 ac_cv_need_cpp_template_cast_to_base,
4165 [AC_TRY_COMPILE([template <class T> class Base { };
4166 template <class T> class Derived : public Base<T> { };
4167 template <class T> int foo(const Base<T>&) { return 0; }],
4168 [Derived<char> bar; return foo(bar);],
4169 ac_cv_need_cpp_template_cast_to_base=no,
4170 ac_cv_need_cpp_template_cast_to_base=yes)])
4171 if test "$ac_cv_need_cpp_template_cast_to_base" = yes ; then
4172 AC_DEFINE(NEED_CPP_TEMPLATE_CAST_TO_BASE)
4175 dnl Some compilers have trouble resolving the ambiguity between two
4176 dnl functions whose arguments differ only by cv-qualifications.
4177 AC_CACHE_CHECK(whether the compiler can resolve const ambiguities for templates,
4178 ac_cv_can_resolve_const_ambiguity,
4180 template <class T> class ptrClass {
4184 template <class T> T* a(ptrClass<T> *arg) {
4189 const T* a(const ptrClass<T> *arg) {
4195 ac_cv_can_resolve_const_ambiguity=yes,
4196 ac_cv_can_resolve_const_ambiguity=no)])
4197 if test "$ac_cv_can_resolve_const_ambiguity" = no ; then
4198 AC_DEFINE(CANT_RESOLVE_CPP_CONST_AMBIGUITY)
4202 dnl We don't do exceptions on unix. The only reason this used to be here
4203 dnl is that mozilla/xpcom/tests/TestCOMPtr.cpp has a test which uses
4204 dnl exceptions. But, we turn exceptions off by default and this test breaks.
4205 dnl So im commenting this out until someone writes some artificial
4206 dnl intelligence to detect not only if the compiler has exceptions, but if
4207 dnl they are enabled as well.
4209 dnl AC_CACHE_CHECK(for C++ \"exceptions\",
4210 dnl ac_cv_cpp_exceptions,
4211 dnl [AC_TRY_COMPILE(class X { public: X() {} };
4212 dnl static void F() { throw X(); },
4213 dnl try { F(); } catch(X & e) { },
4214 dnl ac_cv_cpp_exceptions=yes,
4215 dnl ac_cv_cpp_exceptions=no)])
4216 dnl if test $ac_cv_cpp_exceptions = yes ; then
4217 dnl AC_DEFINE(HAVE_CPP_EXCEPTIONS)
4220 dnl Some compilers have marginal |using| support; for example, gcc-2.7.2.3
4221 dnl supports it well enough to allow us to use it to change access, but not
4222 dnl to resolve ambiguity. The next two tests determine how well the |using|
4223 dnl keyword is supported.
4225 dnl Check to see if we can change access with |using|. Test both a
4226 dnl legal and an illegal example.
4227 AC_CACHE_CHECK(whether the C++ \"using\" keyword can change access,
4228 ac_cv_cpp_access_changing_using2,
4230 class A { protected: int foo() { return 0; } };
4231 class B : public A { public: using A::foo; };,
4232 B b; return b.foo();,
4234 class A { public: int foo() { return 1; } };
4235 class B : public A { private: using A::foo; };,
4236 B b; return b.foo();,
4237 ac_cv_cpp_access_changing_using2=no,
4238 ac_cv_cpp_access_changing_using2=yes)],
4239 ac_cv_cpp_access_changing_using2=no)])
4240 if test "$ac_cv_cpp_access_changing_using2" = yes ; then
4241 AC_DEFINE(HAVE_CPP_ACCESS_CHANGING_USING)
4244 dnl Check to see if we can resolve ambiguity with |using|.
4245 AC_CACHE_CHECK(whether the C++ \"using\" keyword resolves ambiguity,
4246 ac_cv_cpp_ambiguity_resolving_using,
4247 [AC_TRY_COMPILE(class X {
4248 public: int go(const X&) {return 3;}
4249 int jo(const X&) {return 3;}
4251 class Y : public X {
4252 public: int go(int) {return 2;}
4253 int jo(int) {return 2;}
4255 private: using X::go;
4258 ac_cv_cpp_ambiguity_resolving_using=yes,
4259 ac_cv_cpp_ambiguity_resolving_using=no)])
4260 if test "$ac_cv_cpp_ambiguity_resolving_using" = yes ; then
4261 AC_DEFINE(HAVE_CPP_AMBIGUITY_RESOLVING_USING)
4264 dnl Check to see if the |std| namespace is supported. If so, we'll want
4265 dnl to qualify any standard library calls with "std::" to ensure that
4266 dnl those functions can be resolved.
4267 AC_CACHE_CHECK(for \"std::\" namespace,
4268 ac_cv_cpp_namespace_std,
4269 [AC_TRY_COMPILE([#include <algorithm>],
4270 [return std::min(0, 1);],
4271 ac_cv_cpp_namespace_std=yes,
4272 ac_cv_cpp_namespace_std=no)])
4273 if test "$ac_cv_cpp_namespace_std" = yes ; then
4274 AC_DEFINE(HAVE_CPP_NAMESPACE_STD)
4277 dnl Older compilers are overly ambitious with respect to using the standard
4278 dnl template library's |operator!=()| when |operator==()| is defined. In
4279 dnl which case, defining |operator!=()| in addition to |operator==()| causes
4280 dnl ambiguity at compile-time. This test checks for that case.
4281 AC_CACHE_CHECK(whether standard template operator!=() is ambiguous,
4282 ac_cv_cpp_unambiguous_std_notequal,
4283 [AC_TRY_COMPILE([#include <algorithm>
4285 int operator==(const T1&, const T1&) { return 0; }
4286 int operator!=(const T1&, const T1&) { return 0; }],
4287 [T1 a,b; return a != b;],
4288 ac_cv_cpp_unambiguous_std_notequal=unambiguous,
4289 ac_cv_cpp_unambiguous_std_notequal=ambiguous)])
4290 if test "$ac_cv_cpp_unambiguous_std_notequal" = unambiguous ; then
4291 AC_DEFINE(HAVE_CPP_UNAMBIGUOUS_STD_NOTEQUAL)
4295 AC_CACHE_CHECK(for C++ reinterpret_cast,
4296 ac_cv_cpp_reinterpret_cast,
4297 [AC_TRY_COMPILE(struct X { int i; };
4298 struct Y { int i; };,
4299 X x; X*const z = &x;Y*y = reinterpret_cast<Y*>(z);,
4300 ac_cv_cpp_reinterpret_cast=yes,
4301 ac_cv_cpp_reinterpret_cast=no)])
4302 if test "$ac_cv_cpp_reinterpret_cast" = yes ; then
4303 AC_DEFINE(HAVE_CPP_NEW_CASTS)
4306 dnl See if a dynamic_cast to void* gives the most derived object.
4307 AC_CACHE_CHECK(for C++ dynamic_cast to void*,
4308 ac_cv_cpp_dynamic_cast_void_ptr,
4309 [AC_TRY_RUN([class X { int i; public: virtual ~X() { } };
4310 class Y { int j; public: virtual ~Y() { } };
4311 class Z : public X, public Y { int k; };
4317 return !((((void*)&mdo != (void*)subx) &&
4318 ((void*)&mdo == dynamic_cast<void*>(subx))) ||
4319 (((void*)&mdo != (void*)suby) &&
4320 ((void*)&mdo == dynamic_cast<void*>(suby))));
4322 ac_cv_cpp_dynamic_cast_void_ptr=yes,
4323 ac_cv_cpp_dynamic_cast_void_ptr=no,
4324 ac_cv_cpp_dynamic_cast_void_ptr=no)])
4325 if test "$ac_cv_cpp_dynamic_cast_void_ptr" = yes ; then
4326 AC_DEFINE(HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR)
4330 dnl note that this one is reversed - if the test fails, then
4331 dnl we require implementations of unused virtual methods. Which
4332 dnl really blows because it means we'll have useless vtable
4334 AC_CACHE_CHECK(whether C++ requires implementation of unused virtual methods,
4335 ac_cv_cpp_unused_required,
4336 [AC_TRY_LINK(class X {private: virtual void never_called();};,
4338 ac_cv_cpp_unused_required=no,
4339 ac_cv_cpp_unused_required=yes)])
4340 if test "$ac_cv_cpp_unused_required" = yes ; then
4341 AC_DEFINE(NEED_CPP_UNUSED_IMPLEMENTATIONS)
4345 dnl Some compilers have trouble comparing a constant reference to a templatized
4346 dnl class to zero, and require an explicit operator==() to be defined that takes
4347 dnl an int. This test separates the strong from the weak.
4349 AC_CACHE_CHECK(for trouble comparing to zero near std::operator!=(),
4350 ac_cv_trouble_comparing_to_zero,
4351 [AC_TRY_COMPILE([#include <algorithm>
4352 template <class T> class Foo {};
4354 template <class T> int operator==(const T2*, const T&) { return 0; }
4355 template <class T> int operator!=(const T2*, const T&) { return 0; }],
4356 [Foo<int> f; return (0 != f);],
4357 ac_cv_trouble_comparing_to_zero=no,
4358 ac_cv_trouble_comparing_to_zero=yes)])
4359 if test "$ac_cv_trouble_comparing_to_zero" = yes ; then
4360 AC_DEFINE(HAVE_CPP_TROUBLE_COMPARING_TO_ZERO)
4363 # try harder, when checking for __thread support, see bug 521750 comment #33 and below
4364 _SAVE_LDFLAGS=$LDFLAGS
4365 LDFLAGS="$LDFLAGS $DSO_PIC_CFLAGS $DSO_LDOPTS"
4366 AC_CACHE_CHECK(for __thread keyword for TLS variables,
4367 ac_cv_thread_keyword,
4368 [AC_TRY_LINK([__thread bool tlsIsMainThread = false;],
4369 [return tlsIsMainThread;],
4370 ac_cv_thread_keyword=yes,
4371 ac_cv_thread_keyword=no)])
4372 LDFLAGS=$_SAVE_LDFLAGS
4373 if test "$ac_cv_thread_keyword" = yes; then
4374 # mips builds fail with TLS variables because of a binutils bug.
4384 AC_DEFINE(HAVE_THREAD_TLS_KEYWORD)
4389 dnl Check for the existence of various allocation headers/functions
4392 AC_CHECK_HEADER(malloc.h, [MALLOC_H=malloc.h])
4393 if test "$MALLOC_H" = ""; then
4394 AC_CHECK_HEADER(malloc/malloc.h, [MALLOC_H=malloc/malloc.h])
4395 if test "$MALLOC_H" = ""; then
4396 AC_CHECK_HEADER(sys/malloc.h, [MALLOC_H=sys/malloc.h])
4399 if test "$MALLOC_H" != ""; then
4400 AC_DEFINE_UNQUOTED(MALLOC_H, <$MALLOC_H>)
4403 MOZ_ALLOCATING_FUNCS="strndup posix_memalign memalign valloc"
4404 AC_CHECK_FUNCS(strndup posix_memalign memalign valloc)
4406 dnl See if compiler supports some gcc-style attributes
4408 AC_CACHE_CHECK(for __attribute__((always_inline)),
4409 ac_cv_attribute_always_inline,
4411 [inline void f(void) __attribute__((always_inline));],
4412 ac_cv_attribute_always_inline=yes,
4413 ac_cv_attribute_always_inline=no)])
4415 AC_CACHE_CHECK(for __attribute__((malloc)),
4416 ac_cv_attribute_malloc,
4418 [void* f(int) __attribute__((malloc));],
4419 ac_cv_attribute_malloc=yes,
4420 ac_cv_attribute_malloc=no)])
4422 AC_CACHE_CHECK(for __attribute__((warn_unused_result)),
4423 ac_cv_attribute_warn_unused,
4425 [int f(void) __attribute__((warn_unused_result));],
4426 ac_cv_attribute_warn_unused=yes,
4427 ac_cv_attribute_warn_unused=no)])
4429 AC_CACHE_CHECK(for __attribute__((noreturn)),
4430 ac_cv_attribute_noreturn,
4432 [void f(void) __attribute__((noreturn));],
4433 ac_cv_attribute_noreturn=yes,
4434 ac_cv_attribute_noreturn=no)])
4436 dnl End of C++ language/feature checks
4439 dnl ========================================================
4440 dnl = Internationalization checks
4441 dnl ========================================================
4443 dnl Internationalization and Locale support is different
4444 dnl on various UNIX platforms. Checks for specific i18n
4445 dnl features go here.
4447 dnl check for LC_MESSAGES
4448 AC_CACHE_CHECK(for LC_MESSAGES,
4449 ac_cv_i18n_lc_messages,
4450 [AC_TRY_COMPILE([#include <locale.h>],
4451 [int category = LC_MESSAGES;],
4452 ac_cv_i18n_lc_messages=yes,
4453 ac_cv_i18n_lc_messages=no)])
4454 if test "$ac_cv_i18n_lc_messages" = yes; then
4455 AC_DEFINE(HAVE_I18N_LC_MESSAGES)
4458 AC_HAVE_FUNCS(localeconv)
4460 fi # SKIP_COMPILER_CHECKS
4463 if test -n "${CPU_ARCH}" -a -n "${TARGET_COMPILER_ABI}"; then
4464 TARGET_XPCOM_ABI="${CPU_ARCH}-${TARGET_COMPILER_ABI}"
4467 dnl Mozilla specific options
4468 dnl ========================================================
4469 dnl The macros used for command line options
4470 dnl are defined in build/autoconf/altoptions.m4.
4472 dnl If the compiler supports these attributes, define them as
4473 dnl convenience macros.
4474 if test "$ac_cv_attribute_always_inline" = yes ; then
4475 AC_DEFINE(NS_ALWAYS_INLINE, [__attribute__((always_inline))])
4477 AC_DEFINE(NS_ALWAYS_INLINE,)
4480 if test "$ac_cv_attribute_malloc" = yes ; then
4481 AC_DEFINE(NS_ATTR_MALLOC, [__attribute__((malloc))])
4483 AC_DEFINE(NS_ATTR_MALLOC,)
4486 if test "$ac_cv_attribute_warn_unused" = yes ; then
4487 AC_DEFINE(NS_WARN_UNUSED_RESULT, [__attribute__((warn_unused_result))])
4489 AC_DEFINE(NS_WARN_UNUSED_RESULT,)
4492 if test "$ac_cv_attribute_noreturn" = yes ; then
4493 AC_DEFINE(NS_NORETURN, [__attribute__((noreturn))])
4495 AC_DEFINE(NS_NORETURN,)
4498 dnl We can't run TRY_COMPILE tests on Windows, so hard-code some
4499 dnl features that Windows actually does support.
4501 if test -n "$SKIP_COMPILER_CHECKS"; then
4502 dnl Windows has malloc.h
4503 AC_DEFINE(MALLOC_H, [<malloc.h>])
4504 AC_DEFINE(HAVE_FORCEINLINE)
4505 AC_DEFINE(HAVE_LOCALECONV)
4506 fi # SKIP_COMPILER_CHECKS
4508 dnl ========================================================
4510 dnl = Check for external package dependencies
4512 dnl ========================================================
4513 MOZ_ARG_HEADER(External Packages)
4517 MOZ_ARG_WITH_STRING(libxul-sdk,
4518 [ --with-libxul-sdk=PFX Use the libXUL SDK at <PFX>],
4519 LIBXUL_SDK_DIR=$withval)
4521 if test "$LIBXUL_SDK_DIR" = "yes"; then
4522 AC_MSG_ERROR([--with-libxul-sdk must specify a path])
4523 elif test -n "$LIBXUL_SDK_DIR" -a "$LIBXUL_SDK_DIR" != "no"; then
4524 LIBXUL_SDK=`cd "$LIBXUL_SDK_DIR" && pwd`
4526 if test ! -f "$LIBXUL_SDK/include/xpcom-config.h"; then
4527 AC_MSG_ERROR([$LIBXUL_SDK/include/xpcom-config.h doesn't exist])
4532 AC_SUBST(LIBXUL_SDK)
4534 if test -n "$LIBXUL_SDK"; then
4535 LIBXUL_DIST="$LIBXUL_SDK"
4537 LIBXUL_DIST="$MOZ_BUILD_ROOT/dist"
4539 AC_SUBST(LIBXUL_DIST)
4543 MOZ_ARG_WITH_BOOL(system-libxul,
4544 [ --with-system-libxul Use system installed libxul SDK],
4547 if test -n "$SYSTEM_LIBXUL" -a -z "$MOZ_ENABLE_LIBXUL"; then
4548 AC_MSG_ERROR([--with-system-libxul needs --with-libxul-sdk])
4551 dnl ========================================================
4552 dnl = If NSPR was not detected in the system,
4553 dnl = use the one in the source tree (mozilla/nsprpub)
4554 dnl ========================================================
4555 MOZ_ARG_WITH_BOOL(system-nspr,
4556 [ --with-system-nspr Use system installed NSPR],
4557 _USE_SYSTEM_NSPR=1 )
4559 if test -n "$_USE_SYSTEM_NSPR"; then
4560 AM_PATH_NSPR(4.8.0, [MOZ_NATIVE_NSPR=1], [MOZ_NATIVE_NSPR=])
4563 if test -n "$MOZ_NATIVE_NSPR"; then
4564 _SAVE_CFLAGS=$CFLAGS
4565 CFLAGS="$CFLAGS $NSPR_CFLAGS"
4566 AC_TRY_COMPILE([#include "prtypes.h"],
4567 [#ifndef PR_STATIC_ASSERT
4568 #error PR_STATIC_ASSERT not defined or requires including prlog.h
4570 [MOZ_NATIVE_NSPR=1],
4571 AC_MSG_ERROR([system NSPR does not support PR_STATIC_ASSERT or including prtypes.h does not provide it]))
4572 CFLAGS=$_SAVE_CFLAGS
4574 if test "$OS_ARCH" = "WINCE"; then
4575 NSPR_CFLAGS="-I${LIBXUL_DIST}/include/nspr"
4576 NSPR_LIBS="${LIBXUL_DIST}/lib/nspr${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plc${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plds${NSPR_VERSION}.lib "
4577 elif test "$OS_ARCH" = "WINNT"; then
4578 NSPR_CFLAGS="-I${LIBXUL_DIST}/include/nspr"
4579 if test -n "$GNU_CC"; then
4580 NSPR_LIBS="-L${LIBXUL_DIST}/lib -lnspr${NSPR_VERSION} -lplc${NSPR_VERSION} -lplds${NSPR_VERSION}"
4582 NSPR_LIBS="${LIBXUL_DIST}/lib/nspr${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plc${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plds${NSPR_VERSION}.lib "
4585 NSPR_CFLAGS='`$(LIBXUL_DIST)/bin/nspr-config --prefix='${LIBXUL_DIST}' --includedir='${LIBXUL_DIST}'/include/nspr --cflags`'
4586 NSPR_LIBS='`$(LIBXUL_DIST)/bin/nspr-config --prefix='${LIBXUL_DIST}' --libdir='${LIBXUL_DIST}'/lib --libs`'
4590 dnl system libevent Support
4591 dnl ========================================================
4592 MOZ_ARG_WITH_STRING(system-libevent,
4593 [ --with-system-libevent=[PFX]
4594 Use system libevent [installed at prefix PFX]],
4595 LIBEVENT_DIR=$withval)
4597 _SAVE_CFLAGS=$CFLAGS
4598 _SAVE_LDFLAGS=$LDFLAGS
4600 if test -z "$LIBEVENT_DIR" -o "$LIBEVENT_DIR" = no; then
4601 MOZ_NATIVE_LIBEVENT=
4603 if test "${LIBEVENT_DIR}" = "yes"; then
4606 CFLAGS="-I${LIBEVENT_DIR}/include $CFLAGS"
4607 LDFLAGS="-L${LIBEVENT_DIR}/lib $LDFLAGS"
4608 AC_CHECK_HEADER(event.h,
4609 [if test ! -f "${LIBEVENT_DIR}/include/event.h"; then
4610 AC_MSG_ERROR([event.h found, but is not in ${LIBEVENT_DIR}/include])
4612 AC_MSG_ERROR([--with-system-libevent requested but event.h not found]))
4613 AC_CHECK_LIB(event, event_init,
4614 [MOZ_NATIVE_LIBEVENT=1
4615 MOZ_LIBEVENT_INCLUDES="${LIBEVENT_DIR}/include"
4616 MOZ_LIBEVENT_LIBS="-L${LIBEVENT_DIR}/lib -levent"],
4617 [MOZ_NATIVE_LIBEVENT= MOZ_LIBEVENT_INCLUDES= MOZ_LIBEVENT_LIBS=])
4619 CFLAGS=$_SAVE_CFLAGS
4620 LDFLAGS=$_SAVE_LDFLAGS
4623 AC_SUBST(MOZ_NATIVE_LIBEVENT)
4624 AC_SUBST(MOZ_LIBEVENT_INCLUDES)
4625 AC_SUBST(MOZ_LIBEVENT_LIBS)
4627 dnl ========================================================
4628 dnl = If NSS was not detected in the system,
4629 dnl = use the one in the source tree (mozilla/security/nss)
4630 dnl ========================================================
4632 MOZ_ARG_WITH_BOOL(system-nss,
4633 [ --with-system-nss Use system installed NSS],
4636 if test -n "$_USE_SYSTEM_NSS"; then
4637 AM_PATH_NSS(3.12.6, [MOZ_NATIVE_NSS=1], [MOZ_NATIVE_NSS=])
4640 if test -n "$MOZ_NATIVE_NSS"; then
4641 NSS_LIBS="$NSS_LIBS -lcrmf"
4643 NSS_CFLAGS='-I$(LIBXUL_DIST)/include/nss'
4645 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)crmf.\$(LIB_SUFFIX) \
4646 \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)smime$NSS_VERSION\$(DLL_SUFFIX) \
4647 \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)ssl$NSS_VERSION\$(DLL_SUFFIX) \
4648 \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)nss$NSS_VERSION\$(DLL_SUFFIX) \
4649 \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)nssutil$NSS_VERSION\$(DLL_SUFFIX)"
4651 if test -z "$GNU_CC" -a "$OS_ARCH" = "WINNT" -o "$OS_ARCH" = "WINCE" -o "$OS_ARCH" = "OS2"; then
4653 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)crmf.\$(LIB_SUFFIX) \
4654 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)smime$NSS_VERSION.\$(LIB_SUFFIX) \
4655 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)ssl$NSS_VERSION.\$(LIB_SUFFIX) \
4656 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)nss$NSS_VERSION.\$(LIB_SUFFIX) \
4657 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)nssutil$NSS_VERSION.\$(LIB_SUFFIX)"
4659 NSS_LIBS='$(LIBS_DIR)'" -lcrmf -lsmime$NSS_VERSION -lssl$NSS_VERSION -lnss$NSS_VERSION -lnssutil$NSS_VERSION"
4663 if test -z "$SKIP_LIBRARY_CHECKS"; then
4664 dnl system JPEG support
4665 dnl ========================================================
4666 MOZ_ARG_WITH_STRING(system-jpeg,
4667 [ --with-system-jpeg[=PFX]
4668 Use system libjpeg [installed at prefix PFX]],
4671 _SAVE_CFLAGS=$CFLAGS
4672 _SAVE_LDFLAGS=$LDFLAGS
4674 if test -n "${JPEG_DIR}" -a "${JPEG_DIR}" != "yes"; then
4675 CFLAGS="-I${JPEG_DIR}/include $CFLAGS"
4676 LDFLAGS="-L${JPEG_DIR}/lib $LDFLAGS"
4678 if test -z "$JPEG_DIR" -o "$JPEG_DIR" = no; then
4681 AC_CHECK_LIB(jpeg, jpeg_destroy_compress, [SYSTEM_JPEG=1 JPEG_LIBS="-ljpeg $JPEG_LIBS"], SYSTEM_JPEG=, $JPEG_LIBS)
4684 if test "$SYSTEM_JPEG" = 1; then
4685 LIBS="$JPEG_LIBS $LIBS"
4686 AC_TRY_COMPILE([ #include <stdio.h>
4687 #include <sys/types.h>
4688 #include <jpeglib.h> ],
4689 [ #if JPEG_LIB_VERSION < $MOZJPEG
4690 #error "Insufficient JPEG library version ($MOZJPEG required)."
4693 [SYSTEM_JPEG= JPEG_CFLAGS= JPEG_LIBS=])
4695 CFLAGS=$_SAVE_CFLAGS
4696 LDFLAGS=$_SAVE_LDFLAGS
4699 if test -n "${JPEG_DIR}" -a -d "${JPEG_DIR}" -a "$SYSTEM_JPEG" = 1; then
4700 JPEG_CFLAGS="-I${JPEG_DIR}/include"
4701 JPEG_LIBS="-L${JPEG_DIR}/lib ${JPEG_LIBS}"
4704 dnl system ZLIB support
4705 dnl ========================================================
4706 MOZ_ARG_WITH_STRING(system-zlib,
4707 [ --with-system-zlib[=PFX]
4708 Use system libz [installed at prefix PFX]],
4711 _SAVE_CFLAGS=$CFLAGS
4712 _SAVE_LDFLAGS=$LDFLAGS
4714 if test -n "${ZLIB_DIR}" -a "${ZLIB_DIR}" != "yes"; then
4715 CFLAGS="-I${ZLIB_DIR}/include $CFLAGS"
4716 LDFLAGS="-L${ZLIB_DIR}/lib $LDFLAGS"
4718 if test -z "$ZLIB_DIR" -o "$ZLIB_DIR" = no; then
4721 AC_CHECK_LIB(z, gzread, [SYSTEM_ZLIB=1 ZLIB_LIBS="-lz $ZLIB_LIBS"],
4722 [SYSTEM_ZLIB= ZLIB_CFLAGS= ZLIB_LIBS=], $ZLIB_LIBS)
4724 if test "$SYSTEM_ZLIB" = 1; then
4725 LIBS="$ZLIB_LIBS $LIBS"
4726 AC_TRY_COMPILE([ #include <stdio.h>
4728 #include <zlib.h> ],
4729 [ #if ZLIB_VERNUM < $MOZZLIB
4730 #error "Insufficient zlib version ($MOZZLIB required)."
4733 [SYSTEM_ZLIB= ZLIB_CFLAGS= ZLIB_LIBS=])
4735 CFLAGS=$_SAVE_CFLAGS
4736 LDFLAGS=$_SAVE_LDFLAGS
4739 if test "${ZLIB_DIR}" -a -d "${ZLIB_DIR}" -a "$SYSTEM_ZLIB" = 1; then
4740 ZLIB_CFLAGS="-I${ZLIB_DIR}/include"
4741 ZLIB_LIBS="-L${ZLIB_DIR}/lib ${ZLIB_LIBS}"
4744 dnl system BZIP2 Support
4745 dnl ========================================================
4746 MOZ_ARG_WITH_STRING(system-bz2,
4747 [ --with-system-bz2[=PFX]
4748 Use system libbz2 [installed at prefix PFX]],
4751 _SAVE_CFLAGS=$CFLAGS
4752 _SAVE_LDFLAGS=$LDFLAGS
4754 if test -n "${BZ2_DIR}" -a "${BZ2_DIR}" != "yes"; then
4755 CFLAGS="-I${BZ2_DIR}/include $CFLAGS"
4756 LDFLAGS="-L${BZ2_DIR}/lib $LDFLAGS"
4758 if test -z "$BZ2_DIR" -o "$BZ2_DIR" = no; then
4761 AC_CHECK_LIB(bz2, BZ2_bzread, [SYSTEM_BZ2=1 BZ2_LIBS="-lbz2"],
4762 [SYSTEM_BZ2= BZ2_CFLAGS= BZ2_LIBS=])
4764 CFLAGS=$_SAVE_CFLAGS
4765 LDFLAGS=$_SAVE_LDFLAGS
4768 if test "${BZ2_DIR}" -a -d "${BZ2_DIR}" -a "$SYSTEM_BZ2" = 1; then
4769 BZ2_CFLAGS="-I${BZ2_DIR}/include"
4770 BZ2_LIBS="-L${BZ2_DIR}/lib ${BZ2_LIBS}"
4773 dnl system PNG Support
4774 dnl ========================================================
4775 MOZ_ARG_WITH_STRING(system-png,
4776 [ --with-system-png[=PFX]
4777 Use system libpng [installed at prefix PFX]],
4780 _SAVE_CFLAGS=$CFLAGS
4781 _SAVE_LDFLAGS=$LDFLAGS
4783 CFLAGS="$ZLIB_CFLAGS $CFLAGS"
4784 LDFLAGS="$ZLIB_LIBS -lz $LDFLAGS"
4785 if test -n "${PNG_DIR}" -a "${PNG_DIR}" != "yes"; then
4786 CFLAGS="-I${PNG_DIR}/include $CFLAGS"
4787 LDFLAGS="-L${PNG_DIR}/lib $LDFLAGS"
4789 if test -z "$PNG_DIR" -o "$PNG_DIR" = no; then
4792 _SAVE_PNG_LIBS=$PNG_LIBS
4793 AC_CHECK_LIB(png, png_get_valid, [SYSTEM_PNG=1 PNG_LIBS="-lpng $PNG_LIBS"],
4794 AC_MSG_ERROR([--with-system-png requested but no working libpng found]),
4796 AC_CHECK_LIB(png, png_get_acTL, ,
4797 AC_MSG_ERROR([--with-system-png won't work because the system's libpng doesn't have APNG support]),
4800 if test "$SYSTEM_PNG" = 1; then
4801 LIBS="$PNG_LIBS $LIBS"
4802 AC_TRY_COMPILE([ #include <stdio.h>
4803 #include <sys/types.h>
4805 [ #if PNG_LIBPNG_VER < $MOZPNG
4806 #error "Insufficient libpng version ($MOZPNG required)."
4808 #ifndef PNG_UINT_31_MAX
4809 #error "Insufficient libpng version."
4812 AC_MSG_ERROR([--with-system-png requested but no working libpng found]))
4814 CFLAGS=$_SAVE_CFLAGS
4815 LDFLAGS=$_SAVE_LDFLAGS
4818 if test "${PNG_DIR}" -a -d "${PNG_DIR}" -a "$SYSTEM_PNG" = 1; then
4819 PNG_CFLAGS="-I${PNG_DIR}/include"
4820 PNG_LIBS="-L${PNG_DIR}/lib ${PNG_LIBS}"
4823 fi # SKIP_LIBRARY_CHECKS
4825 dnl system HunSpell Support
4826 dnl ========================================================
4827 MOZ_ARG_ENABLE_BOOL(system-hunspell,
4828 [ --enable-system-hunspell
4829 Use system hunspell (located with pkgconfig)],
4832 if test -n "$SYSTEM_HUNSPELL"; then
4833 PKG_CHECK_MODULES(MOZ_HUNSPELL, hunspell)
4836 AC_SUBST(SYSTEM_HUNSPELL)
4838 dnl ========================================================
4839 dnl Java SDK support
4840 dnl ========================================================
4842 MOZ_ARG_WITH_STRING(java-include-path,
4843 [ --with-java-include-path=dir
4844 Location of Java SDK headers],
4845 JAVA_INCLUDE_PATH=$withval)
4848 MOZ_ARG_WITH_STRING(java-bin-path,
4849 [ --with-java-bin-path=dir
4850 Location of Java binaries (java, javac, jar)],
4851 JAVA_BIN_PATH=$withval)
4853 dnl ========================================================
4857 dnl ========================================================
4859 MOZ_ARG_HEADER(Application)
4863 MOZ_ACTIVEX_SCRIPTING_SUPPORT=
4864 MOZ_BRANDING_DIRECTORY=
4865 MOZ_OFFICIAL_BRANDING=
4867 MOZ_IMG_DECODERS_DEFAULT="png gif jpeg bmp icon"
4868 MOZ_IMG_ENCODERS_DEFAULT="png jpeg"
4877 MOZ_AUTH_EXTENSION=1
4878 MOZ_NO_ACTIVEX_SUPPORT=1
4879 MOZ_NO_INSPECTOR_APIS=
4894 MOZ_PLAINTEXT_EDITOR_ONLY=
4896 MOZ_PREF_EXTENSIONS=1
4897 MOZ_PROFILELOCKING=1
4910 MOZ_TOOLKIT_SEARCH=1
4912 MOZ_UNIVERSALCHARDET=1
4914 MOZ_USE_NATIVE_UCONV=
4916 MOZ_XSLT_STANDALONE=
4925 NECKO_PROTOCOLS_DEFAULT="about data file ftp http res viewsource"
4928 XPC_IDISPATCH_SUPPORT=
4931 case "$target_os" in
4932 darwin*|*wince*|*winmo*)
4940 case "$target_os" in
4941 msvc*|mks*|cygwin*|mingw*)
4943 if test -z "$GNU_CC"; then
4944 if test "$MOZ_WINSDK_TARGETVER" -lt "06000000"; then
4948 if test -n "$NS_ENABLE_TSF"; then
4949 AC_DEFINE(NS_ENABLE_TSF)
4963 MOZ_THEME_FASTSTRIPE=1
4969 MOZ_ARG_ENABLE_STRING(application,
4970 [ --enable-application=APP
4974 content/xslt (Standalone Transformiix XSLT)
4975 netwerk (Standalone Necko)
4976 tools/update-packaging (AUS-related packaging tools)
4977 standalone (use this for standalone
4978 xpcom/xpconnect or to manually drive a build)],
4979 [ MOZ_BUILD_APP=$enableval ] )
4981 MOZ_ARG_WITH_STRING(xulrunner-stub-name,
4982 [ --with-xulrunner-stub-name=appname Create the xulrunner stub with the given name],
4983 XULRUNNER_STUB_NAME=$withval)
4985 if test -z "$XULRUNNER_STUB_NAME"; then
4986 case "$target_os" in
4988 XULRUNNER_STUB_NAME=xulrunner
4991 XULRUNNER_STUB_NAME=xulrunner-stub
4994 AC_SUBST(XULRUNNER_STUB_NAME)
4996 if test -z "$MOZ_BUILD_APP"; then
4997 AC_MSG_ERROR([--enable-application=APP was not specified and is required.])
4999 # We have a valid application only if it has a build.mk file in its top
5001 if test ! -f "${srcdir}/${MOZ_BUILD_APP}/build.mk" ; then
5002 AC_MSG_ERROR([--enable-application value not recognized (${MOZ_BUILD_APP}/build.mk does not exist).])
5006 # Allow the application to influence configure with a confvars.sh script.
5008 AC_MSG_CHECKING([if app-specific confvars.sh exists])
5009 if test -f "${srcdir}/${MOZ_BUILD_APP}/confvars.sh" ; then
5010 AC_MSG_RESULT([${srcdir}/${MOZ_BUILD_APP}/confvars.sh])
5011 . "${srcdir}/${MOZ_BUILD_APP}/confvars.sh"
5016 # Now is a good time to test for logic errors, define mismatches, etc.
5017 case "$MOZ_BUILD_APP" in
5019 if test "$LIBXUL_SDK"; then
5020 AC_MSG_ERROR([Building XULRunner --with-libxul-sdk doesn't make sense; XULRunner provides the libxul SDK.])
5025 # Special cases where we need to AC_DEFINE something. Also a holdover for apps
5026 # that haven't made a confvars.sh yet. Don't add new stuff here, use
5028 case "$MOZ_BUILD_APP" in
5030 AC_DEFINE(MOZ_PHOENIX)
5034 AC_DEFINE(MOZ_XULRUNNER)
5042 MOZ_APP_NAME=mozilla
5043 MOZ_APP_DISPLAYNAME=Mozilla
5044 MOZ_APP_VERSION=$MOZILLA_VERSION
5049 AC_SUBST(MOZ_BUILD_APP)
5050 AC_SUBST(MOZ_PHOENIX)
5051 AC_SUBST(MOZ_XULRUNNER)
5053 AC_DEFINE_UNQUOTED(MOZ_BUILD_APP,$MOZ_BUILD_APP)
5055 dnl ========================================================
5057 dnl = Toolkit Options
5059 dnl ========================================================
5060 MOZ_ARG_HEADER(Toolkit Options)
5062 dnl ========================================================
5063 dnl = Select the default toolkit
5064 dnl ========================================================
5065 MOZ_ARG_ENABLE_STRING(default-toolkit,
5066 [ --enable-default-toolkit=TK
5067 Select default toolkit
5068 Platform specific defaults:
5070 Mac OS X - cairo-cocoa
5071 Neutrino/QNX - photon
5073 Win32/WinCE - cairo-windows
5074 Gtk2 with DirectFB - cairo-gtk2-dfb
5077 [ _DEFAULT_TOOLKIT=$enableval ],
5078 [ _DEFAULT_TOOLKIT=$_PLATFORM_DEFAULT_TOOLKIT])
5080 if test "$_DEFAULT_TOOLKIT" = "photon" \
5081 -o "$_DEFAULT_TOOLKIT" = "cairo-windows" \
5082 -o "$_DEFAULT_TOOLKIT" = "cairo-gtk2" \
5083 -o "$_DEFAULT_TOOLKIT" = "cairo-gtk2-dfb" \
5084 -o "$_DEFAULT_TOOLKIT" = "cairo-gtk2-x11" \
5085 -o "$_DEFAULT_TOOLKIT" = "cairo-qt" \
5086 -o "$_DEFAULT_TOOLKIT" = "cairo-beos" \
5087 -o "$_DEFAULT_TOOLKIT" = "cairo-os2" \
5088 -o "$_DEFAULT_TOOLKIT" = "cairo-cocoa" \
5089 -o "$_DEFAULT_TOOLKIT" = "cairo-android"
5091 dnl nglayout only supports building with one toolkit,
5092 dnl so ignore everything after the first comma (",").
5093 MOZ_WIDGET_TOOLKIT=`echo "$_DEFAULT_TOOLKIT" | sed -e "s/,.*$//"`
5095 AC_MSG_ERROR([You must specify a default toolkit (perhaps $_PLATFORM_DEFAULT_TOOLKIT).])
5098 dnl ========================================================
5099 dnl = Enable the toolkit as needed =
5100 dnl ========================================================
5102 case "$MOZ_WIDGET_TOOLKIT" in
5105 AC_DEFINE(MOZ_WIDGET_PHOTON)
5109 MOZ_WIDGET_TOOLKIT=windows
5118 cairo-gtk2|cairo-gtk2-x11)
5119 MOZ_WIDGET_TOOLKIT=gtk2
5121 MOZ_ENABLE_XREMOTE=1
5129 TK_CFLAGS='$(MOZ_GTK2_CFLAGS)'
5130 TK_LIBS='$(MOZ_GTK2_LIBS)'
5131 AC_DEFINE(MOZ_WIDGET_GTK2)
5135 MOZ_WIDGET_TOOLKIT=gtk2
5142 TK_CFLAGS='$(MOZ_GTK2_CFLAGS)'
5143 TK_LIBS='$(MOZ_GTK2_LIBS)'
5144 AC_DEFINE(MOZ_WIDGET_GTK2)
5145 if test "$no_x" != "yes"; then
5146 AC_MSG_WARN([Disabling X when DirectFB is specified.])
5152 MOZ_WIDGET_TOOLKIT=qt
5154 MOZ_ENABLE_XREMOTE=1
5164 TK_CFLAGS='$(MOZ_QT_CFLAGS)'
5165 TK_LIBS='$(MOZ_QT_LIBS)'
5166 AC_DEFINE(MOZ_WIDGET_QT)
5170 MOZ_WIDGET_TOOLKIT=beos
5172 TK_CFLAGS='$(MOZ_CAIRO_CFLAGS)'
5173 TK_LIBS='$(MOZ_CAIRO_LIBS)'
5177 MOZ_WIDGET_TOOLKIT=os2
5179 TK_CFLAGS='$(MOZ_CAIRO_CFLAGS)'
5180 TK_LIBS='$(MOZ_CAIRO_LIBS)'
5184 MOZ_WIDGET_TOOLKIT=cocoa
5185 AC_DEFINE(MOZ_WIDGET_COCOA)
5186 MOZ_USER_DIR="Mozilla"
5187 AC_DEFINE(XP_MACOSX)
5188 TK_LIBS='-framework QuartzCore -framework Carbon -framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework AddressBook -framework OpenGL'
5189 TK_CFLAGS="-DNO_X11"
5190 LDFLAGS="$LDFLAGS -framework Cocoa -lobjc"
5191 CFLAGS="$CFLAGS $TK_CFLAGS"
5192 CXXFLAGS="$CXXFLAGS $TK_CFLAGS"
5193 LIBXUL_LIBS='$(XPCOM_FROZEN_LDOPTS) $(LIBXUL_DIST)/bin/XUL'
5194 MOZ_FS_LAYOUT=bundle
5199 AC_DEFINE(MOZ_WIDGET_ANDROID)
5200 MOZ_WIDGET_TOOLKIT=android
5206 if test "$MOZ_ENABLE_XREMOTE"; then
5207 AC_DEFINE(MOZ_ENABLE_XREMOTE)
5210 if test "$COMPILE_ENVIRONMENT"; then
5211 if test "$MOZ_ENABLE_GTK2"; then
5212 if test "$MOZ_X11"; then
5213 GDK_PACKAGES=gdk-x11-2.0
5214 elif test "$MOZ_DFB"; then
5215 PKG_CHECK_MODULES(MOZ_DFB, directfb >= 1.1.0)
5216 GDK_PACKAGES=directfb
5219 PKG_CHECK_MODULES(MOZ_GTK2, gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 gobject-2.0 $GDK_PACKAGES)
5222 fi # COMPILE_ENVIRONMENT
5224 AC_SUBST(MOZ_FS_LAYOUT)
5226 dnl ========================================================
5227 dnl Use ARM userspace kernel helpers; tell NSPR to enable
5228 dnl their usage and use them in spidermonkey.
5229 dnl ========================================================
5230 MOZ_ARG_WITH_BOOL(arm-kuser,
5231 [ --with-arm-kuser Use kuser helpers (Linux/ARM only -- requires kernel 2.6.13 or later)],
5233 if test -n "$USE_ARM_KUSER"; then
5234 AC_DEFINE(USE_ARM_KUSER)
5237 dnl ========================================================
5238 dnl = startup-notification support module
5239 dnl ========================================================
5241 if test "$MOZ_ENABLE_GTK2"
5243 MOZ_ENABLE_STARTUP_NOTIFICATION=
5245 MOZ_ARG_ENABLE_BOOL(startup-notification,
5246 [ --enable-startup-notification
5247 Enable startup-notification support (default: disabled) ],
5248 MOZ_ENABLE_STARTUP_NOTIFICATION=force,
5249 MOZ_ENABLE_STARTUP_NOTIFICATION=)
5250 if test "$MOZ_ENABLE_STARTUP_NOTIFICATION"
5252 PKG_CHECK_MODULES(MOZ_STARTUP_NOTIFICATION,
5253 libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_VERSION,
5254 [MOZ_ENABLE_STARTUP_NOTIFICATION=1], [
5255 if test "$MOZ_ENABLE_STARTUP_NOTIFICATION" = "force"
5257 AC_MSG_ERROR([* * * Could not find startup-notification >= $STARTUP_NOTIFICATION_VERSION])
5259 MOZ_ENABLE_STARTUP_NOTIFICATION=
5263 if test "$MOZ_ENABLE_STARTUP_NOTIFICATION"; then
5264 AC_DEFINE(MOZ_ENABLE_STARTUP_NOTIFICATION)
5267 TK_LIBS="$TK_LIBS $MOZ_STARTUP_NOTIFICATION_LIBS"
5269 AC_SUBST(MOZ_ENABLE_STARTUP_NOTIFICATION)
5270 AC_SUBST(MOZ_STARTUP_NOTIFICATION_CFLAGS)
5271 AC_SUBST(MOZ_STARTUP_NOTIFICATION_LIBS)
5273 dnl ========================================================
5275 dnl ========================================================
5276 if test "$MOZ_ENABLE_QT"
5278 MOZ_ARG_WITH_STRING(qtdir,
5279 [ --with-qtdir=\$dir Specify Qt directory ],
5282 if test -z "$QTDIR"; then
5283 PKG_CHECK_MODULES(MOZ_QT, QtGui QtNetwork QtCore QtOpenGL)
5284 AC_CHECK_PROGS(HOST_MOC, moc, "")
5286 MOZ_QT_LIBS="-L$QTDIR/lib/ -lQtGui -lQtNetwork -lQtCore -lQtDBus -lQtXml -lQtOpenGL"
5288 MOZ_QT_CFLAGS="-DQT_SHARED"
5289 MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include"
5290 MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/Qt"
5291 MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtGui"
5292 MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtCore"
5293 MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtNetwork"
5294 MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtDBus"
5295 MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtXml"
5296 HOST_MOC="$QTDIR/bin/moc"
5298 if test -z "$HOST_MOC"; then
5299 AC_MSG_ERROR([No acceptable moc preprocessor found. Qt SDK is not installed or --with-qt is
5305 AC_SUBST(GTK_CONFIG)
5309 AC_SUBST(MOZ_ENABLE_GTK2)
5310 AC_SUBST(MOZ_ENABLE_PHOTON)
5311 AC_SUBST(MOZ_ENABLE_QT)
5312 AC_SUBST(MOZ_ENABLE_XREMOTE)
5313 AC_SUBST(MOZ_GTK2_CFLAGS)
5314 AC_SUBST(MOZ_GTK2_LIBS)
5315 AC_SUBST(MOZ_QT_CFLAGS)
5316 AC_SUBST(MOZ_QT_LIBS)
5317 AC_SUBST(MOZ_ENABLE_MEEGOTOUCH)
5324 dnl ========================================================
5326 dnl = Components & Features
5328 dnl ========================================================
5329 MOZ_ARG_HEADER(Components and Features)
5331 dnl ========================================================
5333 dnl ========================================================
5334 MOZ_ARG_ENABLE_STRING(ui-locale,
5335 [ --enable-ui-locale=ab-CD
5336 Select the user interface locale (default: en-US)],
5337 MOZ_UI_LOCALE=$enableval )
5338 AC_SUBST(MOZ_UI_LOCALE)
5340 dnl ========================================================
5341 dnl = Trademarked Branding
5342 dnl ========================================================
5343 MOZ_ARG_ENABLE_BOOL(official-branding,
5344 [ --enable-official-branding
5345 Enable Official mozilla.org Branding
5346 Do not distribute builds with
5347 --enable-official-branding unless you have
5348 permission to use trademarks per
5349 http://www.mozilla.org/foundation/trademarks/ .],
5351 if test -z "$MOZ_OFFICIAL_BRANDING_DIRECTORY"; then
5352 AC_MSG_ERROR([You must specify MOZ_OFFICIAL_BRANDING_DIRECTORY to use --enable-official-branding.])
5354 MOZ_BRANDING_DIRECTORY=${MOZ_OFFICIAL_BRANDING_DIRECTORY}
5355 MOZ_OFFICIAL_BRANDING=1
5357 ], MOZ_OFFICIAL_BRANDING=)
5359 AC_SUBST(MOZ_OFFICIAL_BRANDING)
5360 if test -n "$MOZ_OFFICIAL_BRANDING"; then
5361 AC_DEFINE(MOZ_OFFICIAL_BRANDING)
5364 MOZ_ARG_WITH_STRING(branding,
5365 [ --with-branding=dir Use branding from the specified directory.],
5366 MOZ_BRANDING_DIRECTORY=$withval)
5368 REAL_BRANDING_DIRECTORY="${MOZ_BRANDING_DIRECTORY}"
5369 if test -z "$REAL_BRANDING_DIRECTORY"; then
5370 REAL_BRANDING_DIRECTORY=${MOZ_BUILD_APP}/branding/nightly
5373 if test -f "${_topsrcdir}/$REAL_BRANDING_DIRECTORY/configure.sh"; then
5374 . "${_topsrcdir}/$REAL_BRANDING_DIRECTORY/configure.sh"
5377 AC_SUBST(MOZ_BRANDING_DIRECTORY)
5379 dnl ========================================================
5380 dnl = Distribution ID
5381 dnl ========================================================
5382 MOZ_ARG_WITH_STRING(distribution-id,
5383 [ --with-distribution-id=ID
5384 Set distribution-specific id (default=org.mozilla)],
5385 [ val=`echo $withval`
5386 MOZ_DISTRIBUTION_ID="$val"])
5388 if test -z "$MOZ_DISTRIBUTION_ID"; then
5389 MOZ_DISTRIBUTION_ID="org.mozilla"
5392 AC_DEFINE_UNQUOTED(MOZ_DISTRIBUTION_ID,"$MOZ_DISTRIBUTION_ID")
5393 AC_SUBST(MOZ_DISTRIBUTION_ID)
5396 dnl ========================================================
5397 dnl complex text support off by default
5398 dnl ========================================================
5399 MOZ_ARG_DISABLE_BOOL(pango,
5400 [ --disable-pango Disable usage of Pango ],
5404 dnl ========================================================
5406 dnl ========================================================
5407 if test "$MOZ_ENABLE_GTK2"
5411 PKG_CHECK_MODULES(_PANGOCHK, pango >= $PANGO_VERSION)
5413 PKG_CHECK_MODULES(MOZ_PANGO, pango >= $PANGO_VERSION pangoft2 >= $PANGO_VERSION)
5414 AC_SUBST(MOZ_PANGO_CFLAGS)
5415 AC_SUBST(MOZ_PANGO_LIBS)
5416 if test "$MOZ_PANGO"
5418 AC_DEFINE(MOZ_PANGO)
5420 PKG_CHECK_MODULES(FT2, freetype2 > 6.1.0 fontconfig)
5421 AC_SUBST(FT2_CFLAGS)
5426 if test "$MOZ_ENABLE_QT"
5428 if test "$MOZ_PANGO"
5430 PKG_CHECK_MODULES(MOZ_PANGO, [pango >= $PANGO_VERSION pangoft2 >= $PANGO_VERSION],
5432 AC_SUBST(MOZ_PANGO_CFLAGS)
5433 AC_SUBST(MOZ_PANGO_LIBS)
5434 AC_DEFINE(MOZ_PANGO)
5437 echo "Pango library not found, will use FT2 font engine"
5444 dnl ========================================================
5445 dnl = GnomeVFS, GIO and GConf support module
5446 dnl ========================================================
5450 dnl build the gnomevfs extension by default only when the
5451 dnl GTK2 toolkit is in use.
5452 if test "$MOZ_ENABLE_GTK2"
5454 MOZ_ENABLE_GNOMEVFS=1
5458 dnl ========================================================
5459 dnl = GnomeVFS support module
5460 dnl ========================================================
5461 MOZ_ARG_DISABLE_BOOL(gnomevfs,
5462 [ --disable-gnomevfs Disable GnomeVFS support ],
5463 MOZ_ENABLE_GNOMEVFS=,
5464 MOZ_ENABLE_GNOMEVFS=force)
5466 if test "$MOZ_ENABLE_GNOMEVFS"
5468 PKG_CHECK_MODULES(MOZ_GNOMEVFS, gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION,[
5469 MOZ_GNOMEVFS_LIBS=`echo $MOZ_GNOMEVFS_LIBS | sed 's/-llinc\>//'`
5470 MOZ_ENABLE_GNOMEVFS=1
5471 AC_DEFINE(MOZ_ENABLE_GNOMEVFS)
5473 if test "$MOZ_ENABLE_GNOMEVFS" = "force"
5475 AC_MSG_ERROR([* * * Could not find gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION])
5477 MOZ_ENABLE_GNOMEVFS=
5480 if test `echo "$MOZ_EXTENSIONS" | grep -c gnomevfs` -ne 0; then
5481 PKG_CHECK_MODULES(MOZ_GNOMEVFS, gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION,[
5482 MOZ_GNOMEVFS_LIBS=`echo $MOZ_GNOMEVFS_LIBS | sed 's/-llinc\>//'`
5487 AC_SUBST(MOZ_ENABLE_GNOMEVFS)
5488 AC_SUBST(MOZ_GNOMEVFS_CFLAGS)
5489 AC_SUBST(MOZ_GNOMEVFS_LIBS)
5491 dnl ========================================================
5492 dnl = GIO support module
5493 dnl ========================================================
5494 MOZ_ARG_ENABLE_BOOL(gio,
5495 [ --enable-gio Enable GIO support (default: disabled)],
5496 MOZ_ENABLE_GIO=force,
5499 if test "$MOZ_ENABLE_GIO" -a "$MOZ_ENABLE_GTK2"
5501 PKG_CHECK_MODULES(MOZ_GIO, gio-2.0 >= $GIO_VERSION,[
5502 MOZ_GIO_LIBS=`echo $MOZ_GIO_LIBS | sed 's/-llinc\>//'`
5504 AC_DEFINE(MOZ_ENABLE_GIO)
5506 if test "$MOZ_ENABLE_GIO" = "force"
5508 AC_MSG_ERROR([* * * Could not find gio-2.0 >= $GIO_VERSION])
5514 AC_SUBST(MOZ_ENABLE_GIO)
5515 AC_SUBST(MOZ_GIO_CFLAGS)
5516 AC_SUBST(MOZ_GIO_LIBS)
5518 dnl ========================================================
5519 dnl = GConf support module
5520 dnl ========================================================
5521 if test "$MOZ_ENABLE_GCONF"
5523 PKG_CHECK_MODULES(MOZ_GCONF, gconf-2.0 >= $GCONF_VERSION gobject-2.0 ,[
5524 MOZ_GCONF_LIBS=`echo $MOZ_GCONF_LIBS | sed 's/-llinc\>//'`
5527 if test "$MOZ_ENABLE_GCONF" = "force"
5529 AC_MSG_ERROR([* * * Could not find gconf-2.0 ])
5535 if test "$MOZ_ENABLE_GCONF"; then
5536 AC_DEFINE(MOZ_ENABLE_GCONF)
5539 AC_SUBST(MOZ_ENABLE_GCONF)
5540 AC_SUBST(MOZ_GCONF_CFLAGS)
5541 AC_SUBST(MOZ_GCONF_LIBS)
5544 dnl ========================================================
5545 dnl = libproxy support
5546 dnl ========================================================
5548 if test "$MOZ_ENABLE_GTK2"
5550 MOZ_ENABLE_LIBPROXY=
5552 MOZ_ARG_ENABLE_BOOL(libproxy,
5553 [ --enable-libproxy Enable libproxy support ],
5554 MOZ_ENABLE_LIBPROXY=1,
5555 MOZ_ENABLE_LIBPROXY=)
5557 if test "$MOZ_ENABLE_LIBPROXY"
5559 PKG_CHECK_MODULES(MOZ_LIBPROXY, libproxy-1.0)
5560 AC_DEFINE(MOZ_ENABLE_LIBPROXY)
5563 AC_SUBST(MOZ_ENABLE_LIBPROXY)
5564 AC_SUBST(MOZ_LIBPROXY_CFLAGS)
5565 AC_SUBST(MOZ_LIBPROXY_LIBS)
5567 dnl ========================================================
5568 dnl = libnotify support
5569 dnl ========================================================
5571 if test "$MOZ_ENABLE_GTK2"
5573 MOZ_ENABLE_LIBNOTIFY=1
5575 MOZ_ARG_DISABLE_BOOL(libnotify,
5576 [ --disable-libnotify Disable libnotify support ],
5577 MOZ_ENABLE_LIBNOTIFY=,
5578 MOZ_ENABLE_LIBNOTIFY=1)
5580 if test "$MOZ_ENABLE_LIBNOTIFY"
5582 AC_DEFINE(MOZ_ENABLE_LIBNOTIFY)
5586 if test -z "$SKIP_LIBRARY_CHECKS"
5588 if test "$MOZ_ENABLE_GTK2"
5590 if test "$MOZ_ENABLE_LIBNOTIFY"
5592 PKG_CHECK_MODULES(MOZ_LIBNOTIFY, libnotify >= $LIBNOTIFY_VERSION)
5596 AC_SUBST(MOZ_ENABLE_LIBNOTIFY)
5597 AC_SUBST(MOZ_LIBNOTIFY_CFLAGS)
5598 AC_SUBST(MOZ_LIBNOTIFY_LIBS)
5600 dnl ========================================================
5601 dnl = GNOME component (mozgnome)
5602 dnl ========================================================
5604 # The GNOME component is built if one of
5605 # gnome-vfs, gio, gconf or libnotify is available.
5606 if test "$MOZ_ENABLE_GCONF" -o \
5607 "$MOZ_ENABLE_GNOMEVFS" -o \
5608 "$MOZ_ENABLE_GIO" -o \
5609 "$MOZ_ENABLE_LIBNOTIFY"; then
5610 MOZ_ENABLE_GNOME_COMPONENT=1
5612 MOZ_ENABLE_GNOME_COMPONENT=
5614 AC_SUBST(MOZ_ENABLE_GNOME_COMPONENT)
5616 dnl ========================================================
5617 dnl = libgnomeui support module
5618 dnl ========================================================
5620 if test "$MOZ_ENABLE_GTK2"
5622 MOZ_ENABLE_GNOMEUI=1
5624 MOZ_ARG_DISABLE_BOOL(gnomeui,
5625 [ --disable-gnomeui Disable libgnomeui support (default: auto, optional at runtime) ],
5626 MOZ_ENABLE_GNOMEUI=,
5627 MOZ_ENABLE_GNOMEUI=force)
5629 if test "$MOZ_ENABLE_GNOMEUI"
5631 PKG_CHECK_MODULES(MOZ_GNOMEUI, libgnomeui-2.0 >= $GNOMEUI_VERSION,
5633 MOZ_GNOMEUI_LIBS=`echo $MOZ_GNOMEUI_LIBS | sed 's/-llinc\>//'`
5634 MOZ_ENABLE_GNOMEUI=1
5636 if test "$MOZ_ENABLE_GNOMEUI" = "force"
5638 AC_MSG_ERROR([* * * Could not find libgnomeui-2.0 >= $GNOMEUI_VERSION])
5644 if test "$MOZ_ENABLE_GNOMEUI"; then
5645 AC_DEFINE(MOZ_ENABLE_GNOMEUI)
5649 AC_SUBST(MOZ_ENABLE_GNOMEUI)
5650 AC_SUBST(MOZ_GNOMEUI_CFLAGS)
5651 AC_SUBST(MOZ_GNOMEUI_LIBS)
5653 dnl ========================================================
5655 dnl ========================================================
5657 if test "$MOZ_ENABLE_GTK2" -o "$MOZ_ENABLE_QT"
5661 MOZ_ARG_DISABLE_BOOL(dbus,
5662 [ --disable-dbus Disable dbus support ],
5666 if test "$MOZ_ENABLE_DBUS"
5668 PKG_CHECK_MODULES(MOZ_DBUS, dbus-1 >= $DBUS_VERSION)
5669 PKG_CHECK_MODULES(MOZ_DBUS_GLIB, dbus-glib-1 >= $DBUS_VERSION)
5670 AC_DEFINE(MOZ_ENABLE_DBUS)
5673 AC_SUBST(MOZ_ENABLE_DBUS)
5674 AC_SUBST(MOZ_DBUS_CFLAGS)
5675 AC_SUBST(MOZ_DBUS_LIBS)
5676 AC_SUBST(MOZ_DBUS_GLIB_CFLAGS)
5677 AC_SUBST(MOZ_DBUS_GLIB_LIBS)
5679 dnl ========================================================
5680 dnl = Build Personal Security Manager
5681 dnl ========================================================
5682 MOZ_ARG_DISABLE_BOOL(crypto,
5683 [ --disable-crypto Disable crypto support (Personal Security Manager)],
5687 dnl ========================================================
5688 dnl = JS Debugger XPCOM component (js/jsd)
5689 dnl ========================================================
5690 MOZ_ARG_DISABLE_BOOL(jsd,
5691 [ --disable-jsd Disable JavaScript debug library],
5696 dnl ========================================================
5697 dnl = Disable IPC support for tabs and plugins
5698 dnl ========================================================
5699 MOZ_ARG_DISABLE_BOOL(ipc,
5700 [ --disable-ipc Disable IPC supports for tabs and plugins],
5704 if test -n "$MOZ_IPC"; then
5710 dnl ========================================================
5711 dnl = Enable IPDL's "expensive" unit tests
5712 dnl ========================================================
5715 MOZ_ARG_ENABLE_BOOL(ipdl-tests,
5716 [ --enable-ipdl-tests Enable expensive IPDL tests],
5720 if test -z "$MOZ_IPC" -a -n "$MOZ_IPDL_TESTS"; then
5721 AC_MSG_ERROR([--enable-ipdl-tests requires --enable-ipc])
5724 if test -n "$MOZ_IPDL_TESTS"; then
5725 AC_DEFINE(MOZ_IPDL_TESTS)
5728 AC_SUBST(MOZ_IPDL_TESTS)
5730 dnl ========================================================
5731 dnl = Disable plugin support
5732 dnl ========================================================
5733 MOZ_ARG_DISABLE_BOOL(plugins,
5734 [ --disable-plugins Disable plugins support],
5738 dnl ========================================================
5739 dnl = Disable building dbm
5740 dnl ========================================================
5741 MOZ_ARG_DISABLE_BOOL(dbm,
5742 [ --disable-dbm Disable building dbm],
5746 dnl bi-directional support always on
5750 dnl ========================================================
5751 dnl view source support on by default
5752 dnl ========================================================
5753 if test "$MOZ_VIEW_SOURCE"; then
5754 AC_DEFINE(MOZ_VIEW_SOURCE)
5757 dnl ========================================================
5758 dnl accessibility support on by default on all platforms
5760 dnl ========================================================
5761 MOZ_ARG_DISABLE_BOOL(accessibility,
5762 [ --disable-accessibility Disable accessibility support (off by default on OS X)],
5765 if test "$ACCESSIBILITY"; then
5766 AC_DEFINE(ACCESSIBILITY)
5769 if test -n "$ACCESSIBILITY" -a "$COMPILE_ENVIRONMENT" = "1"; then
5771 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
5772 if test "$ac_cv_header_atlbase_h" = "no"; then
5773 AC_MSG_ERROR([System header atlbase.h is not available. See http://developer.mozilla.org/en/docs/atlbase.h for details on fixing this problem.])
5775 if test "$ac_cv_header_oleacc_idl" = "no"; then
5776 AC_MSG_ERROR([System header oleacc.idl is not available. See http://developer.mozilla.org/en/docs/oleacc.idl for details on fixing this problem.])
5782 dnl ========================================================
5783 dnl xpcom js loader support on by default
5784 dnl ========================================================
5785 if test "$MOZ_JSLOADER"; then
5786 AC_DEFINE(MOZ_JSLOADER)
5789 dnl ========================================================
5790 dnl Disable printing
5791 dnl ========================================================
5792 MOZ_ARG_DISABLE_BOOL(printing,
5793 [ --disable-printing Disable printing support],
5797 if test "$MOZ_WIDGET_TOOLKIT" = "qt"; then
5798 AC_MSG_WARN([Printing does not work with Qt at this time. Omitting printing support.])
5802 if test "$NS_PRINTING"; then
5803 AC_DEFINE(NS_PRINTING)
5804 AC_DEFINE(NS_PRINT_PREVIEW)
5806 dnl ========================================================
5807 dnl use native unicode converters
5808 dnl ========================================================
5809 MOZ_ARG_ENABLE_BOOL(native-uconv,
5810 [ --enable-native-uconv Enable iconv support],
5811 MOZ_USE_NATIVE_UCONV=1,
5812 MOZ_USE_NATIVE_UCONV= )
5813 if test "$MOZ_USE_NATIVE_UCONV"; then
5814 AC_DEFINE(MOZ_USE_NATIVE_UCONV)
5816 if test "$OS_ARCH" != "WINCE" -a "$OS_ARCH" != "WINNT" -a "$MOZ_USE_NATIVE_UCONV" -a "$ac_cv_func_iconv" != "yes"; then
5817 AC_MSG_ERROR([iconv() not found. Cannot enable native uconv support.])
5821 dnl ========================================================
5822 dnl Libeditor can be build as plaintext-only,
5823 dnl or as a full html and text editing component.
5824 dnl We build both by default.
5825 dnl ========================================================
5826 MOZ_ARG_ENABLE_BOOL(plaintext-editor-only,
5827 [ --enable-plaintext-editor-only
5828 Allow only plaintext editing],
5829 MOZ_PLAINTEXT_EDITOR_ONLY=1,
5830 MOZ_PLAINTEXT_EDITOR_ONLY= )
5831 dnl Note the #define is MOZILLA, not MOZ, for compat with the Mac build.
5832 AC_SUBST(MOZ_PLAINTEXT_EDITOR_ONLY)
5834 dnl ========================================================
5835 dnl = Disable Fast Load
5836 dnl ========================================================
5837 MOZ_ARG_DISABLE_BOOL(xpcom-fastload,
5838 [ --disable-xpcom-fastload
5839 Disable XPCOM fastload support],
5843 AC_SUBST(MOZ_NO_FAST_LOAD)
5845 if test -n "$MOZ_NO_FAST_LOAD"; then
5846 AC_DEFINE(MOZ_NO_FAST_LOAD)
5852 dnl ========================================================
5853 dnl = Disable Ogg Codecs
5854 dnl ========================================================
5855 MOZ_ARG_DISABLE_BOOL(ogg,
5856 [ --disable-ogg Disable support for OGG media (Theora video and Vorbis audio)],
5860 if test -n "$MOZ_OGG"; then
5866 dnl Checks for __attribute__(aligned()) directive
5867 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
5868 [ac_cv_c_attribute_aligned],
5869 [ac_cv_c_attribute_aligned=0
5870 CFLAGS_save="${CFLAGS}"
5871 CFLAGS="${CFLAGS} -Werror"
5872 for ac_cv_c_attr_align_try in 64 32 16 8; do
5873 echo "trying $ac_cv_c_attr_align_try"
5875 [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
5876 [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
5877 if test "$ac_cv_c_attribute_aligned" != 0; then
5881 CFLAGS="${CFLAGS_save}"])
5882 if test "${ac_cv_c_attribute_aligned}" != "0"; then
5883 AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
5884 [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
5888 dnl ========================================================
5889 dnl = Disable VP8 decoder support
5890 dnl ========================================================
5891 MOZ_ARG_DISABLE_BOOL(webm,
5892 [ --disable-webm Disable support for WebM media (VP8 video and Vorbis audio)],
5896 if test -n "$MOZ_WEBM"; then
5902 dnl Detect if we can use an assembler to compile optimized assembly for libvpx.
5903 dnl For Win32 (MSVC) we must use MASM.
5904 if test "$OS_ARCH" = "WINNT" -a "$CPU_ARCH" = "x86" -a -z "$GNU_CC"; then
5905 AC_MSG_CHECKING([for MASM assembler])
5906 AC_CHECK_PROGS(VPX_AS, ml, "")
5907 if test -n "$VPX_AS"; then
5909 VPX_AS='sh $(topsrcdir)/media/libvpx/yasm2masm-as.sh'
5911 AC_MSG_ERROR([Need MASM (ml.exe) in order to assemble libvpx optimized assembly. Either disable webm (reconfigure with --disable-webm) or install MASM. MASM is included in the Windows 7 SDK, or you can download MASM directly from http://www.microsoft.com/downloads/details.aspx?familyid=7a1c9da0-0510-44a2-b042-7ef370530c64&displaylang=en])
5915 dnl For Darwin x86, Darwin x86_64, Linux x86, and WINNT x86_64
5916 dnl we can use YASM.
5917 AC_MSG_CHECKING([for YASM assembler])
5918 AC_CHECK_PROGS(VPX_AS, $YASM yasm, "")
5919 dnl We have YASM, see if we have assembly on this platform.
5920 case "$OS_ARCH:$OS_TEST" in
5921 Linux:x86|Linux:i?86)
5922 VPX_ASFLAGS="-f elf32 -rnasm -pnasm"
5926 VPX_ASFLAGS="-f elf64 -rnasm -pnasm -DPIC"
5930 VPX_ASFLAGS="-f elf32 -rnasm -pnasm"
5934 VPX_ASFLAGS="-f elf64 -rnasm -pnasm -DPIC"
5938 VPX_ASFLAGS="-f macho32 -rnasm -pnasm -DPIC"
5942 VPX_ASFLAGS="-f macho64 -rnasm -pnasm -DPIC"
5946 if test -z "$GNU_CC"; then
5947 VPX_ASFLAGS="-f x64 -rnasm -pnasm"
5952 if test -n "$VPX_X86_ASM" -a -z "$VPX_AS"; then
5953 AC_MSG_ERROR([yasm is a required build tool for this architecture when webm is enabled. You may either install yasm or --disable-webm (which disables the WebM video format). See https://developer.mozilla.org/en/YASM for more details.])
5955 fi # end !WINNT_x86_MSVC
5957 if test -n "$VPX_X86_ASM"; then
5958 AC_DEFINE(VPX_X86_ASM)
5960 AC_MSG_WARN([No assembler or assembly support for libvpx, using unoptimized C routines.])
5964 dnl ========================================================
5965 dnl = Disable Wave decoder support
5966 dnl ========================================================
5967 MOZ_ARG_DISABLE_BOOL(wave,
5968 [ --disable-wave Disable Wave decoder support],
5972 if test -n "$MOZ_WAVE"; then
5978 dnl ========================================================
5979 dnl = Handle dependent SYDNEYAUDIO and MEDIA defines
5980 dnl ========================================================
5982 if test -n "$MOZ_SYDNEYAUDIO"; then
5983 AC_DEFINE(MOZ_SYDNEYAUDIO)
5986 if test -n "$MOZ_MEDIA"; then
5987 AC_DEFINE(MOZ_MEDIA)
5990 if test -n "$MOZ_VORBIS"; then
5991 AC_DEFINE(MOZ_VORBIS)
5994 dnl ========================================================
5995 dnl = Check alsa availability on Linux if using sydneyaudio
5996 dnl ========================================================
5998 dnl If using sydneyaudio with Linux, ensure that the alsa library is available
5999 if test -n "$MOZ_SYDNEYAUDIO"; then
6000 case "$target_os" in
6002 PKG_CHECK_MODULES(MOZ_ALSA, alsa, ,
6003 [echo "$MOZ_ALSA_PKG_ERRORS"
6004 AC_MSG_ERROR([Need alsa for Ogg, Wave or WebM decoding on Linux. Disable with --disable-ogg --disable-wave --disable-webm. (On Ubuntu, you might try installing the package libasound2-dev.)])])
6009 dnl ========================================================
6011 dnl ========================================================
6012 AC_ARG_ENABLE(splashscreen,
6013 [ --enable-splashscreen display splashscreen while loading (default=no)],
6014 [enable_splash="yes"],[enable_splash=""])
6015 if test "x$enable_splash" = "xyes"; then
6017 AC_DEFINE(MOZ_SPLASHSCREEN)
6019 AC_SUBST(MOZ_SPLASHSCREEN)
6021 dnl ========================================================
6022 dnl Permissions System
6023 dnl ========================================================
6024 MOZ_ARG_DISABLE_BOOL(permissions,
6025 [ --disable-permissions Disable permissions (popup and cookie blocking)],
6030 dnl ========================================================
6032 dnl ========================================================
6033 MOZ_ARG_DISABLE_BOOL(negotiateauth,
6034 [ --disable-negotiateauth Disable GSS-API negotiation ],
6035 MOZ_AUTH_EXTENSION=,
6036 MOZ_AUTH_EXTENSION=1 )
6038 dnl ========================================================
6040 dnl ========================================================
6041 MOZ_ARG_DISABLE_BOOL(xtf,
6042 [ --disable-xtf Disable XTF (pluggable xml tags) support],
6045 if test "$MOZ_XTF"; then
6049 dnl ========================================================
6050 dnl Pref extensions (autoconfig and system-pref)
6051 dnl ========================================================
6052 MOZ_ARG_DISABLE_BOOL(pref-extensions,
6053 [ --disable-pref-extensions
6054 Disable pref extensions such as autoconfig and
6056 MOZ_PREF_EXTENSIONS=,
6057 MOZ_PREF_EXTENSIONS=1 )
6059 dnl ========================================================
6060 dnl = Universalchardet
6061 dnl ========================================================
6062 MOZ_ARG_DISABLE_BOOL(universalchardet,
6063 [ --disable-universalchardet
6064 Disable universal encoding detection],
6065 MOZ_UNIVERSALCHARDET=,
6066 MOZ_UNIVERSALCHARDET=1 )
6068 dnl ========================================================
6070 dnl ========================================================
6077 MOZ_ARG_ENABLE_BOOL(javaxpcom,
6078 [ --enable-javaxpcom
6079 Enable Java-XPCOM bridge],
6085 if test -n "$JAVA_HOME"; then
6086 JAVA_HOME=`cygpath -u \`cygpath -m -s "$JAVA_HOME"\``
6090 if test -n "$JAVA_HOME"; then
6091 JAVA_HOME=`cd "$JAVA_HOME" && pwd`
6096 if test -n "${JAVA_BIN_PATH}"; then
6097 dnl Look for javac and jar in the specified path.
6098 JAVA_PATH="$JAVA_BIN_PATH"
6100 dnl No path specified, so look for javac and jar in $JAVA_HOME & $PATH.
6101 JAVA_PATH="$JAVA_HOME/bin:$PATH"
6104 MOZ_PATH_PROG(JAVA, java, :, [$JAVA_PATH])
6105 MOZ_PATH_PROG(JAVAC, javac, :, [$JAVA_PATH])
6106 MOZ_PATH_PROG(JAR, jar, :, [$JAVA_PATH])
6108 if test -n "${JAVA_BIN_PATH}" -o "$OS_TARGET" = Android; then
6109 if test -z "$JAVA" -o "$JAVA" = ":" -o -z "$JAVAC" -o "$JAVAC" = ":" -o -z "$JAR" -o "$JAR" = ":"; then
6110 AC_MSG_ERROR([The programs java, javac and jar were not found. Set \$JAVA_HOME to your java sdk directory or use --with-java-bin-path={java-bin-dir}])
6114 if test -n "${MOZ_JAVAXPCOM}"; then
6115 if test -n "${JAVA_INCLUDE_PATH}"; then
6116 dnl Make sure jni.h exists in the given include path.
6117 if test ! -f "$JAVA_INCLUDE_PATH/jni.h"; then
6118 AC_MSG_ERROR([jni.h was not found in given include path $JAVA_INCLUDE_PATH.])
6121 case "$target_os" in
6123 dnl Default to java system location
6124 JAVA_INCLUDE_PATH=/System/Library/Frameworks/JavaVM.framework/Headers
6128 JAVA_INCLUDE_PATH="$JAVA_HOME/include"
6131 if test ! -f "$JAVA_INCLUDE_PATH/jni.h"; then
6132 AC_MSG_ERROR([The header jni.h was not found. Set \$JAVA_HOME to your java sdk directory, use --with-java-bin-path={java-bin-dir}, or reconfigure with --disable-javaxpcom.])
6137 dnl ========================================================
6138 dnl = Breakpad crash reporting (on by default on supported platforms)
6139 dnl ========================================================
6145 i?86-apple-darwin*|powerpc-apple-darwin*)
6148 i?86-*-linux*|x86_64-*-linux*|arm-*-linux*)
6156 MOZ_ARG_DISABLE_BOOL(crashreporter,
6157 [ --disable-crashreporter Disable breakpad crash reporting],
6159 MOZ_CRASHREPORTER=1)
6161 if test -n "$MOZ_CRASHREPORTER"; then
6162 AC_DEFINE(MOZ_CRASHREPORTER)
6164 if (test "$OS_ARCH" = "Linux" -o "$OS_ARCH" = "SunOS") && \
6165 test -z "$SKIP_LIBRARY_CHECKS"; then
6166 PKG_CHECK_MODULES(MOZ_GTHREAD, gthread-2.0)
6167 AC_SUBST(MOZ_GTHREAD_CFLAGS)
6168 AC_SUBST(MOZ_GTHREAD_LIBS)
6170 AC_CHECK_HEADERS([curl/curl.h], [], [AC_MSG_ERROR([Couldn't find curl/curl.h which is required for the crash reporter. Use --disable-crashreporter to disable the crash reporter.])])
6174 MOZ_ARG_WITH_STRING(crashreporter-enable-percent,
6175 [ --with-crashreporter-enable-percent=NN
6176 Enable sending crash reports by default on NN% of users. (default=100)],
6177 [ val=`echo $withval | sed 's/[^0-9]//g'`
6178 MOZ_CRASHREPORTER_ENABLE_PERCENT="$val"])
6180 if test -z "$MOZ_CRASHREPORTER_ENABLE_PERCENT"; then
6181 MOZ_CRASHREPORTER_ENABLE_PERCENT=100
6183 AC_DEFINE_UNQUOTED(MOZ_CRASHREPORTER_ENABLE_PERCENT, $MOZ_CRASHREPORTER_ENABLE_PERCENT)
6185 dnl ========================================================
6186 dnl = Enable compilation of specific extension modules
6187 dnl ========================================================
6189 MOZ_ARG_ENABLE_STRING(extensions,
6190 [ --enable-extensions Enable extensions],
6191 [ for option in `echo $enableval | sed 's/,/ /g'`; do
6192 if test "$option" = "yes" -o "$option" = "all"; then
6193 AC_MSG_ERROR([--enable-extensions=$option is no longer supported.])
6194 elif test "$option" = "no" -o "$option" = "none"; then
6196 elif test "$option" = "default"; then
6197 MOZ_EXTENSIONS="$MOZ_EXTENSIONS $MOZ_EXTENSIONS_DEFAULT"
6198 elif test `echo "$option" | grep -c \^-` != 0; then
6199 option=`echo $option | sed 's/^-//'`
6200 MOZ_EXTENSIONS=`echo "$MOZ_EXTENSIONS" | sed "s/ ${option}//"`
6202 MOZ_EXTENSIONS="$MOZ_EXTENSIONS $option"
6205 MOZ_EXTENSIONS="$MOZ_EXTENSIONS_DEFAULT")
6207 if test -z "$MOZ_ENABLE_GNOMEVFS" -a -z "$MOZ_GNOMEVFS_LIBS" -a `echo "$MOZ_EXTENSIONS" | grep -c gnomevfs` -ne 0; then
6208 # Suppress warning on non-X11 platforms
6209 if test -n "$MOZ_X11"; then
6210 AC_MSG_WARN([Cannot build gnomevfs without required libraries. Removing gnomevfs from MOZ_EXTENSIONS.])
6212 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gnomevfs||'`
6215 dnl Do not build gnomevfs with libxul based apps
6216 if test -n "$LIBXUL_SDK_DIR" -a `echo "$MOZ_EXTENSIONS" | grep -c gnomevfs` -ne 0; then
6217 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gnomevfs||'`
6220 if test -z "$MOZ_ENABLE_GIO" -a `echo "$MOZ_EXTENSIONS" | grep -c gio` -ne 0; then
6221 # Suppress warning on non-X11 platforms
6222 if test -n "$MOZ_X11"; then
6223 AC_MSG_WARN([Cannot build gio without required libraries. Removing gio from MOZ_EXTENSIONS.])
6225 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gio||'`
6228 dnl Do not build gio with libxul based apps
6229 if test -n "$LIBXUL_SDK_DIR" -a `echo "$MOZ_EXTENSIONS" | grep -c gio` -ne 0; then
6230 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gio||'`
6233 if test -z "$MOZ_JSDEBUGGER" -a `echo "$MOZ_EXTENSIONS" | grep -c venkman` -ne 0; then
6234 AC_MSG_WARN([Cannot build venkman without JavaScript debug library. Removing venkman from MOZ_EXTENSIONS.])
6235 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|venkman||'`
6238 dnl This might be temporary: build tridentprofile only on Windows
6239 if test `echo "$MOZ_EXTENSIONS" | grep -c tridentprofile` -ne 0 && test "$OS_ARCH" != "WINNT"; then
6240 AC_MSG_WARN([tridentprofile extension works only on Windows at this time. Removing tridentprofile from MOZ_EXTENSIONS.])
6241 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|tridentprofile||'`
6244 dnl cookie must be built before tridentprofile. put it at list's end.
6245 if test `echo "$MOZ_EXTENSIONS" | grep -c tridentprofile` -ne 0; then
6246 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|tridentprofile||'`
6247 MOZ_EXTENSIONS="$MOZ_EXTENSIONS tridentprofile"
6250 dnl xforms requires xtf and schema-validation
6251 if test -z "$MOZ_XTF" -a `echo "$MOZ_EXTENSIONS" | grep -c xforms` -ne 0; then
6252 AC_MSG_WARN([Cannot build XForms without XTF support. Removing XForms from MOZ_EXTENSIONS.])
6253 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|xforms||g'`
6255 if test `echo "$MOZ_EXTENSIONS" | grep -c xforms` -ne 0 && test `echo "$MOZ_EXTENSIONS" | grep -c schema-validation` -eq 0; then
6256 AC_MSG_WARN([Cannot build XForms without schema validation. Removing XForms from MOZ_EXTENSIONS.])
6257 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|xforms||g'`
6260 if test `echo "$MOZ_EXTENSIONS" | grep -c auth` -ne 0; then
6261 AC_MSG_WARN([auth is no longer an extension, use --disable-negotiateauth to disable.])
6262 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|auth||g'`
6265 if test `echo "$MOZ_EXTENSIONS" | grep -c 'cookie\|permissions'` -ne 0; then
6266 AC_MSG_WARN([cookie and permissions are no longer extensions, use --disable-permissions to disable.])
6267 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|cookie||g; s|permissions||g'`
6270 if test `echo "$MOZ_EXTENSIONS" | grep -c pref` -ne 0; then
6271 AC_MSG_WARN([pref is no longer an extension, use --disable-pref-extensions to disable.])
6272 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|pref||g'`
6275 if test `echo "$MOZ_EXTENSIONS" | grep -c universalchardet` -ne 0; then
6276 AC_MSG_WARN([universalchardet is no longer an extension, use --disable-universalchardet to disable.])
6277 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|universalchardet||g'`
6280 if test `echo "$MOZ_EXTENSIONS" | grep -c java` -ne 0; then
6281 AC_MSG_WARN([java is no longer an extension, use --enable-javaxpcom to enable.])
6282 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|java||g'`
6285 if test `echo "$MOZ_EXTENSIONS" | grep -c spellcheck` -ne 0; then
6286 AC_MSG_WARN([spellcheck is no longer an extension.])
6287 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|spellcheck||g'`
6291 MOZ_EXTENSIONS=`${PERL} ${srcdir}/build/unix/uniq.pl ${MOZ_EXTENSIONS}`
6293 dnl Ensure every extension exists, to avoid mostly-inscrutable error messages
6294 dnl when trying to build a nonexistent extension.
6295 for extension in $MOZ_EXTENSIONS; do
6296 if test ! -d "${srcdir}/extensions/${extension}"; then
6297 AC_MSG_ERROR([Unrecognized extension provided to --enable-extensions: ${extension}.])
6302 dnl ========================================================
6304 dnl ========================================================
6305 case "$MOZ_WIDGET_TOOLKIT" in
6306 beos|windows|os2|mac|cocoa)
6309 if test -z "$MOZ_ENABLE_GTK2" -a -z "$MOZ_ENABLE_QT"; then
6310 MOZ_IMG_DECODERS_DEFAULT=`echo $MOZ_IMG_DECODERS_DEFAULT | sed -e 's|icon||'`
6315 MOZ_ARG_ENABLE_STRING(image-decoders,
6316 [ --enable-image-decoders[={mod1,mod2,default,all,none}]
6317 Enable specific image decoders],
6318 [ for option in `echo $enableval | sed 's/,/ /g'`; do
6319 if test "$option" = "yes" -o "$option" = "all"; then
6320 MOZ_IMG_DECODERS="$MOZ_IMG_DECODERS $MOZ_IMG_DECODERS_DEFAULT"
6321 elif test "$option" = "no" -o "$option" = "none"; then
6323 elif test "$option" = "default"; then
6324 MOZ_IMG_DECODERS="$MOZ_IMG_DECODERS $MOZ_IMG_DECODERS_DEFAULT"
6325 elif test `echo "$option" | grep -c \^-` != 0; then
6326 option=`echo $option | sed 's/^-//'`
6327 MOZ_IMG_DECODERS=`echo "$MOZ_IMG_DECODERS" | sed "s/ ${option}//"`
6329 MOZ_IMG_DECODERS="$MOZ_IMG_DECODERS $option"
6332 MOZ_IMG_DECODERS="$MOZ_IMG_DECODERS_DEFAULT")
6334 dnl Dupes are removed in the encoder section because it will also add decoders
6336 dnl ========================================================
6338 dnl ========================================================
6339 MOZ_ARG_ENABLE_STRING(image-encoders,
6340 [ --enable-image-encoders[={mod1,mod2,default,all,none}]
6341 Enable specific image encoders],
6342 [ for option in `echo $enableval | sed 's/,/ /g'`; do
6343 if test "$option" = "yes" -o "$option" = "all"; then
6344 addencoder="$MOZ_IMG_ENCODERS_DEFAULT"
6345 elif test "$option" = "no" -o "$option" = "none"; then
6348 elif test "$option" = "default"; then
6349 addencoder="$MOZ_IMG_ENCODERS_DEFAULT"
6350 elif test `echo "$option" | grep -c \^-` != 0; then
6351 option=`echo $option | sed 's/^-//'`
6352 addencoder=`echo "$MOZ_IMG_ENCODERS" | sed "s/ ${option}//"`
6354 addencoder="$option"
6356 MOZ_IMG_ENCODERS="$MOZ_IMG_ENCODERS $addencoder"
6358 MOZ_IMG_ENCODERS="$MOZ_IMG_ENCODERS_DEFAULT")
6361 MOZ_IMG_DECODERS=`${PERL} ${srcdir}/build/unix/uniq.pl ${MOZ_IMG_DECODERS}`
6362 MOZ_IMG_ENCODERS=`${PERL} ${srcdir}/build/unix/uniq.pl ${MOZ_IMG_ENCODERS}`
6364 dnl ========================================================
6365 dnl MathML on by default
6366 dnl ========================================================
6367 MOZ_ARG_DISABLE_BOOL(mathml,
6368 [ --disable-mathml Disable MathML support],
6371 if test "$MOZ_MATHML"; then
6372 AC_DEFINE(MOZ_MATHML)
6375 dnl ========================================================
6377 dnl ========================================================
6378 MOZ_ARG_DISABLE_BOOL(svg,
6379 [ --disable-svg Disable SVG support],
6382 if test -n "$MOZ_SVG"; then
6386 dnl ========================================================
6388 dnl ========================================================
6390 MOZ_ARG_DISABLE_BOOL(smil,
6391 [ --disable-smil Disable SMIL animation support],
6394 # Automatically disable SMIL if SVG is disabled
6395 if test -z "$MOZ_SVG"; then
6398 if test -n "$MOZ_SMIL"; then
6402 dnl ========================================================
6403 dnl Build Freetype in the tree
6404 dnl ========================================================
6405 MOZ_ARG_ENABLE_BOOL(tree-freetype,
6406 [ --enable-tree-freetype Enable Tree FreeType],
6407 MOZ_TREE_FREETYPE=1,
6408 MOZ_TREE_FREETYPE= )
6409 if test -n "$MOZ_TREE_FREETYPE"; then
6410 AC_DEFINE(MOZ_TREE_FREETYPE)
6411 AC_SUBST(MOZ_TREE_FREETYPE)
6412 MOZ_ENABLE_CAIRO_FT=1
6413 FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
6414 FT2_CFLAGS='-I$(topsrcdir)/modules/freetype2/include'
6415 CAIRO_FT_CFLAGS='-I$(topsrcdir)/modules/freetype2/include'
6416 FT2_LIBS='$(call EXPAND_LIBNAME_PATH,freetype2,$(LIBXUL_DIST)/lib)'
6417 CAIRO_FT_LIBS='$(call EXPAND_LIBNAME_PATH,freetype2,$(LIBXUL_DIST)/lib)'
6418 AC_DEFINE(HAVE_FT_BITMAP_SIZE_Y_PPEM)
6419 AC_DEFINE(HAVE_FT_GLYPHSLOT_EMBOLDEN)
6420 AC_DEFINE(HAVE_FT_LOAD_SFNT_TABLE)
6421 AC_SUBST(CAIRO_FT_CFLAGS)
6425 dnl ========================================================
6427 dnl ========================================================
6428 case "$target_os" in
6429 aix*|solaris*|linux*|msvc*|mks*|cygwin*|mingw*|os2*|wince*|winmo*)
6434 MOZ_ARG_DISABLE_BOOL(installer,
6435 [ --disable-installer Disable building of installer],
6438 if test -n "$MOZ_INSTALLER" -a "$OS_ARCH" = "WINNT"; then
6439 # Disable installer for Windows builds that use the new toolkit if the
6440 # required major version and minimum minor version of Unicode NSIS isn't in
6442 REQ_NSIS_MAJOR_VER=2
6443 MIN_NSIS_MINOR_VER=33
6444 MOZ_PATH_PROGS(MAKENSISU, $MAKENSISU makensisu-2.46 makensisu makensis)
6445 if test -z "$MAKENSISU" -o "$MAKENSISU" = ":"; then
6446 AC_MSG_ERROR([To build the installer you must have the latest MozillaBuild or Unicode NSIS with a major version of $REQ_NSIS_MAJOR_VER and a minimum minor version of $MIN_NSIS_MINOR_VER in your path. To build without the installer reconfigure using --disable-installer.])
6449 MAKENSISU_VER=`"$MAKENSISU" -version 2>/dev/null | sed -e '/-Unicode/!s/.*//g' -e 's/^v\([0-9]\+\.[0-9]\+\)\-Unicode$/\1/g'`
6451 if test ! "$MAKENSISU_VER" == ""; then
6452 MAKENSISU_MAJOR_VER=`echo $MAKENSISU_VER | $AWK -F\. '{ print $1 }'`
6453 MAKENSISU_MINOR_VER=`echo $MAKENSISU_VER | $AWK -F\. '{ print $2 }'`
6455 AC_MSG_CHECKING([for Unicode NSIS with major version == $REQ_NSIS_MAJOR_VER and minor version >= $MIN_NSIS_MINOR_VER])
6456 if test "$MAKENSISU_VER" == "" -o \
6457 ! "$MAKENSISU_MAJOR_VER" == "$REQ_NSIS_MAJOR_VER" -o \
6458 ! "$MAKENSISU_MINOR_VER" -ge $MIN_NSIS_MINOR_VER; then
6460 AC_MSG_ERROR([To build the installer you must have the latest MozillaBuild or Unicode NSIS with a major version of $REQ_NSIS_MAJOR_VER and a minimum minor version of $MIN_NSIS_MINOR_VER in your path. To build without the installer reconfigure using --disable-installer.])
6462 AC_MSG_RESULT([yes])
6463 MAKENSISU="${CYGWIN_WRAPPER} $MAKENSISU"
6466 AC_SUBST(MOZ_INSTALLER)
6468 AC_MSG_CHECKING([for tar archiver])
6469 AC_CHECK_PROGS(TAR, gnutar gtar tar, "")
6470 if test -z "$TAR"; then
6471 AC_MSG_ERROR([no tar archiver found in \$PATH])
6473 AC_MSG_RESULT([$TAR])
6476 AC_MSG_CHECKING([for wget])
6477 AC_CHECK_PROGS(WGET, wget, "")
6478 AC_MSG_RESULT([$WGET])
6481 dnl ========================================================
6483 dnl ========================================================
6485 MOZ_ARG_DISABLE_BOOL(updater,
6486 [ --disable-updater Disable building of updater],
6490 if test -n "$MOZ_UPDATER"; then
6491 AC_DEFINE(MOZ_UPDATER)
6494 # app update channel is 'default' when not supplied.
6495 MOZ_ARG_ENABLE_STRING([update-channel],
6496 [ --enable-update-channel=CHANNEL
6497 Select application update channel (default=default)],
6498 MOZ_UPDATE_CHANNEL=`echo $enableval | tr A-Z a-z`)
6500 if test -z "$MOZ_UPDATE_CHANNEL"; then
6501 MOZ_UPDATE_CHANNEL=default
6503 AC_DEFINE_UNQUOTED(MOZ_UPDATE_CHANNEL, $MOZ_UPDATE_CHANNEL)
6504 AC_SUBST(MOZ_UPDATE_CHANNEL)
6506 # tools/update-packaging is not checked out by default.
6507 MOZ_ARG_ENABLE_BOOL(update-packaging,
6508 [ --enable-update-packaging
6509 Enable tools/update-packaging],
6510 MOZ_UPDATE_PACKAGING=1,
6511 MOZ_UPDATE_PACKAGING= )
6512 AC_SUBST(MOZ_UPDATE_PACKAGING)
6514 dnl ========================================================
6516 dnl ========================================================
6518 MOZ_ARG_DISABLE_BOOL(xpconnect-idispatch,
6519 [ --disable-xpconnect-idispatch
6520 Disable building of xpconnect support for IDispatch
6522 XPC_IDISPATCH_SUPPORT=,
6523 XPC_IDISPATCH_SUPPORT=1)
6524 AC_SUBST(XPC_IDISPATCH_SUPPORT)
6526 MOZ_ARG_DISABLE_BOOL(activex,
6527 [ --disable-activex Disable building of ActiveX control (win32 only)],
6528 MOZ_NO_ACTIVEX_SUPPORT=1,
6529 MOZ_NO_ACTIVEX_SUPPORT= )
6530 AC_SUBST(MOZ_NO_ACTIVEX_SUPPORT)
6532 MOZ_ARG_ENABLE_BOOL(activex-scripting,
6533 [ --enable-activex-scripting
6534 Enable building of ActiveX scripting support (win32)],
6535 MOZ_ACTIVEX_SCRIPTING_SUPPORT=1,
6536 MOZ_ACTIVEX_SCRIPTING_SUPPORT=)
6537 AC_SUBST(MOZ_ACTIVEX_SCRIPTING_SUPPORT)
6539 if test -n "$MOZ_NO_ACTIVEX_SUPPORT" -a -n "$MOZ_ACTIVEX_SCRIPTING_SUPPORT";
6541 AC_MSG_ERROR([Cannot enable ActiveX scripting support when ActiveX support is disabled.])
6544 if test "$COMPILE_ENVIRONMENT" = "1"; then
6545 if test -n "$XPC_IDISPATCH_SUPPORT" -o -n "$MOZ_ACTIVEX_SCRIPTING_SUPPORT" -o -z "$MOZ_NO_ACTIVEX_SUPPORT"; then
6547 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
6548 if test "$ac_cv_header_atlbase_h" = "no"; then
6549 AC_MSG_ERROR([System header atlbase.h is not available. See http://developer.mozilla.org/en/docs/atlbase.h for details on fixing this problem.])
6556 dnl ========================================================
6558 dnl ========================================================
6559 MOZ_ARG_ENABLE_BOOL(leaky,
6560 [ --enable-leaky Build leaky memory tool],
6565 dnl ========================================================
6566 dnl build the tests by default
6567 dnl ========================================================
6568 MOZ_ARG_DISABLE_BOOL(tests,
6569 [ --disable-tests Do not build test libraries & programs],
6573 dnl ========================================================
6574 dnl parental controls (for Windows Vista)
6575 dnl ========================================================
6576 MOZ_ARG_DISABLE_BOOL(parental-controls,
6577 [ --disable-parental-controls
6578 Do not build parental controls],
6579 MOZ_DISABLE_PARENTAL_CONTROLS=1,
6580 MOZ_DISABLE_PARENTAL_CONTROLS=)
6581 if test -n "$MOZ_DISABLE_PARENTAL_CONTROLS"; then
6582 AC_DEFINE(MOZ_DISABLE_PARENTAL_CONTROLS)
6585 AC_SUBST(MOZ_DISABLE_PARENTAL_CONTROLS)
6587 dnl ========================================================
6589 dnl = Module specific options
6591 dnl ========================================================
6592 MOZ_ARG_HEADER(Individual module options)
6594 dnl ========================================================
6595 dnl = Disable feed handling components
6596 dnl ========================================================
6597 MOZ_ARG_DISABLE_BOOL(feeds,
6598 [ --disable-feeds Disable feed handling and processing components],
6601 if test -n "$MOZ_FEEDS"; then
6602 AC_DEFINE(MOZ_FEEDS)
6604 if test "$MOZ_BUILD_APP" = "browser"; then
6605 AC_MSG_ERROR([Cannot build Firefox with --disable-feeds.])
6609 dnl ========================================================
6610 dnl = Enable mozStorage
6611 dnl ========================================================
6612 dnl Implicitly enabled by default if building calendar or places
6613 MOZ_ARG_ENABLE_BOOL(storage,
6614 [ --enable-storage Enable mozStorage module and related components],
6617 if test -n "$MOZ_STORAGE"; then
6618 AC_DEFINE(MOZ_STORAGE)
6621 dnl ========================================================
6622 dnl Check for sqlite
6623 dnl ========================================================
6626 MOZ_ARG_ENABLE_BOOL(system-sqlite,
6627 [ --enable-system-sqlite Use system sqlite (located with pkgconfig)],
6628 MOZ_NATIVE_SQLITE=1,
6629 MOZ_NATIVE_SQLITE= )
6631 if test -z "$MOZ_NATIVE_SQLITE"
6634 SQLITE_LIBS='$(call EXPAND_LIBNAME_PATH,mozsqlite3,$(DIST)/lib)'
6636 dnl ============================
6637 dnl === SQLite Version check ===
6638 dnl ============================
6639 dnl Check to see if the system SQLite package is new enough.
6640 PKG_CHECK_MODULES(SQLITE, sqlite3 >= $SQLITE_VERSION)
6642 dnl ==================================
6643 dnl === SQLITE_SECURE_DELETE check ===
6644 dnl ==================================
6645 dnl Check to see if the system SQLite package is compiled with
6646 dnl SQLITE_SECURE_DELETE enabled.
6647 AC_MSG_CHECKING(for SQLITE_SECURE_DELETE support in system SQLite)
6648 _SAVE_CFLAGS="$CFLAGS"
6649 CFLAGS="$CFLAGS $SQLITE_CFLAGS"
6651 LIBS="$LIBS $SQLITE_LIBS"
6652 AC_CACHE_VAL(ac_cv_sqlite_secure_delete,[
6654 #include "sqlite3.h"
6656 int main(int argc, char **argv){
6657 return !sqlite3_compileoption_used("SQLITE_SECURE_DELETE");
6659 ac_cv_sqlite_secure_delete=yes,
6660 ac_cv_sqlite_secure_delete=no,
6661 ac_cv_sqlite_secure_delete=no
6664 AC_MSG_RESULT($ac_cv_sqlite_secure_delete)
6665 CFLAGS="$_SAVE_CFLAGS"
6667 if test "x$ac_cv_sqlite_secure_delete" = "xno"; then
6668 AC_MSG_ERROR([System SQLite library is not compiled with SQLITE_SECURE_DELETE.])
6671 dnl ===============================
6672 dnl === SQLITE_THREADSAFE check ===
6673 dnl ===============================
6674 dnl Check to see if the system SQLite package is compiled with
6675 dnl SQLITE_THREADSAFE enabled.
6676 AC_MSG_CHECKING(for SQLITE_THREADSAFE support in system SQLite)
6677 _SAVE_CFLAGS="$CFLAGS"
6678 CFLAGS="$CFLAGS $SQLITE_CFLAGS"
6680 LIBS="$LIBS $SQLITE_LIBS"
6681 AC_CACHE_VAL(ac_cv_sqlite_threadsafe,[
6683 #include "sqlite3.h"
6685 int main(int argc, char **argv){
6686 return !sqlite3_compileoption_used("SQLITE_THREADSAFE=1");
6688 ac_cv_sqlite_threadsafe=yes,
6689 ac_cv_sqlite_threadsafe=no,
6690 ac_cv_sqlite_threadsafe=no
6693 AC_MSG_RESULT($ac_cv_sqlite_threadsafe)
6694 CFLAGS="$_SAVE_CFLAGS"
6696 if test "x$ac_cv_sqlite_threadsafe" = "xno"; then
6697 AC_MSG_ERROR([System SQLite library is not compiled with SQLITE_THREADSAFE.])
6700 dnl ================================
6701 dnl === SQLITE_ENABLE_FTS3 check ===
6702 dnl ================================
6703 dnl check to see if the system SQLite package is compiled with
6704 dnl SQLITE_ENABLE_FTS3 enabled.
6705 AC_MSG_CHECKING(for SQLITE_ENABLE_FTS3 support in system SQLite)
6706 _SAVE_CFLAGS="$CFLAGS"
6707 CFLAGS="$CFLAGS $SQLITE_CFLAGS"
6709 LIBS="$LIBS $SQLITE_LIBS"
6710 AC_CACHE_VAL(ac_cv_sqlite_enable_fts3,[
6712 #include "sqlite3.h"
6714 int main(int argc, char **argv){
6715 return !sqlite3_compileoption_used("SQLITE_ENABLE_FTS3");
6717 ac_cv_sqlite_enable_fts3=yes,
6718 ac_cv_sqlite_enable_fts3=no,
6719 ac_cv_sqlite_enable_fts3=no
6722 AC_MSG_RESULT($ac_cv_sqlite_enable_fts3)
6723 CFLAGS="$_SAVE_CFLAGS"
6725 if test "x$ac_cv_sqlite_enable_fts3" = "xno"; then
6726 AC_MSG_ERROR([System SQLite library is not compiled with SQLITE_ENABLE_FTS3.])
6729 dnl =========================================
6730 dnl === SQLITE_ENABLE_UNLOCK_NOTIFY check ===
6731 dnl =========================================
6732 dnl check to see if the system SQLite package is compiled with
6733 dnl SQLITE_ENABLE_UNLOCK_NOTIFY enabled.
6734 AC_MSG_CHECKING(for SQLITE_ENABLE_UNLOCK_NOTIFY support in system SQLite)
6735 _SAVE_CFLAGS="$CFLAGS"
6736 CFLAGS="$CFLAGS $SQLITE_CFLAGS"
6738 LIBS="$LIBS $SQLITE_LIBS"
6739 AC_CACHE_VAL(ac_cv_sqlite_enable_unlock_notify,[
6741 #include "sqlite3.h"
6743 int main(int argc, char **argv){
6744 return !sqlite3_compileoption_used("SQLITE_ENABLE_UNLOCK_NOTIFY");
6746 ac_cv_sqlite_enable_unlock_notify=yes,
6747 ac_cv_sqlite_enable_unlock_notify=no,
6748 ac_cv_sqlite_enable_unlock_notify=no
6751 AC_MSG_RESULT($ac_cv_sqlite_enable_unlock_notify)
6752 CFLAGS="$_SAVE_CFLAGS"
6754 if test "x$ac_cv_sqlite_enable_unlock_notify" = "xno"; then
6755 AC_MSG_ERROR([System SQLite library is not compiled with SQLITE_ENABLE_UNLOCK_NOTIFY.])
6759 AC_SUBST(MOZ_NATIVE_SQLITE)
6761 dnl ========================================================
6762 dnl = Enable help viewer (off by default)
6763 dnl ========================================================
6764 if test -n "$MOZ_HELP_VIEWER"; then
6765 dnl Do this if defined in confvars.sh
6766 AC_DEFINE(MOZ_HELP_VIEWER)
6769 dnl ========================================================
6770 dnl = Enable safe browsing (anti-phishing)
6771 dnl ========================================================
6772 MOZ_ARG_ENABLE_BOOL(safe-browsing,
6773 [ --enable-safe-browsing Enable safe browsing (anti-phishing) implementation],
6774 MOZ_SAFE_BROWSING=1,
6775 MOZ_SAFE_BROWSING= )
6776 if test -n "$MOZ_SAFE_BROWSING"; then
6777 AC_DEFINE(MOZ_SAFE_BROWSING)
6779 AC_SUBST(MOZ_SAFE_BROWSING)
6781 dnl ========================================================
6782 dnl = Enable faststart component
6783 dnl ========================================================
6784 MOZ_ARG_ENABLE_BOOL(faststart,
6785 [ --enable-faststart Enable the faststart component],
6788 if test -n "$MOZ_FASTSTART"; then
6789 AC_DEFINE(MOZ_FASTSTART)
6791 AC_SUBST(MOZ_FASTSTART)
6793 dnl ========================================================
6794 dnl = Enable url-classifier
6795 dnl ========================================================
6796 dnl Implicitly enabled by default if building with safe-browsing
6797 if test -n "$MOZ_SAFE_BROWSING"; then
6798 MOZ_URL_CLASSIFIER=1
6800 MOZ_ARG_ENABLE_BOOL(url-classifier,
6801 [ --enable-url-classifier Enable url classifier module],
6802 MOZ_URL_CLASSIFIER=1,
6803 MOZ_URL_CLASSIFIER= )
6804 if test -n "$MOZ_URL_CLASSIFIER"; then
6805 AC_DEFINE(MOZ_URL_CLASSIFIER)
6807 AC_SUBST(MOZ_URL_CLASSIFIER)
6809 dnl ========================================================
6810 dnl = Disable zipwriter
6811 dnl ========================================================
6812 MOZ_ARG_DISABLE_BOOL(zipwriter,
6813 [ --disable-zipwriter Disable zipwriter component],
6816 AC_SUBST(MOZ_ZIPWRITER)
6818 dnl ========================================================
6819 dnl = Disable libconic
6820 dnl ========================================================
6821 MOZ_ENABLE_LIBCONIC=1
6822 MOZ_ARG_DISABLE_BOOL(libconic,
6823 [ --disable-libconic Disable libconic],
6824 MOZ_ENABLE_LIBCONIC=,
6825 MOZ_ENABLE_LIBCONIC=1 )
6827 if test -n "$MOZ_ENABLE_LIBCONIC"; then
6828 PKG_CHECK_MODULES(LIBCONIC, conic,
6829 MOZ_ENABLE_LIBCONIC=1,
6830 MOZ_ENABLE_LIBCONIC=)
6832 if test "$MOZ_ENABLE_LIBCONIC"; then
6833 AC_DEFINE(MOZ_ENABLE_LIBCONIC)
6836 AC_SUBST(MOZ_ENABLE_LIBCONIC)
6837 AC_SUBST(LIBCONIC_CFLAGS)
6838 AC_SUBST(LIBCONIC_LIBS)
6840 dnl ========================================================
6842 dnl ========================================================
6844 MAEMO_SDK_TARGET_VER=-1
6846 MOZ_ARG_WITH_STRING(maemo-version,
6847 [ --with-maemo-version=MAEMO_SDK_TARGET_VER
6849 MAEMO_SDK_TARGET_VER=$withval)
6851 case "$MAEMO_SDK_TARGET_VER" in
6853 MOZ_PLATFORM_MAEMO=5
6857 MOZ_PLATFORM_MAEMO=6
6861 dnl We aren't compiling for Maemo, move on.
6864 AC_MSG_ERROR([Unknown Maemo Version. Try setting --with-maemo-version to 5 or 6.])
6868 if test $MOZ_PLATFORM_MAEMO; then
6869 AC_DEFINE_UNQUOTED([MOZ_PLATFORM_MAEMO], $MOZ_PLATFORM_MAEMO)
6871 if test -z "$MOZ_ENABLE_DBUS"; then
6872 AC_MSG_ERROR([DBus is required when building for Maemo])
6875 MOZ_GFX_OPTIMIZE_MOBILE=1
6877 MOZ_MAEMO_LIBLOCATION=
6879 if test $MOZ_PLATFORM_MAEMO = 5; then
6880 dnl if we have Xcomposite we should also have Xdamage and Xfixes
6881 AC_CHECK_HEADERS([X11/extensions/Xdamage.h], [],
6882 [AC_MSG_ERROR([Couldn't find X11/extensions/Xdamage.h which is required for composited plugins.])])
6883 AC_CHECK_LIB(Xcomposite, XCompositeRedirectWindow, [XCOMPOSITE_LIBS="-lXcomposite -lXdamage -lXfixes"],
6884 [MISSING_X="$MISSING_X -lXcomposite"], $XLIBS)
6886 AC_SUBST(XCOMPOSITE_LIBS)
6888 PKG_CHECK_MODULES(LIBHILDONMIME,libhildonmime, _LIB_FOUND=1, _LIB_FOUND=)
6889 MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBHILDONMIME_LIBS"
6890 MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBHILDONMIME_CFLAGS"
6891 if test -z "$_LIB_FOUND"; then
6892 AC_MSG_ERROR([Hildon Mime is required when building for Maemo])
6896 PKG_CHECK_MODULES(LIBOSSO,libosso, _LIB_FOUND=1, _LIB_FOUND=)
6897 MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBOSSO_LIBS"
6898 MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBOSSO_CFLAGS"
6899 if test -z "$_LIB_FOUND"; then
6900 AC_MSG_ERROR([LibOSSO is required when building for Maemo])
6903 PKG_CHECK_MODULES(LIBHILDONFM,hildon-fm-2, _LIB_FOUND=1, _LIB_FOUND=)
6904 MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBHILDONFM_LIBS"
6905 MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBHILDONFM_CFLAGS"
6906 if test -z "$_LIB_FOUND"; then
6907 AC_MSG_ERROR([Hildon FM-2 is required when building for Maemo])
6911 if test $MOZ_PLATFORM_MAEMO = 6; then
6912 PKG_CHECK_MODULES(LIBCONTENTACTION, contentaction-0.1, _LIB_FOUND=1, _LIB_FOUND=)
6913 MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBCONTENTACTION_LIBS"
6914 MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBCONTENTACTION_CFLAGS"
6915 if test -z "$_LIB_FOUND"; then
6916 AC_MSG_ERROR([libcontentaction is required when build for Maemo])
6920 if test "$MOZ_PLATFORM_MAEMO" -gt 5; then
6922 PKG_CHECK_MODULES(MOZ_MEEGOTOUCH, meegotouchcore)
6923 MOZ_ENABLE_MEEGOTOUCH=1
6924 AC_DEFINE(MOZ_ENABLE_MEEGOTOUCH)
6925 MOZ_QT_CFLAGS="$MOZ_MEEGOTOUCH_CFLAGS $MOZ_QT_CFLAGS"
6926 MOZ_QT_LIBS="$MOZ_MEEGOTOUCH_LIBS $MOZ_QT_LIBS"
6929 PKG_CHECK_MODULES(LIBLOCATION,liblocation, _LIB_FOUND=1, _LIB_FOUND=)
6930 MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBLOCATION_LIBS"
6931 MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBLOCATION_CFLAGS"
6932 if test "$_LIB_FOUND"; then
6933 MOZ_MAEMO_LIBLOCATION=1
6934 AC_DEFINE(MOZ_MAEMO_LIBLOCATION)
6936 AC_MSG_WARN([Cannot liblocation-dev. Disabling Maemo geolocation.])
6938 AC_SUBST(MOZ_MAEMO_LIBLOCATION)
6940 AC_SUBST(MOZ_PLATFORM_MAEMO_LIBS)
6941 AC_SUBST(MOZ_PLATFORM_MAEMO_CFLAGS)
6944 dnl ========================================================
6945 dnl = Enable building the Thumb2 instruction set
6946 dnl ========================================================
6947 MOZ_ARG_ENABLE_BOOL(thumb2,
6948 [ --enable-thumb2 Enable Thumb2 instruction set],
6952 if test -n "$MOZ_THUMB2"; then
6953 case "$target_cpu" in
6955 if test "$GNU_CC"; then
6956 CFLAGS="$CFLAGS -march=armv7-a -mthumb -Wa, -march=armv7-a -Wa, -mthumb"
6957 CXXFLAGS="$CXXFLAGS -march=armv7-a -mthumb -Wa, -march=armv7-a -Wa, -mthumb"
6958 ASFLAGS="$ASFLAGS -march=armv7-a -mthumb"
6960 AC_MSG_ERROR([--enable-thumb2 is not supported for non-GNU toolchains])
6964 AC_MSG_ERROR([--enable-thumb2 is not supported for non-ARM CPU architectures])
6969 dnl ========================================================
6970 dnl = faststripe theme
6971 dnl ========================================================
6972 MOZ_ARG_ENABLE_BOOL(faststripe,
6973 [ --enable-faststripe Use faststripe theme],
6974 MOZ_THEME_FASTSTRIPE=1,
6975 MOZ_THEME_FASTSTRIPE= )
6976 AC_SUBST(MOZ_THEME_FASTSTRIPE)
6978 dnl ========================================================
6980 dnl = Feature options that require extra sources to be pulled
6982 dnl ========================================================
6983 dnl MOZ_ARG_HEADER(Features that require extra sources)
6985 dnl ========================================================
6987 dnl = Debugging Options
6989 dnl ========================================================
6990 MOZ_ARG_HEADER(Debugging and Optimizations)
6992 dnl ========================================================
6993 dnl = Disable building with debug info.
6994 dnl = Debugging is OFF by default
6995 dnl ========================================================
6996 if test -z "$MOZ_DEBUG_FLAGS"; then
6997 MOZ_DEBUG_FLAGS="-g"
7000 MOZ_ARG_ENABLE_STRING(debug,
7001 [ --enable-debug[=DBG] Enable building with developer debug info
7002 (using compiler flags DBG)],
7003 [ if test "$enableval" != "no"; then
7005 if test -n "$enableval" -a "$enableval" != "yes"; then
7006 MOZ_DEBUG_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'`
7007 _MOZ_DEBUG_FLAGS_SET=1
7014 MOZ_DEBUG_ENABLE_DEFS="-DDEBUG -D_DEBUG -DTRACING"
7015 MOZ_ARG_WITH_STRING(debug-label,
7016 [ --with-debug-label=LABELS
7017 Define DEBUG_<value> for each comma-separated
7019 [ for option in `echo $withval | sed 's/,/ /g'`; do
7020 MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_${option}"
7023 MOZ_DEBUG_DISABLE_DEFS="-DNDEBUG -DTRIMMED"
7025 if test -n "$MOZ_DEBUG"; then
7026 AC_MSG_CHECKING([for valid debug flags])
7027 _SAVE_CFLAGS=$CFLAGS
7028 CFLAGS="$CFLAGS $MOZ_DEBUG_FLAGS"
7029 AC_TRY_COMPILE([#include <stdio.h>],
7030 [printf("Hello World\n");],
7033 AC_MSG_RESULT([$_results])
7034 if test "$_results" = "no"; then
7035 AC_MSG_ERROR([These compiler flags are invalid: $MOZ_DEBUG_FLAGS])
7037 CFLAGS=$_SAVE_CFLAGS
7040 dnl ========================================================
7041 dnl enable mobile optimizations
7042 dnl ========================================================
7043 MOZ_ARG_ENABLE_BOOL(mobile-optimize,
7044 [ --enable-mobile-optimize
7045 Enable mobile optimizations],
7046 MOZ_GFX_OPTIMIZE_MOBILE=1)
7048 AC_SUBST(MOZ_GFX_OPTIMIZE_MOBILE)
7050 if test "$MOZ_GFX_OPTIMIZE_MOBILE"; then
7051 AC_DEFINE(MOZ_GFX_OPTIMIZE_MOBILE)
7054 dnl ========================================================
7055 dnl = Enable code optimization. ON by default.
7056 dnl ========================================================
7057 if test -z "$MOZ_OPTIMIZE_FLAGS"; then
7058 MOZ_OPTIMIZE_FLAGS="-O"
7061 MOZ_ARG_ENABLE_STRING(optimize,
7062 [ --disable-optimize Disable compiler optimization
7063 --enable-optimize=[OPT] Specify compiler optimization flags [OPT=-O]],
7064 [ if test "$enableval" != "no"; then
7066 if test -n "$enableval" -a "$enableval" != "yes"; then
7067 MOZ_OPTIMIZE_FLAGS=`echo "$enableval" | sed -e 's|\\\ | |g'`
7072 fi ], MOZ_OPTIMIZE=1)
7074 if test "$COMPILE_ENVIRONMENT"; then
7075 if test -n "$MOZ_OPTIMIZE"; then
7076 AC_MSG_CHECKING([for valid optimization flags])
7077 _SAVE_CFLAGS=$CFLAGS
7078 CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS"
7079 AC_TRY_COMPILE([#include <stdio.h>],
7080 [printf("Hello World\n");],
7083 AC_MSG_RESULT([$_results])
7084 if test "$_results" = "no"; then
7085 AC_MSG_ERROR([These compiler flags are invalid: $MOZ_OPTIMIZE_FLAGS])
7087 CFLAGS=$_SAVE_CFLAGS
7089 fi # COMPILE_ENVIRONMENT
7091 AC_SUBST(MOZ_OPTIMIZE)
7092 AC_SUBST(MOZ_OPTIMIZE_FLAGS)
7093 AC_SUBST(MOZ_OPTIMIZE_LDFLAGS)
7094 AC_SUBST(MOZ_OPTIMIZE_SIZE_TWEAK)
7096 dnl ========================================================
7097 dnl = (Deprecated) generation of debugger info for specific modules
7098 dnl ========================================================
7099 MOZ_ARG_ENABLE_STRING(debugger-info-modules,
7100 [ --enable-debugger-info-modules
7101 Enable/disable debugger info for specific modules],
7102 [ if test "$enableval" != "no"; then
7103 AC_MSG_WARN([--enable-debugger-info-modules is deprecated, use --enable-debug-symbols instead])
7107 dnl ========================================================
7108 dnl = Enable generation of debug symbols
7109 dnl ========================================================
7110 MOZ_ARG_ENABLE_STRING(debug-symbols,
7111 [ --enable-debug-symbols[=DBG]
7112 Enable debugging symbols (using compiler flags DBG)],
7113 [ if test "$enableval" != "no"; then
7115 if test -n "$enableval" -a "$enableval" != "yes"; then
7116 if test -z "$_MOZ_DEBUG_FLAGS_SET"; then
7117 MOZ_DEBUG_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'`
7119 AC_MSG_ERROR([--enable-debug-symbols flags cannot be used with --enable-debug flags])
7124 if test -n "$MOZ_DEBUG" -o -n "$MOZ_DEBUG_SYMBOLS"; then
7125 AC_DEFINE(MOZ_DEBUG_SYMBOLS)
7126 export MOZ_DEBUG_SYMBOLS
7129 dnl ========================================================
7130 dnl = Disable any treating of compile warnings as errors
7131 dnl ========================================================
7132 MOZ_ARG_DISABLE_BOOL(warnings-as-errors,
7133 [ --disable-warnings-as-errors
7134 Disable treating of warnings as errors],
7135 MOZ_DISABLE_WARNINGS_AS_ERRORS=1,
7136 MOZ_DISABLE_WARNINGS_AS_ERRORS= )
7137 if test "$MOZ_DISABLE_WARNINGS_AS_ERRORS"; then
7138 WARNINGS_AS_ERRORS=''
7141 dnl ========================================================
7142 dnl = Disable runtime logging checks
7143 dnl ========================================================
7144 MOZ_ARG_DISABLE_BOOL(logging,
7145 [ --disable-logging Disable logging facilities],
7146 NS_DISABLE_LOGGING=1,
7147 NS_DISABLE_LOGGING= )
7148 if test "$NS_DISABLE_LOGGING"; then
7149 AC_DEFINE(NS_DISABLE_LOGGING)
7151 AC_DEFINE(MOZ_LOGGING)
7154 dnl ========================================================
7155 dnl = This will enable logging of addref, release, ctor, dtor.
7156 dnl ========================================================
7157 _ENABLE_LOGREFCNT=42
7158 MOZ_ARG_ENABLE_BOOL(logrefcnt,
7159 [ --enable-logrefcnt Enable logging of refcounts (default=debug) ],
7160 _ENABLE_LOGREFCNT=1,
7161 _ENABLE_LOGREFCNT= )
7162 if test "$_ENABLE_LOGREFCNT" = "1"; then
7163 AC_DEFINE(FORCE_BUILD_REFCNT_LOGGING)
7164 elif test -z "$_ENABLE_LOGREFCNT"; then
7165 AC_DEFINE(NO_BUILD_REFCNT_LOGGING)
7168 dnl ========================================================
7169 dnl = Enable trace malloc
7170 dnl ========================================================
7171 NS_TRACE_MALLOC=${MOZ_TRACE_MALLOC}
7172 MOZ_ARG_ENABLE_BOOL(trace-malloc,
7173 [ --enable-trace-malloc Enable malloc tracing],
7176 if test "$NS_TRACE_MALLOC"; then
7177 # Please, Mr. Linker Man, don't take away our symbol names
7178 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS=
7180 AC_DEFINE(NS_TRACE_MALLOC)
7182 AC_SUBST(NS_TRACE_MALLOC)
7184 dnl ========================================================
7185 dnl = Enable jemalloc
7186 dnl ========================================================
7187 MOZ_ARG_ENABLE_BOOL(jemalloc,
7188 [ --enable-jemalloc Replace memory allocator with jemalloc],
7192 if test "$NS_TRACE_MALLOC"; then
7196 if test "$MOZ_MEMORY"; then
7198 dnl Don't try to run compiler tests on Windows
7199 if test "$OS_ARCH" = "WINNT"; then
7200 if test -z "$HAVE_64BIT_OS"; then
7201 AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 2)
7203 AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 3)
7206 AC_CHECK_SIZEOF([int *], [4])
7207 case "${ac_cv_sizeof_int_p}" in
7209 AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 2)
7212 AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 3)
7215 AC_MSG_ERROR([Unexpected pointer size])
7220 AC_DEFINE(MOZ_MEMORY)
7221 if test "x$MOZ_DEBUG" = "x1"; then
7222 AC_DEFINE(MOZ_MEMORY_DEBUG)
7224 dnl The generic feature tests that determine how to compute ncpus are long and
7225 dnl complicated. Therefore, simply define special cpp variables for the
7226 dnl platforms we have special knowledge of.
7229 AC_DEFINE(MOZ_MEMORY_DARWIN)
7232 AC_DEFINE(MOZ_MEMORY_BSD)
7235 AC_DEFINE(MOZ_MEMORY_LINUX)
7238 AC_DEFINE(MOZ_MEMORY_BSD)
7241 AC_DEFINE(MOZ_MEMORY_SOLARIS)
7243 *-msvc*|*-mks*|*-cygwin*|*-mingw*)
7244 AC_DEFINE(MOZ_MEMORY_WINDOWS)
7245 dnl This is sort of awful. Will revisit if we add support for more versions
7246 if test "$CC_VERSION" != "14.00.50727.762" -a "$CC_VERSION" != "15.00.30729.01"; then
7247 AC_MSG_ERROR([Building jemalloc requires exactly Visual C++ 2005 SP1 or 2008 SP1 currently.])
7249 if test -z "$WIN32_CRT_SRC_DIR"; then
7250 if test -z "$VCINSTALLDIR" -o ! -d "$VCINSTALLDIR"; then
7251 AC_MSG_ERROR([When building jemalloc, set WIN32_CRT_SRC_DIR to the path to the Visual C++ CRT source (usually VCINSTALLDIR\crt\src, but VCINSTALLDIR is not set, so I can't autodetect it for you).])
7253 WIN32_CRT_SRC_DIR="$VCINSTALLDIR\crt\src"
7257 case "${target_cpu}" in
7259 MOZ_CRT_CPU_ARCH=intel
7262 MOZ_CRT_CPU_ARCH=amd64
7265 AC_MSG_ERROR([--enable-jemalloc not supported on ${target}])
7269 AC_SUBST(MOZ_CRT_CPU_ARCH)
7271 if test ! -d "$WIN32_CRT_SRC_DIR"; then
7272 AC_MSG_ERROR([Invalid Win32 CRT source directory: ${WIN32_CRT_SRC_DIR}])
7274 WIN32_CRT_SRC_DIR=`cd "$WIN32_CRT_SRC_DIR" && pwd -W`
7275 _objdir_win=`pwd -W`
7276 WIN32_CUSTOM_CRT_DIR="$_objdir_win/memory/jemalloc/crtsrc/build/$MOZ_CRT_CPU_ARCH"
7277 MOZ_MEMORY_LDFLAGS="-MANIFEST:NO -LIBPATH:\"$WIN32_CUSTOM_CRT_DIR\" -NODEFAULTLIB:msvcrt -NODEFAULTLIB:msvcrtd -NODEFAULTLIB:msvcprt -NODEFAULTLIB:msvcprtd -DEFAULTLIB:mozcrt19 -DEFAULTLIB:mozcpp19"
7278 dnl Also pass this to NSPR/NSS
7279 DLLFLAGS="$DLLFLAGS $MOZ_MEMORY_LDFLAGS"
7283 AC_DEFINE(MOZ_MEMORY_WINCE)
7284 AC_DEFINE(MOZ_MEMORY_WINDOWS)
7285 if test -z "$WINCE_WINDOWS_MOBILE"; then
7286 AC_DEFINE(MOZ_MEMORY_WINCE6)
7290 AC_DEFINE(MOZ_MEMORY_WINCE)
7291 AC_DEFINE(MOZ_MEMORY_WINDOWS)
7294 AC_DEFINE(MOZ_MEMORY_LINUX)
7295 AC_DEFINE(MOZ_MEMORY_ANDROID)
7297 export WRAP_MALLOC_LIB="-L$_objdir/dist/lib -lmozalloc"
7300 AC_MSG_ERROR([--enable-jemalloc not supported on ${target}])
7304 if test "$OS_ARCH" != "Darwin"; then
7305 dnl NB: this must be kept in sync with jemalloc.h
7306 AC_DEFINE(HAVE_JEMALLOC_VALLOC)
7307 AC_DEFINE(HAVE_JEMALLOC_POSIX_MEMALIGN)
7308 AC_DEFINE(HAVE_JEMALLOC_MEMALIGN)
7311 AC_SUBST(MOZ_MEMORY)
7312 AC_SUBST(MOZ_MEMORY_LDFLAGS)
7313 AC_SUBST(WIN32_CRT_SRC_DIR)
7314 dnl Need to set this for make because NSS doesn't have configure
7317 dnl ========================================================
7318 dnl = Use malloc wrapper lib
7319 dnl ========================================================
7320 MOZ_ARG_ENABLE_BOOL(wrap-malloc,
7321 [ --enable-wrap-malloc Wrap malloc calls (gnu linker only)],
7325 if test -n "$_WRAP_MALLOC"; then
7326 if test "$GNU_CC"; then
7327 WRAP_MALLOC_CFLAGS="${LDFLAGS} -Wl,--wrap -Wl,malloc -Wl,--wrap -Wl,calloc -Wl,--wrap -Wl,valloc -Wl,--wrap -Wl,free -Wl,--wrap -Wl,realloc -Wl,--wrap -Wl,memalign -Wl,--wrap -Wl,__builtin_new -Wl,--wrap -Wl,__builtin_vec_new -Wl,--wrap -Wl,__builtin_delete -Wl,--wrap -Wl,__builtin_vec_delete -Wl,--wrap -Wl,PR_Free -Wl,--wrap -Wl,PR_Malloc -Wl,--wrap -Wl,PR_Calloc -Wl,--wrap -Wl,PR_Realloc -Wl,--wrap -Wl,strdup -Wl,--wrap -Wl,strndup -Wl,--wrap -Wl,posix_memalign"
7328 MKSHLIB='$(CXX) $(DSO_LDOPTS) $(WRAP_MALLOC_CFLAGS) $(WRAP_MALLOC_LIB) -o $@'
7332 dnl ========================================================
7333 dnl = Location of malloc wrapper lib
7334 dnl ========================================================
7335 MOZ_ARG_WITH_STRING(wrap-malloc,
7336 [ --with-wrap-malloc=DIR Location of malloc wrapper library],
7337 WRAP_MALLOC_LIB=$withval)
7339 dnl ========================================================
7340 dnl = Use JS Call tracing
7341 dnl ========================================================
7342 MOZ_ARG_ENABLE_BOOL(trace-jscalls,
7343 [ --enable-trace-jscalls Enable JS call enter/exit callback (default=no)],
7344 MOZ_TRACE_JSCALLS=1,
7345 MOZ_TRACE_JSCALLS= )
7346 if test -n "$MOZ_TRACE_JSCALLS"; then
7347 AC_DEFINE(MOZ_TRACE_JSCALLS)
7350 dnl ========================================================
7352 dnl ========================================================
7353 MOZ_ARG_ENABLE_BOOL(tracevis,
7354 [ --enable-tracevis Enable TraceVis tracing tool (default=no)],
7357 if test -n "$MOZ_TRACEVIS"; then
7358 AC_DEFINE(MOZ_TRACEVIS)
7361 dnl ========================================================
7363 dnl ========================================================
7364 MOZ_ARG_ENABLE_BOOL(gctimer,
7365 [ --enable-gctimer Enable GC timer (default=no)],
7368 if test -n "$MOZ_GCTIMER"; then
7369 AC_DEFINE(MOZ_GCTIMER)
7372 dnl ========================================================
7374 dnl ========================================================
7375 MOZ_ARG_ENABLE_BOOL(valgrind,
7376 [ --enable-valgrind Enable Valgrind integration hooks (default=no)],
7379 if test -n "$MOZ_VALGRIND"; then
7380 AC_CHECK_HEADER([valgrind/valgrind.h], [],
7382 [--enable-valgrind specified but Valgrind is not installed]))
7383 AC_DEFINE(MOZ_VALGRIND)
7386 dnl ========================================================
7388 dnl ========================================================
7389 MOZ_ARG_ENABLE_BOOL(jprof,
7390 [ --enable-jprof Enable jprof profiling tool (needs mozilla/tools/jprof)],
7393 if test -n "$MOZ_JPROF"; then
7394 AC_DEFINE(MOZ_JPROF)
7397 dnl ========================================================
7399 dnl ========================================================
7400 MOZ_ARG_ENABLE_BOOL(shark,
7401 [ --enable-shark Enable shark remote profiling (needs CHUD framework)],
7404 if test -n "$MOZ_SHARK"; then
7405 AC_DEFINE(MOZ_SHARK)
7408 dnl ========================================================
7410 dnl ========================================================
7411 MOZ_ARG_ENABLE_BOOL(callgrind,
7412 [ --enable-callgrind Enable callgrind profiling],
7415 if test -n "$MOZ_CALLGRIND"; then
7416 AC_DEFINE(MOZ_CALLGRIND)
7419 dnl ========================================================
7421 dnl ========================================================
7422 MOZ_ARG_ENABLE_BOOL(vtune,
7423 [ --enable-vtune Enable vtune profiling],
7426 if test -n "$MOZ_VTUNE"; then
7427 AC_DEFINE(MOZ_VTUNE)
7430 dnl ========================================================
7431 dnl Zealous JavaScript GC
7432 dnl ========================================================
7433 MOZ_ARG_ENABLE_BOOL(gczeal,
7434 [ --enable-gczeal Enable zealous JavaScript GCing],
7437 if test -n "$JS_GC_ZEAL"; then
7438 AC_DEFINE(JS_GC_ZEAL)
7441 dnl ======================================================
7442 dnl = Enable compiling with ccache
7443 dnl ======================================================
7444 MOZ_ARG_WITH_STRING(ccache,
7445 [ --with-ccache[=path/to/ccache]
7446 Enable compiling with ccache],
7447 CCACHE=$withval, CCACHE="no")
7449 if test "$CCACHE" != "no"; then
7450 if test -z "$CCACHE" -o "$CCACHE" = "yes"; then
7453 if test ! -e "$CCACHE"; then
7454 AC_MSG_ERROR([$CCACHE not found])
7457 MOZ_PATH_PROGS(CCACHE, $CCACHE ccache)
7458 if test -z "$CCACHE" -o "$CCACHE" = ":"; then
7459 AC_MSG_ERROR([ccache not found])
7460 elif test -x "$CCACHE"; then
7464 AC_MSG_ERROR([$CCACHE is not executable])
7468 dnl ========================================================
7469 dnl = Enable static checking using gcc-dehydra
7470 dnl ========================================================
7472 MOZ_ARG_WITH_STRING(static-checking,
7473 [ --with-static-checking=path/to/gcc_dehydra.so
7474 Enable static checking of code using GCC-dehydra],
7475 DEHYDRA_PATH=$withval,
7478 if test -n "$DEHYDRA_PATH"; then
7479 if test ! -f "$DEHYDRA_PATH"; then
7480 AC_MSG_ERROR([The dehydra plugin is not at the specified path.])
7482 AC_DEFINE(NS_STATIC_CHECKING)
7484 AC_SUBST(DEHYDRA_PATH)
7486 dnl ========================================================
7487 dnl = Enable stripping of libs & executables
7488 dnl ========================================================
7489 MOZ_ARG_ENABLE_BOOL(strip,
7490 [ --enable-strip Enable stripping of libs & executables ],
7494 dnl ========================================================
7495 dnl = Enable stripping of libs & executables when packaging
7496 dnl ========================================================
7497 MOZ_ARG_ENABLE_BOOL(install-strip,
7498 [ --enable-install-strip Enable stripping of libs & executables when packaging ],
7502 dnl ========================================================
7503 dnl = --enable-elf-dynstr-gc
7504 dnl ========================================================
7505 MOZ_ARG_ENABLE_BOOL(elf-dynstr-gc,
7506 [ --enable-elf-dynstr-gc Enable elf dynstr garbage collector (opt builds only)],
7507 USE_ELF_DYNSTR_GC=1,
7508 USE_ELF_DYNSTR_GC= )
7510 dnl ========================================================
7512 dnl = Profiling and Instrumenting
7514 dnl ========================================================
7515 MOZ_ARG_HEADER(Profiling and Instrumenting)
7517 dnl ========================================================
7518 dnl = Enable timeline service, which provides lightweight
7519 dnl = instrumentation of mozilla for performance measurement.
7520 dnl = Timeline is off by default.
7521 dnl ========================================================
7522 MOZ_ARG_ENABLE_BOOL(timeline,
7523 [ --enable-timeline Enable timeline services ],
7526 if test -n "$MOZ_TIMELINE"; then
7527 AC_DEFINE(MOZ_TIMELINE)
7530 dnl ========================================================
7531 dnl = Enable NS_FUNCTION_TIMER, which provides Function
7532 dnl = timing for identifying code bottlenecks
7533 dnl = NS_FUNCTION_TIMER is off by default.
7534 dnl ========================================================
7535 MOZ_ARG_ENABLE_BOOL(functiontimer,
7536 [ --enable-functiontimer Enable NS_FUNCTION_TIMER ],
7537 NS_FUNCTION_TIMER=1,
7538 NS_FUNCTION_TIMER= )
7539 if test -n "$NS_FUNCTION_TIMER"; then
7540 AC_DEFINE(NS_FUNCTION_TIMER)
7543 dnl ========================================================
7544 dnl Turn on reflow counting
7545 dnl ========================================================
7546 MOZ_ARG_ENABLE_BOOL(reflow-perf,
7547 [ --enable-reflow-perf Enable reflow performance tracing],
7550 if test -n "$MOZ_REFLOW_PERF"; then
7551 AC_DEFINE(MOZ_REFLOW_PERF)
7554 dnl ========================================================
7555 dnl Enable code size metrics.
7556 dnl ========================================================
7557 MOZ_ARG_ENABLE_BOOL(codesighs,
7558 [ --enable-codesighs Enable code size analysis tools],
7559 _ENABLE_CODESIGHS=1,
7560 _ENABLE_CODESIGHS= )
7561 if test -n "$_ENABLE_CODESIGHS"; then
7562 if test -d $srcdir/tools/codesighs; then
7565 AC_MSG_ERROR([Codesighs directory $srcdir/tools/codesighs required.])
7569 dnl ========================================================
7570 dnl = Support for Quantify (Windows)
7571 dnl ========================================================
7572 MOZ_ARG_ENABLE_BOOL(quantify,
7573 [ --enable-quantify Enable Quantify support (Windows only) ],
7577 dnl ========================================================
7578 dnl = Support for demangling undefined symbols
7579 dnl ========================================================
7580 if test -z "$SKIP_LIBRARY_CHECKS"; then
7583 AC_CHECK_FUNCS(__cxa_demangle, HAVE_DEMANGLE=1, HAVE_DEMANGLE=)
7587 # Demangle only for debug or trace-malloc builds
7588 MOZ_DEMANGLE_SYMBOLS=
7589 if test "$HAVE_DEMANGLE" -a "$HAVE_GCC3_ABI" && test "$MOZ_DEBUG" -o "$NS_TRACE_MALLOC"; then
7590 MOZ_DEMANGLE_SYMBOLS=1
7591 AC_DEFINE(MOZ_DEMANGLE_SYMBOLS)
7593 AC_SUBST(MOZ_DEMANGLE_SYMBOLS)
7595 dnl ========================================================
7596 dnl = Support for gcc stack unwinding (from gcc 3.3)
7597 dnl ========================================================
7598 if test "$HAVE_GCC3_ABI" -a -z "$SKIP_LIBRARY_CHECKS"; then
7599 AC_CHECK_HEADER(unwind.h, AC_CHECK_FUNCS(_Unwind_Backtrace))
7602 dnl ========================================================
7606 dnl ========================================================
7607 MOZ_ARG_HEADER(Misc. Options)
7609 dnl ========================================================
7610 dnl update xterm title
7611 dnl ========================================================
7612 MOZ_ARG_ENABLE_BOOL(xterm-updates,
7613 [ --enable-xterm-updates Update XTERM titles with current command.],
7617 dnl =========================================================
7619 dnl =========================================================
7620 MOZ_ARG_ENABLE_STRING([chrome-format],
7621 [ --enable-chrome-format=jar|flat|both|symlink|omni
7622 Select FORMAT of chrome files (default=jar)],
7623 MOZ_CHROME_FILE_FORMAT=`echo $enableval | tr A-Z a-z`)
7625 if test -z "$MOZ_CHROME_FILE_FORMAT"; then
7626 MOZ_CHROME_FILE_FORMAT=jar
7629 if test "$MOZ_CHROME_FILE_FORMAT" != "jar" &&
7630 test "$MOZ_CHROME_FILE_FORMAT" != "flat" &&
7631 test "$MOZ_CHROME_FILE_FORMAT" != "symlink" &&
7632 test "$MOZ_CHROME_FILE_FORMAT" != "both" &&
7633 test "$MOZ_CHROME_FILE_FORMAT" != "omni"; then
7634 AC_MSG_ERROR([--enable-chrome-format must be set to either jar, flat, both, symlink, or omni])
7637 dnl =========================================================
7638 dnl Omnijar packaging (bug 552121)
7639 dnl =========================================================
7640 dnl Omnijar packaging is compatible with flat packaging.
7641 dnl In unpackaged builds, omnijar looks for files as if
7642 dnl things were flat packaged. After packaging, all files
7643 dnl are loaded from a single jar. MOZ_CHROME_FILE_FORMAT
7644 dnl is set to flat since putting files into jars is only
7645 dnl done during packaging with omnijar.
7646 if test "$MOZ_CHROME_FILE_FORMAT" = "omni"; then
7648 AC_DEFINE(MOZ_OMNIJAR)
7649 MOZ_CHROME_FILE_FORMAT=flat
7650 elif test "$MOZ_CHROME_FILE_FORMAT" = "jar"; then
7651 AC_DEFINE(MOZ_CHROME_FILE_FORMAT_JAR)
7654 AC_SUBST(MOZ_OMNIJAR)
7656 dnl ========================================================
7657 dnl = Define default location for MOZILLA_FIVE_HOME
7658 dnl ========================================================
7659 MOZ_ARG_WITH_STRING(default-mozilla-five-home,
7660 [ --with-default-mozilla-five-home
7661 Set the default value for MOZILLA_FIVE_HOME],
7662 [ val=`echo $withval`
7663 AC_DEFINE_UNQUOTED(MOZ_DEFAULT_MOZILLA_FIVE_HOME,"$val") ])
7665 dnl ========================================================
7666 dnl = Location of the mozilla user directory (default is ~/.mozilla).],
7667 dnl ========================================================
7668 MOZ_ARG_WITH_STRING(user-appdir,
7669 [ --with-user-appdir=DIR Set user-specific appdir (default=.mozilla)],
7670 [ val=`echo $withval`
7671 if echo "$val" | grep "\/" >/dev/null; then
7672 AC_MSG_ERROR("Homedir must be single relative path.")
7677 AC_DEFINE_UNQUOTED(MOZ_USER_DIR,"$MOZ_USER_DIR")
7679 dnl ========================================================
7680 dnl = Doxygen configuration
7681 dnl ========================================================
7682 dnl Use commas to specify multiple dirs to this arg
7683 MOZ_DOC_INPUT_DIRS='./dist/include ./dist/idl'
7684 MOZ_ARG_WITH_STRING(doc-input-dirs,
7685 [ --with-doc-input-dirs=DIRS
7686 Header/idl dirs to create docs from],
7687 [ MOZ_DOC_INPUT_DIRS=`echo "$withval" | sed "s/,/ /g"` ] )
7688 AC_SUBST(MOZ_DOC_INPUT_DIRS)
7690 dnl Use commas to specify multiple dirs to this arg
7691 MOZ_DOC_INCLUDE_DIRS='./dist/include ./dist/include/nspr'
7692 MOZ_ARG_WITH_STRING(doc-include-dirs,
7693 [ --with-doc-include-dirs=DIRS
7694 Include dirs to preprocess doc headers],
7695 [ MOZ_DOC_INCLUDE_DIRS=`echo "$withval" | sed "s/,/ /g"` ] )
7696 AC_SUBST(MOZ_DOC_INCLUDE_DIRS)
7698 MOZ_DOC_OUTPUT_DIR='./dist/docs'
7699 MOZ_ARG_WITH_STRING(doc-output-dir,
7700 [ --with-doc-output-dir=DIR
7701 Dir to generate docs into],
7702 [ MOZ_DOC_OUTPUT_DIR=$withval ] )
7703 AC_SUBST(MOZ_DOC_OUTPUT_DIR)
7705 if test -z "$SKIP_COMPILER_CHECKS"; then
7706 dnl ========================================================
7708 dnl = Compiler Options
7710 dnl ========================================================
7711 MOZ_ARG_HEADER(Compiler Options)
7713 dnl ========================================================
7714 dnl Check for gcc -pipe support
7715 dnl ========================================================
7716 AC_MSG_CHECKING([for gcc -pipe support])
7717 if test -n "$GNU_CC" -a -n "$GNU_CXX" -a -n "$GNU_AS"; then
7718 echo '#include <stdio.h>' > dummy-hello.c
7719 echo 'int main() { printf("Hello World\n"); exit(0); }' >> dummy-hello.c
7720 ${CC} -S dummy-hello.c -o dummy-hello.s 2>&5
7721 cat dummy-hello.s 2> /dev/null | ${AS_BIN} -o dummy-hello.S - 2>&5
7722 if test $? = 0; then
7727 if test "$_res_as_stdin" = "yes"; then
7728 _SAVE_CFLAGS=$CFLAGS
7729 CFLAGS="$CFLAGS -pipe"
7730 AC_TRY_COMPILE( [ #include <stdio.h> ],
7731 [printf("Hello World\n");],
7732 [_res_gcc_pipe="yes"],
7733 [_res_gcc_pipe="no"] )
7734 CFLAGS=$_SAVE_CFLAGS
7736 if test "$_res_as_stdin" = "yes" -a "$_res_gcc_pipe" = "yes"; then
7738 CFLAGS="$CFLAGS -pipe"
7739 CXXFLAGS="$CXXFLAGS -pipe"
7743 rm -f dummy-hello.c dummy-hello.s dummy-hello.S dummy-hello a.out
7744 AC_MSG_RESULT([$_res])
7749 dnl ========================================================
7750 dnl Profile guided optimization
7751 dnl ========================================================
7752 dnl Test for profiling options
7753 dnl Under gcc 3.4+, use -fprofile-generate/-fprofile-use
7755 dnl Provide a switch to disable PGO even when called via profiledbuild.
7756 MOZ_ARG_DISABLE_BOOL(profile-guided-optimization,
7757 [ --disable-profile-guided-optimization
7758 Don't build with PGO even if called via make profiledbuild],
7759 MOZ_PROFILE_GUIDED_OPTIMIZE_DISABLE=1,
7760 MOZ_PROFILE_GUIDED_OPTIMIZE_DISABLE=)
7762 AC_SUBST(MOZ_PROFILE_GUIDED_OPTIMIZE_DISABLE)
7764 _SAVE_CFLAGS="$CFLAGS"
7765 CFLAGS="$CFLAGS -fprofile-generate -fprofile-correction"
7767 AC_MSG_CHECKING([whether C compiler supports -fprofile-generate])
7768 AC_TRY_COMPILE([], [return 0;],
7769 [ PROFILE_GEN_CFLAGS="-fprofile-generate"
7770 result="yes" ], result="no")
7771 AC_MSG_RESULT([$result])
7773 if test $result = "yes"; then
7774 PROFILE_GEN_LDFLAGS="-fprofile-generate"
7775 PROFILE_USE_CFLAGS="-fprofile-use -fprofile-correction -Wcoverage-mismatch -freorder-blocks-and-partition"
7776 PROFILE_USE_LDFLAGS="-fprofile-use"
7779 CFLAGS="$_SAVE_CFLAGS"
7781 if test -n "$INTEL_CC"; then
7782 PROFILE_GEN_CFLAGS="-prof-gen -prof-dir ."
7783 PROFILE_GEN_LDFLAGS=
7784 PROFILE_USE_CFLAGS="-prof-use -prof-dir ."
7785 PROFILE_USE_LDFLAGS=
7788 dnl Sun Studio on Solaris
7789 if test "$SOLARIS_SUNPRO_CC"; then
7790 PROFILE_GEN_CFLAGS="-xprofile=collect:$_objdir/$enable_application"
7791 PROFILE_GEN_LDFLAGS="-xprofile=collect:$_objdir/$enable_application"
7792 PROFILE_USE_CFLAGS="-xprofile=use:$_objdir/$enable_application"
7793 PROFILE_USE_LDFLAGS="-xprofile=use:$_objdir/$enable_application"
7796 AC_SUBST(PROFILE_GEN_CFLAGS)
7797 AC_SUBST(PROFILE_GEN_LDFLAGS)
7798 AC_SUBST(PROFILE_USE_CFLAGS)
7799 AC_SUBST(PROFILE_USE_LDFLAGS)
7803 dnl ========================================================
7804 dnl Test for -pedantic bustage
7805 dnl ========================================================
7806 MOZ_ARG_DISABLE_BOOL(pedantic,
7807 [ --disable-pedantic Issue all warnings demanded by strict ANSI C ],
7809 if test "$_PEDANTIC"; then
7810 _SAVE_CXXFLAGS=$CXXFLAGS
7811 CXXFLAGS="$CXXFLAGS ${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-pedantic ${_COMPILER_PREFIX}-Wno-long-long"
7812 AC_MSG_CHECKING([whether C++ compiler has -pedantic long long bug])
7813 AC_TRY_COMPILE([$configure_static_assert_macros],
7814 [CONFIGURE_STATIC_ASSERT(sizeof(long long) == 8)],
7815 result="no", result="yes" )
7816 AC_MSG_RESULT([$result])
7817 CXXFLAGS="$_SAVE_CXXFLAGS"
7821 _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} ${_COMPILER_PREFIX}-pedantic ${_COMPILER_PREFIX}-Wno-long-long"
7822 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-pedantic ${_COMPILER_PREFIX}-Wno-long-long"
7825 AC_MSG_ERROR([Your compiler appears to have a known bug where long long is miscompiled when using -pedantic. Reconfigure using --disable-pedantic. ])
7830 dnl ========================================================
7831 dnl Test for correct temporary object destruction order
7832 dnl ========================================================
7833 dnl We want to make sure the compiler follows the C++ spec here as
7834 dnl xpcom and the string classes depend on it (bug 235381).
7835 AC_MSG_CHECKING([for correct temporary object destruction order])
7836 AC_TRY_RUN([ class A {
7837 public: A(int& x) : mValue(x) {}
7839 operator char**() { return 0; }
7840 private: int& mValue;
7842 void func(char **arg) {}
7853 result="yes", result="no", result="maybe")
7854 AC_MSG_RESULT([$result])
7856 if test "$result" = "no"; then
7857 AC_MSG_ERROR([Your compiler does not follow the C++ specification for temporary object destruction order.])
7860 dnl ========================================================
7861 dnl Autoconf test for gcc 2.7.2.x (and maybe others?) so that we don't
7862 dnl provide non-const forms of the operator== for comparing nsCOMPtrs to
7863 dnl raw pointers in nsCOMPtr.h. (VC++ has the same bug.)
7864 dnl ========================================================
7865 _SAVE_CXXFLAGS=$CXXFLAGS
7866 CXXFLAGS="$CXXFLAGS ${_WARNINGS_CXXFLAGS}"
7867 AC_CACHE_CHECK(for correct overload resolution with const and templates,
7868 ac_nscap_nonconst_opeq_bug,
7877 template <class T, class U>
7878 int operator==(const Pointer<T>& rhs, U* lhs)
7880 return rhs.myPtr == lhs;
7883 template <class T, class U>
7884 int operator==(const Pointer<T>& rhs, const U* lhs)
7886 return rhs.myPtr == lhs;
7894 ac_nscap_nonconst_opeq_bug="no",
7895 ac_nscap_nonconst_opeq_bug="yes")])
7896 CXXFLAGS="$_SAVE_CXXFLAGS"
7898 if test "$ac_nscap_nonconst_opeq_bug" = "yes" ; then
7899 AC_DEFINE(NSCAP_DONT_PROVIDE_NONCONST_OPEQ)
7901 fi # SKIP_COMPILER_CHECKS
7903 dnl ========================================================
7905 dnl Should be smarter and check that the compiler does indeed have rtti
7906 dnl ========================================================
7908 MOZ_ARG_ENABLE_BOOL(cpp-rtti,
7909 [ --enable-cpp-rtti Enable C++ RTTI ],
7910 [ _MOZ_USE_RTTI=1 ],
7913 if test "$_MOZ_USE_RTTI"; then
7914 _MOZ_RTTI_FLAGS=$_MOZ_RTTI_FLAGS_ON
7916 _MOZ_RTTI_FLAGS=$_MOZ_RTTI_FLAGS_OFF
7919 AC_SUBST(_MOZ_RTTI_FLAGS_ON)
7921 dnl ========================================================
7922 dnl C++ exceptions (g++/VC/irix6/Sun only - for now)
7923 dnl Should be smarter and check that the compiler does indeed have exceptions
7924 dnl ========================================================
7925 MOZ_ARG_ENABLE_BOOL(cpp-exceptions,
7926 [ --enable-cpp-exceptions Enable C++ exceptions ],
7927 [ _MOZ_CPP_EXCEPTIONS=1 ],
7928 [ _MOZ_CPP_EXCEPTIONS= ])
7930 if test "$_MOZ_CPP_EXCEPTIONS"; then
7931 _MOZ_EXCEPTIONS_FLAGS=$_MOZ_EXCEPTIONS_FLAGS_ON
7932 AC_DEFINE(MOZ_CPP_EXCEPTIONS)
7934 _MOZ_EXCEPTIONS_FLAGS=$_MOZ_EXCEPTIONS_FLAGS_OFF
7937 AC_SUBST(_MOZ_EXCEPTIONS_FLAGS_ON)
7939 # Irix & OSF native compilers do not like exception declarations
7940 # when exceptions are disabled
7941 if test -n "$MIPSPRO_CXX" -o -n "$COMPAQ_CXX" -o -n "$VACPP"; then
7942 AC_DEFINE(CPP_THROW_NEW, [])
7944 AC_DEFINE(CPP_THROW_NEW, [throw()])
7948 dnl ========================================================
7950 dnl = Build depencency options
7952 dnl ========================================================
7953 MOZ_ARG_HEADER(Build dependencies)
7955 dnl ========================================================
7956 dnl = Do not auto generate dependency info
7957 dnl ========================================================
7959 MOZ_ARG_DISABLE_BOOL(auto-deps,
7960 [ --disable-auto-deps Do not automatically generate dependency info],
7964 if test -n "$MOZ_AUTO_DEPS"; then
7965 dnl ========================================================
7966 dnl = Use mkdepend instead of $CC -MD for dependency generation
7967 dnl ========================================================
7969 MOZ_ARG_DISABLE_BOOL(md,
7970 [ --disable-md Do not use compiler-based dependencies ],
7973 [dnl Default is to turn on -MD if using GNU-compatible compilers
7974 if test "$GNU_CC" -a "$GNU_CXX" -a "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "WINCE"; then
7977 dnl Default is to use -xM if using Sun Studio on Solaris
7978 if test "$SOLARIS_SUNPRO_CC"; then
7981 if test "$_cpp_md_flag"; then
7983 if test "$OS_ARCH" = "OpenVMS"; then
7984 _DEPEND_CFLAGS='$(subst =, ,$(filter-out %/.pp,-MM=-MD=-MF=$(MDDEPDIR)/$(basename $(@F)).pp))'
7986 _DEPEND_CFLAGS='$(filter-out %/.pp,-MD -MF $(MDDEPDIR)/$(basename $(@F)).pp)'
7988 dnl Sun Studio on Solaris use -xM instead of -MD, see config/rules.mk
7989 if test "$SOLARIS_SUNPRO_CC"; then
7994 dnl Don't override this for MSVC
7995 if test -z "$_WIN32_MSVC"; then
7996 _USE_CPP_INCLUDE_FLAG=
7997 _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
7998 _DEFINES_CXXFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
8000 _topsrcdirwin=`cd \`dirname $0\`; pwd -W`
8001 dnl cl.py provides dependency generation for MSVC
8002 CC_WRAPPER="$PYTHON -O $_topsrcdirwin/build/cl.py"
8003 CXX_WRAPPER="$PYTHON -O $_topsrcdirwin/build/cl.py"
8009 AC_SUBST(MOZ_AUTO_DEPS)
8010 AC_SUBST(COMPILER_DEPEND)
8012 AC_SUBST(CC_WRAPPER)
8013 AC_SUBST(CXX_WRAPPER)
8016 dnl ========================================================
8018 dnl = Static Build Options
8020 dnl ========================================================
8021 MOZ_ARG_HEADER(Static build options)
8023 MOZ_ARG_ENABLE_BOOL(static,
8024 [ --enable-static Enable building of internal static libs],
8025 BUILD_STATIC_LIBS=1,
8028 MOZ_ARG_ENABLE_BOOL(libxul,
8029 [ --enable-libxul Enable building of libxul],
8030 MOZ_ENABLE_LIBXUL=1,
8033 if test -n "$MOZ_STATIC_BUILD_UNSUPPORTED" -a -n "$BUILD_STATIC_LIBS"; then
8034 AC_MSG_ERROR([--enable-static is not supported for building $MOZ_APP_NAME. You probably want --enable-libxul.])
8037 if test -n "$MOZ_ENABLE_LIBXUL" -a -n "$BUILD_STATIC_LIBS"; then
8038 AC_MSG_ERROR([--enable-libxul is not compatible with --enable-static])
8041 if test -n "$MOZ_IPC" -a -z "$MOZ_ENABLE_LIBXUL"; then
8042 AC_MSG_ERROR([--enable-ipc requires --enable-libxul])
8045 AC_SUBST(LIBXUL_LIBS)
8047 if test -n "$MOZ_ENABLE_LIBXUL"; then
8048 XPCOM_LIBS="$LIBXUL_LIBS"
8049 AC_DEFINE(MOZ_ENABLE_LIBXUL)
8051 if test -n "$BUILD_STATIC_LIBS"; then
8052 AC_DEFINE(MOZ_STATIC_BUILD)
8054 XPCOM_LIBS="$DYNAMIC_XPCOM_LIBS"
8057 dnl ========================================================
8059 dnl = Standalone module options
8061 dnl ========================================================
8062 MOZ_ARG_HEADER(Standalone module options (Not for building Mozilla))
8064 dnl Check for GLib and libIDL.
8065 dnl ========================================================
8068 if test -z "$COMPILE_ENVIRONMENT"; then
8069 SKIP_IDL_CHECK="yes"
8072 dnl = Allow users to disable libIDL checking for standalone modules
8073 MOZ_ARG_WITHOUT_BOOL(libIDL,
8074 [ --without-libIDL Skip check for libIDL (standalone modules only)],
8075 SKIP_IDL_CHECK="yes")
8077 if test -z "$CROSS_COMPILE"; then
8078 if test -z "$HOST_LIBIDL_CONFIG"; then
8079 HOST_LIBIDL_CONFIG="$LIBIDL_CONFIG"
8081 if test -z "$HOST_LIBIDL_PREFIX"; then
8082 HOST_LIBIDL_PREFIX="$LIBIDL_PREFIX"
8086 if test "$SKIP_IDL_CHECK" = "no"
8090 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
8091 if test -n "$GLIB_PREFIX"; then
8092 _GLIB_PREFIX_DIR=`cd $GLIB_PREFIX && pwd -W`
8093 if test "$?" = "0"; then
8094 if test `echo ${PATH}: | grep -ic "$_GLIB_PREFIX_DIR/bin:"` = 0; then
8095 AC_MSG_ERROR([GLIB_PREFIX must be in your \$PATH.])
8097 _GLIB_PREFIX_DIR=`$CYGPATH_W $_GLIB_PREFIX_DIR | $CYGPATH_S`
8099 AC_MSG_ERROR([GLIB_PREFIX is set but "${GLIB_PREFIX}" is not a directory.])
8102 _GLIB_PREFIX_DIR=$MOZ_TOOLS_DIR
8104 if test ! -f "${_GLIB_PREFIX_DIR}/include/glib.h"; then
8105 AC_MSG_ERROR([Cannot find $_GLIB_PREFIX_DIR/include/glib.h .])
8107 GLIB_CFLAGS="-I${_GLIB_PREFIX_DIR}/include"
8108 if test -f "${_GLIB_PREFIX_DIR}/lib/glib-1.2_s.lib"; then
8109 GLIB_LIBS="${_GLIB_PREFIX_DIR}/lib/glib-1.2_s.lib"
8110 elif test -f "${_GLIB_PREFIX_DIR}/lib/glib-1.2.lib"; then
8111 GLIB_LIBS="${_GLIB_PREFIX_DIR}/lib/glib-1.2.lib"
8113 AC_MSG_ERROR([Cannot find $_GLIB_PREFIX_DIR/lib/glib-1.2.lib or $_GLIB_PREFIX_DIR/lib/glib-1.2_s.lib])
8116 if test -n "$HOST_LIBIDL_PREFIX"; then
8117 _LIBIDL_PREFIX_DIR=`cd $HOST_LIBIDL_PREFIX && pwd -W`
8118 if test "$?" = "0"; then
8119 if test `echo ${PATH}: | grep -ic "$_LIBIDL_PREFIX_DIR/bin:"` = 0; then
8120 AC_MSG_ERROR([LIBIDL_PREFIX must be in your \$PATH.])
8122 _LIBIDL_PREFIX_DIR=`$CYGPATH_W $_LIBIDL_PREFIX_DIR | $CYGPATH_S`
8124 AC_MSG_ERROR([LIBIDL_PREFIX is set but "${LIBIDL_PREFIX}" is not a directory.])
8127 _LIBIDL_PREFIX_DIR=$MOZ_TOOLS_DIR
8129 if test ! -f "${_LIBIDL_PREFIX_DIR}/include/libIDL/IDL.h"; then
8130 AC_MSG_ERROR([Cannot find $_LIBIDL_PREFIX_DIR/include/libIDL/IDL.h .])
8132 HOST_LIBIDL_CFLAGS="-I${_LIBIDL_PREFIX_DIR}/include ${GLIB_CFLAGS}"
8133 if test -f "${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6_s.lib"; then
8134 HOST_LIBIDL_LIBS="${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6_s.lib"
8136 elif test -f "${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6.lib"; then
8137 HOST_LIBIDL_LIBS="${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6.lib"
8139 AC_MSG_ERROR([Cannot find $_LIBIDL_PREFIX_DIR/lib/libidl-0.6.lib or $_LIBIDL_PREFIX_DIR/lib/libidl-0.6_s.lib])
8141 HOST_LIBIDL_LIBS="${HOST_LIBIDL_LIBS} ${GLIB_LIBS}"
8146 if test -z "$_LIBIDL_FOUND"; then
8147 if test "$MACOS_SDK_DIR"; then
8148 dnl xpidl, and therefore libIDL, is only needed on the build host.
8149 dnl Don't build it against the SDK, as that causes problems.
8150 _MACSAVE_CFLAGS="$CFLAGS"
8151 _MACSAVE_LIBS="$LIBS"
8152 _MACSAVE_LDFLAGS="$LDFLAGS"
8153 _MACSAVE_NEXT_ROOT="$NEXT_ROOT"
8155 CFLAGS=`echo $CFLAGS|sed -E -e "s%((-I|-isystem )${MACOS_SDK_DIR}/usr/(include|lib/gcc)[^ ]*)|-F${MACOS_SDK_DIR}(/System)?/Library/Frameworks[^ ]*|-nostdinc[^ ]*|-isysroot ${MACOS_SDK_DIR}%%g"`
8156 LIBS=`echo $LIBS|sed -e "s?-L${MACOS_SDK_DIR}/usr/lib[^ ]*??g"`
8157 LDFLAGS=`echo $LDFLAGS|sed -e "s?-Wl,-syslibroot,${MACOS_SDK_DIR}??g"`
8162 PKG_CHECK_MODULES(HOST_LIBIDL, libIDL-2.0 >= 0.8.0 glib-2.0 gobject-2.0, _LIBIDL_FOUND=1,_LIBIDL_FOUND=)
8165 dnl if no gtk/libIDL1 or gtk2/libIDL2 combination was found, fall back
8166 dnl to either libIDL1 or libIDL2.
8167 if test -z "$_LIBIDL_FOUND"; then
8168 AM_PATH_LIBIDL($LIBIDL_VERSION,_LIBIDL_FOUND=1)
8169 if test -z "$_LIBIDL_FOUND"; then
8170 PKG_CHECK_MODULES(HOST_LIBIDL, libIDL-2.0 >= 0.8.0,_LIBIDL_FOUND=1)
8174 dnl If we don't have a libIDL config program & not cross-compiling,
8175 dnl look for orbit-config instead.
8177 if test -z "$_LIBIDL_FOUND" -a -z "$CROSS_COMPILE"; then
8178 MOZ_PATH_PROGS(ORBIT_CONFIG, $ORBIT_CONFIG orbit-config)
8179 if test -n "$ORBIT_CONFIG"; then
8180 AC_MSG_CHECKING([for ORBit libIDL usability])
8181 _ORBIT_CFLAGS=`${ORBIT_CONFIG} client --cflags`
8182 _ORBIT_LIBS=`${ORBIT_CONFIG} client --libs`
8183 _ORBIT_INC_PATH=`${PERL} -e '{ for $f (@ARGV) { print "$f " if ($f =~ m/^-I/); } }' -- ${_ORBIT_CFLAGS}`
8184 _ORBIT_LIB_PATH=`${PERL} -e '{ for $f (@ARGV) { print "$f " if ($f =~ m/^-L/); } }' -- ${_ORBIT_LIBS}`
8185 HOST_LIBIDL_CFLAGS="$_ORBIT_INC_PATH"
8186 HOST_LIBIDL_LIBS="$_ORBIT_LIB_PATH -lIDL -lglib"
8188 _SAVE_CFLAGS="$CFLAGS"
8190 CFLAGS="$HOST_LIBIDL_CFLAGS $CFLAGS"
8191 LIBS="$HOST_LIBIDL_LIBS $LIBS"
8194 #include <libIDL/IDL.h>
8197 s=strdup(IDL_get_libver_string());
8205 [HOST_LIBIDL_CFLAGS=
8210 AC_MSG_RESULT($result)
8211 CFLAGS="$_SAVE_CFLAGS"
8215 if test -z "$_LIBIDL_FOUND"; then
8216 AC_MSG_ERROR([libIDL not found.
8217 libIDL $LIBIDL_VERSION or higher is required.])
8219 if test "$MACOS_SDK_DIR"; then
8220 CFLAGS="$_MACSAVE_CFLAGS"
8221 LIBS="$_MACSAVE_LIBS"
8222 LDFLAGS="$_MACSAVE_LDFLAGS"
8223 if test -n "$_MACSAVE_NEXT_ROOT" ; then
8224 export NEXT_ROOT="$_MACSAVE_NEXT_ROOT"
8229 if test -n "$CROSS_COMPILE"; then
8231 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
8232 if test -n "$GLIB_PREFIX"; then
8233 GLIB_CFLAGS="-I${GLIB_PREFIX}/include"
8234 if test -f "${GLIB_PREFIX}/lib/glib-1.2_s.lib"; then
8235 GLIB_LIBS="${GLIB_PREFIX}/lib/glib-1.2_s.lib"
8236 elif test -f "${GLIB_PREFIX}/lib/glib-1.2.lib"; then
8237 GLIB_LIBS="${GLIB_PREFIX}/lib/glib-1.2.lib"
8239 AC_MSG_ERROR([Cannot find $GLIB_PREFIX/lib/glib-1.2.lib or $GLIB_PREFIX/lib/glib-1.2_s.lib])
8243 if test -n "$LIBIDL_PREFIX"; then
8244 LIBIDL_CFLAGS="-I${LIBIDL_PREFIX}/include ${GLIB_CFLAGS}"
8245 if test -f "${LIBIDL_PREFIX}/lib/libIDL-0.6_s.lib"; then
8246 LIBIDL_LIBS="${LIBIDL_PREFIX}/lib/libIDL-0.6_s.lib"
8248 elif test -f "${LIBIDL_PREFIX}/lib/libIDL-0.6.lib"; then
8249 LIBIDL_LIBS="${LIBIDL_PREFIX}/lib/libIDL-0.6.lib"
8251 AC_MSG_ERROR([Cannot find $LIBIDL_PREFIX/lib/libIDL-0.6.lib or $LIBIDL_PREFIX/lib/libIDL-0.6_s.lib])
8254 LIBIDL_LIBS="${LIBIDL_LIBS} ${GLIB_LIBS}"
8257 if test -n "LIBIDL_CONFIG" -a "LIBIDL_CONFIG" != "no"; then
8258 LIBIDL_CFLAGS=`${LIBIDL_CONFIG} --cflags`
8259 LIBIDL_LIBS=`${LIBIDL_CONFIG} --libs`
8264 LIBIDL_CFLAGS="$HOST_LIBIDL_CFLAGS"
8265 LIBIDL_LIBS="$HOST_LIBIDL_LIBS"
8268 if test -z "$SKIP_PATH_CHECKS"; then
8269 if test -z "${GLIB_CFLAGS}" -o -z "${GLIB_LIBS}" ; then
8270 if test "$MOZ_ENABLE_GTK2" -o "$USE_ELF_DYNSTR_GC" ; then
8271 PKG_CHECK_MODULES(GLIB, glib-2.0 >= 1.3.7 gobject-2.0)
8273 AM_PATH_GLIB(${GLIB_VERSION})
8278 if test -z "${GLIB_GMODULE_LIBS}" -a -n "${GLIB_CONFIG}"; then
8279 GLIB_GMODULE_LIBS=`$GLIB_CONFIG gmodule --libs`
8282 AC_SUBST(LIBIDL_CFLAGS)
8283 AC_SUBST(LIBIDL_LIBS)
8284 AC_SUBST(STATIC_LIBIDL)
8285 AC_SUBST(GLIB_CFLAGS)
8287 AC_SUBST(GLIB_GMODULE_LIBS)
8288 AC_SUBST(HOST_LIBIDL_CONFIG)
8289 AC_SUBST(HOST_LIBIDL_CFLAGS)
8290 AC_SUBST(HOST_LIBIDL_LIBS)
8292 dnl ========================================================
8294 dnl ========================================================
8295 MOZ_CAIRO_CFLAGS='-I$(LIBXUL_DIST)/include/cairo'
8298 MOZ_ARG_ENABLE_BOOL(system-cairo,
8299 [ --enable-system-cairo Use system cairo (located with pkgconfig)],
8303 # Check for headers defining standard int types.
8304 AC_CHECK_HEADERS(stdint.h inttypes.h sys/int_types.h)
8306 if test "$MOZ_TREE_CAIRO"; then
8307 AC_DEFINE(MOZ_TREE_CAIRO)
8309 # For now we assume that we will have a uint64_t available through
8310 # one of the above headers or mozstdint.h.
8311 AC_DEFINE(HAVE_UINT64_T)
8313 # Define macros for cairo-features.h
8314 if test "$MOZ_X11"; then
8315 XLIB_SURFACE_FEATURE="#define CAIRO_HAS_XLIB_SURFACE 1"
8316 XLIB_XRENDER_SURFACE_FEATURE="#define CAIRO_HAS_XLIB_XRENDER_SURFACE 1"
8317 PS_SURFACE_FEATURE="#define CAIRO_HAS_PS_SURFACE 1"
8318 PDF_SURFACE_FEATURE="#define CAIRO_HAS_PDF_SURFACE 1"
8319 FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
8320 MOZ_ENABLE_CAIRO_FT=1
8321 CAIRO_FT_CFLAGS="$FT2_CFLAGS"
8323 if test "$MOZ_WIDGET_TOOLKIT" = "qt"; then
8324 QT_SURFACE_FEATURE="#define CAIRO_HAS_QT_SURFACE 1"
8326 if test "$MOZ_WIDGET_TOOLKIT" = "cocoa"; then
8327 QUARTZ_SURFACE_FEATURE="#define CAIRO_HAS_QUARTZ_SURFACE 1"
8328 QUARTZ_IMAGE_SURFACE_FEATURE="#define CAIRO_HAS_QUARTZ_IMAGE_SURFACE 1"
8329 QUARTZ_FONT_FEATURE="#define CAIRO_HAS_QUARTZ_FONT 1"
8331 if test "$MOZ_WIDGET_TOOLKIT" = "windows"; then
8332 WIN32_SURFACE_FEATURE="#define CAIRO_HAS_WIN32_SURFACE 1"
8333 if test -z "$WINCE"; then
8334 WIN32_FONT_FEATURE="#define CAIRO_HAS_WIN32_FONT 1"
8335 if test "$MOZ_WINSDK_TARGETVER" -ge "06010000"; then
8336 WIN32_DWRITE_FONT_FEATURE="#define CAIRO_HAS_DWRITE_FONT 1"
8337 WIN32_D2D_SURFACE_FEATURE="#define CAIRO_HAS_D2D_SURFACE 1"
8338 MOZ_ENABLE_D2D_SURFACE=1
8339 MOZ_ENABLE_DWRITE_FONT=1
8341 WIN32_DWRITE_FONT_FEATURE=
8342 WIN32_D2D_SURFACE_FEATURE=
8346 WIN32_DWRITE_FONT_FEATURE=
8347 WIN32_D2D_SURFACE_FEATURE=
8350 AC_CHECK_HEADER(d3d9.h, MOZ_ENABLE_D3D9_LAYER=1)
8352 AC_TRY_COMPILE([#include <ddraw.h>], [int foo = DDLOCK_WAITNOTBUSY;], HAS_DDRAW=1, HAS_DDRAW=)
8353 if test -z "$HAS_DDRAW"; then
8354 AC_MSG_WARN([DirectDraw ddraw.h header not found or it's missing DDLOCK_WAITNOTBUSY, disabling DirectDraw surface. If you have an older SDK (such as the CE5 SDK), try copying in ddraw.lib and ddraw.h from the WM6 SDK.])
8355 DDRAW_SURFACE_FEATURE=
8357 DDRAW_SURFACE_FEATURE="#define CAIRO_HAS_DDRAW_SURFACE 1"
8360 if test -z "$OGLES_SDK_DIR"; then
8361 OGLES_SURFACE_FEATURE=
8364 #include <EGL/egl.h>
8365 #include <EGL/eglext.h>
8366 #include <GLES2/gl2.h>
8367 #include <GLES2/gl2ext.h>
8368 ], [ EGLDisplay _cairo_ddraw_egl_dpy = EGL_NO_DISPLAY;], HAS_OGLES=1, HAS_OGLES=)
8369 if test -z "$HAS_OGLES"; then
8370 AC_MSG_WARN([OpenGL ES2 headers not found, disabling OpenGL acceleration surfaces.])
8371 OGLES_SURFACE_FEATURE=
8373 OGLES_SURFACE_FEATURE="#define CAIRO_DDRAW_USE_GL 1"
8377 PDF_SURFACE_FEATURE="#define CAIRO_HAS_PDF_SURFACE 1"
8379 if test "$MOZ_WIDGET_TOOLKIT" = "os2"; then
8380 OS2_SURFACE_FEATURE="#define CAIRO_HAS_OS2_SURFACE 1"
8381 FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
8382 PDF_SURFACE_FEATURE="#define CAIRO_HAS_PDF_SURFACE 1"
8383 MOZ_ENABLE_CAIRO_FT=1
8384 CAIRO_FT_CFLAGS="-I${MZFTCFGFT2}/include"
8385 CAIRO_FT_LIBS="-L${MZFTCFGFT2}/lib -lmozft -lmzfntcfg"
8387 if test "$MOZ_WIDGET_TOOLKIT" = "beos"; then
8388 PKG_CHECK_MODULES(CAIRO_FT, fontconfig freetype2)
8389 BEOS_SURFACE_FEATURE="#define CAIRO_HAS_BEOS_SURFACE 1"
8390 FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
8391 MOZ_ENABLE_CAIRO_FT=1
8393 if test "$USE_FC_FREETYPE"; then
8394 FC_FONT_FEATURE="#define CAIRO_HAS_FC_FONT 1"
8396 AC_SUBST(MOZ_ENABLE_CAIRO_FT)
8397 AC_SUBST(MOZ_ENABLE_DWRITE_FONT)
8398 AC_SUBST(MOZ_ENABLE_D2D_SURFACE)
8399 AC_SUBST(MOZ_ENABLE_D3D9_LAYER)
8400 AC_SUBST(CAIRO_FT_CFLAGS)
8403 if test "$MOZ_DEBUG"; then
8404 SANITY_CHECKING_FEATURE="#define CAIRO_DO_SANITY_CHECKING 1"
8406 SANITY_CHECKING_FEATURE="#undef CAIRO_DO_SANITY_CHECKING"
8409 PNG_FUNCTIONS_FEATURE="#define CAIRO_HAS_PNG_FUNCTIONS 1"
8411 AC_SUBST(PS_SURFACE_FEATURE)
8412 AC_SUBST(PDF_SURFACE_FEATURE)
8413 AC_SUBST(SVG_SURFACE_FEATURE)
8414 AC_SUBST(XLIB_SURFACE_FEATURE)
8415 AC_SUBST(XLIB_XRENDER_SURFACE_FEATURE)
8416 AC_SUBST(QUARTZ_SURFACE_FEATURE)
8417 AC_SUBST(QUARTZ_IMAGE_SURFACE_FEATURE)
8418 AC_SUBST(XCB_SURFACE_FEATURE)
8419 AC_SUBST(WIN32_SURFACE_FEATURE)
8420 AC_SUBST(DDRAW_SURFACE_FEATURE)
8421 AC_SUBST(OGLES_SURFACE_FEATURE)
8422 AC_SUBST(OS2_SURFACE_FEATURE)
8423 AC_SUBST(BEOS_SURFACE_FEATURE)
8424 AC_SUBST(DIRECTFB_SURFACE_FEATURE)
8425 AC_SUBST(FT_FONT_FEATURE)
8426 AC_SUBST(FC_FONT_FEATURE)
8427 AC_SUBST(WIN32_FONT_FEATURE)
8428 AC_SUBST(WIN32_DWRITE_FONT_FEATURE)
8429 AC_SUBST(WIN32_D2D_SURFACE_FEATURE)
8430 AC_SUBST(QUARTZ_FONT_FEATURE)
8431 AC_SUBST(PNG_FUNCTIONS_FEATURE)
8432 AC_SUBST(QT_SURFACE_FEATURE)
8434 MOZ_CAIRO_LIBS='$(call EXPAND_LIBNAME_PATH,mozcairo,$(DEPTH)/gfx/cairo/cairo/src) $(call EXPAND_LIBNAME_PATH,mozlibpixman,$(DEPTH)/gfx/cairo/libpixman/src)'" $CAIRO_FT_LIBS"
8435 if test "$MOZ_X11"; then
8436 MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS $XLDFLAGS -lXrender -lfreetype -lfontconfig"
8439 CAIRO_FEATURES_H=gfx/cairo/cairo/src/cairo-features.h
8440 mv -f $CAIRO_FEATURES_H "$CAIRO_FEATURES_H".orig 2> /dev/null
8443 PKG_CHECK_MODULES(CAIRO, cairo >= $CAIRO_VERSION pixman-1 freetype2 fontconfig)
8444 MOZ_CAIRO_CFLAGS=$CAIRO_CFLAGS
8445 MOZ_CAIRO_LIBS=$CAIRO_LIBS
8446 if test "$MOZ_X11"; then
8447 PKG_CHECK_MODULES(CAIRO_XRENDER, cairo-xlib-xrender >= $CAIRO_VERSION)
8448 MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS $XLDFLAGS $CAIRO_XRENDER_LIBS"
8449 MOZ_CAIRO_CFLAGS="$MOZ_CAIRO_CFLAGS $CAIRO_XRENDER_CFLAGS"
8453 AC_SUBST(MOZ_TREE_CAIRO)
8454 AC_SUBST(MOZ_CAIRO_CFLAGS)
8455 AC_SUBST(MOZ_CAIRO_LIBS)
8457 dnl ========================================================
8459 dnl ========================================================
8461 QCMS_LIBS='$(call EXPAND_LIBNAME_PATH,mozqcms,$(DEPTH)/gfx/qcms)'
8464 dnl ========================================================
8466 dnl ========================================================
8467 MOZ_HARFBUZZ_LIBS='$(DEPTH)/gfx/harfbuzz/src/$(LIB_PREFIX)mozharfbuzz.$(LIB_SUFFIX)'
8468 AC_SUBST(MOZ_HARFBUZZ_LIBS)
8470 dnl ========================================================
8472 dnl ========================================================
8473 MOZ_ARG_DISABLE_BOOL(xul,
8474 [ --disable-xul Disable XUL],
8476 if test "$MOZ_XUL"; then
8479 dnl remove extensions that require XUL
8480 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's/inspector//' -e 's/venkman//' -e 's/irc//' -e 's/tasks//'`
8485 dnl ========================================================
8486 dnl disable profile locking
8487 dnl do no use this in applications that can have more than
8488 dnl one process accessing the profile directory.
8489 dnl ========================================================
8490 MOZ_ARG_DISABLE_BOOL(profilelocking,
8491 [ --disable-profilelocking
8492 Disable profile locking],
8493 MOZ_PROFILELOCKING=,
8494 MOZ_PROFILELOCKING=1 )
8495 if test "$MOZ_PROFILELOCKING"; then
8496 AC_DEFINE(MOZ_PROFILELOCKING)
8499 dnl ========================================================
8500 dnl disable rdf services
8501 dnl ========================================================
8502 MOZ_ARG_DISABLE_BOOL(rdf,
8503 [ --disable-rdf Disable RDF],
8505 if test "$MOZ_RDF"; then
8511 dnl ========================================================
8512 dnl necko configuration options
8513 dnl ========================================================
8516 dnl option to disable various necko protocols
8518 MOZ_ARG_ENABLE_STRING(necko-protocols,
8519 [ --enable-necko-protocols[={http,ftp,default,all,none}]
8520 Enable/disable specific protocol handlers],
8521 [ for option in `echo $enableval | sed 's/,/ /g'`; do
8522 if test "$option" = "yes" -o "$option" = "all"; then
8523 NECKO_PROTOCOLS="$NECKO_PROTOCOLS $NECKO_PROTOCOLS_DEFAULT"
8524 elif test "$option" = "no" -o "$option" = "none"; then
8526 elif test "$option" = "default"; then
8527 NECKO_PROTOCOLS="$NECKO_PROTOCOLS $NECKO_PROTOCOLS_DEFAULT"
8528 elif test `echo "$option" | grep -c \^-` != 0; then
8529 option=`echo $option | sed 's/^-//'`
8530 NECKO_PROTOCOLS=`echo "$NECKO_PROTOCOLS" | sed "s/ ${option}//"`
8532 NECKO_PROTOCOLS="$NECKO_PROTOCOLS $option"
8535 NECKO_PROTOCOLS="$NECKO_PROTOCOLS_DEFAULT")
8537 NECKO_PROTOCOLS=`${PERL} ${srcdir}/build/unix/uniq.pl ${NECKO_PROTOCOLS}`
8538 AC_SUBST(NECKO_PROTOCOLS)
8539 for p in $NECKO_PROTOCOLS; do
8540 AC_DEFINE_UNQUOTED(NECKO_PROTOCOL_$p)
8544 dnl option to disable necko's disk cache
8546 MOZ_ARG_DISABLE_BOOL(necko-disk-cache,
8547 [ --disable-necko-disk-cache
8548 Disable necko disk cache],
8551 AC_SUBST(NECKO_DISK_CACHE)
8552 if test "$NECKO_DISK_CACHE"; then
8553 AC_DEFINE(NECKO_DISK_CACHE)
8557 dnl option to disable necko's wifi scanner
8559 MOZ_ARG_DISABLE_BOOL(necko-wifi,
8560 [ --disable-necko-wifi Disable necko wifi scanner],
8564 if test "$OS_ARCH" = "OS2"; then
8565 dnl OS/2 implementation of Necko-WiFi support will be added in bug 506566
8568 if test "$NECKO_WIFI" -a \
8569 "$OS_ARCH" != "Linux" -a \
8570 "$OS_ARCH" != "Darwin" -a \
8571 "$OS_ARCH" != "SunOS" -a \
8572 "$OS_ARCH" != "WINNT" -a \
8573 "$OS_ARCH" != "WINCE"; then
8574 AC_MSG_ERROR([Necko WiFi scanning not supported on your platform, use --disable-necko-wifi])
8577 if test -z "$SKIP_LIBRARY_CHECKS" -a "$NECKO_WIFI" -a "$OS_ARCH" = "Linux"
8579 AC_CHECK_HEADER([iwlib.h])
8580 if test "$ac_cv_header_iwlib_h" != "yes"; then
8581 AC_MSG_ERROR([Can't find header iwlib.h for Necko WiFi scanning (might be in package libiw-dev (Ubuntu) or wireless-tools-devel (Fedora)); use --disable-necko-wifi to disable])
8585 if test "$NECKO_WIFI"; then
8586 AC_DEFINE(NECKO_WIFI)
8588 AC_SUBST(NECKO_WIFI)
8591 dnl option to disable cookies
8593 MOZ_ARG_DISABLE_BOOL(cookies,
8594 [ --disable-cookies Disable cookie support],
8597 AC_SUBST(NECKO_COOKIES)
8598 if test "$NECKO_COOKIES"; then
8599 AC_DEFINE(NECKO_COOKIES)
8603 dnl Build jsctypes on the platforms we can, unless it's explicitly disabled.
8605 MOZ_ARG_DISABLE_BOOL(ctypes,
8606 [ --disable-ctypes Disable js-ctypes],
8609 AC_SUBST(BUILD_CTYPES)
8610 if test "$BUILD_CTYPES"; then
8611 if test "$OS_ARCH" = "WINCE" -a `echo $OS_TEST | grep -ic arm` = 1; then
8612 # Disable ctypes for arm/wince.
8615 AC_DEFINE(BUILD_CTYPES)
8619 dnl NECKO_ configuration options are not global
8620 _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_"
8622 dnl Only build Mork if it's required
8624 if test "$MOZ_MORK"; then
8628 dnl Build the lightweight Mork reader if required
8629 AC_SUBST(MOZ_MORKREADER)
8630 if test "$MOZ_MORKREADER"; then
8631 AC_DEFINE(MOZ_MORKREADER)
8634 dnl Build Places if required
8635 if test "$MOZ_PLACES"; then
8636 AC_DEFINE(MOZ_PLACES)
8639 dnl Build Sync Services if required
8640 AC_SUBST(MOZ_SERVICES_SYNC)
8641 if test -n "$MOZ_SERVICES_SYNC"; then
8642 AC_DEFINE(MOZ_SERVICES_SYNC)
8645 dnl ========================================================
8646 if test "$MOZ_DEBUG" -o "$NS_TRACE_MALLOC"; then
8647 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS=
8650 dnl ========================================================
8652 dnl = Maintainer debug option (no --enable equivalent)
8654 dnl ========================================================
8659 AC_SUBST(AR_EXTRACT)
8663 AC_SUBST(AS_DASH_C_FLAG)
8671 AC_SUBST(NS_USE_NATIVE)
8672 AC_SUBST(MOZ_WIDGET_TOOLKIT)
8673 AC_SUBST(MOZ_UPDATE_XTERM)
8675 AC_SUBST(MOZ_PLATFORM_MAEMO)
8676 AC_SUBST(MOZ_AUTH_EXTENSION)
8677 AC_SUBST(MOZ_MATHML)
8678 AC_SUBST(MOZ_PERMISSIONS)
8680 AC_SUBST(MOZ_NO_INSPECTOR_APIS)
8681 AC_SUBST(MOZ_PREF_EXTENSIONS)
8684 AC_SUBST(MOZ_XSLT_STANDALONE)
8685 AC_SUBST(MOZ_JS_LIBS)
8688 AC_SUBST(MOZ_DEBUG_SYMBOLS)
8689 AC_SUBST(MOZ_DEBUG_ENABLE_DEFS)
8690 AC_SUBST(MOZ_DEBUG_DISABLE_DEFS)
8691 AC_SUBST(MOZ_DEBUG_FLAGS)
8692 AC_SUBST(MOZ_DEBUG_LDFLAGS)
8693 AC_SUBST(WARNINGS_AS_ERRORS)
8694 AC_SUBST(MOZ_EXTENSIONS)
8695 AC_SUBST(MOZ_IMG_DECODERS)
8696 AC_SUBST(MOZ_IMG_ENCODERS)
8697 AC_SUBST(MOZ_JSDEBUGGER)
8698 AC_SUBST(MOZ_PLUGINS)
8699 AC_SUBST(MOZ_LOG_REFCNT)
8703 AC_SUBST(MOZ_CALLGRIND)
8705 AC_SUBST(MOZ_JSLOADER)
8706 AC_SUBST(MOZ_USE_NATIVE_UCONV)
8707 AC_SUBST(MOZ_QUANTIFY)
8709 AC_SUBST(MOZ_PLACES)
8710 AC_SUBST(MOZ_PLACES_BOOKMARKS)
8711 AC_SUBST(MOZ_STORAGE)
8712 AC_SUBST(MOZ_TOOLKIT_SEARCH)
8714 AC_SUBST(NS_PRINTING)
8716 AC_SUBST(MOZ_HELP_VIEWER)
8718 AC_SUBST(MOZ_JAVAXPCOM)
8719 AC_SUBST(JAVA_INCLUDE_PATH)
8724 AC_SUBST(MOZ_PROFILELOCKING)
8727 AC_SUBST(MOZ_XIE_LIBS)
8729 AC_SUBST(BUILD_STATIC_LIBS)
8730 AC_SUBST(MOZ_ENABLE_LIBXUL)
8731 AC_SUBST(ENABLE_TESTS)
8733 AC_SUBST(MOZ_UNIVERSALCHARDET)
8734 AC_SUBST(ACCESSIBILITY)
8735 AC_SUBST(MOZ_VIEW_SOURCE)
8736 AC_SUBST(MOZ_SPELLCHECK)
8737 AC_SUBST(MOZ_USER_DIR)
8738 AC_SUBST(MOZ_CRASHREPORTER)
8739 AC_SUBST(MOZ_UPDATER)
8741 AC_SUBST(ENABLE_STRIP)
8742 AC_SUBST(PKG_SKIP_STRIP)
8743 AC_SUBST(USE_ELF_DYNSTR_GC)
8744 AC_SUBST(INCREMENTAL_LINKER)
8745 AC_SUBST(MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS)
8746 AC_SUBST(MOZ_COMPONENT_NSPR_LIBS)
8748 AC_SUBST(MOZ_FIX_LINK_PATHS)
8749 AC_SUBST(XPCOM_LIBS)
8750 AC_SUBST(XPCOM_FROZEN_LDOPTS)
8751 AC_SUBST(XPCOM_GLUE_LDOPTS)
8752 AC_SUBST(XPCOM_STANDALONE_GLUE_LDOPTS)
8754 AC_SUBST(USE_DEPENDENT_LIBS)
8756 AC_SUBST(MOZ_BUILD_ROOT)
8757 AC_SUBST(MOZ_OS2_TOOLS)
8758 AC_SUBST(MOZ_OS2_USE_DECLSPEC)
8760 AC_SUBST(MOZ_POST_DSO_LIB_COMMAND)
8761 AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
8762 AC_SUBST(MOZ_TIMELINE)
8763 AC_SUBST(OGLES_SDK_DIR)
8765 AC_SUBST(MOZ_APP_NAME)
8766 AC_SUBST(MOZ_APP_DISPLAYNAME)
8767 AC_SUBST(MOZ_APP_VERSION)
8768 AC_SUBST(MOZ_APP_UA_EXTRA)
8769 AC_SUBST(FIREFOX_VERSION)
8771 AC_SUBST(MOZ_PKG_SPECIAL)
8773 AC_SUBST(MOZILLA_OFFICIAL)
8776 AC_SUBST(MOZ_MAPINFO)
8777 AC_SUBST(MOZ_BROWSE_INFO)
8778 AC_SUBST(MOZ_TOOLS_DIR)
8779 AC_SUBST(CYGWIN_WRAPPER)
8781 AC_SUBST(WIN32_REDIST_DIR)
8786 AC_SUBST(WINCE_SDK_DIR)
8787 AC_SUBST(WINCE_WINDOWS_MOBILE)
8789 dnl Echo the CFLAGS to remove extra whitespace.
8796 $_MOZ_EXCEPTIONS_FLAGS \
8797 $_WARNINGS_CXXFLAGS \
8800 COMPILE_CFLAGS=`echo \
8805 COMPILE_CXXFLAGS=`echo \
8806 $_DEFINES_CXXFLAGS \
8810 AC_SUBST(SYSTEM_MAKEDEPEND)
8811 AC_SUBST(SYSTEM_LIBXUL)
8812 AC_SUBST(SYSTEM_JPEG)
8813 AC_SUBST(SYSTEM_PNG)
8814 AC_SUBST(SYSTEM_ZLIB)
8815 AC_SUBST(SYSTEM_BZ2)
8817 AC_SUBST(JPEG_CFLAGS)
8819 AC_SUBST(ZLIB_CFLAGS)
8821 AC_SUBST(BZ2_CFLAGS)
8823 AC_SUBST(PNG_CFLAGS)
8826 AC_SUBST(MOZ_JPEG_CFLAGS)
8827 AC_SUBST(MOZ_JPEG_LIBS)
8828 AC_SUBST(MOZ_ZLIB_CFLAGS)
8829 AC_SUBST(MOZ_ZLIB_LIBS)
8830 AC_SUBST(MOZ_BZ2_CFLAGS)
8831 AC_SUBST(MOZ_BZ2_LIBS)
8832 AC_SUBST(MOZ_PNG_CFLAGS)
8833 AC_SUBST(MOZ_PNG_LIBS)
8835 AC_SUBST(NSPR_CFLAGS)
8837 AC_SUBST(MOZ_NATIVE_NSPR)
8839 AC_SUBST(NSS_CFLAGS)
8841 AC_SUBST(NSS_DEP_LIBS)
8842 AC_SUBST(MOZ_NATIVE_NSS)
8843 AC_SUBST(NSS_DISABLE_DBM)
8848 AC_SUBST(COMPILE_CFLAGS)
8849 AC_SUBST(COMPILE_CXXFLAGS)
8852 AC_SUBST(CROSS_COMPILE)
8853 AC_SUBST(WCHAR_CFLAGS)
8857 AC_SUBST(HOST_CFLAGS)
8858 AC_SUBST(HOST_CXXFLAGS)
8859 AC_SUBST(HOST_OPTIMIZE_FLAGS)
8861 AC_SUBST(HOST_AR_FLAGS)
8863 AC_SUBST(HOST_RANLIB)
8864 AC_SUBST(HOST_NSPR_MDCPUCFG)
8865 AC_SUBST(HOST_BIN_SUFFIX)
8866 AC_SUBST(HOST_OS_ARCH)
8868 AC_SUBST(TARGET_CPU)
8869 AC_SUBST(TARGET_VENDOR)
8871 AC_SUBST(TARGET_NSPR_MDCPUCFG)
8872 AC_SUBST(TARGET_MD_ARCH)
8873 AC_SUBST(TARGET_XPCOM_ABI)
8876 AC_SUBST(OS_RELEASE)
8879 AC_SUBST(MOZ_DISABLE_JAR_PACKAGING)
8880 AC_SUBST(MOZ_CHROME_FILE_FORMAT)
8882 AC_SUBST(WRAP_MALLOC_CFLAGS)
8883 AC_SUBST(WRAP_MALLOC_LIB)
8886 AC_SUBST(MKSHLIB_FORCE_ALL)
8887 AC_SUBST(MKSHLIB_UNFORCE_ALL)
8888 AC_SUBST(DSO_CFLAGS)
8889 AC_SUBST(DSO_PIC_CFLAGS)
8890 AC_SUBST(DSO_LDOPTS)
8891 AC_SUBST(LIB_PREFIX)
8892 AC_SUBST(DLL_PREFIX)
8893 AC_SUBST(DLL_SUFFIX)
8894 AC_DEFINE_UNQUOTED(MOZ_DLL_SUFFIX, "$DLL_SUFFIX")
8895 AC_SUBST(LIB_SUFFIX)
8896 AC_SUBST(OBJ_SUFFIX)
8897 AC_SUBST(BIN_SUFFIX)
8898 AC_SUBST(ASM_SUFFIX)
8899 AC_SUBST(IMPORT_LIB_SUFFIX)
8901 AC_SUBST(CC_VERSION)
8902 AC_SUBST(CXX_VERSION)
8903 AC_SUBST(MSMANIFEST_TOOL)
8904 AC_SUBST(NS_ENABLE_TSF)
8905 AC_SUBST(MOZ_NSS_PATCH)
8908 AC_SUBST(MOZ_SYDNEYAUDIO)
8910 AC_SUBST(MOZ_VORBIS)
8913 AC_SUBST(MOZ_ALSA_LIBS)
8915 AC_SUBST(VPX_ASFLAGS)
8916 AC_SUBST(VPX_X86_ASM)
8918 if test "$USING_HCC"; then
8919 CC='${topsrcdir}/build/hcc'
8921 CXX='${topsrcdir}/build/hcpp'
8922 CXX="$CXX '$_OLDCXX'"
8927 dnl Check for missing components
8928 if test "$COMPILE_ENVIRONMENT"; then
8929 if test "$MOZ_X11"; then
8930 dnl ====================================================
8931 dnl = Check if X headers exist
8932 dnl ====================================================
8933 _SAVE_CFLAGS=$CFLAGS
8934 CFLAGS="$CFLAGS $XCFLAGS"
8938 #include <X11/Xlib.h>
8939 #include <X11/Intrinsic.h>
8943 if ((dpy = XOpenDisplay(NULL)) == NULL) {
8944 fprintf(stderr, ": can't open %s\n", XDisplayName(NULL));
8948 [ AC_MSG_ERROR([Could not compile basic X program.]) ])
8949 CFLAGS="$_SAVE_CFLAGS"
8951 if test ! -z "$MISSING_X"; then
8952 AC_MSG_ERROR([ Could not find the following X libraries: $MISSING_X ]);
8957 dnl Check for headers, etc. needed by WebGL.
8958 if test -n "$MOZ_WEBGL_GLX"; then
8959 AC_CHECK_HEADER(GL/glx.h)
8960 if test "$ac_cv_header_GL_glx_h" != "yes"; then
8961 AC_MSG_ERROR([Can't find header GL/glx.h for WebGL (install mesa-common-dev (Ubuntu), mesa-libGL-devel (Fedora), or Mesa (SuSE))])
8964 fi # COMPILE_ENVIRONMENT
8966 if test "$USE_FC_FREETYPE"; then
8967 if test "$COMPILE_ENVIRONMENT"; then
8968 _SAVE_CPPFLAGS="$CPPFLAGS"
8969 CPPFLAGS="$CPPFLAGS $FT2_CFLAGS $XCFLAGS"
8970 AC_CHECK_HEADERS(fontconfig/fcfreetype.h, ,
8971 [AC_MSG_ERROR(Can't find header fontconfig/fcfreetype.h.)])
8972 CPPFLAGS="$_SAVE_CPPFLAGS"
8974 AC_DEFINE(HAVE_FONTCONFIG_FCFREETYPE_H)
8978 dnl Set various defines and substitutions
8979 dnl ========================================================
8981 if test "$OS_ARCH" = "BeOS"; then
8983 elif test "$OS_ARCH" = "Darwin"; then
8985 AC_DEFINE(UNIX_ASYNC_DNS)
8986 elif test "$OS_ARCH" = "OpenVMS"; then
8988 elif test "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "OS2" -a "$OS_ARCH" != "WINCE"; then
8990 AC_DEFINE(UNIX_ASYNC_DNS)
8993 if test "$MOZ_DEBUG"; then
8994 AC_DEFINE(MOZ_REFLOW_PERF)
8995 AC_DEFINE(MOZ_REFLOW_PERF_DSP)
8998 if test "$ACCESSIBILITY" -a "$MOZ_ENABLE_GTK2" ; then
8999 AC_DEFINE(MOZ_ACCESSIBILITY_ATK)
9000 ATK_FULL_VERSION=`$PKG_CONFIG --modversion atk`
9001 ATK_MAJOR_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
9002 ATK_MINOR_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $2 }'`
9003 ATK_REV_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $3 }'`
9004 AC_DEFINE_UNQUOTED(ATK_MAJOR_VERSION, $ATK_MAJOR_VERSION)
9005 AC_DEFINE_UNQUOTED(ATK_MINOR_VERSION, $ATK_MINOR_VERSION)
9006 AC_DEFINE_UNQUOTED(ATK_REV_VERSION, $ATK_REV_VERSION)
9009 dnl ========================================================
9010 dnl Use cygwin wrapper for win32 builds, except MSYS/MinGW
9011 dnl ========================================================
9014 WIN_TOP_SRC=`cd $srcdir; pwd -W`
9017 HOST_CC="\$(CYGWIN_WRAPPER) $HOST_CC"
9018 HOST_CXX="\$(CYGWIN_WRAPPER) $HOST_CXX"
9019 CC="\$(CYGWIN_WRAPPER) $CC"
9020 CXX="\$(CYGWIN_WRAPPER) $CXX"
9021 CPP="\$(CYGWIN_WRAPPER) $CPP"
9022 LD="\$(CYGWIN_WRAPPER) $LD"
9023 AS="\$(CYGWIN_WRAPPER) $AS"
9024 RC="\$(CYGWIN_WRAPPER) $RC"
9025 MIDL="\$(CYGWIN_WRAPPER) $MIDL"
9026 CYGDRIVE_MOUNT=`mount -p | awk '{ if (/^\//) { print $1; exit } }'`
9027 WIN_TOP_SRC=`cygpath -a -w $srcdir | sed -e 's|\\\\|/|g'`
9031 AC_SUBST(CYGDRIVE_MOUNT)
9032 AC_SUBST(WIN_TOP_SRC)
9034 AC_SUBST(MOZILLA_VERSION)
9036 AC_SUBST(ac_configure_args)
9038 dnl Spit out some output
9039 dnl ========================================================
9041 dnl The following defines are used by xpcom
9042 _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES
9044 HAVE_CPP_2BYTE_WCHAR_T
9045 HAVE_CPP_ACCESS_CHANGING_USING
9046 HAVE_CPP_AMBIGUITY_RESOLVING_USING
9049 HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR
9051 HAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX
9052 HAVE_CPP_NAMESPACE_STD
9054 HAVE_CPP_PARTIAL_SPECIALIZATION
9055 HAVE_CPP_TROUBLE_COMPARING_TO_ZERO
9057 HAVE_CPP_UNAMBIGUOUS_STD_NOTEQUAL
9059 NEED_CPP_UNUSED_IMPLEMENTATIONS
9063 HAVE_ICONV_WITH_CONST_INPUT
9071 netwerk/necko-config.h
9072 xpcom/xpcom-config.h
9073 xpcom/xpcom-private.h
9076 # Save the defines header file before autoconf removes it.
9077 # (Do not add AC_DEFINE calls after this line.)
9078 _CONFIG_TMP=confdefs-tmp.h
9079 _CONFIG_DEFS_H=mozilla-config.h
9081 cat > $_CONFIG_TMP <<\EOF
9082 /* List of defines generated by configure. Included with preprocessor flag,
9083 * -include, to avoid long list of -D defines on the compile command-line.
9087 #ifndef _MOZILLA_CONFIG_H_
9088 #define _MOZILLA_CONFIG_H_
9091 _EGREP_PATTERN='^#define ('
9092 if test -n "$_NON_GLOBAL_ACDEFINES"; then
9093 for f in $_NON_GLOBAL_ACDEFINES; do
9094 _EGREP_PATTERN="${_EGREP_PATTERN}$f|"
9097 _EGREP_PATTERN="${_EGREP_PATTERN}dummy_never_defined)"
9099 sort confdefs.h | egrep -v "$_EGREP_PATTERN" >> $_CONFIG_TMP
9101 cat >> $_CONFIG_TMP <<\EOF
9103 #endif /* _MOZILLA_CONFIG_H_ */
9107 # Only write mozilla-config.h when something changes (or it doesn't exist)
9108 if cmp -s $_CONFIG_TMP $_CONFIG_DEFS_H; then
9111 AC_MSG_RESULT("creating $_CONFIG_DEFS_H")
9112 mv -f $_CONFIG_TMP $_CONFIG_DEFS_H
9114 echo ==== $_CONFIG_DEFS_H =================================
9118 dnl Probably shouldn't call this manually but we always want the output of DEFS
9119 rm -f confdefs.h.save
9120 mv confdefs.h confdefs.h.save
9121 egrep -v "$_EGREP_PATTERN" confdefs.h.save > confdefs.h
9122 AC_OUTPUT_MAKE_DEFS()
9124 AC_SUBST(MOZ_DEFINES)
9126 mv confdefs.h.save confdefs.h
9128 dnl Load the list of Makefiles to generate.
9129 dnl To add new Makefiles, edit allmakefiles.sh.
9130 dnl allmakefiles.sh sets the variable, MAKEFILES.
9131 . ${srcdir}/allmakefiles.sh
9133 dnl Run a perl script to quickly create the makefiles.
9134 dnl If it succeeds, it outputs a shell command to set CONFIG_FILES
9135 dnl for the files it cannot handle correctly. This way, config.status
9136 dnl will handle these files.
9137 dnl If it fails, nothing is set and config.status will run as usual.
9139 dnl This does not change the $MAKEFILES variable.
9141 dnl OpenVMS gets a line overflow on the long eval command, so use a temp file.
9143 if test -z "${AS_PERL}"; then
9144 echo $MAKEFILES | ${PERL} $srcdir/build/autoconf/acoutput-fast.pl > conftest.sh
9146 echo $MAKEFILES | ${PERL} $srcdir/build/autoconf/acoutput-fast.pl -nowrap --cygwin-srcdir=$srcdir > conftest.sh
9151 echo $MAKEFILES > unallmakefiles
9153 mv -f config/autoconf.mk config/autoconf.mk.orig 2> /dev/null
9155 AC_OUTPUT($MAKEFILES)
9157 dnl Prevent the regeneration of cairo-features.h forcing rebuilds of gfx stuff
9158 if test "$CAIRO_FEATURES_H"; then
9159 if cmp -s $CAIRO_FEATURES_H "$CAIRO_FEATURES_H".orig; then
9160 echo "$CAIRO_FEATURES_H is unchanged"
9161 mv -f "$CAIRO_FEATURES_H".orig "$CAIRO_FEATURES_H" 2> /dev/null
9163 rm -f "$CAIRO_FEATURES_H".orig 2> /dev/null
9167 dnl ========================================================
9168 dnl = Setup a nice relatively clean build environment for
9169 dnl = sub-configures.
9170 dnl ========================================================
9173 CFLAGS="$_SUBDIR_CFLAGS"
9174 CPPFLAGS="$_SUBDIR_CPPFLAGS"
9175 CXXFLAGS="$_SUBDIR_CXXFLAGS"
9176 LDFLAGS="$_SUBDIR_LDFLAGS"
9177 HOST_CC="$_SUBDIR_HOST_CC"
9178 HOST_CFLAGS="$_SUBDIR_HOST_CFLAGS"
9179 HOST_LDFLAGS="$_SUBDIR_HOST_LDFLAGS"
9185 # No need to run subconfigures when building with LIBXUL_SDK_DIR
9186 if test "$COMPILE_ENVIRONMENT" -a -z "$LIBXUL_SDK_DIR"; then
9188 if test -n "$MOZ_THUMB2"; then
9189 _SUBDIR_CONFIG_ARGS="$_SUBDIR_CONFIG_ARGS --enable-thumb2"
9191 if test -n "$_WRAP_MALLOC"; then
9192 _SUBDIR_CONFIG_ARGS="$_SUBDIR_CONFIG_ARGS --enable-wrap-malloc"
9195 if test -z "$MOZ_NATIVE_NSPR"; then
9196 ac_configure_args="$_SUBDIR_CONFIG_ARGS --with-dist-prefix=$MOZ_BUILD_ROOT/dist --with-mozilla"
9197 if test -z "$MOZ_DEBUG"; then
9198 ac_configure_args="$ac_configure_args --disable-debug"
9200 if test "$MOZ_OPTIMIZE" = "1"; then
9201 ac_configure_args="$ac_configure_args --enable-optimize"
9203 if test "$OS_ARCH" = "WINNT" -a "$NS_TRACE_MALLOC"; then
9204 ac_configure_args="$ac_configure_args --enable-debug --disable-optimize"
9206 if test -n "$HAVE_64BIT_OS"; then
9207 ac_configure_args="$ac_configure_args --enable-64bit"
9209 if test -n "$USE_ARM_KUSER"; then
9210 ac_configure_args="$ac_configure_args --with-arm-kuser"
9212 AC_OUTPUT_SUBDIRS(nsprpub)
9213 ac_configure_args="$_SUBDIR_CONFIG_ARGS"
9216 if test -z "$MOZ_NATIVE_NSPR"; then
9217 # Hack to deal with the fact that we use NSPR_CFLAGS everywhere
9218 AC_MSG_WARN([Recreating autoconf.mk with updated nspr-config output])
9219 if test "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "WINCE"; then
9220 NSPR_LIBS=`./nsprpub/config/nspr-config --prefix=$LIBXUL_DIST --exec-prefix=$MOZ_BUILD_ROOT/dist --libdir=$LIBXUL_DIST/lib --libs`
9221 $PERL -pi.bak -e "s '^NSPR_LIBS\\s*=.*'NSPR_LIBS = $NSPR_LIBS'" config/autoconf.mk
9222 NSPR_CFLAGS=`./nsprpub/config/nspr-config --prefix=$LIBXUL_DIST --exec-prefix=$MOZ_BUILD_ROOT/dist --includedir=$LIBXUL_DIST/include/nspr --cflags`
9223 $PERL -pi.bak -e "s '^NSPR_CFLAGS\\s*=.*'NSPR_CFLAGS = $NSPR_CFLAGS'" config/autoconf.mk
9225 rm -f config/autoconf.mk.bak
9228 # Run the SpiderMonkey 'configure' script.
9229 dist=$MOZ_BUILD_ROOT/dist
9230 ac_configure_args="$_SUBDIR_CONFIG_ARGS"
9231 ac_configure_args="$ac_configure_args --enable-threadsafe"
9232 if test "$BUILD_CTYPES"; then
9233 # Build js-ctypes on the platforms we can.
9234 ac_configure_args="$ac_configure_args --enable-ctypes"
9236 if test -z "$MOZ_NATIVE_NSPR"; then
9237 ac_configure_args="$ac_configure_args --with-nspr-cflags='$NSPR_CFLAGS'"
9238 ac_configure_args="$ac_configure_args --with-nspr-libs='$NSPR_LIBS'"
9240 ac_configure_args="$ac_configure_args --with-dist-dir=../../dist"
9241 ac_configure_args="$ac_configure_args --prefix=$dist"
9242 ac_configure_args="$ac_configure_args --with-sync-build-files=$_topsrcdir"
9243 if test "$MOZ_MEMORY"; then
9244 ac_configure_args="$ac_configure_args --enable-jemalloc"
9245 if test -n "$MOZ_MEMORY_LDFLAGS"; then
9246 export MOZ_MEMORY_LDFLAGS
9249 AC_OUTPUT_SUBDIRS(js/src)
9250 ac_configure_args="$_SUBDIR_CONFIG_ARGS"
9252 fi # COMPILE_ENVIRONMENT && !LIBXUL_SDK_DIR
9254 dnl Prevent the regeneration of autoconf.mk forcing rebuilds of the world
9255 dnl Needs to be at the end to respect possible changes from NSPR configure
9256 if cmp -s config/autoconf.mk config/autoconf.mk.orig; then
9257 echo "config/autoconf.mk is unchanged"
9258 mv -f config/autoconf.mk.orig config/autoconf.mk 2> /dev/null
9260 rm -f config/autoconf.mk.orig 2> /dev/null