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}"
73 MOZ_DEB_TIMESTAMP=`date +"%a, %d %b %Y %T %z" 2>&1`
74 AC_SUBST(MOZ_DEB_TIMESTAMP)
76 dnl ========================================================
78 dnl = Don't change the following two lines. Doing so breaks:
80 dnl = CFLAGS="-foo" ./configure
82 dnl ========================================================
84 CPPFLAGS="${CPPFLAGS=}"
85 CXXFLAGS="${CXXFLAGS=}"
87 HOST_CFLAGS="${HOST_CFLAGS=}"
88 HOST_CXXFLAGS="${HOST_CXXFLAGS=}"
89 HOST_LDFLAGS="${HOST_LDFLAGS=}"
91 dnl ========================================================
92 dnl = Preserve certain environment flags passed to configure
93 dnl = We want sub projects to receive the same flags
94 dnl = untainted by this configure script
95 dnl ========================================================
98 _SUBDIR_CFLAGS="$CFLAGS"
99 _SUBDIR_CPPFLAGS="$CPPFLAGS"
100 _SUBDIR_CXXFLAGS="$CXXFLAGS"
101 _SUBDIR_LDFLAGS="$LDFLAGS"
102 _SUBDIR_HOST_CC="$HOST_CC"
103 _SUBDIR_HOST_CFLAGS="$HOST_CFLAGS"
104 _SUBDIR_HOST_CXXFLAGS="$HOST_CXXFLAGS"
105 _SUBDIR_HOST_LDFLAGS="$HOST_LDFLAGS"
106 _SUBDIR_CONFIG_ARGS="$ac_configure_args"
108 dnl Set the version number of the libs included with mozilla
109 dnl ========================================================
116 dnl Set the minimum version of toolkit libs used by mozilla
117 dnl ========================================================
125 WINDRES_VERSION=2.14.90
128 GNOMEUI_VERSION=2.2.0
131 STARTUP_NOTIFICATION_VERSION=0.8
133 SQLITE_VERSION=3.6.23.1
134 LIBNOTIFY_VERSION=0.4
138 dnl Set various checks
139 dnl ========================================================
143 dnl Initialize the Pthread test variables early so they can be
144 dnl overridden by each platform.
145 dnl ========================================================
149 dnl Do not allow a separate objdir build if a srcdir build exists.
150 dnl ==============================================================
151 _topsrcdir=`cd \`dirname $0\`; pwd`
154 if test "$_topsrcdir" != "$_objdir"
156 # Check for a couple representative files in the source tree
158 for file in $_topsrcdir/Makefile $_topsrcdir/config/autoconf.mk; do
159 if test -f $file; then
160 _conflict_files="$_conflict_files $file"
163 if test "$_conflict_files"; then
165 echo "* Your source tree contains these files:"
166 for file in $_conflict_files; do
170 * This indicates that you previously built in the source tree.
171 * A source tree build can confuse the separate objdir build.
173 * To clean up the source tree:
184 dnl Default to MSVC for win32 and gcc-4.2 for darwin
185 dnl ==============================================================
186 if test -z "$CROSS_COMPILE"; then
188 *-cygwin*|*-mingw*|*-msvc*|*-mks*)
189 if test -z "$CC"; then CC=cl; fi
190 if test -z "$CXX"; then CXX=cl; fi
191 if test -z "$CPP"; then CPP="cl -E -nologo"; fi
192 if test -z "$CXXCPP"; then CXXCPP="cl -TP -E -nologo"; ac_cv_prog_CXXCPP="$CXXCPP"; fi
193 if test -z "$LD"; then LD=link; fi
194 if test -z "$AS"; then
195 case "${target_cpu}" in
204 if test -z "$MIDL"; then MIDL=midl; fi
207 if test -z "$CC"; then CC=gcc-4.2; fi
208 if test -z "$CXX"; then CXX=g++-4.2; fi
213 COMPILE_ENVIRONMENT=1
214 MOZ_ARG_DISABLE_BOOL(compile-environment,
215 [ --disable-compile-environment
216 Disable compiler/library checks.],
217 COMPILE_ENVIRONMENT= )
218 AC_SUBST(COMPILE_ENVIRONMENT)
220 MOZ_ARG_WITH_STRING(l10n-base,
221 [ --with-l10n-base=DIR path to l10n repositories],
222 L10NBASEDIR=$withval)
223 if test ! -z "$L10NBASEDIR"; then
224 if test "$L10NBASEDIR" = "yes" -o "$L10NBASEDIR" = "no"; then
225 AC_MSG_ERROR([--with-l10n-base must specify a path])
226 elif test -d "$L10NBASEDIR"; then
227 L10NBASEDIR=`cd "$L10NBASEDIR" && pwd`
229 AC_MSG_ERROR([Invalid value --with-l10n-base, $L10NBASEDIR doesn't exist])
232 AC_SUBST(L10NBASEDIR)
234 dnl Check for Perl first -- needed for win32 SDK checks
235 MOZ_PATH_PROGS(PERL, $PERL perl5 perl )
236 if test -z "$PERL" -o "$PERL" = ":"; then
237 AC_MSG_ERROR([perl not found in \$PATH])
240 dnl ========================================================
241 dnl = Android uses a very custom (hacky) toolchain; we need to do this
242 dnl = here, so that the compiler checks can succeed
243 dnl ========================================================
245 MOZ_ARG_WITH_STRING(android-ndk,
246 [ --with-android-ndk=DIR
247 location where the Android NDK can be found],
248 android_ndk=$withval)
250 MOZ_ARG_WITH_STRING(android-toolchain,
251 [ --with-android-toolchain=DIR
252 location of the android toolchain, default NDK/build/prebuilt/HOST/arm-eabi-4.4.0],
253 android_toolchain=$withval)
256 MOZ_ARG_WITH_STRING(android-version,
257 [ --with-android-version=VER
258 android platform version, default 5],
259 android_version=$withval,
262 MOZ_ARG_WITH_STRING(android-sdk,
263 [ --with-android-sdk=DIR
264 location where the Android SDK can be found (base directory, e.g. .../android/platforms/android-6)],
265 android_sdk=$withval)
267 MOZ_ARG_WITH_STRING(android-tools,
268 [ --with-android-tools=DIR
269 location where the Android Tools can be found (base directory, e.g. .../android/tools)],
270 android_tools=$withval)
272 if test "$target" = "arm-android-eabi" ; then
273 if test -z "$android_ndk" ; then
274 AC_MSG_ERROR([You must specify --with-android-ndk=/path/to/ndk when targeting Android.])
277 if test -z "$android_sdk" ; then
278 AC_MSG_ERROR([You must specify --with-android-sdk=/path/to/sdk when targeting Android.])
281 if test -z "$android_tools" ; then
282 AC_MSG_ERROR([You must specify --with-android-tools=/path/to/sdk/tools when targeting Android.])
285 if test -z "$android_toolchain" ; then
286 android_toolchain="$android_ndk"/build/prebuilt/`uname -s | tr "[[:upper:]]" "[[:lower:]]"`-x86/arm-eabi-4.4.0
289 if test -z "$android_platform" ; then
290 android_platform="$android_ndk"/build/platforms/android-"$android_version"/arch-"$target_cpu"
294 AS="$android_toolchain"/bin/arm-eabi-as
295 CC="$android_toolchain"/bin/arm-eabi-gcc
296 CXX="$android_toolchain"/bin/arm-eabi-g++
297 CPP="$android_toolchain"/bin/arm-eabi-cpp
298 LD="$android_toolchain"/bin/arm-eabi-ld
299 AR="$android_toolchain"/bin/arm-eabi-ar
300 RANLIB="$android_toolchain"/bin/arm-eabi-ranlib
301 STRIP="$android_toolchain"/bin/arm-eabi-strip
303 CPPFLAGS="-I$android_platform/usr/include $CPPFLAGS"
304 CFLAGS="-mandroid -I$android_platform/usr/include -msoft-float -fno-short-enums -fno-exceptions -march=armv5te -mthumb-interwork $CFLAGS"
305 CXXFLAGS="-mandroid -I$android_platform/usr/include -msoft-float -fno-short-enums -fno-exceptions -march=armv5te -mthumb-interwork $CXXFLAGS"
307 dnl Add -llog by default, since we use it all over the place.
308 dnl Add --allow-shlib-undefined, because libGLESv2 links to an
309 dnl undefined symbol (present on the hardware, just not in the
311 LDFLAGS="-mandroid -L$android_platform/usr/lib -Wl,-rpath-link=$android_platform/usr/lib --sysroot=$android_platform -llog -Wl,--allow-shlib-undefined $LDFLAGS"
313 dnl prevent cross compile section from using these flags as host flags
314 if test -z "$HOST_CPPFLAGS" ; then
317 if test -z "$HOST_CFLAGS" ; then
320 if test -z "$HOST_CXXFLAGS" ; then
323 if test -z "$HOST_LDFLAGS" ; then
327 ANDROID_NDK="${android_ndk}"
328 ANDROID_TOOLCHAIN="{android_toolchain}"
329 ANDROID_PLATFORM="{android_platform}"
330 ANDROID_SDK="${android_sdk}"
331 ANDROID_TOOLS="${android_tools}"
332 ANDROID_VERSION="${android_version}"
335 AC_DEFINE_UNQUOTED(ANDROID_VERSION, $android_version)
336 AC_SUBST(ANDROID_VERSION)
338 MOZ_CHROME_FILE_FORMAT=omni
341 AC_SUBST(ANDROID_NDK)
342 AC_SUBST(ANDROID_TOOLCHAIN)
343 AC_SUBST(ANDROID_PLATFORM)
344 AC_SUBST(ANDROID_SDK)
345 AC_SUBST(ANDROID_TOOLS)
347 dnl ========================================================
348 dnl Checks for compilers.
349 dnl ========================================================
350 dnl Set CROSS_COMPILE in the environment when running configure
351 dnl to use the cross-compile setup for now
352 dnl ========================================================
354 dnl AR_FLAGS set here so HOST_AR_FLAGS can be set correctly (see bug 538269)
357 if test "$COMPILE_ENVIRONMENT"; then
359 dnl Do some special WinCE toolchain stuff
363 MOZ_ARG_WITH_STRING(wince-sdk,
364 [ --with-wince-sdk=WINCE_SDK_DIR
365 The path to the Windows CE SDK],
366 WINCE_SDK_DIR=$withval)
368 MOZ_ARG_WITH_STRING(ogles-sdk,
369 [ --with-ogles-sdk=OGLES_SDK_DIR
370 The path to the OGLES SDK],
371 OGLES_SDK_DIR=$withval)
377 echo -----------------------------------------------------------------------------
378 echo Building Windows CE Shunt Library and Tool Chain
385 _topsrcdirwin=`cd \`dirname $0\`; pwd -W`
386 make OGLES_SDK_DIR="$OGLES_SDK_DIR" WINCE_SDK_DIR="$WINCE_SDK_DIR" \
387 TOPSRCDIR="$_topsrcdirwin" OBJDIR="$_pwd" target="$target" \
388 -C $srcdir/build/wince/tools
390 CC="$_pwd/dist/sdk/bin/$target-gcc.exe"
391 CXX="$_pwd/dist/sdk/bin/$target-gcc.exe"
392 CPP="$_pwd/dist/sdk/bin/$target-gcc.exe -E -nologo"
393 CXXCPP="$_pwd/dist/sdk/bin/$target-gcc.exe -TP -E -nologo"
394 LD="$_pwd/dist/sdk/bin/$target-link.exe"
395 AR="$_pwd/dist/sdk/bin/$target-lib.exe"
396 AS="$_pwd/dist/sdk/bin/$target-as.exe"
397 RC="$_pwd/dist/sdk/bin/$target-res.exe"
400 echo -----------------------------------------------------------------------------
405 if test -n "$CROSS_COMPILE" -a "$target" != "$host"; then
406 echo "cross compiling from $host to $target"
410 _SAVE_CFLAGS="$CFLAGS"
411 _SAVE_LDFLAGS="$LDFLAGS"
413 AC_MSG_CHECKING([for host c compiler])
414 AC_CHECK_PROGS(HOST_CC, $HOST_CC gcc cc /usr/ucb/cc cl icc, "")
415 if test -z "$HOST_CC"; then
416 AC_MSG_ERROR([no acceptable c compiler found in \$PATH])
418 AC_MSG_RESULT([$HOST_CC])
419 AC_MSG_CHECKING([for host c++ compiler])
420 AC_CHECK_PROGS(HOST_CXX, $HOST_CXX $CCC c++ g++ gcc CC cxx cc++ cl icc, "")
421 if test -z "$HOST_CXX"; then
422 AC_MSG_ERROR([no acceptable c++ compiler found in \$PATH])
424 AC_MSG_RESULT([$HOST_CXX])
426 if test -z "$HOST_CFLAGS"; then
427 HOST_CFLAGS="$CFLAGS"
429 if test -z "$HOST_CXXFLAGS"; then
430 HOST_CXXFLAGS="$CXXFLAGS"
432 if test -z "$HOST_LDFLAGS"; then
433 HOST_LDFLAGS="$LDFLAGS"
435 if test -z "$HOST_AR_FLAGS"; then
436 HOST_AR_FLAGS="$AR_FLAGS"
438 AC_CHECK_PROGS(HOST_RANLIB, $HOST_RANLIB ranlib, ranlib, :)
439 AC_CHECK_PROGS(HOST_AR, $HOST_AR ar, ar, :)
441 CFLAGS="$HOST_CFLAGS"
442 LDFLAGS="$HOST_LDFLAGS"
444 AC_MSG_CHECKING([whether the host c compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works])
445 AC_TRY_COMPILE([], [return(0);],
446 [ac_cv_prog_hostcc_works=1 AC_MSG_RESULT([yes])],
447 AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CC cannot create executables.]) )
450 CFLAGS="$HOST_CXXFLAGS"
452 AC_MSG_CHECKING([whether the host c++ compiler ($HOST_CXX $HOST_CXXFLAGS $HOST_LDFLAGS) works])
453 AC_TRY_COMPILE([], [return(0);],
454 [ac_cv_prog_hostcxx_works=1 AC_MSG_RESULT([yes])],
455 AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CXX cannot create executables.]) )
459 LDFLAGS=$_SAVE_LDFLAGS
461 case "$build:$target" in
462 powerpc-apple-darwin8*:i?86-apple-darwin*)
463 dnl The Darwin cross compiler doesn't necessarily point itself at a
464 dnl root that has libraries for the proper architecture, it defaults
465 dnl to the system root. The libraries in the system root on current
466 dnl versions of PPC OS X 10.4 aren't fat, so these target compiler
467 dnl checks will fail. Fake a working SDK in that case.
469 _SAVE_CXXFLAGS=$CXXLAGS
470 CFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk $CFLAGS"
471 CXXFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk $CXXFLAGS"
475 AC_CHECK_PROGS(CC, $CC "${target_alias}-gcc" "${target}-gcc", :)
478 AC_CHECK_PROGS(CXX, $CXX "${target_alias}-g++" "${target}-g++", :)
482 case "$build:$target" in
483 powerpc-apple-darwin8*:i?86-apple-darwin*)
484 dnl Revert the changes made above. From this point on, the target
485 dnl compiler will never be used without applying the SDK to CFLAGS
486 dnl (see --with-macos-sdk below).
488 CXXFLAGS=$_SAVE_CXXFLAGS
492 AC_CHECK_PROGS(RANLIB, $RANLIB "${target_alias}-ranlib" "${target}-ranlib", :)
493 AC_CHECK_PROGS(AR, $AR "${target_alias}-ar" "${target}-ar", :)
494 MOZ_PATH_PROGS(AS, $AS "${target_alias}-as" "${target}-as", :)
495 AC_CHECK_PROGS(LD, $LD "${target_alias}-ld" "${target}-ld", :)
496 AC_CHECK_PROGS(STRIP, $STRIP "${target_alias}-strip" "${target}-strip", :)
497 AC_CHECK_PROGS(WINDRES, $WINDRES "${target_alias}-windres" "${target}-windres", :)
498 AC_DEFINE(CROSS_COMPILE)
503 MOZ_PATH_PROGS(AS, $AS as, $CC)
504 AC_CHECK_PROGS(AR, ar, :)
505 AC_CHECK_PROGS(LD, ld, :)
506 AC_CHECK_PROGS(STRIP, strip, :)
507 AC_CHECK_PROGS(WINDRES, windres, :)
508 if test -z "$HOST_CC"; then
511 if test -z "$HOST_CFLAGS"; then
512 HOST_CFLAGS='$(CFLAGS)'
514 if test -z "$HOST_CXX"; then
517 if test -z "$HOST_CXXFLAGS"; then
518 HOST_CXXFLAGS='$(CXXFLAGS)'
520 if test -z "$HOST_LDFLAGS"; then
521 HOST_LDFLAGS='$(LDFLAGS)'
523 if test -z "$HOST_RANLIB"; then
524 HOST_RANLIB='$(RANLIB)'
526 if test -z "$HOST_AR"; then
529 if test -z "$HOST_AR_FLAGS"; then
530 HOST_AR_FLAGS='$(AR_FLAGS)'
540 if test "$GCC" = "yes"; then
542 CC_VERSION=`$CC -v 2>&1 | grep 'gcc version'`
544 if test "$GXX" = "yes"; then
546 CXX_VERSION=`$CXX -v 2>&1 | grep 'gcc version'`
548 if test "`echo | $AS -v 2>&1 | grep -c GNU`" != "0"; then
551 if test "`echo | $LD -v 2>&1 | grep -c GNU`" != "0"; then
554 if test "$GNU_CC"; then
555 if `$CC -print-prog-name=ld` -v 2>&1 | grep -c GNU >/dev/null; then
562 if test "$GCC" = yes; then
563 if test "`$CC -help 2>&1 | grep -c 'Intel(R) C++ Compiler'`" != "0"; then
568 if test "$GXX" = yes; then
569 if test "`$CXX -help 2>&1 | grep -c 'Intel(R) C++ Compiler'`" != "0"; then
574 dnl Special win32 checks
575 dnl ========================================================
583 dnl Target the Windows 7 SDK by default
588 MOZ_ARG_WITH_STRING(windows-version,
589 [ --with-windows-version=WINSDK_TARGETVER
590 Highest Windows version to target using this SDK
591 502: Windows Server 2003
594 WINSDK_TARGETVER=$withval)
596 case "$WINSDK_TARGETVER" in
598 MOZ_WINSDK_TARGETVER=0${WINSDK_TARGETVER}0000
602 AC_MSG_ERROR([Invalid value for --with-windows-version ($WINSDK_TARGETVER), must be 502, 600 or 601]);
607 if test -n "$COMPILE_ENVIRONMENT"; then
608 if test "$MOZ_WINSDK_TARGETVER" -lt "06000000"; then
609 # We can't build parental controls either
610 MOZ_DISABLE_PARENTAL_CONTROLS=1
615 *-cygwin*|*-mingw*|*-msvc*|*-mks*|*-wince|*-winmo)
616 if test "$GCC" != "yes"; then
617 # Check to see if we are really running in a msvc environemnt
619 AC_CHECK_PROGS(MIDL, midl)
621 # Make sure compilers are valid
622 CFLAGS="$CFLAGS -TC -nologo"
623 CXXFLAGS="$CXXFLAGS -TP -nologo"
626 AC_TRY_COMPILE([#include <stdio.h>],
627 [ printf("Hello World\n"); ],,
628 AC_MSG_ERROR([\$(CC) test failed. You must have MS VC++ in your path to build.]) )
631 AC_TRY_COMPILE([#include <new.h>],
632 [ unsigned *test = new unsigned(42); ],,
633 AC_MSG_ERROR([\$(CXX) test failed. You must have MS VC++ in your path to build.]) )
637 _MSVC_VER_FILTER='s|.* ([0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?).*|\1|p'
640 # Determine compiler version
641 CC_VERSION=`"${CC}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
642 _CC_MAJOR_VERSION=`echo ${CC_VERSION} | $AWK -F\. '{ print $1 }'`
643 _CC_MINOR_VERSION=`echo ${CC_VERSION} | $AWK -F\. '{ print $2 }'`
644 _CC_RELEASE=`echo ${CC_VERSION} | $AWK -F\. '{ print $3 }'`
645 _CC_BUILD=`echo ${CC_VERSION} | $AWK -F\. '{ print $4 }'`
646 _MSC_VER=${_CC_MAJOR_VERSION}${_CC_MINOR_VERSION}
648 CXX_VERSION=`"${CXX}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
649 _CXX_MAJOR_VERSION=`echo ${CXX_VERSION} | $AWK -F\. '{ print $1 }'`
651 if test "$_CC_MAJOR_VERSION" != "$_CXX_MAJOR_VERSION"; then
652 AC_MSG_ERROR([The major versions of \$CC and \$CXX do not match.])
654 if test "$_CC_MAJOR_VERSION" = "13"; then
656 elif test "$_CC_MAJOR_VERSION" = "14"; then
658 CXXFLAGS="$CXXFLAGS -Zc:wchar_t-"
659 dnl -DYNAMICBASE is only supported on VC8SP1 or newer,
660 dnl so be very specific here!
661 dnl VC8 is 14.00.50727.42, VC8SP1 is 14.00.50727.762
662 if test $_CC_RELEASE -gt 50727; then
664 elif test $_CC_BUILD -ge 762; then
667 AC_DEFINE(_CRT_SECURE_NO_DEPRECATE)
668 AC_DEFINE(_CRT_NONSTDC_NO_DEPRECATE)
669 elif test "$_CC_MAJOR_VERSION" = "15"; then
671 CXXFLAGS="$CXXFLAGS -Zc:wchar_t-"
673 AC_DEFINE(_CRT_SECURE_NO_WARNINGS)
674 AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)
675 elif test "$_CC_MAJOR_VERSION" = "16"; then
677 CXXFLAGS="$CXXFLAGS -Zc:wchar_t-"
679 AC_DEFINE(_CRT_SECURE_NO_WARNINGS)
680 AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)
682 AC_MSG_ERROR([This version of the MSVC compiler, $CC_VERSION , is unsupported.])
685 _MOZ_RTTI_FLAGS_ON='-GR'
686 _MOZ_RTTI_FLAGS_OFF='-GR-'
687 _MOZ_EXCEPTIONS_FLAGS_ON='-EHsc'
688 _MOZ_EXCEPTIONS_FLAGS_OFF=''
690 if test -n "$WIN32_REDIST_DIR"; then
691 WIN32_REDIST_DIR=`cd "$WIN32_REDIST_DIR" && pwd`
695 # ensure that mt.exe is Microsoft (R) Manifest Tool and not magnetic tape manipulation utility (or something else)
696 if test "$_CC_SUITE" -ge "8"; then
698 _MSMT_VER_FILTER='s|.* \([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*|\1|p'
701 MSMT_TOOL=`mt 2>&1|grep 'Microsoft (R) Manifest Tool'`
702 if test -n "$MSMT_TOOL"; then
703 MSMANIFEST_TOOL_VERSION=`echo ${MSMT_TOOL}|sed -ne "$_MSMT_VER_FILTER"`
704 if test -z "$MSMANIFEST_TOOL_VERSION"; then
705 AC_MSG_WARN([Unknown version of the Microsoft (R) Manifest Tool.])
710 AC_MSG_ERROR([Microsoft (R) Manifest Tool must be in your \$PATH.])
714 # Check linker version
715 _LD_FULL_VERSION=`"${LD}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
716 _LD_MAJOR_VERSION=`echo ${_LD_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
717 if test "$_LD_MAJOR_VERSION" != "$_CC_SUITE"; then
718 AC_MSG_ERROR([The linker major version, $_LD_FULL_VERSION, does not match the compiler suite version, $_CC_SUITE.])
723 _MIDL_FULL_VERSION=`"${MIDL}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
724 _MIDL_MAJOR_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
725 _MIDL_MINOR_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $2 }'`
726 _MIDL_REV_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $3 }'`
727 # Add flags if necessary
728 AC_MSG_CHECKING([for midl flags])
731 if test \( "$_MIDL_MAJOR_VERSION" = "7" -a "$_MIDL_MINOR_VERSION" = "00" -a "$_MIDL_REV_VERSION" = "0499" \); then
732 # MIDL version 7.00.0499 defaults /env win64 on x64 platforms.
733 # MIDL version 7.00.0500 or later has no problem.
734 MIDL_FLAGS="${MIDL_FLAGS} -env win32"
735 AC_MSG_RESULT([need -env win32])
737 AC_MSG_RESULT([none needed])
741 MIDL_FLAGS="${MIDL_FLAGS} -env x64"
744 AC_MSG_RESULT([none needed])
748 # Identify which version of the SDK we're building with
749 # Windows Server 2008 and newer SDKs have WinSDKVer.h, get the version
751 AC_CHECK_HEADERS([winsdkver.h])
752 if test "$ac_cv_header_winsdkver_h" = "yes"; then
753 # Get the highest _WIN32_WINNT and NTDDI versions supported
754 # Take the higher of the two
755 # This is done because the Windows 7 beta SDK reports its
756 # NTDDI_MAXVER to be 0x06000100 instead of 0x06010000, as it should
757 AC_CACHE_CHECK(for highest Windows version supported by this SDK,
759 [cat > conftest.h <<EOF
760 #include <winsdkver.h>
761 #include <sdkddkver.h>
763 #if (NTDDI_VERSION_FROM_WIN32_WINNT(_WIN32_WINNT_MAXVER) > NTDDI_MAXVER)
764 #define WINSDK_MAXVER NTDDI_VERSION_FROM_WIN32_WINNT(_WIN32_WINNT_MAXVER)
766 #define WINSDK_MAXVER NTDDI_MAXVER
771 ac_cv_winsdk_maxver=`$CPP conftest.h 2>/dev/null | tail -n1`
774 MOZ_WINSDK_MAXVER=${ac_cv_winsdk_maxver}
776 # The Vista SDK is the only one to have sdkddkver.h but not
778 AC_CHECK_HEADERS([sdkddkver.h])
779 if test "$ac_cv_header_sdkddkver_h" = "yes"; then
780 MOZ_WINSDK_MAXVER=0x06000000
782 # Assume the Server 2003 Platform SDK
783 MOZ_WINSDK_MAXVER=0x05020000
787 unset _MSVC_VER_FILTER
789 AC_CACHE_CHECK(for std::_Throw, ac_cv_have_std__Throw,
793 _SAVE_CXXFLAGS="$CXXFLAGS"
794 CXXFLAGS="${CXXFLAGS} -D_HAS_EXCEPTIONS=0"
795 AC_TRY_COMPILE([#include <exception>],
796 [std::_Throw(std::exception()); return 0;],
797 ac_cv_have_std__Throw="yes",
798 ac_cv_have_std__Throw="no")
799 CXXFLAGS="$_SAVE_CXXFLAGS"
803 if test "$ac_cv_have_std__Throw" == "yes"; then
804 AC_CACHE_CHECK(for |class __declspec(dllimport) exception| bug,
805 ac_cv_have_dllimport_exception_bug,
809 _SAVE_CXXFLAGS="$CXXFLAGS"
810 CXXFLAGS="${CXXFLAGS} -D_HAS_EXCEPTIONS=0"
811 AC_TRY_LINK([#include <vector>],
812 [std::vector<int> v; return v.at(1);],
813 ac_cv_have_dllimport_exception_bug="no",
814 ac_cv_have_dllimport_exception_bug="yes")
815 CXXFLAGS="$_SAVE_CXXFLAGS"
818 if test "$ac_cv_have_dllimport_exception_bug" = "no"; then
820 MOZ_MSVC_STL_WRAP__Throw=1
821 AC_DEFINE(MOZ_MSVC_STL_WRAP__Throw)
824 AC_CACHE_CHECK(for overridable _RAISE,
829 _SAVE_CXXFLAGS="$CXXFLAGS"
830 CXXFLAGS="${CXXFLAGS} -D_HAS_EXCEPTIONS=0"
831 AC_TRY_COMPILE([#include <xstddef>
833 #define _RAISE(x) externallyDefinedFunction((x).what())
836 [std::vector<int> v; return v.at(1);],
837 ac_cv_have__RAISE="no",
838 ac_cv_have__RAISE="yes")
839 CXXFLAGS="$_SAVE_CXXFLAGS"
842 if test "$ac_cv_have__RAISE" = "yes"; then
844 MOZ_MSVC_STL_WRAP__RAISE=1
845 AC_DEFINE(MOZ_MSVC_STL_WRAP__RAISE)
847 AC_MSG_ERROR([Gecko exception wrapping doesn't understand your your MSVC/SDK. Please file a bug describing this error and your build configuration.])
851 if test "$WRAP_STL_INCLUDES" = "1"; then
852 STL_FLAGS='-D_HAS_EXCEPTIONS=0 -I$(DIST)/stl_wrappers'
855 # Check w32api version
856 _W32API_MAJOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $1 }'`
857 _W32API_MINOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $2 }'`
858 AC_MSG_CHECKING([for w32api version >= $W32API_VERSION])
859 AC_TRY_COMPILE([#include <w32api.h>],
860 #if (__W32API_MAJOR_VERSION < $_W32API_MAJOR_VERSION) || \
861 (__W32API_MAJOR_VERSION == $_W32API_MAJOR_VERSION && \
862 __W32API_MINOR_VERSION < $_W32API_MINOR_VERSION)
863 #error "test failed."
865 , [ res=yes ], [ res=no ])
866 AC_MSG_RESULT([$res])
867 if test "$res" != "yes"; then
868 AC_MSG_ERROR([w32api version $W32API_VERSION or higher required.])
870 # Check windres version
871 AC_MSG_CHECKING([for windres version >= $WINDRES_VERSION])
872 _WINDRES_VERSION=`${WINDRES} --version 2>&1 | grep -i windres 2>/dev/null | $AWK '{ print $3 }'`
873 AC_MSG_RESULT([$_WINDRES_VERSION])
874 _WINDRES_MAJOR_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $1 }'`
875 _WINDRES_MINOR_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $2 }'`
876 _WINDRES_RELEASE_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $3 }'`
877 WINDRES_MAJOR_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $1 }'`
878 WINDRES_MINOR_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $2 }'`
879 WINDRES_RELEASE_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $3 }'`
880 if test "$_WINDRES_MAJOR_VERSION" -lt "$WINDRES_MAJOR_VERSION" -o \
881 "$_WINDRES_MAJOR_VERSION" -eq "$WINDRES_MAJOR_VERSION" -a \
882 "$_WINDRES_MINOR_VERSION" -lt "$WINDRES_MINOR_VERSION" -o \
883 "$_WINDRES_MAJOR_VERSION" -eq "$WINDRES_MAJOR_VERSION" -a \
884 "$_WINDRES_MINOR_VERSION" -eq "$WINDRES_MINOR_VERSION" -a \
885 "$_WINDRES_RELEASE_VERSION" -lt "$WINDRES_RELEASE_VERSION"
887 AC_MSG_ERROR([windres version $WINDRES_VERSION or higher is required to build.])
890 # Server 2003 is the highest version supported
891 MOZ_WINSDK_MAXVER=0x05020000
894 AC_DEFINE_UNQUOTED(WINVER,0x$WINVER)
895 AC_DEFINE_UNQUOTED(_WIN32_WINNT,0x$WINVER)
896 # Require OS features provided by IE 5.0
897 AC_DEFINE_UNQUOTED(_WIN32_IE,0x0500)
899 # If the maximum version supported by this SDK is lower than the target
901 AC_MSG_CHECKING([for Windows SDK being recent enough])
902 if $PERL -e "exit(0x$MOZ_WINSDK_TARGETVER > $MOZ_WINSDK_MAXVER)"; then
906 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.])
909 AC_DEFINE_UNQUOTED(MOZ_WINSDK_TARGETVER,0x$MOZ_WINSDK_TARGETVER)
910 # Definitions matching sdkddkver.h
911 AC_DEFINE_UNQUOTED(MOZ_NTDDI_WS03, 0x05020000)
912 AC_DEFINE_UNQUOTED(MOZ_NTDDI_LONGHORN, 0x06000000)
913 AC_DEFINE_UNQUOTED(MOZ_NTDDI_WIN7, 0x06010000)
917 dnl Test breaks icc on OS/2 && MSVC
918 if test "$CC" != "icc" -a -z "$_WIN32_MSVC"; then
920 if grep "NO_MINUS_C_MINUS_O 1" ./confdefs.h >/dev/null; then
924 CC="${srcdir}/build/hcc '$CC'"
925 CXX="${srcdir}/build/hcpp '$CXX'"
932 if test -n "$_WIN32_MSVC"; then
934 SKIP_COMPILER_CHECKS=1
935 SKIP_LIBRARY_CHECKS=1
937 # Since we're skipping compiler and library checks, hard-code
944 AC_DEFINE(HAVE_SETBUF)
945 AC_DEFINE(HAVE_ISATTY)
950 fi # COMPILE_ENVIRONMENT
963 AC_SUBST(WRAP_STL_INCLUDES)
964 AC_SUBST(MOZ_MSVC_STL_WRAP__Throw)
965 AC_SUBST(MOZ_MSVC_STL_WRAP__RAISE)
967 dnl ========================================================
968 dnl Checks for programs.
969 dnl ========================================================
973 if test -z "$TINDERBOX_SKIP_PERL_VERSION_CHECK"; then
974 AC_MSG_CHECKING([for minimum required perl version >= $PERL_VERSION])
975 _perl_version=`PERL_VERSION=$PERL_VERSION $PERL -e 'print "$]"; if ($] >= $ENV{PERL_VERSION}) { exit(0); } else { exit(1); }' 2>&5`
977 AC_MSG_RESULT([$_perl_version])
979 if test "$_perl_res" != 0; then
980 AC_MSG_ERROR([Perl $PERL_VERSION or higher is required.])
984 AC_MSG_CHECKING([for full perl installation])
985 _perl_archlib=`$PERL -e 'use Config; if ( -d $Config{archlib} ) { exit(0); } else { exit(1); }' 2>&5`
987 if test "$_perl_res" != 0; then
989 AC_MSG_ERROR([Cannot find Config.pm or \$Config{archlib}. A full perl installation is required.])
994 MOZ_PATH_PROGS(PYTHON, $PYTHON python2.6 python2.5 python2.4 python)
995 if test -z "$PYTHON"; then
996 AC_MSG_ERROR([python was not found in \$PATH])
999 if test -z "$COMPILE_ENVIRONMENT"; then
1000 NSINSTALL_BIN='$(PYTHON) $(topsrcdir)/config/nsinstall.py'
1002 AC_SUBST(NSINSTALL_BIN)
1004 MOZ_PATH_PROG(DOXYGEN, doxygen, :)
1005 MOZ_PATH_PROG(AUTOCONF, autoconf, :)
1006 MOZ_PATH_PROG(UNZIP, unzip, :)
1007 MOZ_PATH_PROGS(ZIP, zip)
1008 if test -z "$ZIP" -o "$ZIP" = ":"; then
1009 AC_MSG_ERROR([zip not found in \$PATH])
1011 MOZ_PATH_PROG(SYSTEM_MAKEDEPEND, makedepend)
1012 MOZ_PATH_PROG(XARGS, xargs)
1013 if test -z "$XARGS" -o "$XARGS" = ":"; then
1014 AC_MSG_ERROR([xargs not found in \$PATH .])
1017 if test "$COMPILE_ENVIRONMENT"; then
1019 dnl ========================================================
1020 dnl = Mac OS X toolchain support
1021 dnl ========================================================
1023 case "$target_os" in
1025 dnl Current known valid versions for GCC_VERSION are 2.95.2 3.1 3.3 4.0.
1026 dnl 4.0 identifies itself as 4.0.x, so strip the decidecimal for
1027 dnl the environment and includedir purposes (when using an SDK, below),
1028 dnl but remember the full version number for the libdir (SDK).
1030 GCC_VERSION_FULL=`echo $CXX_VERSION | $PERL -pe 's/^.*gcc version ([^ ]*).*/$1/'`
1031 GCC_VERSION=`echo $GCC_VERSION_FULL | $PERL -pe '(split(/\./))[0]>=4&&s/(^\d*\.\d*).*/$1/;'`
1033 if test "$GCC_VERSION_FULL" = "4.0.0" ; then
1034 dnl Bug 280479, but this keeps popping up in bug 292530 too because
1035 dnl 4.0.0/4061 is the default compiler in Tiger.
1037 GCC_BUILD=`echo $CXX_VERSION | $PERL -pe 's/^.*build ([^ )]*).*/$1/'`
1039 if test "$GCC_BUILD" = "4061" ; then
1040 AC_MSG_ERROR([You are attempting to use Apple gcc 4.0 build 4061.
1041 This compiler was supplied with Xcode 2.0, and contains bugs that prevent it
1042 from building Mozilla. Upgrade to Xcode 2.1 or later.])
1046 dnl xcodebuild needs GCC_VERSION defined in the environment, since it
1047 dnl doesn't respect the CC/CXX setting. With GCC_VERSION set, it will use
1048 dnl /usr/bin/g(cc|++)-$GCC_VERSION.
1049 MOZ_PATH_PROGS(PBBUILD, pbbuild xcodebuild pbxbuild)
1054 XCODEBUILD_VERSION=`$PBBUILD -version 2>/dev/null | xargs | sed -e 's/.*DevToolsCore-\([0-9]*\).*/\1/'`
1056 if test -n "$XCODEBUILD_VERSION" -a "$XCODEBUILD_VERSION" -ge 620 ; then
1062 dnl sdp was formerly in /Developer/Tools. As of Mac OS X 10.4 (Darwin 8),
1063 dnl it has moved into /usr/bin.
1064 MOZ_PATH_PROG(SDP, sdp, :, [$PATH:/usr/bin:/Developer/Tools])
1068 AC_SUBST(GCC_VERSION)
1069 AC_SUBST(XCODEBUILD_VERSION)
1070 AC_SUBST(HAS_XCODE_2_1)
1072 dnl The universal machinery sets UNIVERSAL_BINARY to inform packager.mk
1073 dnl that a universal binary is being produced.
1074 AC_SUBST(UNIVERSAL_BINARY)
1076 dnl ========================================================
1077 dnl Check for MacOS deployment target version
1078 dnl ========================================================
1080 MOZ_ARG_ENABLE_STRING(macos-target,
1081 [ --enable-macos-target=VER (default=10.5)
1082 Set the minimum MacOS version needed at runtime],
1083 [_MACOSX_DEPLOYMENT_TARGET=$enableval])
1087 if test -n "$_MACOSX_DEPLOYMENT_TARGET" ; then
1088 dnl Use the specified value
1089 export MACOSX_DEPLOYMENT_TARGET=$_MACOSX_DEPLOYMENT_TARGET
1090 AC_DEFINE_UNQUOTED(__ENVIRONMENT_MAC_OS_X_VERION_MIN_REQUIRED__,$_MACOSX_DEPLOYMENT_TARGET)
1092 dnl No value specified on the command line or in the environment,
1093 dnl use architecture minimum.
1094 case "${target_cpu}" in
1096 export MACOSX_DEPLOYMENT_TARGET=10.5
1099 export MACOSX_DEPLOYMENT_TARGET=10.5
1102 export MACOSX_DEPLOYMENT_TARGET=10.6
1109 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
1111 dnl ========================================================
1112 dnl = Mac OS X SDK support
1113 dnl ========================================================
1116 MOZ_ARG_WITH_STRING(macos-sdk,
1117 [ --with-macos-sdk=dir Location of platform SDK to use (Mac OS X only)],
1118 MACOS_SDK_DIR=$withval)
1120 dnl MACOS_SDK_DIR will be set to the SDK location whenever one is in use.
1121 dnl NEXT_ROOT will be set and exported only if it's needed.
1122 AC_SUBST(MACOS_SDK_DIR)
1125 if test "$MACOS_SDK_DIR"; then
1126 dnl Sync this section with the ones in NSPR and NSS.
1127 dnl Changes to the cross environment here need to be accounted for in
1128 dnl the libIDL checks (below) and xpidl build.
1130 if test ! -d "$MACOS_SDK_DIR"; then
1131 AC_MSG_ERROR([SDK not found. When using --with-macos-sdk, you must
1132 specify a valid SDK. SDKs are installed when the optional cross-development
1133 tools are selected during the Xcode/Developer Tools installation.])
1136 GCC_VERSION_MAJOR=`echo $GCC_VERSION_FULL | $PERL -pe 's/(^\d*).*/$1/;'`
1137 if test "$GCC_VERSION_MAJOR" -lt "4" ; then
1138 AC_MSG_ERROR([You need to upgrade the compiler version to 4.x])
1140 CFLAGS="$CFLAGS -isysroot ${MACOS_SDK_DIR}"
1141 CXXFLAGS="$CXXFLAGS -isysroot ${MACOS_SDK_DIR}"
1143 dnl CPP/CXXCPP needs to be set for AC_CHECK_HEADER.
1144 CPP="$CPP -isysroot ${MACOS_SDK_DIR}"
1145 CXXCPP="$CXXCPP -isysroot ${MACOS_SDK_DIR}"
1147 if test "$GCC_VERSION_FULL" = "4.0.0" ; then
1148 dnl If gcc >= 4.0, we're guaranteed to be on Tiger, which has an ld
1149 dnl that supports -syslibroot. Don't set NEXT_ROOT because it will
1150 dnl be ignored and cause warnings when -syslibroot is specified.
1151 dnl gcc 4.0.1 will pass -syslibroot to ld automatically based on
1152 dnl the -isysroot it receives, so this is only needed with 4.0.0.
1153 LDFLAGS="$LDFLAGS -Wl,-syslibroot,${MACOS_SDK_DIR}"
1158 AC_MSG_CHECKING([for valid compiler/Mac OS X SDK combination])
1160 AC_TRY_COMPILE([#include <new>
1161 int main() { return 0; }],
1165 AC_MSG_RESULT($result)
1167 if test "$result" = "no" ; then
1168 AC_MSG_ERROR([The selected compiler and Mac OS X SDK are incompatible.])
1172 fi # COMPILE_ENVIRONMENT
1174 if test -n "$MAKE"; then
1175 if test `echo $MAKE | grep -c make.py` != 1; then
1181 cygwin*|mingw*|mks*|msvc*)
1182 MOZ_PATH_PROGS(GMAKE, $GMAKE $NOT_PYMAKE make gmake, :)
1185 MOZ_PATH_PROGS(GMAKE, $GMAKE $NOT_PYMAKE gmake make, :)
1188 if test "$GMAKE" = ":"; then
1189 AC_MSG_ERROR([GNU make not found])
1193 if test "$COMPILE_ENVIRONMENT"; then
1199 fi # COMPILE_ENVIRONMENT
1201 dnl ========================================================
1202 dnl set the defaults first
1203 dnl ========================================================
1206 AR_EXTRACT='$(AR) x'
1221 MOZ_USER_DIR=".mozilla"
1224 MOZ_JPEG_LIBS='$(call EXPAND_LIBNAME_PATH,mozjpeg,$(DEPTH)/jpeg)'
1226 MOZ_ZLIB_LIBS='$(call EXPAND_LIBNAME_PATH,mozz,$(DEPTH)/modules/zlib/src)'
1228 MOZ_BZ2_LIBS='$(call EXPAND_LIBNAME_PATH,bz2,$(DEPTH)/modules/libbz2/src)'
1230 MOZ_PNG_LIBS='$(call EXPAND_LIBNAME_PATH,mozpng,$(DEPTH)/modules/libimg/png)'
1232 MOZ_JS_STATIC_LIBS='-L$(LIBXUL_DIST)/bin -ljs_static'
1233 MOZ_JS_SHARED_LIBS='-L$(LIBXUL_DIST)/bin -lmozjs'
1234 DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/bin -lxpcom -lxpcom_core -lmozalloc'
1235 MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib'
1236 XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/bin -lxpcom -lmozalloc'
1237 LIBXUL_LIBS='$(XPCOM_FROZEN_LDOPTS) -lxul'
1238 XPCOM_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue_s.$(LIB_SUFFIX) $(XPCOM_FROZEN_LDOPTS)'
1239 XPCOM_STANDALONE_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue.$(LIB_SUFFIX)'
1243 MOZ_COMPONENT_NSPR_LIBS='-L$(LIBXUL_DIST)/bin $(NSPR_LIBS)'
1245 USE_DEPENDENT_LIBS=1
1247 _PLATFORM_DEFAULT_TOOLKIT=cairo-gtk2
1249 if test -n "$CROSS_COMPILE"; then
1250 OS_TARGET="${target_os}"
1251 OS_ARCH=`echo $target_os | sed -e 's|/|_|g'`
1253 case "${target_os}" in
1254 linux*) OS_ARCH=Linux OS_TARGET=Linux ;;
1255 kfreebsd*-gnu) OS_ARCH=GNU_kFreeBSD OS_TARGET=GNU_kFreeBSD ;;
1256 gnu*) OS_ARCH=GNU ;;
1257 solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;;
1258 mingw*) OS_ARCH=WINNT ;;
1259 wince*) OS_ARCH=WINCE ;;
1260 winmo*) OS_ARCH=WINCE ;;
1261 darwin*) OS_ARCH=Darwin OS_TARGET=Darwin ;;
1264 arm-android-eabi) OS_ARCH=Linux OS_TARGET=Android ;;
1267 OS_TARGET=`uname -s`
1268 OS_ARCH=`uname -s | sed -e 's|/|_|g'`
1269 OS_RELEASE=`uname -r`
1272 # Before this used `uname -m` when not cross compiling
1273 # but that breaks when you have a 64 bit kernel with a 32 bit userland.
1274 OS_TEST="${target_cpu}"
1278 HOST_OS_ARCH=`echo $host_os | sed -e 's|/|_|g'`
1280 #######################################################################
1281 # Master "Core Components" macros for getting the OS target #
1282 #######################################################################
1285 # If OS_TARGET is not specified, it defaults to $(OS_ARCH), i.e., no
1286 # cross-compilation.
1290 # Define and override various archtecture-specific variables, including
1299 case "$HOST_OS_ARCH" in
1300 cygwin*|mingw*|mks*|msvc*)
1313 if test -z "$GNU_CC"; then
1314 if test "`$CC -V 2>&1 | egrep -c 'Sun.*C '`" != "0"; then
1319 if test -z "$GNU_CXX"; then
1320 if test "`$CXX -V 2>&1 | egrep -c 'Sun.*C\+\+ '`" != "0"; then
1321 SOLARIS_SUNPRO_CXX=1
1324 AC_SUBST(SOLARIS_SUNPRO_CC)
1325 AC_SUBST(SOLARIS_SUNPRO_CXX)
1337 if "`cat /etc/bcheckrc | grep -c NCR 2>/dev/null`" != "0"; then
1340 HOST_OS_ARCH=UNIXWARE
1352 HOST_OS_ARCH=OpenVMS
1362 SINIX-N | SINIX-Y | SINIX-Z |ReliantUNIX-M)
1366 HOST_OS_ARCH=UNIXWARE
1372 if test -z "$CROSS_COMPILE" ; then
1378 # If uname -s returns "Windows_NT", we assume that we are using
1379 # the uname.exe in MKS toolkit.
1381 # The -r option of MKS uname only returns the major version number.
1382 # So we need to use its -v option to get the minor version number.
1383 # Moreover, it doesn't have the -p option, so we need to use uname -m.
1387 OS_MINOR_RELEASE=`uname -v`
1388 if test "$OS_MINOR_RELEASE" = "00"; then
1391 OS_RELEASE="${OS_RELEASE}.${OS_MINOR_RELEASE}"
1393 CYGWIN32_NT|CYGWIN_NT*|MINGW*_NT*)
1395 # If uname -s returns "CYGWIN_NT-4.0", we assume that we are using
1396 # the uname.exe in the Cygwin tools.
1397 # Prior to the Beta 20 release, Cygwin was called GNU-Win32.
1398 # If uname -s returns "CYGWIN32/NT", we assume that we are using
1399 # the uname.exe in the GNU-Win32 tools.
1400 # If uname -s returns MINGW32_NT-5.1, we assume that we are using
1401 # the uname.exe in the MSYS tools.
1403 OS_RELEASE=`expr $OS_ARCH : '.*NT-\(.*\)'`
1408 OS_RELEASE=`uname -v`.`uname -r`
1409 OS_TEST=${target_cpu}
1421 if "`cat /etc/bcheckrc | grep -c NCR 2>/dev/null`" != "0"; then
1425 OS_RELEASE=`uname -v`
1449 OS_RELEASE=`uname -v`
1455 OS_RELEASE=`uname -v`
1458 if test "$OS_TARGET" != "NTO"; then
1460 OS_RELEASE=`uname -v | sed 's/^\([0-9]\)\([0-9]*\)$/\1.\2/'`
1469 SINIX-N | SINIX-Y | SINIX-Z |ReliantUNIX-M)
1475 OS_RELEASE=`uname -v`
1479 case "${target_os}" in
1482 WINCE_WINDOWS_MOBILE=1
1483 AC_DEFINE(WINCE_WINDOWS_MOBILE)
1491 case "${target_cpu}" in
1502 if test -z "$CROSS_COMPILE" ; then
1510 if test "$OS_ARCH" = "NCR"; then
1512 OS_RELEASE=`awk '{print $3}' /etc/.relid | sed 's/^\([0-9]\)\(.\)\(..\)\(.*\)$/\2.\3/'`
1516 # Only set CPU_ARCH if we recognize the value of OS_TEST
1527 powerpc | ppc | rs6000)
1531 Alpha | alpha | ALPHA)
1560 if test -z "$OS_TARGET"; then
1563 OS_CONFIG="${OS_TARGET}${OS_RELEASE}"
1565 dnl ========================================================
1566 dnl GNU specific defaults
1567 dnl ========================================================
1568 if test "$GNU_CC"; then
1569 # FIXME: Let us build with strict aliasing. bug 414641.
1570 CFLAGS="$CFLAGS -fno-strict-aliasing"
1571 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@'
1572 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@'
1573 DSO_LDOPTS='-shared'
1574 if test "$GCC_USE_GNU_LD"; then
1575 # Don't allow undefined symbols in libraries
1576 DSO_LDOPTS="$DSO_LDOPTS -Wl,-z,defs"
1578 WARNINGS_AS_ERRORS='-Werror'
1580 DSO_PIC_CFLAGS='-fPIC'
1581 ASFLAGS="$ASFLAGS -fPIC"
1582 _MOZ_RTTI_FLAGS_ON=${_COMPILER_PREFIX}-frtti
1583 _MOZ_RTTI_FLAGS_OFF=${_COMPILER_PREFIX}-fno-rtti
1584 _MOZ_EXCEPTIONS_FLAGS_ON='-fexceptions'
1585 _MOZ_EXCEPTIONS_FLAGS_OFF='-fno-exceptions'
1587 # Turn on GNU specific features
1588 # -Wall - turn on all warnings
1589 # -pedantic - make compiler warn about non-ANSI stuff, and
1590 # be a little bit stricter
1591 # Warnings slamm took out for now (these were giving more noise than help):
1592 # -Wbad-function-cast - warns when casting a function to a new return type
1593 # -Wshadow - removed because it generates more noise than help --pete
1594 _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -W -Wno-unused -Wpointer-arith"
1595 if test -z "$INTEL_CC"; then
1596 # Don't use -Wcast-align with ICC
1598 # And don't use it on hppa, ia64, sparc, arm, since it's noisy there
1599 hppa | ia64 | sparc | arm)
1602 _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wcast-align"
1607 dnl Turn pedantic on but disable the warnings for long long
1610 if test -z "$INTEL_CC"; then
1611 _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -W"
1614 _DEFINES_CFLAGS='-include $(DEPTH)/mozilla-config.h -DMOZILLA_CLIENT'
1615 _USE_CPP_INCLUDE_FLAG=1
1616 elif test "$SOLARIS_SUNPRO_CC"; then
1618 if test "$CPU_ARCH" = "sparc"; then
1619 # for Sun Studio on Solaris/SPARC
1620 DSO_PIC_CFLAGS='-xcode=pic32'
1622 DSO_PIC_CFLAGS='-KPIC'
1624 _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
1626 MKSHLIB='$(LD) $(DSO_LDOPTS) -h $@ -o $@'
1627 MKCSHLIB='$(LD) $(DSO_LDOPTS) -h $@ -o $@'
1629 DSO_LDOPTS='-shared'
1630 if test "$GNU_LD"; then
1631 # Don't allow undefined symbols in libraries
1632 DSO_LDOPTS="$DSO_LDOPTS -z defs"
1636 DSO_PIC_CFLAGS='-KPIC'
1637 _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
1640 if test "$GNU_CXX"; then
1641 # FIXME: Let us build with strict aliasing. bug 414641.
1642 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
1643 # Turn on GNU specific features
1644 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor"
1645 if test -z "$INTEL_CC"; then
1646 # Don't use -Wcast-align with ICC
1648 # And don't use it on hppa, ia64, sparc, arm, since it's noisy there
1649 hppa | ia64 | sparc | arm)
1652 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wcast-align"
1657 _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -include $(DEPTH)/mozilla-config.h'
1658 _USE_CPP_INCLUDE_FLAG=1
1660 AC_CACHE_CHECK(whether the compiler supports -Wno-invalid-offsetof,
1661 ac_has_wno_invalid_offsetof,
1665 _SAVE_CXXFLAGS="$CXXFLAGS"
1666 CXXFLAGS="$CXXFLAGS ${_COMPILER_PREFIX}-Wno-invalid-offsetof"
1669 ac_has_wno_invalid_offsetof="yes",
1670 ac_has_wno_invalid_offsetof="no")
1671 CXXFLAGS="$_SAVE_CXXFLAGS"
1674 if test "$ac_has_wno_invalid_offsetof" = "yes"; then
1675 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-Wno-invalid-offsetof"
1678 AC_CACHE_CHECK(whether the compiler supports -Wno-variadic-macros,
1679 ac_has_wno_variadic_macros,
1683 _SAVE_CXXFLAGS="$CXXFLAGS"
1684 CXXFLAGS="$CXXFLAGS ${_COMPILER_PREFIX}-Wno-variadic-macros"
1687 ac_has_wno_variadic_macros="yes",
1688 ac_has_wno_variadic_macros="no")
1689 CXXFLAGS="$_SAVE_CXXFLAGS"
1692 if test "$ac_has_wno_variadic_macros" = "yes"; then
1693 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-Wno-variadic-macros"
1696 AC_CACHE_CHECK(whether the compiler supports -Werror=return-type,
1697 ac_has_werror_return_type,
1701 _SAVE_CXXFLAGS="$CXXFLAGS"
1702 CXXFLAGS="$CXXFLAGS -Werror=return-type"
1705 ac_has_werror_return_type="yes",
1706 ac_has_werror_return_type="no")
1707 CXXFLAGS="$_SAVE_CXXFLAGS"
1710 if test "$ac_has_werror_return_type" = "yes"; then
1711 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Werror=return-type"
1715 _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -D_MOZILLA_CONFIG_H_ $(ACDEFINES)'
1718 dnl gcc can come with its own linker so it is better to use the pass-thru calls
1719 dnl MKSHLIB_FORCE_ALL is used to force the linker to include all object
1720 dnl files present in an archive. MKSHLIB_UNFORCE_ALL reverts the linker to
1721 dnl normal behavior.
1722 dnl ========================================================
1724 MKSHLIB_UNFORCE_ALL=
1726 if test "$COMPILE_ENVIRONMENT"; then
1727 if test "$GNU_CC"; then
1728 AC_MSG_CHECKING(whether ld has archive extraction flags)
1729 AC_CACHE_VAL(ac_cv_mkshlib_force_and_unforce,
1730 [_SAVE_LDFLAGS=$LDFLAGS; _SAVE_LIBS=$LIBS
1731 ac_cv_mkshlib_force_and_unforce="no"
1732 exec 3<&0 <<LOOP_INPUT
1733 force="-Wl,--whole-archive"; unforce="-Wl,--no-whole-archive"
1734 force="-Wl,-z -Wl,allextract"; unforce="-Wl,-z -Wl,defaultextract"
1735 force="-Wl,-all"; unforce="-Wl,-none"
1742 AC_TRY_LINK(,, ac_cv_mkshlib_force_and_unforce=$line; break)
1745 LDFLAGS=$_SAVE_LDFLAGS; LIBS=$_SAVE_LIBS
1747 if test "$ac_cv_mkshlib_force_and_unforce" = "no"; then
1751 eval $ac_cv_mkshlib_force_and_unforce
1752 MKSHLIB_FORCE_ALL=$force
1753 MKSHLIB_UNFORCE_ALL=$unforce
1756 fi # COMPILE_ENVIRONMENT
1758 dnl =================================================================
1759 dnl Set up and test static assertion macros used to avoid AC_TRY_RUN,
1760 dnl which is bad when cross compiling.
1761 dnl =================================================================
1762 if test "$COMPILE_ENVIRONMENT"; then
1763 configure_static_assert_macros='
1764 #define CONFIGURE_STATIC_ASSERT(condition) CONFIGURE_STATIC_ASSERT_IMPL(condition, __LINE__)
1765 #define CONFIGURE_STATIC_ASSERT_IMPL(condition, line) CONFIGURE_STATIC_ASSERT_IMPL2(condition, line)
1766 #define CONFIGURE_STATIC_ASSERT_IMPL2(condition, line) typedef int static_assert_line_##line[(condition) ? 1 : -1]
1769 dnl test that the macros actually work:
1770 AC_MSG_CHECKING(that static assertion macros used in autoconf tests work)
1771 AC_CACHE_VAL(ac_cv_static_assertion_macros_work,
1774 ac_cv_static_assertion_macros_work="yes"
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",
1784 AC_TRY_COMPILE([$configure_static_assert_macros],
1785 [CONFIGURE_STATIC_ASSERT(1)],
1787 ac_cv_static_assertion_macros_work="no")
1788 AC_TRY_COMPILE([$configure_static_assert_macros],
1789 [CONFIGURE_STATIC_ASSERT(0)],
1790 ac_cv_static_assertion_macros_work="no",
1794 AC_MSG_RESULT("$ac_cv_static_assertion_macros_work")
1795 if test "$ac_cv_static_assertion_macros_work" = "no"; then
1796 AC_MSG_ERROR([Compiler cannot compile macros used in autoconf tests.])
1798 fi # COMPILE_ENVIRONMENT
1800 dnl ========================================================
1801 dnl Checking for 64-bit OS
1802 dnl ========================================================
1803 if test "$COMPILE_ENVIRONMENT"; then
1806 AC_MSG_CHECKING(for 64-bit OS)
1807 AC_TRY_COMPILE([$configure_static_assert_macros],
1808 [CONFIGURE_STATIC_ASSERT(sizeof(void*) == 8)],
1809 result="yes", result="no")
1810 AC_MSG_RESULT("$result")
1811 if test "$result" = "yes"; then
1812 AC_DEFINE(HAVE_64BIT_OS)
1815 AC_SUBST(HAVE_64BIT_OS)
1817 fi # COMPILE_ENVIRONMENT
1819 dnl ========================================================
1820 dnl Enable high-memory support on OS/2 by default.
1821 dnl ========================================================
1822 MOZ_OS2_HIGH_MEMORY=1
1823 MOZ_ARG_DISABLE_BOOL(os2-high-mem,
1824 [ --disable-os2-high-mem Disable high-memory support on OS/2],
1825 MOZ_OS2_HIGH_MEMORY=,
1826 MOZ_OS2_HIGH_MEMORY=1 )
1827 AC_SUBST(MOZ_OS2_HIGH_MEMORY)
1829 dnl ========================================================
1830 dnl System overrides of the defaults for host
1831 dnl ========================================================
1834 HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE -DNO_X11"
1835 HOST_NSPR_MDCPUCFG='\"md/_beos.cfg\"'
1836 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
1839 *cygwin*|*mingw*|*mks*|*msvc*|*wince|*winmo)
1840 # we need Python 2.5 on Windows
1842 if test -n "$_WIN32_MSVC"; then
1844 HOST_AR_FLAGS='-NOLOGO -OUT:"$@"'
1845 HOST_CFLAGS="$HOST_CFLAGS -TC -nologo -Fd\$(HOST_PDBFILE)"
1846 HOST_RANLIB='echo ranlib'
1848 HOST_CFLAGS="$HOST_CFLAGS -mno-cygwin"
1850 HOST_CFLAGS="$HOST_CFLAGS -DXP_WIN32 -DXP_WIN -DWIN32 -D_WIN32 -DNO_X11"
1851 HOST_NSPR_MDCPUCFG='\"md/_winnt.cfg\"'
1852 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
1853 HOST_BIN_SUFFIX=.exe
1856 dnl MinGW/MSYS does not need CYGWIN_WRAPPER
1857 PERL="/bin/sh ${_topsrcdir}/build/msys-perl-wrapper"
1860 CYGWIN_WRAPPER="${srcdir}/build/cygwin-wrapper"
1861 if test "`echo ${srcdir} | grep -c ^/ 2>/dev/null`" = 0; then
1863 CYGWIN_WRAPPER="${_pwd}/${srcdir}/build/cygwin-wrapper"
1865 if test "`${PERL} -v | grep -c cygwin 2>/dev/null`" = 0; then
1867 PERL="${CYGWIN_WRAPPER} $PERL"
1870 if test "`${PYTHON} -c 'import sys; print sys.platform;'`" != "cygwin"; then
1871 PYTHON="${CYGWIN_WRAPPER} $PYTHON"
1876 case "${host_cpu}" in
1878 HOST_CFLAGS="$HOST_CFLAGS -D_AMD64_"
1884 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX -DXP_MACOSX -DNO_X11"
1885 HOST_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
1886 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
1889 *-linux*|*-kfreebsd*-gnu|*-gnu*)
1890 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
1891 HOST_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
1892 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
1896 HOST_CFLAGS="$HOST_CFLAGS -DXP_OS2 -DNO_X11 -Zomf"
1897 HOST_NSPR_MDCPUCFG='\"md/_os2.cfg\"'
1898 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
1899 HOST_BIN_SUFFIX=.exe
1904 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
1905 HOST_NSPR_MDCPUCFG='\"md/_osf1.cfg\"'
1906 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
1910 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
1911 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
1915 dnl We require version 2.4 or newer of Python to build,
1916 dnl and 2.5 or newer on Windows.
1917 AC_MSG_CHECKING([for minimum required Python version >= $PYTHON_VERSION])
1919 $PYTHON -c "import sys; sys.exit(sys.version[:3] < sys.argv[1])" $PYTHON_VERSION
1922 if test "$_python_res" != 0; then
1923 AC_MSG_ERROR([Python $PYTHON_VERSION or higher is required.])
1925 AC_MSG_RESULT([yes])
1927 dnl Get mozilla version from central milestone file
1928 MOZILLA_VERSION=`$PERL $srcdir/config/milestone.pl -topsrcdir $srcdir`
1930 dnl Get version of various core apps from the version files.
1931 FIREFOX_VERSION=`cat $topsrcdir/browser/config/version.txt`
1933 AC_DEFINE_UNQUOTED(MOZILLA_VERSION,"$MOZILLA_VERSION")
1934 AC_DEFINE_UNQUOTED(MOZILLA_VERSION_U,$MOZILLA_VERSION)
1936 dnl ========================================================
1937 dnl System overrides of the defaults for target
1938 dnl ========================================================
1943 if test ! "$GNU_CC"; then
1944 if test ! "$HAVE_64BIT_OS"; then
1945 # Compiling with Visual Age C++ object model compat is the
1946 # default. To compile with object model ibm, add
1947 # AIX_OBJMODEL=ibm to .mozconfig.
1948 if test "$AIX_OBJMODEL" = "ibm"; then
1949 CXXFLAGS="$CXXFLAGS -qobjmodel=ibm"
1956 AC_SUBST(AIX_OBJMODEL)
1957 DSO_LDOPTS='-qmkshrobj=1'
1958 DSO_CFLAGS='-qflag=w:w'
1960 LDFLAGS="$LDFLAGS -Wl,-brtl -blibpath:/usr/lib:/lib"
1961 AC_MSG_WARN([Clearing MOZ_FIX_LINK_PATHS till we can fix bug 332075.])
1963 MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@'
1964 MKCSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
1965 if test "$COMPILE_ENVIRONMENT"; then
1968 AC_MSG_CHECKING([for VisualAge C++ compiler version >= 6.0.0.3])
1970 [#if (__IBMCPP__ < 600)
1971 #error "Bad compiler"
1973 _BAD_COMPILER=,_BAD_COMPILER=1)
1974 if test -n "$_BAD_COMPILER"; then
1976 AC_MSG_ERROR([VisualAge C++ version 6.0.0.3 or higher is required to build.])
1978 AC_MSG_RESULT([yes])
1981 TARGET_COMPILER_ABI="ibmc"
1982 CC_VERSION=`lslpp -Lcq vac.C 2>/dev/null | awk -F: '{ print $3 }'`
1983 CXX_VERSION=`lslpp -Lcq vacpp.cmp.core 2>/dev/null | awk -F: '{ print $3 }'`
1986 case "${target_os}" in
1991 if test "$COMPILE_ENVIRONMENT"; then
1992 AC_CHECK_HEADERS(sys/inttypes.h)
1994 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
1999 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@'
2000 _PLATFORM_DEFAULT_TOOLKIT="cairo-beos"
2001 DSO_LDOPTS='-nostart'
2002 TK_LIBS='-lbe -lroot'
2004 if test "$COMPILE_ENVIRONMENT"; then
2005 AC_CHECK_LIB(bind,main,LIBS="$LIBS -lbind")
2006 AC_CHECK_LIB(zeta,main,LIBS="$LIBS -lzeta")
2008 _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-multichar"
2009 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-multichar"
2012 MOZ_USER_DIR="Mozilla"
2016 dnl -pedantic doesn't play well with BSDI's _very_ modified gcc (shlicc2)
2025 _WARNINGS_CFLAGS="-Wall"
2026 _WARNINGS_CXXFLAGS="-Wall"
2027 # The test above doesn't work properly, at least on 3.1.
2028 MKSHLIB_FORCE_ALL=''
2029 MKSHLIB_UNFORCE_ALL=''
2035 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
2036 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
2037 MOZ_OPTIMIZE_FLAGS="-O3"
2039 CFLAGS="$CFLAGS -fpascal-strings -fno-common"
2040 CXXFLAGS="$CXXFLAGS -fpascal-strings -fno-common"
2043 STRIP="$STRIP -x -S"
2044 _PLATFORM_DEFAULT_TOOLKIT='cairo-cocoa'
2045 TARGET_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
2046 # The ExceptionHandling framework is needed for Objective-C exception
2047 # logging code in nsObjCExceptions.h. Currently we only use that in debug
2049 MOZ_DEBUG_LDFLAGS="$MOZ_DEBUG_LDFLAGS -framework ExceptionHandling"
2051 dnl DTrace and -dead_strip don't interact well. See bug 403132.
2052 dnl ===================================================================
2053 if test "x$enable_dtrace" = "xyes"; then
2054 echo "Skipping -dead_strip because DTrace is enabled. See bug 403132."
2056 dnl check for the presence of the -dead_strip linker flag
2057 AC_MSG_CHECKING([for -dead_strip option to ld])
2058 _SAVE_LDFLAGS=$LDFLAGS
2059 LDFLAGS="$LDFLAGS -Wl,-dead_strip"
2060 AC_TRY_LINK(,[return 0;],_HAVE_DEAD_STRIP=1,_HAVE_DEAD_STRIP=)
2061 if test -n "$_HAVE_DEAD_STRIP" ; then
2062 AC_MSG_RESULT([yes])
2063 MOZ_OPTIMIZE_LDFLAGS="-Wl,-dead_strip"
2068 LDFLAGS=$_SAVE_LDFLAGS
2070 MOZ_FIX_LINK_PATHS='-Wl,-executable_path,$(LIBXUL_DIST)/bin'
2074 if test `test -x /usr/bin/objformat && /usr/bin/objformat || echo elf` != "elf"; then
2075 DLL_SUFFIX=".so.1.0"
2076 DSO_LDOPTS="-shared"
2078 if test ! "$GNU_CC"; then
2079 DSO_LDOPTS="-Bshareable $DSO_LDOPTS"
2085 if test ! "$GNU_CC"; then
2089 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -o $@'
2090 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_LDOPTS) -o $@'
2091 CXXFLAGS="$CXXFLAGS -Wc,-ansi_for_scope,on"
2094 MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
2095 MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
2099 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2100 AC_DEFINE(_LARGEFILE64_SOURCE)
2105 if test ! "$GNU_CC"; then
2106 DSO_LDOPTS='-b -Wl,+s'
2109 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -o $@'
2110 MKCSHLIB='$(LD) -b +s -L$(LIBXUL_DIST)/bin -o $@'
2111 CXXFLAGS="$CXXFLAGS -Wc,-ansi_for_scope,on"
2113 DSO_LDOPTS='-b -E +s'
2114 MKSHLIB='$(LD) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -L$(LIBXUL_DIST)/lib -o $@'
2115 MKCSHLIB='$(LD) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -L$(LIBXUL_DIST)/lib -o $@'
2117 MOZ_POST_PROGRAM_COMMAND='chatr +s enable'
2118 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2123 DSO_LDOPTS='-elf -shared'
2125 if test "$GNU_CC"; then
2126 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
2127 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
2128 MKSHLIB_FORCE_ALL='-Wl,-all'
2129 MKSHLIB_UNFORCE_ALL='-Wl,-none'
2130 CXXFLAGS="$CXXFLAGS -D_LANGUAGE_C_PLUS_PLUS"
2132 MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
2133 MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
2134 MKSHLIB_FORCE_ALL='-all'
2135 MKSHLIB_UNFORCE_ALL='-none'
2141 dnl the irix specific xptcinvoke code is written against the n32 ABI so we *must*
2142 dnl compile and link using -n32
2144 TARGET_COMPILER_ABI=n32
2145 DSO_LDOPTS='-elf -shared'
2146 MKSHLIB='$(CCC) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
2147 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
2148 _MOZ_EXCEPTIONS_FLAGS_OFF="-LANG:exceptions=OFF"
2149 _MOZ_EXCEPTIONS_FLAGS_ON="-LANG:exceptions=ON"
2150 if test "$GNU_CC"; then
2151 MKSHLIB_FORCE_ALL='-Wl,-all'
2152 MKSHLIB_UNFORCE_ALL='-Wl,-none'
2153 _WARNINGS_CFLAGS="-Wall"
2154 _WARNINGS_CXXFLAGS="-Wall"
2155 CXXFLAGS="$CXXFLAGS -D_LANGUAGE_C_PLUS_PLUS"
2157 MKSHLIB_FORCE_ALL='-all'
2158 MKSHLIB_UNFORCE_ALL='-none'
2164 CFLAGS="$CFLAGS -woff 3262 -G 4"
2165 CXXFLAGS="$CXXFLAGS -woff 3262 -G 4"
2166 if test -n "$USE_N32"; then
2167 ASFLAGS="$ASFLAGS -n32"
2168 CFLAGS="$CFLAGS -n32"
2169 CXXFLAGS="$CXXFLAGS -n32"
2170 LDFLAGS="$LDFLAGS -n32"
2172 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2173 AC_MSG_WARN([Clearing MOZ_FIX_LINK_PATHS for OSF/1 as fix for bug 333545 (till the reference bug 332075 is fixed.])
2176 if test -z "$GNU_CXX"; then
2182 # Note: both GNU_CC and INTEL_CC are set when using Intel's C compiler.
2183 # Similarly for GNU_CXX and INTEL_CXX.
2184 if test "$INTEL_CC" -o "$INTEL_CXX"; then
2185 # -Os has been broken on Intel's C/C++ compilers for quite a
2186 # while; Intel recommends against using it.
2187 MOZ_OPTIMIZE_FLAGS="-O2"
2188 MOZ_DEBUG_FLAGS="-g"
2189 elif test "$GNU_CC" -o "$GNU_CXX"; then
2190 GCC_VERSION=`$CC -v 2>&1 | awk '/^gcc version/ { print $3 }'`
2191 case $GCC_VERSION in
2193 # -Os is broken on gcc 4.1.x 4.2.x, 4.5.x we need to tweak it to get good results.
2194 MOZ_OPTIMIZE_SIZE_TWEAK="-finline-limit=50"
2196 MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks -fomit-frame-pointer $MOZ_OPTIMIZE_SIZE_TWEAK"
2197 MOZ_DEBUG_FLAGS="-g"
2200 TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
2204 case "${target_cpu}" in
2206 CFLAGS="$CFLAGS -mieee"
2207 CXXFLAGS="$CXXFLAGS -mieee"
2213 MOZ_DEBUG_FLAGS="-g" # We want inlining
2219 TARGET_COMPILER_ABI=msvc
2220 _PLATFORM_DEFAULT_TOOLKIT=cairo-windows
2221 MOZ_TOOLS_DIR=`cd $MOZ_TOOLS && pwd -W`
2222 MOZ_BUILD_ROOT=`cd $MOZ_BUILD_ROOT && pwd -W`
2224 AR_EXTRACT="$AR -extract"
2226 AR_FLAGS='-OUT:"$@"'
2230 ac_configure_args="$ac_configure_args --enable-win32-target=WINCE"
2232 if test "$AS_BIN"; then
2239 if test -z "$RC"; then
2242 # certain versions of cygwin's makedepend barf on the
2243 # #include <string> vs -I./dist/include/string issue so don't use it
2249 HOST_AR='lib -OUT:$@'
2250 HOST_RANLIB='echo ranlib'
2251 HOST_CFLAGS="$HOST_CFLAGS -D_X86_"
2254 WARNINGS_AS_ERRORS='-WX'
2255 MOZ_OPTIMIZE_FLAGS='-Ox'
2256 AR_FLAGS='-NOLOGO -OUT:"$@"'
2258 CFLAGS="$CFLAGS -W3 -Gy -Fd\$(COMPILE_PDBFILE)"
2259 CXXFLAGS="$CXXFLAGS -W3 -Gy -Fd\$(COMPILE_PDBFILE)"
2262 DSO_LDOPTS=-SUBSYSTEM:WINDOWSCE
2263 DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcom_core.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
2265 IMPORT_LIB_SUFFIX=lib
2266 dnl Need to force-link against mozalloc because it's used in the shunt
2267 LIBS="$LIBS \$(LIBXUL_DIST)/lib/mozalloc.lib"
2268 LIBXUL_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
2271 MKCSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ $(DSO_LDOPTS)'
2272 MKSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ $(DSO_LDOPTS)'
2274 MKSHLIB_UNFORCE_ALL=
2275 MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
2276 MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
2277 MOZ_DEBUG_FLAGS='-Zi'
2278 MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV'
2280 MOZ_JS_STATIC_LIBS='$(LIBXUL_DIST)/lib/js_static.lib'
2281 MOZ_JS_SHARED_LIBS='$(LIBXUL_DIST)/lib/mozjs.lib'
2283 RANLIB='echo not_ranlib'
2284 STRIP='echo not_strip'
2285 TARGET_NSPR_MDCPUCFG='\"md/_wince.cfg\"'
2288 XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
2292 AC_DEFINE(HAVE_SNPRINTF)
2297 AC_DEFINE(HW_THREADS)
2298 AC_DEFINE(STDC_HEADERS)
2299 AC_DEFINE(NEW_H, <new>)
2300 AC_DEFINE(WIN32_LEAN_AND_MEAN)
2301 AC_DEFINE(HAVE_LOCALTIME_R)
2303 TARGET_MD_ARCH=win32
2304 _PLATFORM_DEFAULT_TOOLKIT='cairo-windows'
2306 MOZ_USER_DIR="Mozilla"
2308 MOZ_GFX_OPTIMIZE_MOBILE=1
2310 # Sanity check for WINCE_WINDOWS_MOBILE
2311 # XXX disabled until we can fix the mobile tinderbox
2312 ##if test "$WINCE_WINDOWS_MOBILE"; then
2313 ## AC_CHECK_HEADER(tpcshell.h, [],
2314 ## AC_MSG_ERROR([Can't find tpcshell.h in your SDK; are you sure you don't need --disable-windows-mobile-components?]))
2319 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
2324 # certain versions of cygwin's makedepend barf on the
2325 # #include <string> vs -I./dist/include/string issue so don't use it
2327 if test -n "$GNU_CC"; then
2328 CC="$CC -mno-cygwin"
2329 CXX="$CXX -mno-cygwin"
2330 CPP="$CPP -mno-cygwin"
2331 CFLAGS="$CFLAGS -mms-bitfields"
2332 CXXFLAGS="$CXXFLAGS -mms-bitfields"
2333 DSO_LDOPTS='-shared'
2334 MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@'
2335 MKCSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
2337 # Use temp file for windres (bug 213281)
2338 RCFLAGS='-O coff --use-temp-file'
2339 # mingw doesn't require kernel32, user32, and advapi32 explicitly
2340 LIBS="$LIBS -luuid -lgdi32 -lwinmm -lwsock32"
2341 MOZ_JS_STATIC_LIBS='-L$(LIBXUL_DIST)/bin -ljs_static'
2342 MOZ_JS_SHARED_LIBS='-L$(LIBXUL_DIST)/bin -lmozjs'
2344 DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/lib -lxpcom -lxpcom_core -lmozalloc'
2345 XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/lib -lxpcom -lmozalloc'
2347 IMPORT_LIB_SUFFIX=dll.a
2348 GCC_VERSION=`$CC -v 2>&1 | awk '/^gcc version/ { print $3 }'`
2350 TARGET_COMPILER_ABI=msvc
2354 if test "$AS_BIN"; then
2355 AS="$(basename "$AS_BIN")"
2357 AR='lib -NOLOGO -OUT:"$@"'
2359 RANLIB='echo not_ranlib'
2360 STRIP='echo not_strip'
2365 GARBAGE='$(OBJDIR)/vc20.pdb $(OBJDIR)/vc40.pdb'
2371 IMPORT_LIB_SUFFIX=lib
2372 MKSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ -PDB:$(LINK_PDBFILE) $(DSO_LDOPTS)'
2373 MKCSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ -PDB:$(LINK_PDBFILE) $(DSO_LDOPTS)'
2375 MKSHLIB_UNFORCE_ALL=
2376 DSO_LDOPTS=-SUBSYSTEM:WINDOWS
2377 _USE_CPP_INCLUDE_FLAG=1
2378 _DEFINES_CFLAGS='-FI $(DEPTH)/dist/include/mozilla-config.h -DMOZILLA_CLIENT'
2379 _DEFINES_CXXFLAGS='-FI $(DEPTH)/dist/include/mozilla-config.h -DMOZILLA_CLIENT'
2380 CFLAGS="$CFLAGS -W3 -Gy -Fd\$(COMPILE_PDBFILE)"
2381 CXXFLAGS="$CXXFLAGS -W3 -Gy -Fd\$(COMPILE_PDBFILE)"
2382 CXXFLAGS="$CXXFLAGS -wd4800" # disable warning "forcing value to bool"
2383 LIBS="$LIBS kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib"
2384 MOZ_DEBUG_FLAGS='-Zi'
2385 MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV'
2386 WARNINGS_AS_ERRORS='-WX'
2387 MOZ_OPTIMIZE_FLAGS='-O1'
2388 MOZ_JS_STATIC_LIBS='$(LIBXUL_DIST)/lib/js_static.lib'
2389 MOZ_JS_SHARED_LIBS='$(LIBXUL_DIST)/lib/mozjs.lib'
2391 DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcom_core.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
2392 XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
2393 LIBXUL_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
2394 MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
2395 if test $_MSC_VER -ge 1400; then
2396 LDFLAGS="$LDFLAGS -NXCOMPAT"
2397 dnl For profile-guided optimization
2398 PROFILE_GEN_CFLAGS="-GL"
2399 PROFILE_GEN_LDFLAGS="-LTCG:PGINSTRUMENT"
2400 dnl XXX: PGO builds can fail with warnings treated as errors,
2401 dnl specifically "no profile data available" appears to be
2402 dnl treated as an error sometimes. This might be a consequence
2403 dnl of using WARNINGS_AS_ERRORS in some modules, combined
2404 dnl with the linker doing most of the work in the whole-program
2405 dnl optimization/PGO case. I think it's probably a compiler bug,
2406 dnl but we work around it here.
2407 PROFILE_USE_CFLAGS="-GL -wd4624 -wd4952"
2408 dnl XXX: should be -LTCG:PGOPTIMIZE, but that fails on libxul.
2409 dnl Probably also a compiler bug, but what can you do?
2410 PROFILE_USE_LDFLAGS="-LTCG:PGUPDATE"
2411 if test -n "$_USE_DYNAMICBASE"; then
2412 LDFLAGS="$LDFLAGS -DYNAMICBASE"
2416 MOZ_JPEG_LIBS='$(call EXPAND_LIBNAME_PATH,jpeg32$(VERSION_NUMBER),$(DEPTH)/jpeg)'
2417 MOZ_PNG_LIBS='$(call EXPAND_LIBNAME_PATH,png,$(DEPTH)/modules/libimg/png)'
2418 AC_DEFINE(HAVE_SNPRINTF)
2423 AC_DEFINE(HW_THREADS)
2424 AC_DEFINE(STDC_HEADERS)
2425 AC_DEFINE(NEW_H, <new>)
2426 AC_DEFINE(WIN32_LEAN_AND_MEAN)
2427 TARGET_MD_ARCH=win32
2428 _PLATFORM_DEFAULT_TOOLKIT='cairo-windows'
2430 MOZ_USER_DIR="Mozilla"
2432 dnl Hardcode to win95 for now - cls
2433 TARGET_NSPR_MDCPUCFG='\"md/_win95.cfg\"'
2435 dnl set NO_X11 defines here as the general check is skipped on win32
2439 dnl MinGW/MSYS doesn't provide or need cygpath
2444 MOZ_BUILD_ROOT=`cd $MOZ_BUILD_ROOT && pwd -W`
2446 *-cygwin*|*-msvc*|*-mks*)
2447 CYGPATH_W="cygpath -a -w"
2448 CYGPATH_S="sed -e s|\\\\|/|g"
2449 MOZ_BUILD_ROOT=`$CYGPATH_W $MOZ_BUILD_ROOT | $CYGPATH_S`
2453 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
2455 if test -z "$MOZ_TOOLS"; then
2456 AC_MSG_ERROR([MOZ_TOOLS is not set])
2459 MOZ_TOOLS_DIR=`cd $MOZ_TOOLS && pwd -W`
2460 if test "$?" != "0" -o -z "$MOZ_TOOLS_DIR"; then
2461 AC_MSG_ERROR([cd \$MOZ_TOOLS failed. MOZ_TOOLS ==? $MOZ_TOOLS])
2463 MOZ_TOOLS_BIN_DIR="$(cd "$MOZ_TOOLS_DIR/bin" && pwd)"
2464 if test `echo ${PATH}: | grep -ic "$MOZ_TOOLS_BINDIR:"` = 0; then
2465 AC_MSG_ERROR([\$MOZ_TOOLS\\bin must be in your path.])
2467 MOZ_TOOLS_DIR=`$CYGPATH_W $MOZ_TOOLS_DIR | $CYGPATH_S`
2474 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])
2478 AC_CHECK_HEADERS(oleacc.idl)
2482 AC_CHECK_HEADERS(atlbase.h)
2489 if test "$HAVE_64BIT_OS"; then
2490 AC_MSG_ERROR([You are targeting i386 but using the 64-bit compiler.])
2493 if test $_MSC_VER -ge 1400; then
2494 LDFLAGS="$LDFLAGS -SAFESEH"
2496 AC_CHECK_HEADERS(mmintrin.h)
2509 AC_DEFINE(_CPU_ARCH_NOT_DEFINED)
2513 if test "$HAVE_64BIT_OS"; then
2520 CFLAGS="$CFLAGS -Dunix"
2521 CXXFLAGS="$CXXFLAGS -Dunix"
2522 if $CC -E - -dM </dev/null | grep __ELF__ >/dev/null; then
2524 DSO_PIC_CFLAGS='-fPIC -DPIC'
2525 DSO_LDOPTS='-shared'
2526 BIN_FLAGS='-Wl,--export-dynamic'
2528 DSO_PIC_CFLAGS='-fPIC -DPIC'
2529 DLL_SUFFIX=".so.1.0"
2530 DSO_LDOPTS='-shared'
2532 # This will fail on a.out systems prior to 1.5.1_ALPHA.
2533 MKSHLIB_FORCE_ALL='-Wl,--whole-archive'
2534 MKSHLIB_UNFORCE_ALL='-Wl,--no-whole-archive'
2535 if test "$LIBRUNPATH"; then
2536 DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS"
2538 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX) -o $@'
2539 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX) -o $@'
2544 AC_DEFINE(_QNX_SOURCE)
2547 WARNINGS_AS_ERRORS=''
2548 MOZ_OPTIMIZE_FLAGS="-O"
2549 MOZ_DEBUG_FLAGS="-gstabs"
2552 LIBS="$LIBS -lsocket -lstdc++"
2553 _DEFINES_CFLAGS='-include $(DEPTH)/mozilla-config.h -DMOZILLA_CLIENT -D_POSIX_C_SOURCE=199506'
2554 _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -include $(DEPTH)/mozilla-config.h -D_POSIX_C_SOURCE=199506'
2555 if test "$with_x" != "yes"
2557 _PLATFORM_DEFAULT_TOOLKIT="photon"
2558 TK_CFLAGS='-I/usr/include/photon'
2561 case "${target_cpu}" in
2563 AC_DEFINE(HAVE_VA_LIST_AS_ARRAY)
2566 case "${host_cpu}" in
2574 DLL_SUFFIX=".so.1.0"
2576 DSO_PIC_CFLAGS='-fPIC'
2577 DSO_LDOPTS='-shared -fPIC'
2578 if test "$LIBRUNPATH"; then
2579 DSO_LDOPTS="-R$LIBRUNPATH $DSO_LDOPTS"
2584 AC_DEFINE(NO_PW_GECOS)
2585 AC_DEFINE(NO_UDSOCK)
2586 AC_DEFINE(POLL_WITH_XCONNECTIONNUMBER)
2588 MKSHLIB_FORCE_ALL='-all'
2589 MKSHLIB_UNFORCE_ALL='-none'
2591 AS_DASH_C_FLAG='-Wc/names=as_is'
2593 DSO_LDOPTS='-shared -auto_symvec'
2595 MOZ_DEBUG_LDFLAGS='-g'
2597 CC_VERSION=`$CC -V 2>&1 | awk '/ C / { print $3 }'`
2598 CXX_VERSION=`$CXX -V 2>&1 | awk '/ C\+\+ / { print $3 }'`
2603 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
2604 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
2607 AC_DEFINE(OS2EMX_PLAIN_CHAR)
2608 AC_DEFINE(TCPV40HDRS)
2614 IMPORT_LIB_SUFFIX=lib
2618 CFLAGS="$CFLAGS -Zomf"
2619 CXXFLAGS="$CXXFLAGS -Zomf"
2621 BIN_FLAGS='-Zlinker /ST:0x100000'
2625 WARNINGS_AS_ERRORS='-Werror'
2626 MOZ_DEBUG_FLAGS="-g -fno-inline"
2627 MOZ_OPTIMIZE_FLAGS="-O2"
2628 MOZ_OPTIMIZE_LDFLAGS="-s -Zlinker /EXEPACK:2 -Zlinker /PACKCODE -Zlinker /PACKDATA"
2629 DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/lib $(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcom_core.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
2630 LIBXUL_LIBS='-L$(LIBXUL_DIST)/lib $(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
2632 _PLATFORM_DEFAULT_TOOLKIT="cairo-os2"
2635 MOZ_USER_DIR="Mozilla"
2637 if test "$MOZTOOLS"; then
2638 MOZ_TOOLS_DIR=`echo $MOZTOOLS | sed -e 's|\\\\|/|g'`
2640 AC_MSG_ERROR([MOZTOOLS is not set])
2642 if test -n "$MOZ_OS2_HIGH_MEMORY"; then
2643 DSO_LDOPTS="$DSO_LDOPTS -Zhigh-mem"
2644 LDFLAGS="$LDFLAGS -Zhigh-mem"
2645 MOZ_OPTIMIZE_LDFLAGS="$MOZ_OPTIMIZE_LDFLAGS -Zhigh-mem"
2646 AC_DEFINE(MOZ_OS2_HIGH_MEMORY)
2649 # GCC for OS/2 currently predefines these, but we don't want them
2650 _DEFINES_CFLAGS="$_DEFINES_CFLAGS -Uunix -U__unix -U__unix__"
2651 _DEFINES_CXXFLAGS="$_DEFINES_CXXFLAGS -Uunix -U__unix -U__unix__"
2653 AC_CACHE_CHECK(for __declspec(dllexport),
2655 [AC_TRY_COMPILE([__declspec(dllexport) void ac_os2_declspec(void) {}],
2657 ac_os2_declspec="yes",
2658 ac_os2_declspec="no")])
2659 if test "$ac_os2_declspec" = "yes"; then
2661 MOZ_OS2_USE_DECLSPEC='1'
2666 if test "$GNU_CC"; then
2667 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$@ -o $@'
2668 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$@ -o $@'
2671 MOZ_DEBUG_FLAGS='-g'
2672 ASFLAGS='-I$(topsrcdir)/xpcom/reflect/xptcall/public -g'
2673 CFLAGS="$CFLAGS -ieee"
2674 CXXFLAGS="$CXXFLAGS "'-noexceptions -ieee -ptr $(DIST)/cxx_repository'
2675 DSO_LDOPTS='-shared -msym -expect_unresolved \* -update_registry $(DIST)/so_locations'
2678 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -soname $@ -o $@'
2679 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -soname $@ -o $@'
2680 MKSHLIB_FORCE_ALL='-all'
2681 MKSHLIB_UNFORCE_ALL='-none'
2682 dnl Might fix the libxpcom.so breakage on this platform as well....
2683 AC_DEFINE(NSCAP_DISABLE_TEST_DONTQUERY_CASES)
2684 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2686 if test -z "$GNU_CXX"; then
2689 AC_DEFINE(NEED_USLEEP_PROTOTYPE)
2693 DIRENT_INO=d_stat.st_ino
2694 dnl Solves the problems the QNX compiler has with nsCOMPtr.h.
2695 AC_DEFINE(NSCAP_DISABLE_TEST_DONTQUERY_CASES)
2696 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2697 dnl Explicit set STDC_HEADERS to workaround QNX 6.0's failing of std test
2698 AC_DEFINE(STDC_HEADERS)
2699 if test "$no_x" = "yes"; then
2700 _PLATFORM_DEFAULT_TOOLKIT='photon'
2701 TK_CFLAGS='-I/usr/nto/include/photon'
2702 TK_LIBS='-lphoton -lphrender'
2707 AC_DEFINE(NSCAP_DISABLE_TEST_DONTQUERY_CASES)
2708 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2709 CXXFLAGS="$CXXFLAGS -I/usr/include/CC"
2710 if test ! "$GNU_CC"; then
2717 TARGET_NSPR_MDCPUCFG='\"md/_solaris.cfg\"'
2720 # $ORIGIN/.. is for shared libraries under components/ to locate shared
2721 # libraries one level up (e.g. libnspr4.so)
2722 if test "$SOLARIS_SUNPRO_CC"; then
2723 LDFLAGS="$LDFLAGS -z ignore -R '\$\$ORIGIN:\$\$ORIGIN/..' -z lazyload -z combreloc -z muldefs"
2724 LIBS="-lCrun -lCstd -lc $LIBS"
2726 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2727 CFLAGS="$CFLAGS -xlibmieee -xstrconst -xbuiltin=%all -D__FUNCTION__=__func__"
2728 CXXFLAGS="$CXXFLAGS -xlibmieee -xbuiltin=%all -features=tmplife,tmplrefstatic,extensions -norunpath -D__FUNCTION__=__func__ -template=no%extdef"
2729 _MOZ_EXCEPTIONS_FLAGS_ON='-features=except'
2730 _MOZ_EXCEPTIONS_FLAGS_OFF='-features=no%except'
2731 LDFLAGS="-xildoff $LDFLAGS"
2732 if test -z "$CROSS_COMPILE" -a -f /usr/lib/ld/map.noexstk; then
2733 _SAVE_LDFLAGS=$LDFLAGS
2734 LDFLAGS="-M /usr/lib/ld/map.noexstk $LDFLAGS"
2735 AC_TRY_LINK([#include <stdio.h>],
2736 [printf("Hello World\n");],
2738 [LDFLAGS=$_SAVE_LDFLAGS])
2740 WARNINGS_AS_ERRORS='-Werror'
2741 MOZ_OPTIMIZE_FLAGS="-xO4"
2742 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_FLAGS) $(DSO_LDOPTS) -h $@ -o $@'
2743 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_FLAGS) $(DSO_LDOPTS) -h $@ -o $@'
2744 MKSHLIB_FORCE_ALL='-z allextract'
2745 MKSHLIB_UNFORCE_ALL='-z defaultextract'
2752 AS='/usr/ccs/bin/as'
2753 ASFLAGS="$ASFLAGS -K PIC -L -P -D_ASM -D__STDC__=0"
2755 TARGET_COMPILER_ABI="sunc"
2756 CC_VERSION=`$CC -V 2>&1 | grep '^cc:' 2>/dev/null | $AWK -F\: '{ print $2 }'`
2757 CXX_VERSION=`$CXX -V 2>&1 | grep '^CC:' 2>/dev/null | $AWK -F\: '{ print $2 }'`
2758 AC_MSG_CHECKING([for Sun C++ compiler version >= 5.9])
2762 [#if (__SUNPRO_CC < 0x590)
2765 _BAD_COMPILER=,_BAD_COMPILER=1)
2766 if test -n "$_BAD_COMPILER"; then
2768 AC_MSG_ERROR([Sun C++ 5.9 (Sun Studio 12) or higher is required to build. Your compiler version is $CXX_VERSION .])
2773 [#if (__SUNPRO_CC >= 0x5100)
2774 #error "Sun C++ 5.10 or above"
2776 _ABOVE_SS12U1=,_ABOVE_SS12U1=1)
2777 if test "$_ABOVE_SS12U1"; then
2779 CXXFLAGS="$CXXFLAGS -xannotate=no"
2781 AC_MSG_RESULT([$_res])
2784 LDFLAGS="$LDFLAGS -Wl,-z,ignore -Wl,-R,'\$\$ORIGIN:\$\$ORIGIN/..' -Wl,-z,lazyload -Wl,-z,combreloc -Wl,-z,muldefs"
2786 MKSHLIB_FORCE_ALL='-Wl,-z -Wl,allextract'
2787 MKSHLIB_UNFORCE_ALL='-Wl,-z -Wl,defaultextract'
2788 ASFLAGS="$ASFLAGS -fPIC"
2789 DSO_LDOPTS='-shared'
2791 _WARNINGS_CXXFLAGS=''
2792 if test "$OS_RELEASE" = "5.3"; then
2793 AC_DEFINE(MUST_UNDEF_HAVE_BOOLEAN_AFTER_INCLUDES)
2796 if test "$OS_RELEASE" = "5.5.1"; then
2797 AC_DEFINE(NEED_USLEEP_PROTOTYPE)
2802 DSO_LDOPTS='-Bdynamic'
2803 MKSHLIB='-$(LD) $(DSO_LDOPTS) -o $@'
2804 MKCSHLIB='-$(LD) $(DSO_LDOPTS) -o $@'
2806 AC_DEFINE(SPRINTF_RETURNS_STRING)
2807 case "$(target_os)" in
2809 DLL_SUFFIX='.so.1.0'
2815 NSPR_LIBS="-lnspr$NSPR_VERSION -lplc$NSPR_VERSION -lplds$NSPR_VERSION -L/usr/ccs/lib -lcrt"
2819 HOST_NSPR_MDCPUCFG='\"md/_os2.cfg\"'
2823 AC_DEFINE(NO_PW_GECOS)
2825 _PLATFORM_DEFAULT_TOOLKIT=cairo-android
2826 TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
2828 MOZ_GFX_OPTIMIZE_MOBILE=1
2829 MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks -fno-reorder-functions -fomit-frame-pointer"
2834 dnl Only one oddball right now (QNX), but this gives us flexibility
2835 dnl if any other platforms need to override this in the future.
2836 AC_DEFINE_UNQUOTED(D_INO,$DIRENT_INO)
2838 dnl ========================================================
2839 dnl Any platform that doesn't have MKSHLIB_FORCE_ALL defined
2840 dnl by now will not have any way to link most binaries (tests
2841 dnl as well as viewer, apprunner, etc.), because some symbols
2842 dnl will be left out of the "composite" .so's by ld as unneeded.
2843 dnl So, by defining NO_LD_ARCHIVE_FLAGS for these platforms,
2844 dnl they can link in the static libs that provide the missing
2846 dnl ========================================================
2847 NO_LD_ARCHIVE_FLAGS=
2848 if test -z "$MKSHLIB_FORCE_ALL" -o -z "$MKSHLIB_UNFORCE_ALL"; then
2849 NO_LD_ARCHIVE_FLAGS=1
2853 NO_LD_ARCHIVE_FLAGS=
2856 NO_LD_ARCHIVE_FLAGS=
2859 NO_LD_ARCHIVE_FLAGS=
2861 *-msvc*|*-mks*|*-mingw*|*-cygwin*|*-wince|*-winmo)
2862 if test -z "$GNU_CC"; then
2863 NO_LD_ARCHIVE_FLAGS=
2867 AC_SUBST(NO_LD_ARCHIVE_FLAGS)
2869 dnl ========================================================
2870 dnl = Flags to strip unused symbols from .so components
2871 dnl ========================================================
2873 *-linux*|*-kfreebsd*-gnu|*-gnu*)
2874 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
2877 if test -z "$GNU_CC"; then
2878 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-M $(BUILD_TOOLS)/gnu-ld-scripts/components-mapfile'
2880 if test -z "$GCC_USE_GNU_LD"; then
2881 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,-M -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-mapfile'
2883 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
2888 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
2891 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,-exported_symbols_list -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-export-list'
2893 *-cygwin*|*-mingw*|*-mks*|*-msvc|*-wince|*-winmo)
2894 if test -n "$GNU_CC"; then
2895 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
2900 if test -z "$COMPILE_ENVIRONMENT"; then
2901 SKIP_COMPILER_CHECKS=1
2902 SKIP_LIBRARY_CHECKS=1
2905 if test -z "$SKIP_COMPILER_CHECKS"; then
2906 dnl Checks for typedefs, structures, and compiler characteristics.
2907 dnl ========================================================
2915 AC_MSG_CHECKING(for __stdcall)
2916 AC_CACHE_VAL(ac_cv___stdcall,
2917 [AC_TRY_COMPILE([template <typename Method> struct foo;
2918 template <> struct foo<void (*)()> {};
2919 template <> struct foo<void (__stdcall*)()> {};],
2921 [ac_cv___stdcall=true],
2922 [ac_cv___stdcall=false])])
2923 if test "$ac_cv___stdcall" = true ; then
2924 AC_DEFINE(HAVE_STDCALL)
2930 AC_MSG_CHECKING(for ssize_t)
2931 AC_CACHE_VAL(ac_cv_type_ssize_t,
2932 [AC_TRY_COMPILE([#include <stdio.h>
2933 #include <sys/types.h>],
2935 [ac_cv_type_ssize_t=true],
2936 [ac_cv_type_ssize_t=false])])
2937 if test "$ac_cv_type_ssize_t" = true ; then
2938 AC_DEFINE(HAVE_SSIZE_T)
2943 AC_STRUCT_ST_BLKSIZE
2944 AC_MSG_CHECKING(for siginfo_t)
2945 AC_CACHE_VAL(ac_cv_siginfo_t,
2946 [AC_TRY_COMPILE([#define _POSIX_C_SOURCE 199506L
2947 #include <signal.h>],
2949 [ac_cv_siginfo_t=true],
2950 [ac_cv_siginfo_t=false])])
2951 if test "$ac_cv_siginfo_t" = true ; then
2952 AC_DEFINE(HAVE_SIGINFO_T)
2958 dnl Check for int16_t, int32_t, int64_t, int64, uint, uint_t, and uint16_t.
2959 dnl ========================================================
2960 AC_MSG_CHECKING(for int16_t)
2961 AC_CACHE_VAL(ac_cv_int16_t,
2962 [AC_TRY_COMPILE([#include <stdio.h>
2963 #include <sys/types.h>],
2965 [ac_cv_int16_t=true],
2966 [ac_cv_int16_t=false])])
2967 if test "$ac_cv_int16_t" = true ; then
2968 AC_DEFINE(HAVE_INT16_T)
2973 AC_MSG_CHECKING(for int32_t)
2974 AC_CACHE_VAL(ac_cv_int32_t,
2975 [AC_TRY_COMPILE([#include <stdio.h>
2976 #include <sys/types.h>],
2978 [ac_cv_int32_t=true],
2979 [ac_cv_int32_t=false])])
2980 if test "$ac_cv_int32_t" = true ; then
2981 AC_DEFINE(HAVE_INT32_T)
2986 AC_MSG_CHECKING(for int64_t)
2987 AC_CACHE_VAL(ac_cv_int64_t,
2988 [AC_TRY_COMPILE([#include <stdio.h>
2989 #include <sys/types.h>],
2991 [ac_cv_int64_t=true],
2992 [ac_cv_int64_t=false])])
2993 if test "$ac_cv_int64_t" = true ; then
2994 AC_DEFINE(HAVE_INT64_T)
2999 AC_MSG_CHECKING(for int64)
3000 AC_CACHE_VAL(ac_cv_int64,
3001 [AC_TRY_COMPILE([#include <stdio.h>
3002 #include <sys/types.h>],
3005 [ac_cv_int64=false])])
3006 if test "$ac_cv_int64" = true ; then
3007 AC_DEFINE(HAVE_INT64)
3012 AC_MSG_CHECKING(for uint)
3013 AC_CACHE_VAL(ac_cv_uint,
3014 [AC_TRY_COMPILE([#include <stdio.h>
3015 #include <sys/types.h>],
3018 [ac_cv_uint=false])])
3019 if test "$ac_cv_uint" = true ; then
3020 AC_DEFINE(HAVE_UINT)
3025 AC_MSG_CHECKING(for uint_t)
3026 AC_CACHE_VAL(ac_cv_uint_t,
3027 [AC_TRY_COMPILE([#include <stdio.h>
3028 #include <sys/types.h>],
3030 [ac_cv_uint_t=true],
3031 [ac_cv_uint_t=false])])
3032 if test "$ac_cv_uint_t" = true ; then
3033 AC_DEFINE(HAVE_UINT_T)
3038 AC_MSG_CHECKING(for uint16_t)
3039 AC_CACHE_VAL(ac_cv_uint16_t,
3040 [AC_TRY_COMPILE([#include <stdio.h>
3041 #include <sys/types.h>],
3042 [uint16_t foo = 0;],
3043 [ac_cv_uint16_t=true],
3044 [ac_cv_uint16_t=false])])
3045 if test "$ac_cv_uint16_t" = true ; then
3046 AC_DEFINE(HAVE_UINT16_T)
3052 dnl On the gcc trunk (as of 2001-02-09) _GNU_SOURCE, and thus __USE_GNU,
3053 dnl are defined when compiling C++ but not C. Since the result of this
3054 dnl test is used only in C++, do it in C++.
3057 AC_MSG_CHECKING(for uname.domainname)
3058 AC_CACHE_VAL(ac_cv_have_uname_domainname_field,
3059 [AC_TRY_COMPILE([#include <sys/utsname.h>],
3060 [ struct utsname *res; char *domain;
3061 (void)uname(res); if (res != 0) { domain = res->domainname; } ],
3062 [ac_cv_have_uname_domainname_field=true],
3063 [ac_cv_have_uname_domainname_field=false])])
3065 if test "$ac_cv_have_uname_domainname_field" = "true"; then
3066 AC_DEFINE(HAVE_UNAME_DOMAINNAME_FIELD)
3072 AC_MSG_CHECKING(for uname.__domainname)
3073 AC_CACHE_VAL(ac_cv_have_uname_us_domainname_field,
3074 [AC_TRY_COMPILE([#include <sys/utsname.h>],
3075 [ struct utsname *res; char *domain;
3076 (void)uname(res); if (res != 0) { domain = res->__domainname; } ],
3077 [ac_cv_have_uname_us_domainname_field=true],
3078 [ac_cv_have_uname_us_domainname_field=false])])
3080 if test "$ac_cv_have_uname_us_domainname_field" = "true"; then
3081 AC_DEFINE(HAVE_UNAME_US_DOMAINNAME_FIELD)
3089 dnl Check for usable char16_t (2 bytes, unsigned)
3090 dnl (we might not need the unsignedness check anymore)
3091 AC_CACHE_CHECK(for usable char16_t (2 bytes, unsigned),
3092 ac_cv_have_usable_char16_t,
3093 [AC_TRY_COMPILE([$configure_static_assert_macros],
3094 [CONFIGURE_STATIC_ASSERT(sizeof(char16_t) == 2);
3095 CONFIGURE_STATIC_ASSERT(char16_t(-1) > char16_t(0));
3096 CONFIGURE_STATIC_ASSERT(sizeof((u"hello")[0]) == 2);
3097 CONFIGURE_STATIC_ASSERT(sizeof(u'a') == 2);
3098 CONFIGURE_STATIC_ASSERT(u'\xFFFF' > u'\x0')],
3099 ac_cv_have_usable_char16_t="yes",
3100 ac_cv_have_usable_char16_t="no")])
3101 if test "$ac_cv_have_usable_char16_t" = "yes"; then
3102 AC_DEFINE(HAVE_CPP_CHAR16_T)
3106 dnl Check for usable wchar_t (2 bytes, unsigned)
3107 dnl (we really don't need the unsignedness check anymore)
3108 dnl ========================================================
3110 AC_CACHE_CHECK(for usable wchar_t (2 bytes, unsigned),
3111 ac_cv_have_usable_wchar_v2,
3112 [AC_TRY_COMPILE([#include <stddef.h>
3113 $configure_static_assert_macros],
3114 [CONFIGURE_STATIC_ASSERT(sizeof(wchar_t) == 2);
3115 CONFIGURE_STATIC_ASSERT((wchar_t)-1 > (wchar_t) 0)],
3116 ac_cv_have_usable_wchar_v2="yes",
3117 ac_cv_have_usable_wchar_v2="no")])
3118 if test "$ac_cv_have_usable_wchar_v2" = "yes"; then
3119 AC_DEFINE(HAVE_CPP_2BYTE_WCHAR_T)
3120 HAVE_CPP_2BYTE_WCHAR_T=1
3121 elif test "$ac_cv_have_usable_char16_t" != "yes"; then
3122 dnl This is really gcc-only
3123 dnl Do this test using CXX only since some versions of gcc
3124 dnl 2.95-2.97 have a signed wchar_t in c++ only and some versions
3125 dnl only have short-wchar support for c++.
3126 dnl Note that we assume that mac & win32 have short wchar (see nscore.h)
3128 _SAVE_CXXFLAGS=$CXXFLAGS
3129 CXXFLAGS="$CXXFLAGS -fshort-wchar"
3131 AC_CACHE_CHECK(for compiler -fshort-wchar option,
3132 ac_cv_have_usable_wchar_option_v2,
3133 [AC_TRY_LINK([#include <stddef.h>
3134 $configure_static_assert_macros],
3135 [CONFIGURE_STATIC_ASSERT(sizeof(wchar_t) == 2);
3136 CONFIGURE_STATIC_ASSERT((wchar_t)-1 > (wchar_t) 0)],
3137 ac_cv_have_usable_wchar_option_v2="yes",
3138 ac_cv_have_usable_wchar_option_v2="no")])
3140 if test "$ac_cv_have_usable_wchar_option_v2" = "yes"; then
3141 AC_DEFINE(HAVE_CPP_2BYTE_WCHAR_T)
3142 HAVE_CPP_2BYTE_WCHAR_T=1
3143 WCHAR_CFLAGS="-fshort-wchar"
3145 CXXFLAGS=$_SAVE_CXXFLAGS
3151 dnl Check for .hidden assembler directive and visibility attribute.
3152 dnl Borrowed from glibc configure.in
3153 dnl ===============================================================
3154 if test "$GNU_CC"; then
3155 AC_CACHE_CHECK(for visibility(hidden) attribute,
3156 ac_cv_visibility_hidden,
3157 [cat > conftest.c <<EOF
3158 int foo __attribute__ ((visibility ("hidden"))) = 1;
3160 ac_cv_visibility_hidden=no
3161 if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
3162 if egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
3163 ac_cv_visibility_hidden=yes
3168 if test "$ac_cv_visibility_hidden" = "yes"; then
3169 AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
3171 AC_CACHE_CHECK(for visibility(default) attribute,
3172 ac_cv_visibility_default,
3173 [cat > conftest.c <<EOF
3174 int foo __attribute__ ((visibility ("default"))) = 1;
3176 ac_cv_visibility_default=no
3177 if ${CC-cc} -fvisibility=hidden -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
3178 if ! egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
3179 ac_cv_visibility_default=yes
3184 if test "$ac_cv_visibility_default" = "yes"; then
3185 AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
3187 AC_CACHE_CHECK(for visibility pragma support,
3188 ac_cv_visibility_pragma,
3189 [cat > conftest.c <<EOF
3190 #pragma GCC visibility push(hidden)
3192 #pragma GCC visibility push(default)
3193 int foo_default = 1;
3195 ac_cv_visibility_pragma=no
3196 if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
3197 if egrep '\.(hidden|private_extern).*foo_hidden' conftest.s >/dev/null; then
3198 if ! egrep '\.(hidden|private_extern).*foo_default' conftest.s > /dev/null; then
3199 ac_cv_visibility_pragma=yes
3205 if test "$ac_cv_visibility_pragma" = "yes"; then
3206 AC_CACHE_CHECK(For gcc visibility bug with class-level attributes (GCC bug 26905),
3207 ac_cv_have_visibility_class_bug,
3208 [cat > conftest.c <<EOF
3209 #pragma GCC visibility push(hidden)
3210 struct __attribute__ ((visibility ("default"))) TestStruct {
3213 __attribute__ ((visibility ("default"))) void TestFunc() {
3217 ac_cv_have_visibility_class_bug=no
3218 if ! ${CXX-g++} ${CXXFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
3219 ac_cv_have_visibility_class_bug=yes
3221 if test `egrep -c '@PLT|\\$stub' conftest.S` = 0; then
3222 ac_cv_have_visibility_class_bug=yes
3225 rm -rf conftest.{c,S}
3228 AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297),
3229 ac_cv_have_visibility_builtin_bug,
3230 [cat > conftest.c <<EOF
3231 #pragma GCC visibility push(hidden)
3232 #pragma GCC visibility push(default)
3234 #pragma GCC visibility pop
3236 __attribute__ ((visibility ("default"))) void Func() {
3238 memset(c, 0, sizeof(c));
3241 ac_cv_have_visibility_builtin_bug=no
3242 if ! ${CC-cc} ${CFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
3243 ac_cv_have_visibility_builtin_bug=yes
3245 if test `grep -c "@PLT" conftest.S` = 0; then
3246 ac_cv_visibility_builtin_bug=yes
3249 rm -f conftest.{c,S}
3251 if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
3252 "$ac_cv_have_visibility_class_bug" = "no"; then
3253 VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
3254 WRAP_SYSTEM_INCLUDES=1
3255 STL_FLAGS='-I$(DIST)/stl_wrappers'
3258 VISIBILITY_FLAGS='-fvisibility=hidden'
3259 fi # have visibility pragma bug
3260 fi # have visibility pragma
3261 fi # have visibility(default) attribute
3262 fi # have visibility(hidden) attribute
3265 # visibility hidden flag for Sun Studio on Solaris
3266 if test "$SOLARIS_SUNPRO_CC"; then
3267 VISIBILITY_FLAGS='-xldscope=hidden'
3268 fi # Sun Studio on Solaris
3270 AC_SUBST(WRAP_SYSTEM_INCLUDES)
3271 AC_SUBST(VISIBILITY_FLAGS)
3273 dnl Check for __force_align_arg_pointer__ for SSE2 on gcc
3274 dnl ========================================================
3275 if test "$GNU_CC"; then
3276 CFLAGS_save="${CFLAGS}"
3277 CFLAGS="${CFLAGS} -Werror"
3278 AC_CACHE_CHECK(for __force_align_arg_pointer__ attribute,
3279 ac_cv_force_align_arg_pointer,
3280 [AC_TRY_COMPILE([__attribute__ ((__force_align_arg_pointer__)) void test() {}],
3282 ac_cv_force_align_arg_pointer="yes",
3283 ac_cv_force_align_arg_pointer="no")])
3284 CFLAGS="${CFLAGS_save}"
3285 if test "$ac_cv_force_align_arg_pointer" = "yes"; then
3286 HAVE_GCC_ALIGN_ARG_POINTER=1
3288 HAVE_GCC_ALIGN_ARG_POINTER=
3291 AC_SUBST(HAVE_GCC_ALIGN_ARG_POINTER)
3293 dnl Checks for header files.
3294 dnl ========================================================
3296 case "$target_os" in
3298 # for stuff like -lXshm
3299 CPPFLAGS="${CPPFLAGS} ${X_CFLAGS}"
3302 AC_CHECK_HEADERS(sys/byteorder.h compat.h getopt.h)
3303 AC_CHECK_HEADERS(sys/bitypes.h memory.h unistd.h)
3304 AC_CHECK_HEADERS(gnu/libc-version.h nl_types.h)
3305 AC_CHECK_HEADERS(malloc.h)
3306 AC_CHECK_HEADERS(X11/XKBlib.h)
3307 AC_CHECK_HEADERS(io.h)
3309 dnl These are all the places some variant of statfs can be hiding.
3310 AC_CHECK_HEADERS(sys/statvfs.h sys/statfs.h sys/vfs.h sys/mount.h)
3313 AC_CHECK_HEADERS(sys/quota.h)
3314 AC_CHECK_HEADERS(linux/quota.h)
3316 dnl Try for MMX support
3317 dnl NB - later gcc versions require -mmmx for this header to be successfully
3318 dnl included (or another option which implies it, such as -march=pentium-mmx)
3319 AC_CHECK_HEADERS(mmintrin.h)
3321 dnl Check whether the compiler supports the new-style C++ standard
3322 dnl library headers (i.e. <new>) or needs the old "new.h"
3325 AC_CHECK_HEADER(new, [NEW_H=new])
3326 AC_DEFINE_UNQUOTED(NEW_H, <$NEW_H>)
3329 AC_ARG_ENABLE(dtrace,
3330 [ --enable-dtrace build with dtrace support if available (default=no)],
3331 [enable_dtrace="yes"],)
3332 if test "x$enable_dtrace" = "xyes"; then
3333 AC_CHECK_HEADER(sys/sdt.h, HAVE_DTRACE=1)
3334 if test -n "$HAVE_DTRACE"; then
3335 AC_DEFINE(INCLUDE_MOZILLA_DTRACE)
3337 AC_MSG_ERROR([dtrace enabled but sys/sdt.h not found]);
3340 AC_SUBST(HAVE_DTRACE)
3346 AC_CHECK_HEADERS(sys/cdefs.h)
3350 dnl Checks for libraries.
3351 dnl ========================================================
3356 AC_CHECK_LIB(c_r, gethostbyname_r)
3360 dnl We don't want to link with libdl even if it's present on OS X, since
3361 dnl it's not used and not part of the default installation.
3362 dnl The same goes for BeOS. OS/2 has dlfcn in libc.
3363 dnl We don't want to link against libm or libpthread on Darwin since
3364 dnl they both are just symlinks to libSystem and explicitly linking
3365 dnl against libSystem causes issues when debugging (see bug 299601).
3374 AC_CHECK_LIB(m, atan)
3375 AC_CHECK_LIB(dl, dlopen,
3376 AC_CHECK_HEADER(dlfcn.h,
3378 AC_DEFINE(HAVE_LIBDL)))
3382 _SAVE_CFLAGS="$CFLAGS"
3383 CFLAGS="$CFLAGS -D_GNU_SOURCE"
3384 AC_CHECK_FUNCS(dladdr)
3385 CFLAGS="$_SAVE_CFLAGS"
3387 if test ! "$GNU_CXX"; then
3391 AC_CHECK_LIB(C_r, demangle)
3394 AC_CHECK_LIB(C, demangle)
3399 dnl OS/2 has socket in libc.
3404 AC_CHECK_LIB(socket, socket)
3407 dnl ========================================================
3408 dnl Check whether we can compile code for Core Text
3409 dnl (available on Mac OS X 10.5 or later)
3410 dnl ========================================================
3413 AC_MSG_CHECKING([for Core Text])
3414 AC_TRY_COMPILE([#include <ApplicationServices/ApplicationServices.h>],
3415 [CTLineRef lineRef;],
3416 ac_cv_have_core_text="yes",
3417 ac_cv_have_core_text="no")
3418 AC_MSG_RESULT([$ac_cv_have_core_text])
3420 if test "$ac_cv_have_core_text" = "no"; then
3421 AC_MSG_ERROR([Core Text is required (available on Mac OS X 10.5 or later).])
3427 XLIBS="$X_EXTRA_LIBS"
3429 dnl ========================================================
3430 dnl Checks for X libraries.
3431 dnl Ordering is important.
3432 dnl Xt is dependent upon SM as of X11R6
3433 dnl ========================================================
3434 if test "$no_x" = "yes"; then
3437 AC_DEFINE_UNQUOTED(FUNCPROTO,15)
3438 XLIBS="-lX11 $XLIBS"
3439 _SAVE_LDFLAGS="$LDFLAGS"
3440 LDFLAGS="$XLDFLAGS $LDFLAGS"
3441 AC_CHECK_LIB(X11, XDrawLines, [X11_LIBS="-lX11"],
3442 [MISSING_X="$MISSING_X -lX11"], $XLIBS)
3443 AC_CHECK_LIB(Xext, XextAddDisplay, [XEXT_LIBS="-lXext"],
3444 [MISSING_X="$MISSING_X -lXext"], $XLIBS)
3446 AC_CHECK_LIB(Xt, XtFree, [ XT_LIBS="-lXt"], [
3447 unset ac_cv_lib_Xt_XtFree
3448 AC_CHECK_LIB(ICE, IceFlush, [XT_LIBS="-lICE $XT_LIBS"],, $XT_LIBS $XLIBS)
3449 AC_CHECK_LIB(SM, SmcCloseConnection, [XT_LIBS="-lSM $XT_LIBS"],, $XT_LIBS $XLIBS)
3450 AC_CHECK_LIB(Xt, XtFree, [ XT_LIBS="-lXt $XT_LIBS"],
3451 [MISSING_X="$MISSING_X -lXt"], $X_PRE_LIBS $XT_LIBS $XLIBS)
3454 # AIX needs the motif library linked before libXt to prevent
3455 # crashes in plugins linked against Motif - Bug #98892
3456 case "${target_os}" in
3458 XT_LIBS="-lXm $XT_LIBS"
3462 dnl ========================================================
3463 dnl = Check for XShm
3464 dnl ========================================================
3465 AC_CHECK_LIB(Xext, XShmCreateImage, _HAVE_XSHM_XEXT=1,,
3467 AC_CHECK_HEADER(X11/extensions/XShm.h)
3468 if test "$ac_cv_header_X11_extensions_XShm_h" = "yes" &&
3469 test -n "$_HAVE_XSHM_XEXT"; then
3470 AC_DEFINE(HAVE_XSHM)
3473 dnl ========================================================
3475 dnl ========================================================
3476 AC_CHECK_HEADER(X11/extensions/scrnsaver.h,
3477 AC_CHECK_LIB(Xss, XScreenSaverQueryInfo,
3478 [XSS_LIBS="-lXss $XEXT_LIBS $XLIBS"
3479 AC_DEFINE(HAVE_LIBXSS)],, $XEXT_LIBS $XLIBS))
3481 dnl ========================================================
3483 dnl ========================================================
3484 AC_CHECK_LIB(XIE, XieFloGeometry, [MOZ_XIE_LIBS="-lXIE"],,
3486 AC_CHECK_HEADER(X11/extensions/XIElib.h)
3488 if test "$MOZ_XIE_LIBS"; then
3489 dnl ====================================================
3490 dnl = If XIE is present and is desired, turn it on
3491 dnl ====================================================
3501 LDFLAGS="$_SAVE_LDFLAGS"
3503 dnl ========================================================
3504 dnl = Check for freetype2 and its functionality
3505 dnl ========================================================
3506 AC_CHECK_FT2(6.1.0, [_HAVE_FREETYPE2=1], [_HAVE_FREETYPE2=])
3508 if test "$_HAVE_FREETYPE2"; then
3510 _SAVE_CFLAGS="$CFLAGS"
3511 LIBS="$LIBS $FT2_LIBS"
3512 CFLAGS="$CFLAGS $FT2_CFLAGS"
3514 AC_CACHE_CHECK(for FT_Bitmap_Size.y_ppem,
3515 ac_cv_member_FT_Bitmap_Size_y_ppem,
3516 [AC_TRY_COMPILE([#include <ft2build.h>
3517 #include FT_FREETYPE_H],
3519 if (sizeof s.y_ppem) return 0;
3521 ac_cv_member_FT_Bitmap_Size_y_ppem=yes,
3522 ac_cv_member_FT_Bitmap_Size_y_ppem=no)])
3523 if test "$ac_cv_member_FT_Bitmap_Size_y_ppem" = yes; then
3524 HAVE_FT_BITMAP_SIZE_Y_PPEM=1
3526 HAVE_FT_BITMAP_SIZE_Y_PPEM=0
3528 AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,
3529 $HAVE_FT_BITMAP_SIZE_Y_PPEM,
3530 [FT_Bitmap_Size structure includes y_ppem field])
3532 AC_CHECK_FUNCS(FT_GlyphSlot_Embolden FT_Load_Sfnt_Table FT_Select_Size)
3535 CFLAGS="$_SAVE_CFLAGS"
3547 AC_MSG_CHECKING(for ARM SIMD support in compiler)
3549 [asm("uqadd8 r1, r1, r2");],
3550 result="yes", result="no")
3551 AC_MSG_RESULT("$result")
3552 if test "$result" = "yes"; then
3553 AC_DEFINE(HAVE_ARM_SIMD)
3556 AC_SUBST(HAVE_ARM_SIMD)
3558 AC_MSG_CHECKING(for ARM NEON support in compiler)
3559 _SAVE_CFLAGS="$CFLAGS"
3560 if test "$GNU_CC"; then
3561 # gcc needs -mfpu=neon to recognize NEON instructions
3562 CFLAGS="$CFLAGS -mfpu=neon -mfloat-abi=softfp"
3565 [asm("vadd.i8 d0, d0, d0");],
3566 result="yes", result="no")
3567 AC_MSG_RESULT("$result")
3568 if test "$result" = "yes"; then
3569 AC_DEFINE(HAVE_ARM_NEON)
3572 CFLAGS="$_SAVE_CFLAGS"
3573 AC_SUBST(HAVE_ARM_NEON)
3575 dnl ========================================================
3576 dnl = pthread support
3577 dnl = Start by checking whether the system support pthreads
3578 dnl ========================================================
3579 case "$target_os" in
3584 MOZ_CHECK_PTHREADS(pthreads,
3585 USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthreads",
3586 MOZ_CHECK_PTHREADS(pthread,
3587 USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthread",
3588 MOZ_CHECK_PTHREADS(c_r,
3589 USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lc_r",
3590 MOZ_CHECK_PTHREADS(c,
3599 dnl ========================================================
3600 dnl Check the command line for --with-pthreads
3601 dnl ========================================================
3602 MOZ_ARG_WITH_BOOL(pthreads,
3603 [ --with-pthreads Force use of system pthread library with NSPR ],
3604 [ if test "$USE_PTHREADS"x = x; then
3605 AC_MSG_ERROR([ --with-pthreads specified for a system without pthread support ]);
3611 dnl ========================================================
3612 dnl Do the platform specific pthread hackery
3613 dnl ========================================================
3614 if test "$USE_PTHREADS"x != x
3617 dnl See if -pthread is supported.
3620 ac_cv_have_dash_pthread=no
3621 AC_MSG_CHECKING(whether ${CC-cc} accepts -pthread)
3622 echo 'int main() { return 0; }' | cat > conftest.c
3623 ${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1
3624 if test $? -eq 0; then
3625 if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthread`" -a -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
3626 ac_cv_have_dash_pthread=yes
3627 case "$target_os" in
3629 # Freebsd doesn't use -pthread for compiles, it uses them for linking
3632 CFLAGS="$CFLAGS -pthread"
3633 CXXFLAGS="$CXXFLAGS -pthread"
3639 AC_MSG_RESULT($ac_cv_have_dash_pthread)
3642 dnl See if -pthreads is supported.
3644 ac_cv_have_dash_pthreads=no
3645 if test "$ac_cv_have_dash_pthread" = "no"; then
3646 AC_MSG_CHECKING(whether ${CC-cc} accepts -pthreads)
3647 echo 'int main() { return 0; }' | cat > conftest.c
3648 ${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1
3649 if test $? -eq 0; then
3650 if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthreads`" -a -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
3651 ac_cv_have_dash_pthreads=yes
3652 CFLAGS="$CFLAGS -pthreads"
3653 CXXFLAGS="$CXXFLAGS -pthreads"
3657 AC_MSG_RESULT($ac_cv_have_dash_pthreads)
3662 AC_DEFINE(_REENTRANT)
3663 AC_DEFINE(_THREAD_SAFE)
3664 dnl -pthread links in -lc_r, so don't specify it explicitly.
3665 if test "$ac_cv_have_dash_pthread" = "yes"; then
3666 _PTHREAD_LDFLAGS="-pthread"
3668 _PTHREAD_LDFLAGS="-lc_r"
3672 *-*-openbsd*|*-*-bsdi*)
3673 AC_DEFINE(_REENTRANT)
3674 AC_DEFINE(_THREAD_SAFE)
3675 dnl -pthread links in -lc_r, so don't specify it explicitly.
3676 if test "$ac_cv_have_dash_pthread" = "yes"; then
3677 _PTHREAD_LDFLAGS="-pthread"
3681 *-*-linux*|*-*-kfreebsd*-gnu|*-*-gnu*)
3682 AC_DEFINE(_REENTRANT)
3686 AC_DEFINE(_REENTRANT)
3690 AC_DEFINE(_REENTRANT)
3694 AC_DEFINE(_REENTRANT)
3698 AC_DEFINE(_REENTRANT)
3702 AC_DEFINE(_REENTRANT)
3703 if test "$SOLARIS_SUNPRO_CC"; then
3704 CFLAGS="$CFLAGS -mt"
3705 CXXFLAGS="$CXXFLAGS -mt"
3709 LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}"
3712 dnl ========================================================
3713 dnl See if mmap sees writes
3714 dnl For cross compiling, just define it as no, which is a safe default
3715 dnl ========================================================
3716 AC_MSG_CHECKING(whether mmap() sees write()s)
3722 #include <sys/mman.h>
3723 #include <sys/types.h>
3724 #include <sys/stat.h>
3727 char fname[] = "conftest.file";
3728 char zbuff[1024]; /* Fractional page is probably worst case */
3735 fd = open(fname, O_RDWR | O_CREAT, 0660);
3738 write(fd, zbuff, sizeof(zbuff));
3739 lseek(fd, 0, SEEK_SET);
3740 map = (char*)mmap(0, sizeof(zbuff), PROT_READ, MAP_SHARED, fd, 0);
3741 if(map==(char*)-1) return 2;
3742 for(i=0; fname[i]; i++) {
3743 int rc = write(fd, &fname[i], 1);
3744 if(map[i]!=fname[i]) return 4;
3751 AC_TRY_RUN($mmap_test_prog , result="yes", result="no", result="yes")
3753 AC_MSG_RESULT("$result")
3755 if test "$result" = "no"; then
3756 AC_DEFINE(MMAP_MISSES_WRITES)
3760 dnl Checks for library functions.
3761 dnl ========================================================
3762 AC_PROG_GCC_TRADITIONAL
3764 AC_CHECK_FUNCS(random strerror lchown fchmod snprintf statvfs memmove rint stat64 lstat64 truncate64 statvfs64 setbuf isatty)
3765 AC_CHECK_FUNCS(flockfile getpagesize)
3766 AC_CHECK_FUNCS(localtime_r strtok_r)
3768 dnl check for clock_gettime(), the CLOCK_MONOTONIC clock, and -lrt
3769 _SAVE_LDFLAGS=$LDFLAGS
3770 LDFLAGS="$LDFLAGS -lrt"
3771 AC_CACHE_CHECK(for clock_gettime(CLOCK_MONOTONIC) and -lrt,
3772 ac_cv_have_clock_monotonic,
3773 [AC_TRY_LINK([#include <time.h>],
3774 [ struct timespec ts;
3775 clock_gettime(CLOCK_MONOTONIC, &ts); ],
3776 ac_cv_have_clock_monotonic=yes,
3777 ac_cv_have_clock_monotonic=no)])
3778 LDFLAGS=$_SAVE_LDFLAGS
3779 if test "$ac_cv_have_clock_monotonic" = "yes"; then
3780 HAVE_CLOCK_MONOTONIC=1
3782 AC_DEFINE(HAVE_CLOCK_MONOTONIC)
3783 AC_SUBST(HAVE_CLOCK_MONOTONIC)
3784 AC_SUBST(REALTIME_LIBS)
3787 dnl check for wcrtomb/mbrtowc
3788 dnl =======================================================================
3789 if test -z "$MACOS_DEPLOYMENT_TARGET" -o "$MACOS_DEPLOYMENT_TARGET" -ge "100300"; then
3792 AC_CACHE_CHECK(for wcrtomb,
3794 [AC_TRY_LINK([#include <wchar.h>],
3795 [mbstate_t ps={0};wcrtomb(0,'f',&ps);],
3796 ac_cv_have_wcrtomb="yes",
3797 ac_cv_have_wcrtomb="no")])
3798 if test "$ac_cv_have_wcrtomb" = "yes"; then
3799 AC_DEFINE(HAVE_WCRTOMB)
3801 AC_CACHE_CHECK(for mbrtowc,
3803 [AC_TRY_LINK([#include <wchar.h>],
3804 [mbstate_t ps={0};mbrtowc(0,0,0,&ps);],
3805 ac_cv_have_mbrtowc="yes",
3806 ac_cv_have_mbrtowc="no")])
3807 if test "$ac_cv_have_mbrtowc" = "yes"; then
3808 AC_DEFINE(HAVE_MBRTOWC)
3815 ac_cv_func_res_ninit,
3818 #define _BSD_SOURCE 1
3822 [int foo = res_ninit(&_res);],
3823 [ac_cv_func_res_ninit=yes],
3824 [ac_cv_func_res_ninit=no])
3827 if test "$ac_cv_func_res_ninit" = "yes"; then
3828 AC_DEFINE(HAVE_RES_NINIT)
3829 dnl must add the link line we do something as foolish as this... dougt
3831 dnl AC_CHECK_LIB(bind, res_ninit, AC_DEFINE(HAVE_RES_NINIT),
3832 dnl AC_CHECK_LIB(resolv, res_ninit, AC_DEFINE(HAVE_RES_NINIT)))
3837 [for gnu_get_libc_version()],
3838 ac_cv_func_gnu_get_libc_version,
3840 #ifdef HAVE_GNU_LIBC_VERSION_H
3841 #include <gnu/libc-version.h>
3844 [const char *glibc_version = gnu_get_libc_version();],
3845 [ac_cv_func_gnu_get_libc_version=yes],
3846 [ac_cv_func_gnu_get_libc_version=no]
3850 if test "$ac_cv_func_gnu_get_libc_version" = "yes"; then
3851 AC_DEFINE(HAVE_GNU_GET_LIBC_VERSION)
3855 os2*|msvc*|mks*|cygwin*|mingw*|darwin*|wince*|winmo*|beos*)
3859 AC_CHECK_LIB(c, iconv, [_ICONV_LIBS="$_ICONV_LIBS"],
3860 AC_CHECK_LIB(iconv, iconv, [_ICONV_LIBS="$_ICONV_LIBS -liconv"],
3861 AC_CHECK_LIB(iconv, libiconv, [_ICONV_LIBS="$_ICONV_LIBS -liconv"])))
3863 LIBS="$LIBS $_ICONV_LIBS"
3872 iconv_t h = iconv_open("", "");
3873 iconv(h, NULL, NULL, NULL, NULL);
3876 [ac_cv_func_iconv=yes],
3877 [ac_cv_func_iconv=no]
3880 if test "$ac_cv_func_iconv" = "yes"; then
3881 AC_DEFINE(HAVE_ICONV)
3882 DYNAMIC_XPCOM_LIBS="$DYNAMIC_XPCOM_LIBS $_ICONV_LIBS"
3883 LIBXUL_LIBS="$LIBXUL_LIBS $_ICONV_LIBS"
3884 LIBICONV="$_ICONV_LIBS"
3886 [for iconv() with const input],
3887 ac_cv_func_const_iconv,
3893 const char *input = "testing";
3894 iconv_t h = iconv_open("", "");
3895 iconv(h, &input, NULL, NULL, NULL);
3898 [ac_cv_func_const_iconv=yes],
3899 [ac_cv_func_const_iconv=no]
3902 if test "$ac_cv_func_const_iconv" = "yes"; then
3903 AC_DEFINE(HAVE_ICONV_WITH_CONST_INPUT)
3915 dnl **********************
3916 dnl *** va_copy checks ***
3917 dnl **********************
3918 dnl we currently check for all three va_copy possibilities, so we get
3919 dnl all results in config.log for bug reports.
3920 AC_MSG_CHECKING(for an implementation of va_copy())
3921 AC_CACHE_VAL(ac_cv_va_copy,[
3924 void f (int i, ...) {
3925 va_list args1, args2;
3926 va_start (args1, i);
3927 va_copy (args2, args1);
3928 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
3930 va_end (args1); va_end (args2);
3932 int main() { f (0, 42); return 0; }],
3938 AC_MSG_RESULT($ac_cv_va_copy)
3939 AC_MSG_CHECKING(for an implementation of __va_copy())
3940 AC_CACHE_VAL(ac_cv___va_copy,[
3943 void f (int i, ...) {
3944 va_list args1, args2;
3945 va_start (args1, i);
3946 __va_copy (args2, args1);
3947 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
3949 va_end (args1); va_end (args2);
3951 int main() { f (0, 42); return 0; }],
3952 ac_cv___va_copy=yes,
3957 AC_MSG_RESULT($ac_cv___va_copy)
3958 AC_MSG_CHECKING(whether va_lists can be copied by value)
3959 AC_CACHE_VAL(ac_cv_va_val_copy,[
3962 void f (int i, ...) {
3963 va_list args1, args2;
3964 va_start (args1, i);
3966 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
3968 va_end (args1); va_end (args2);
3970 int main() { f (0, 42); return 0; }],
3971 ac_cv_va_val_copy=yes,
3972 ac_cv_va_val_copy=no,
3973 ac_cv_va_val_copy=yes
3976 if test "x$ac_cv_va_copy" = "xyes"; then
3977 AC_DEFINE(VA_COPY, va_copy)
3978 AC_DEFINE(HAVE_VA_COPY)
3979 elif test "x$ac_cv___va_copy" = "xyes"; then
3980 AC_DEFINE(VA_COPY, __va_copy)
3981 AC_DEFINE(HAVE_VA_COPY)
3984 if test "x$ac_cv_va_val_copy" = "xno"; then
3985 AC_DEFINE(HAVE_VA_LIST_AS_ARRAY)
3987 AC_MSG_RESULT($ac_cv_va_val_copy)
3989 dnl Check for dll-challenged libc's.
3990 dnl This check is apparently only needed for Linux.
3993 dnl ===================================================================
3996 rm -rf conftest* _conftest
3998 cat >> conftest.C <<\EOF
4003 void __dump_link_map(void) {
4004 struct link_map *map = _dl_loaded;
4005 while (NULL != map) {printf("0x%08x %s\n", map->l_addr, map->l_name); map = map->l_next;}
4008 dlopen("./conftest1.so",RTLD_LAZY);
4009 dlopen("./../_conftest/conftest1.so",RTLD_LAZY);
4010 dlopen("CURDIR/_conftest/conftest1.so",RTLD_LAZY);
4011 dlopen("CURDIR/_conftest/../_conftest/conftest1.so",RTLD_LAZY);
4015 /* _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).*/
4016 int main() { printf("./conftest1.so\n"); }
4020 $PERL -p -i -e "s/CURDIR/\$ENV{_curdir}/g;" conftest.C
4022 cat >> conftest1.C <<\EOF
4024 void foo(void) {printf("foo in dll called\n");}
4026 ${CXX-g++} -fPIC -c -g conftest1.C
4027 ${CXX-g++} -shared -Wl,-h -Wl,conftest1.so -o conftest1.so conftest1.o
4028 ${CXX-g++} -g conftest.C -o conftest -ldl
4029 cp -f conftest1.so conftest _conftest
4031 if test `./conftest | grep conftest1.so | wc -l` -gt 1
4034 echo "*** Your libc has a bug that can result in loading the same dynamic"
4035 echo "*** library multiple times. This bug is known to be fixed in glibc-2.0.7-32"
4036 echo "*** or later. However, if you choose not to upgrade, the only effect"
4037 echo "*** will be excessive memory usage at runtime."
4041 rm -rf conftest* _conftest
4042 dnl ===================================================================
4046 dnl ===================================================================
4047 dnl ========================================================
4048 dnl Put your C++ language/feature checks below
4049 dnl ========================================================
4054 if test "$GNU_CC"; then
4055 if test "$CPU_ARCH" = "arm" ; then
4056 AC_CACHE_CHECK(for ARM EABI,
4060 #if defined(__ARM_EABI__)
4063 #error Not ARM EABI.
4066 ac_cv_gcc_arm_eabi="yes",
4067 ac_cv_gcc_arm_eabi="no")])
4068 if test "$ac_cv_gcc_arm_eabi" = "yes"; then
4070 ARM_ABI_PREFIX=eabi-
4072 ARM_ABI_PREFIX=oabi-
4076 AC_CACHE_CHECK(for gcc 3.0 ABI,
4077 ac_cv_gcc_three_abi,
4080 #if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
4086 ac_cv_gcc_three_abi="yes",
4087 ac_cv_gcc_three_abi="no")])
4088 if test "$ac_cv_gcc_three_abi" = "yes"; then
4089 TARGET_COMPILER_ABI="${TARGET_COMPILER_ABI-${ARM_ABI_PREFIX}gcc3}"
4092 TARGET_COMPILER_ABI="${TARGET_COMPILER_ABI-${ARM_ABI_PREFIX}gcc2}"
4095 AC_SUBST(HAVE_GCC3_ABI)
4098 AC_CACHE_CHECK(for C++ \"explicit\" keyword,
4100 [AC_TRY_COMPILE(class X {
4101 public: explicit X(int i) : i_(i) {}
4105 ac_cv_cpp_explicit=yes,
4106 ac_cv_cpp_explicit=no)])
4107 if test "$ac_cv_cpp_explicit" = yes ; then
4108 AC_DEFINE(HAVE_CPP_EXPLICIT)
4111 AC_CACHE_CHECK(for C++ \"typename\" keyword,
4113 [AC_TRY_COMPILE(class param {
4115 typedef unsigned long num_type;
4118 template <class T> class tplt {
4120 typedef typename T::num_type t_num_type;
4121 t_num_type foo(typename T::num_type num) {
4127 ac_cv_cpp_typename=yes,
4128 ac_cv_cpp_typename=no)])
4129 if test "$ac_cv_cpp_typename" = yes ; then
4130 AC_DEFINE(HAVE_CPP_TYPENAME)
4133 dnl Check for support of modern template specialization syntax
4134 dnl Test code and requirement from scc@netscape.com.
4135 dnl Autoconf cut-and-paste job by waterson@netscape.com
4136 AC_CACHE_CHECK(for modern C++ template specialization syntax support,
4137 ac_cv_cpp_modern_specialize_template_syntax,
4138 [AC_TRY_COMPILE(template <class T> struct X { int a; };
4140 template <> struct X<Y> { double a; };,
4143 ac_cv_cpp_modern_specialize_template_syntax=yes,
4144 ac_cv_cpp_modern_specialize_template_syntax=no)])
4145 if test "$ac_cv_cpp_modern_specialize_template_syntax" = yes ; then
4146 AC_DEFINE(HAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX)
4150 dnl Some compilers support only full specialization, and some don't.
4151 AC_CACHE_CHECK(whether partial template specialization works,
4152 ac_cv_cpp_partial_specialization,
4153 [AC_TRY_COMPILE(template <class T> class Foo {};
4154 template <class T> class Foo<T*> {};,
4156 ac_cv_cpp_partial_specialization=yes,
4157 ac_cv_cpp_partial_specialization=no)])
4158 if test "$ac_cv_cpp_partial_specialization" = yes ; then
4159 AC_DEFINE(HAVE_CPP_PARTIAL_SPECIALIZATION)
4162 dnl Some compilers have limited support for operators with templates;
4163 dnl specifically, it is necessary to define derived operators when a base
4164 dnl class's operator declaration should suffice.
4165 AC_CACHE_CHECK(whether operators must be re-defined for templates derived from templates,
4166 ac_cv_need_derived_template_operators,
4167 [AC_TRY_COMPILE([template <class T> class Base { };
4169 Base<T> operator+(const Base<T>& lhs, const Base<T>& rhs) { return lhs; }
4170 template <class T> class Derived : public Base<T> { };],
4171 [Derived<char> a, b;
4172 Base<char> c = a + b;
4174 ac_cv_need_derived_template_operators=no,
4175 ac_cv_need_derived_template_operators=yes)])
4176 if test "$ac_cv_need_derived_template_operators" = yes ; then
4177 AC_DEFINE(NEED_CPP_DERIVED_TEMPLATE_OPERATORS)
4181 dnl Some compilers have trouble detecting that a template class
4182 dnl that derives from another template is actually an instance
4183 dnl of the base class. This test checks for that.
4184 AC_CACHE_CHECK(whether we need to cast a derived template to pass as its base class,
4185 ac_cv_need_cpp_template_cast_to_base,
4186 [AC_TRY_COMPILE([template <class T> class Base { };
4187 template <class T> class Derived : public Base<T> { };
4188 template <class T> int foo(const Base<T>&) { return 0; }],
4189 [Derived<char> bar; return foo(bar);],
4190 ac_cv_need_cpp_template_cast_to_base=no,
4191 ac_cv_need_cpp_template_cast_to_base=yes)])
4192 if test "$ac_cv_need_cpp_template_cast_to_base" = yes ; then
4193 AC_DEFINE(NEED_CPP_TEMPLATE_CAST_TO_BASE)
4196 dnl Some compilers have trouble resolving the ambiguity between two
4197 dnl functions whose arguments differ only by cv-qualifications.
4198 AC_CACHE_CHECK(whether the compiler can resolve const ambiguities for templates,
4199 ac_cv_can_resolve_const_ambiguity,
4201 template <class T> class ptrClass {
4205 template <class T> T* a(ptrClass<T> *arg) {
4210 const T* a(const ptrClass<T> *arg) {
4216 ac_cv_can_resolve_const_ambiguity=yes,
4217 ac_cv_can_resolve_const_ambiguity=no)])
4218 if test "$ac_cv_can_resolve_const_ambiguity" = no ; then
4219 AC_DEFINE(CANT_RESOLVE_CPP_CONST_AMBIGUITY)
4223 dnl We don't do exceptions on unix. The only reason this used to be here
4224 dnl is that mozilla/xpcom/tests/TestCOMPtr.cpp has a test which uses
4225 dnl exceptions. But, we turn exceptions off by default and this test breaks.
4226 dnl So im commenting this out until someone writes some artificial
4227 dnl intelligence to detect not only if the compiler has exceptions, but if
4228 dnl they are enabled as well.
4230 dnl AC_CACHE_CHECK(for C++ \"exceptions\",
4231 dnl ac_cv_cpp_exceptions,
4232 dnl [AC_TRY_COMPILE(class X { public: X() {} };
4233 dnl static void F() { throw X(); },
4234 dnl try { F(); } catch(X & e) { },
4235 dnl ac_cv_cpp_exceptions=yes,
4236 dnl ac_cv_cpp_exceptions=no)])
4237 dnl if test $ac_cv_cpp_exceptions = yes ; then
4238 dnl AC_DEFINE(HAVE_CPP_EXCEPTIONS)
4241 dnl Some compilers have marginal |using| support; for example, gcc-2.7.2.3
4242 dnl supports it well enough to allow us to use it to change access, but not
4243 dnl to resolve ambiguity. The next two tests determine how well the |using|
4244 dnl keyword is supported.
4246 dnl Check to see if we can change access with |using|. Test both a
4247 dnl legal and an illegal example.
4248 AC_CACHE_CHECK(whether the C++ \"using\" keyword can change access,
4249 ac_cv_cpp_access_changing_using2,
4251 class A { protected: int foo() { return 0; } };
4252 class B : public A { public: using A::foo; };,
4253 B b; return b.foo();,
4255 class A { public: int foo() { return 1; } };
4256 class B : public A { private: using A::foo; };,
4257 B b; return b.foo();,
4258 ac_cv_cpp_access_changing_using2=no,
4259 ac_cv_cpp_access_changing_using2=yes)],
4260 ac_cv_cpp_access_changing_using2=no)])
4261 if test "$ac_cv_cpp_access_changing_using2" = yes ; then
4262 AC_DEFINE(HAVE_CPP_ACCESS_CHANGING_USING)
4265 dnl Check to see if we can resolve ambiguity with |using|.
4266 AC_CACHE_CHECK(whether the C++ \"using\" keyword resolves ambiguity,
4267 ac_cv_cpp_ambiguity_resolving_using,
4268 [AC_TRY_COMPILE(class X {
4269 public: int go(const X&) {return 3;}
4270 int jo(const X&) {return 3;}
4272 class Y : public X {
4273 public: int go(int) {return 2;}
4274 int jo(int) {return 2;}
4276 private: using X::go;
4279 ac_cv_cpp_ambiguity_resolving_using=yes,
4280 ac_cv_cpp_ambiguity_resolving_using=no)])
4281 if test "$ac_cv_cpp_ambiguity_resolving_using" = yes ; then
4282 AC_DEFINE(HAVE_CPP_AMBIGUITY_RESOLVING_USING)
4285 dnl Check to see if the |std| namespace is supported. If so, we'll want
4286 dnl to qualify any standard library calls with "std::" to ensure that
4287 dnl those functions can be resolved.
4288 AC_CACHE_CHECK(for \"std::\" namespace,
4289 ac_cv_cpp_namespace_std,
4290 [AC_TRY_COMPILE([#include <algorithm>],
4291 [return std::min(0, 1);],
4292 ac_cv_cpp_namespace_std=yes,
4293 ac_cv_cpp_namespace_std=no)])
4294 if test "$ac_cv_cpp_namespace_std" = yes ; then
4295 AC_DEFINE(HAVE_CPP_NAMESPACE_STD)
4298 dnl Older compilers are overly ambitious with respect to using the standard
4299 dnl template library's |operator!=()| when |operator==()| is defined. In
4300 dnl which case, defining |operator!=()| in addition to |operator==()| causes
4301 dnl ambiguity at compile-time. This test checks for that case.
4302 AC_CACHE_CHECK(whether standard template operator!=() is ambiguous,
4303 ac_cv_cpp_unambiguous_std_notequal,
4304 [AC_TRY_COMPILE([#include <algorithm>
4306 int operator==(const T1&, const T1&) { return 0; }
4307 int operator!=(const T1&, const T1&) { return 0; }],
4308 [T1 a,b; return a != b;],
4309 ac_cv_cpp_unambiguous_std_notequal=unambiguous,
4310 ac_cv_cpp_unambiguous_std_notequal=ambiguous)])
4311 if test "$ac_cv_cpp_unambiguous_std_notequal" = unambiguous ; then
4312 AC_DEFINE(HAVE_CPP_UNAMBIGUOUS_STD_NOTEQUAL)
4316 AC_CACHE_CHECK(for C++ reinterpret_cast,
4317 ac_cv_cpp_reinterpret_cast,
4318 [AC_TRY_COMPILE(struct X { int i; };
4319 struct Y { int i; };,
4320 X x; X*const z = &x;Y*y = reinterpret_cast<Y*>(z);,
4321 ac_cv_cpp_reinterpret_cast=yes,
4322 ac_cv_cpp_reinterpret_cast=no)])
4323 if test "$ac_cv_cpp_reinterpret_cast" = yes ; then
4324 AC_DEFINE(HAVE_CPP_NEW_CASTS)
4327 dnl See if a dynamic_cast to void* gives the most derived object.
4328 AC_CACHE_CHECK(for C++ dynamic_cast to void*,
4329 ac_cv_cpp_dynamic_cast_void_ptr,
4330 [AC_TRY_RUN([class X { int i; public: virtual ~X() { } };
4331 class Y { int j; public: virtual ~Y() { } };
4332 class Z : public X, public Y { int k; };
4338 return !((((void*)&mdo != (void*)subx) &&
4339 ((void*)&mdo == dynamic_cast<void*>(subx))) ||
4340 (((void*)&mdo != (void*)suby) &&
4341 ((void*)&mdo == dynamic_cast<void*>(suby))));
4343 ac_cv_cpp_dynamic_cast_void_ptr=yes,
4344 ac_cv_cpp_dynamic_cast_void_ptr=no,
4345 ac_cv_cpp_dynamic_cast_void_ptr=no)])
4346 if test "$ac_cv_cpp_dynamic_cast_void_ptr" = yes ; then
4347 AC_DEFINE(HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR)
4351 dnl note that this one is reversed - if the test fails, then
4352 dnl we require implementations of unused virtual methods. Which
4353 dnl really blows because it means we'll have useless vtable
4355 AC_CACHE_CHECK(whether C++ requires implementation of unused virtual methods,
4356 ac_cv_cpp_unused_required,
4357 [AC_TRY_LINK(class X {private: virtual void never_called();};,
4359 ac_cv_cpp_unused_required=no,
4360 ac_cv_cpp_unused_required=yes)])
4361 if test "$ac_cv_cpp_unused_required" = yes ; then
4362 AC_DEFINE(NEED_CPP_UNUSED_IMPLEMENTATIONS)
4366 dnl Some compilers have trouble comparing a constant reference to a templatized
4367 dnl class to zero, and require an explicit operator==() to be defined that takes
4368 dnl an int. This test separates the strong from the weak.
4370 AC_CACHE_CHECK(for trouble comparing to zero near std::operator!=(),
4371 ac_cv_trouble_comparing_to_zero,
4372 [AC_TRY_COMPILE([#include <algorithm>
4373 template <class T> class Foo {};
4375 template <class T> int operator==(const T2*, const T&) { return 0; }
4376 template <class T> int operator!=(const T2*, const T&) { return 0; }],
4377 [Foo<int> f; return (0 != f);],
4378 ac_cv_trouble_comparing_to_zero=no,
4379 ac_cv_trouble_comparing_to_zero=yes)])
4380 if test "$ac_cv_trouble_comparing_to_zero" = yes ; then
4381 AC_DEFINE(HAVE_CPP_TROUBLE_COMPARING_TO_ZERO)
4384 # try harder, when checking for __thread support, see bug 521750 comment #33 and below
4385 _SAVE_LDFLAGS=$LDFLAGS
4386 LDFLAGS="$LDFLAGS $DSO_PIC_CFLAGS $DSO_LDOPTS"
4387 AC_CACHE_CHECK(for __thread keyword for TLS variables,
4388 ac_cv_thread_keyword,
4389 [AC_TRY_LINK([__thread bool tlsIsMainThread = false;],
4390 [return tlsIsMainThread;],
4391 ac_cv_thread_keyword=yes,
4392 ac_cv_thread_keyword=no)])
4393 LDFLAGS=$_SAVE_LDFLAGS
4394 if test "$ac_cv_thread_keyword" = yes; then
4395 # mips builds fail with TLS variables because of a binutils bug.
4405 AC_DEFINE(HAVE_THREAD_TLS_KEYWORD)
4410 dnl Check for the existence of various allocation headers/functions
4413 AC_CHECK_HEADER(malloc.h, [MALLOC_H=malloc.h])
4414 if test "$MALLOC_H" = ""; then
4415 AC_CHECK_HEADER(malloc/malloc.h, [MALLOC_H=malloc/malloc.h])
4416 if test "$MALLOC_H" = ""; then
4417 AC_CHECK_HEADER(sys/malloc.h, [MALLOC_H=sys/malloc.h])
4420 if test "$MALLOC_H" != ""; then
4421 AC_DEFINE_UNQUOTED(MALLOC_H, <$MALLOC_H>)
4424 MOZ_ALLOCATING_FUNCS="strndup posix_memalign memalign valloc"
4425 AC_CHECK_FUNCS(strndup posix_memalign memalign valloc)
4427 dnl See if compiler supports some gcc-style attributes
4429 AC_CACHE_CHECK(for __attribute__((always_inline)),
4430 ac_cv_attribute_always_inline,
4432 [inline void f(void) __attribute__((always_inline));],
4433 ac_cv_attribute_always_inline=yes,
4434 ac_cv_attribute_always_inline=no)])
4436 AC_CACHE_CHECK(for __attribute__((malloc)),
4437 ac_cv_attribute_malloc,
4439 [void* f(int) __attribute__((malloc));],
4440 ac_cv_attribute_malloc=yes,
4441 ac_cv_attribute_malloc=no)])
4443 AC_CACHE_CHECK(for __attribute__((warn_unused_result)),
4444 ac_cv_attribute_warn_unused,
4446 [int f(void) __attribute__((warn_unused_result));],
4447 ac_cv_attribute_warn_unused=yes,
4448 ac_cv_attribute_warn_unused=no)])
4450 AC_CACHE_CHECK(for __attribute__((noreturn)),
4451 ac_cv_attribute_noreturn,
4453 [void f(void) __attribute__((noreturn));],
4454 ac_cv_attribute_noreturn=yes,
4455 ac_cv_attribute_noreturn=no)])
4457 dnl End of C++ language/feature checks
4460 dnl ========================================================
4461 dnl = Internationalization checks
4462 dnl ========================================================
4464 dnl Internationalization and Locale support is different
4465 dnl on various UNIX platforms. Checks for specific i18n
4466 dnl features go here.
4468 dnl check for LC_MESSAGES
4469 AC_CACHE_CHECK(for LC_MESSAGES,
4470 ac_cv_i18n_lc_messages,
4471 [AC_TRY_COMPILE([#include <locale.h>],
4472 [int category = LC_MESSAGES;],
4473 ac_cv_i18n_lc_messages=yes,
4474 ac_cv_i18n_lc_messages=no)])
4475 if test "$ac_cv_i18n_lc_messages" = yes; then
4476 AC_DEFINE(HAVE_I18N_LC_MESSAGES)
4479 AC_HAVE_FUNCS(localeconv)
4481 fi # SKIP_COMPILER_CHECKS
4484 if test -n "${CPU_ARCH}" -a -n "${TARGET_COMPILER_ABI}"; then
4485 TARGET_XPCOM_ABI="${CPU_ARCH}-${TARGET_COMPILER_ABI}"
4488 dnl Mozilla specific options
4489 dnl ========================================================
4490 dnl The macros used for command line options
4491 dnl are defined in build/autoconf/altoptions.m4.
4493 dnl If the compiler supports these attributes, define them as
4494 dnl convenience macros.
4495 if test "$ac_cv_attribute_always_inline" = yes ; then
4496 AC_DEFINE(NS_ALWAYS_INLINE, [__attribute__((always_inline))])
4498 AC_DEFINE(NS_ALWAYS_INLINE,)
4501 if test "$ac_cv_attribute_malloc" = yes ; then
4502 AC_DEFINE(NS_ATTR_MALLOC, [__attribute__((malloc))])
4504 AC_DEFINE(NS_ATTR_MALLOC,)
4507 if test "$ac_cv_attribute_warn_unused" = yes ; then
4508 AC_DEFINE(NS_WARN_UNUSED_RESULT, [__attribute__((warn_unused_result))])
4510 AC_DEFINE(NS_WARN_UNUSED_RESULT,)
4513 if test "$ac_cv_attribute_noreturn" = yes ; then
4514 AC_DEFINE(NS_NORETURN, [__attribute__((noreturn))])
4516 AC_DEFINE(NS_NORETURN,)
4519 dnl We can't run TRY_COMPILE tests on Windows, so hard-code some
4520 dnl features that Windows actually does support.
4522 if test -n "$SKIP_COMPILER_CHECKS"; then
4523 dnl Windows has malloc.h
4524 AC_DEFINE(MALLOC_H, [<malloc.h>])
4525 AC_DEFINE(HAVE_FORCEINLINE)
4526 AC_DEFINE(HAVE_LOCALECONV)
4527 fi # SKIP_COMPILER_CHECKS
4529 dnl ========================================================
4531 dnl = Check for external package dependencies
4533 dnl ========================================================
4534 MOZ_ARG_HEADER(External Packages)
4538 MOZ_ARG_WITH_STRING(libxul-sdk,
4539 [ --with-libxul-sdk=PFX Use the libXUL SDK at <PFX>],
4540 LIBXUL_SDK_DIR=$withval)
4542 if test "$LIBXUL_SDK_DIR" = "yes"; then
4543 AC_MSG_ERROR([--with-libxul-sdk must specify a path])
4544 elif test -n "$LIBXUL_SDK_DIR" -a "$LIBXUL_SDK_DIR" != "no"; then
4545 LIBXUL_SDK=`cd "$LIBXUL_SDK_DIR" && pwd`
4547 if test ! -f "$LIBXUL_SDK/include/xpcom-config.h"; then
4548 AC_MSG_ERROR([$LIBXUL_SDK/include/xpcom-config.h doesn't exist])
4553 AC_SUBST(LIBXUL_SDK)
4555 if test -n "$LIBXUL_SDK"; then
4556 LIBXUL_DIST="$LIBXUL_SDK"
4558 LIBXUL_DIST="$MOZ_BUILD_ROOT/dist"
4560 AC_SUBST(LIBXUL_DIST)
4564 MOZ_ARG_WITH_BOOL(system-libxul,
4565 [ --with-system-libxul Use system installed libxul SDK],
4568 if test -n "$SYSTEM_LIBXUL" -a -z "$MOZ_ENABLE_LIBXUL"; then
4569 AC_MSG_ERROR([--with-system-libxul needs --with-libxul-sdk])
4572 dnl ========================================================
4573 dnl = If NSPR was not detected in the system,
4574 dnl = use the one in the source tree (mozilla/nsprpub)
4575 dnl ========================================================
4576 MOZ_ARG_WITH_BOOL(system-nspr,
4577 [ --with-system-nspr Use system installed NSPR],
4578 _USE_SYSTEM_NSPR=1 )
4580 if test -n "$_USE_SYSTEM_NSPR"; then
4581 AM_PATH_NSPR(4.8.6, [MOZ_NATIVE_NSPR=1], [MOZ_NATIVE_NSPR=])
4584 if test -n "$MOZ_NATIVE_NSPR"; then
4585 _SAVE_CFLAGS=$CFLAGS
4586 CFLAGS="$CFLAGS $NSPR_CFLAGS"
4587 AC_TRY_COMPILE([#include "prtypes.h"],
4588 [#ifndef PR_STATIC_ASSERT
4589 #error PR_STATIC_ASSERT not defined or requires including prlog.h
4591 [MOZ_NATIVE_NSPR=1],
4592 AC_MSG_ERROR([system NSPR does not support PR_STATIC_ASSERT or including prtypes.h does not provide it]))
4593 CFLAGS=$_SAVE_CFLAGS
4595 if test "$OS_ARCH" = "WINCE"; then
4596 NSPR_CFLAGS="-I${LIBXUL_DIST}/include/nspr"
4597 NSPR_LIBS="${LIBXUL_DIST}/lib/nspr${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plc${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plds${NSPR_VERSION}.lib "
4598 elif test "$OS_ARCH" = "WINNT"; then
4599 NSPR_CFLAGS="-I${LIBXUL_DIST}/include/nspr"
4600 if test -n "$GNU_CC"; then
4601 NSPR_LIBS="-L${LIBXUL_DIST}/lib -lnspr${NSPR_VERSION} -lplc${NSPR_VERSION} -lplds${NSPR_VERSION}"
4603 NSPR_LIBS="${LIBXUL_DIST}/lib/nspr${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plc${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plds${NSPR_VERSION}.lib "
4606 NSPR_CFLAGS='`$(LIBXUL_DIST)/bin/nspr-config --prefix='${LIBXUL_DIST}' --includedir='${LIBXUL_DIST}'/include/nspr --cflags`'
4607 NSPR_LIBS='`$(LIBXUL_DIST)/bin/nspr-config --prefix='${LIBXUL_DIST}' --libdir='${LIBXUL_DIST}'/lib --libs`'
4611 dnl system libevent Support
4612 dnl ========================================================
4613 MOZ_ARG_WITH_STRING(system-libevent,
4614 [ --with-system-libevent=[PFX]
4615 Use system libevent [installed at prefix PFX]],
4616 LIBEVENT_DIR=$withval)
4618 _SAVE_CFLAGS=$CFLAGS
4619 _SAVE_LDFLAGS=$LDFLAGS
4621 if test -z "$LIBEVENT_DIR" -o "$LIBEVENT_DIR" = no; then
4622 MOZ_NATIVE_LIBEVENT=
4624 if test "${LIBEVENT_DIR}" = "yes"; then
4627 CFLAGS="-I${LIBEVENT_DIR}/include $CFLAGS"
4628 LDFLAGS="-L${LIBEVENT_DIR}/lib $LDFLAGS"
4629 AC_CHECK_HEADER(event.h,
4630 [if test ! -f "${LIBEVENT_DIR}/include/event.h"; then
4631 AC_MSG_ERROR([event.h found, but is not in ${LIBEVENT_DIR}/include])
4633 AC_MSG_ERROR([--with-system-libevent requested but event.h not found]))
4634 AC_CHECK_LIB(event, event_init,
4635 [MOZ_NATIVE_LIBEVENT=1
4636 MOZ_LIBEVENT_INCLUDES="${LIBEVENT_DIR}/include"
4637 MOZ_LIBEVENT_LIBS="-L${LIBEVENT_DIR}/lib -levent"],
4638 [MOZ_NATIVE_LIBEVENT= MOZ_LIBEVENT_INCLUDES= MOZ_LIBEVENT_LIBS=])
4640 CFLAGS=$_SAVE_CFLAGS
4641 LDFLAGS=$_SAVE_LDFLAGS
4644 AC_SUBST(MOZ_NATIVE_LIBEVENT)
4645 AC_SUBST(MOZ_LIBEVENT_INCLUDES)
4646 AC_SUBST(MOZ_LIBEVENT_LIBS)
4648 dnl ========================================================
4649 dnl = If NSS was not detected in the system,
4650 dnl = use the one in the source tree (mozilla/security/nss)
4651 dnl ========================================================
4653 MOZ_ARG_WITH_BOOL(system-nss,
4654 [ --with-system-nss Use system installed NSS],
4657 if test -n "$_USE_SYSTEM_NSS"; then
4658 AM_PATH_NSS(3.12.6, [MOZ_NATIVE_NSS=1], [MOZ_NATIVE_NSS=])
4661 if test -n "$MOZ_NATIVE_NSS"; then
4662 NSS_LIBS="$NSS_LIBS -lcrmf"
4664 NSS_CFLAGS='-I$(LIBXUL_DIST)/include/nss'
4666 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)crmf.\$(LIB_SUFFIX) \
4667 \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)smime$NSS_VERSION\$(DLL_SUFFIX) \
4668 \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)ssl$NSS_VERSION\$(DLL_SUFFIX) \
4669 \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)nss$NSS_VERSION\$(DLL_SUFFIX) \
4670 \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)nssutil$NSS_VERSION\$(DLL_SUFFIX)"
4672 if test -z "$GNU_CC" -a "$OS_ARCH" = "WINNT" -o "$OS_ARCH" = "WINCE" -o "$OS_ARCH" = "OS2"; then
4674 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)crmf.\$(LIB_SUFFIX) \
4675 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)smime$NSS_VERSION.\$(LIB_SUFFIX) \
4676 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)ssl$NSS_VERSION.\$(LIB_SUFFIX) \
4677 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)nss$NSS_VERSION.\$(LIB_SUFFIX) \
4678 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)nssutil$NSS_VERSION.\$(LIB_SUFFIX)"
4680 NSS_LIBS='$(LIBS_DIR)'" -lcrmf -lsmime$NSS_VERSION -lssl$NSS_VERSION -lnss$NSS_VERSION -lnssutil$NSS_VERSION"
4684 if test -z "$SKIP_LIBRARY_CHECKS"; then
4685 dnl system JPEG support
4686 dnl ========================================================
4687 MOZ_ARG_WITH_STRING(system-jpeg,
4688 [ --with-system-jpeg[=PFX]
4689 Use system libjpeg [installed at prefix PFX]],
4692 _SAVE_CFLAGS=$CFLAGS
4693 _SAVE_LDFLAGS=$LDFLAGS
4695 if test -n "${JPEG_DIR}" -a "${JPEG_DIR}" != "yes"; then
4696 CFLAGS="-I${JPEG_DIR}/include $CFLAGS"
4697 LDFLAGS="-L${JPEG_DIR}/lib $LDFLAGS"
4699 if test -z "$JPEG_DIR" -o "$JPEG_DIR" = no; then
4702 AC_CHECK_LIB(jpeg, jpeg_destroy_compress, [SYSTEM_JPEG=1 JPEG_LIBS="-ljpeg $JPEG_LIBS"], SYSTEM_JPEG=, $JPEG_LIBS)
4705 if test "$SYSTEM_JPEG" = 1; then
4706 LIBS="$JPEG_LIBS $LIBS"
4707 AC_TRY_COMPILE([ #include <stdio.h>
4708 #include <sys/types.h>
4709 #include <jpeglib.h> ],
4710 [ #if JPEG_LIB_VERSION < $MOZJPEG
4711 #error "Insufficient JPEG library version ($MOZJPEG required)."
4714 [SYSTEM_JPEG= JPEG_CFLAGS= JPEG_LIBS=])
4716 CFLAGS=$_SAVE_CFLAGS
4717 LDFLAGS=$_SAVE_LDFLAGS
4720 if test -n "${JPEG_DIR}" -a -d "${JPEG_DIR}" -a "$SYSTEM_JPEG" = 1; then
4721 JPEG_CFLAGS="-I${JPEG_DIR}/include"
4722 JPEG_LIBS="-L${JPEG_DIR}/lib ${JPEG_LIBS}"
4725 dnl system ZLIB support
4726 dnl ========================================================
4727 MOZ_ARG_WITH_STRING(system-zlib,
4728 [ --with-system-zlib[=PFX]
4729 Use system libz [installed at prefix PFX]],
4732 _SAVE_CFLAGS=$CFLAGS
4733 _SAVE_LDFLAGS=$LDFLAGS
4735 if test -n "${ZLIB_DIR}" -a "${ZLIB_DIR}" != "yes"; then
4736 CFLAGS="-I${ZLIB_DIR}/include $CFLAGS"
4737 LDFLAGS="-L${ZLIB_DIR}/lib $LDFLAGS"
4739 if test -z "$ZLIB_DIR" -o "$ZLIB_DIR" = no; then
4742 AC_CHECK_LIB(z, gzread, [SYSTEM_ZLIB=1 ZLIB_LIBS="-lz $ZLIB_LIBS"],
4743 [SYSTEM_ZLIB= ZLIB_CFLAGS= ZLIB_LIBS=], $ZLIB_LIBS)
4745 if test "$SYSTEM_ZLIB" = 1; then
4746 LIBS="$ZLIB_LIBS $LIBS"
4747 AC_TRY_COMPILE([ #include <stdio.h>
4749 #include <zlib.h> ],
4750 [ #if ZLIB_VERNUM < $MOZZLIB
4751 #error "Insufficient zlib version ($MOZZLIB required)."
4754 [SYSTEM_ZLIB= ZLIB_CFLAGS= ZLIB_LIBS=])
4756 CFLAGS=$_SAVE_CFLAGS
4757 LDFLAGS=$_SAVE_LDFLAGS
4760 if test "${ZLIB_DIR}" -a -d "${ZLIB_DIR}" -a "$SYSTEM_ZLIB" = 1; then
4761 ZLIB_CFLAGS="-I${ZLIB_DIR}/include"
4762 ZLIB_LIBS="-L${ZLIB_DIR}/lib ${ZLIB_LIBS}"
4765 dnl system BZIP2 Support
4766 dnl ========================================================
4767 MOZ_ARG_WITH_STRING(system-bz2,
4768 [ --with-system-bz2[=PFX]
4769 Use system libbz2 [installed at prefix PFX]],
4772 _SAVE_CFLAGS=$CFLAGS
4773 _SAVE_LDFLAGS=$LDFLAGS
4775 if test -n "${BZ2_DIR}" -a "${BZ2_DIR}" != "yes"; then
4776 CFLAGS="-I${BZ2_DIR}/include $CFLAGS"
4777 LDFLAGS="-L${BZ2_DIR}/lib $LDFLAGS"
4779 if test -z "$BZ2_DIR" -o "$BZ2_DIR" = no; then
4782 AC_CHECK_LIB(bz2, BZ2_bzread, [SYSTEM_BZ2=1 BZ2_LIBS="-lbz2"],
4783 [SYSTEM_BZ2= BZ2_CFLAGS= BZ2_LIBS=])
4785 CFLAGS=$_SAVE_CFLAGS
4786 LDFLAGS=$_SAVE_LDFLAGS
4789 if test "${BZ2_DIR}" -a -d "${BZ2_DIR}" -a "$SYSTEM_BZ2" = 1; then
4790 BZ2_CFLAGS="-I${BZ2_DIR}/include"
4791 BZ2_LIBS="-L${BZ2_DIR}/lib ${BZ2_LIBS}"
4794 dnl system PNG Support
4795 dnl ========================================================
4796 MOZ_ARG_WITH_STRING(system-png,
4797 [ --with-system-png[=PFX]
4798 Use system libpng [installed at prefix PFX]],
4801 _SAVE_CFLAGS=$CFLAGS
4802 _SAVE_LDFLAGS=$LDFLAGS
4804 CFLAGS="$ZLIB_CFLAGS $CFLAGS"
4805 LDFLAGS="$ZLIB_LIBS -lz $LDFLAGS"
4806 if test -n "${PNG_DIR}" -a "${PNG_DIR}" != "yes"; then
4807 CFLAGS="-I${PNG_DIR}/include $CFLAGS"
4808 LDFLAGS="-L${PNG_DIR}/lib $LDFLAGS"
4810 if test -z "$PNG_DIR" -o "$PNG_DIR" = no; then
4813 _SAVE_PNG_LIBS=$PNG_LIBS
4814 AC_CHECK_LIB(png, png_get_valid, [SYSTEM_PNG=1 PNG_LIBS="-lpng $PNG_LIBS"],
4815 AC_MSG_ERROR([--with-system-png requested but no working libpng found]),
4817 AC_CHECK_LIB(png, png_get_acTL, ,
4818 AC_MSG_ERROR([--with-system-png won't work because the system's libpng doesn't have APNG support]),
4821 if test "$SYSTEM_PNG" = 1; then
4822 LIBS="$PNG_LIBS $LIBS"
4823 AC_TRY_COMPILE([ #include <stdio.h>
4824 #include <sys/types.h>
4826 [ #if PNG_LIBPNG_VER < $MOZPNG
4827 #error "Insufficient libpng version ($MOZPNG required)."
4829 #ifndef PNG_UINT_31_MAX
4830 #error "Insufficient libpng version."
4833 AC_MSG_ERROR([--with-system-png requested but no working libpng found]))
4835 CFLAGS=$_SAVE_CFLAGS
4836 LDFLAGS=$_SAVE_LDFLAGS
4839 if test "${PNG_DIR}" -a -d "${PNG_DIR}" -a "$SYSTEM_PNG" = 1; then
4840 PNG_CFLAGS="-I${PNG_DIR}/include"
4841 PNG_LIBS="-L${PNG_DIR}/lib ${PNG_LIBS}"
4844 fi # SKIP_LIBRARY_CHECKS
4846 dnl system HunSpell Support
4847 dnl ========================================================
4848 MOZ_ARG_ENABLE_BOOL(system-hunspell,
4849 [ --enable-system-hunspell
4850 Use system hunspell (located with pkgconfig)],
4853 if test -n "$SYSTEM_HUNSPELL"; then
4854 PKG_CHECK_MODULES(MOZ_HUNSPELL, hunspell)
4857 AC_SUBST(SYSTEM_HUNSPELL)
4859 dnl ========================================================
4860 dnl Java SDK support
4861 dnl ========================================================
4863 MOZ_ARG_WITH_STRING(java-include-path,
4864 [ --with-java-include-path=dir
4865 Location of Java SDK headers],
4866 JAVA_INCLUDE_PATH=$withval)
4869 MOZ_ARG_WITH_STRING(java-bin-path,
4870 [ --with-java-bin-path=dir
4871 Location of Java binaries (java, javac, jar)],
4872 JAVA_BIN_PATH=$withval)
4874 dnl ========================================================
4878 dnl ========================================================
4880 MOZ_ARG_HEADER(Application)
4884 MOZ_ACTIVEX_SCRIPTING_SUPPORT=
4885 MOZ_BRANDING_DIRECTORY=
4886 MOZ_OFFICIAL_BRANDING=
4888 MOZ_IMG_ENCODERS_DEFAULT="png jpeg"
4897 MOZ_AUTH_EXTENSION=1
4898 MOZ_NO_ACTIVEX_SUPPORT=1
4913 MOZ_PLAINTEXT_EDITOR_ONLY=
4915 MOZ_PREF_EXTENSIONS=1
4916 MOZ_PROFILELOCKING=1
4929 MOZ_TOOLKIT_SEARCH=1
4931 MOZ_UNIVERSALCHARDET=1
4933 MOZ_USE_NATIVE_UCONV=
4935 MOZ_XSLT_STANDALONE=
4944 NECKO_PROTOCOLS_DEFAULT="about data file ftp http res viewsource"
4947 XPC_IDISPATCH_SUPPORT=
4950 case "$target_os" in
4951 darwin*|*wince*|*winmo*)
4959 case "$target_os" in
4960 msvc*|mks*|cygwin*|mingw*)
4962 if test -z "$GNU_CC"; then
4963 if test "$MOZ_WINSDK_TARGETVER" -lt "06000000"; then
4967 if test -n "$NS_ENABLE_TSF"; then
4968 AC_DEFINE(NS_ENABLE_TSF)
4982 MOZ_THEME_FASTSTRIPE=1
4988 MOZ_ARG_ENABLE_STRING(application,
4989 [ --enable-application=APP
4993 content/xslt (Standalone Transformiix XSLT)
4994 netwerk (Standalone Necko)
4995 tools/update-packaging (AUS-related packaging tools)
4996 standalone (use this for standalone
4997 xpcom/xpconnect or to manually drive a build)],
4998 [ MOZ_BUILD_APP=$enableval ] )
5000 MOZ_ARG_WITH_STRING(xulrunner-stub-name,
5001 [ --with-xulrunner-stub-name=appname Create the xulrunner stub with the given name],
5002 XULRUNNER_STUB_NAME=$withval)
5004 if test -z "$XULRUNNER_STUB_NAME"; then
5005 case "$target_os" in
5007 XULRUNNER_STUB_NAME=xulrunner
5010 XULRUNNER_STUB_NAME=xulrunner-stub
5013 AC_SUBST(XULRUNNER_STUB_NAME)
5015 if test -z "$MOZ_BUILD_APP"; then
5016 AC_MSG_ERROR([--enable-application=APP was not specified and is required.])
5018 # We have a valid application only if it has a build.mk file in its top
5020 if test ! -f "${srcdir}/${MOZ_BUILD_APP}/build.mk" ; then
5021 AC_MSG_ERROR([--enable-application value not recognized (${MOZ_BUILD_APP}/build.mk does not exist).])
5025 # Allow the application to influence configure with a confvars.sh script.
5027 AC_MSG_CHECKING([if app-specific confvars.sh exists])
5028 if test -f "${srcdir}/${MOZ_BUILD_APP}/confvars.sh" ; then
5029 AC_MSG_RESULT([${srcdir}/${MOZ_BUILD_APP}/confvars.sh])
5030 . "${srcdir}/${MOZ_BUILD_APP}/confvars.sh"
5035 # Now is a good time to test for logic errors, define mismatches, etc.
5036 case "$MOZ_BUILD_APP" in
5038 if test "$LIBXUL_SDK"; then
5039 AC_MSG_ERROR([Building XULRunner --with-libxul-sdk doesn't make sense; XULRunner provides the libxul SDK.])
5044 # Special cases where we need to AC_DEFINE something. Also a holdover for apps
5045 # that haven't made a confvars.sh yet. Don't add new stuff here, use
5047 case "$MOZ_BUILD_APP" in
5049 AC_DEFINE(MOZ_PHOENIX)
5053 AC_DEFINE(MOZ_XULRUNNER)
5061 MOZ_APP_NAME=mozilla
5062 MOZ_APP_DISPLAYNAME=Mozilla
5063 MOZ_APP_VERSION=$MOZILLA_VERSION
5068 AC_SUBST(MOZ_BUILD_APP)
5069 AC_SUBST(MOZ_PHOENIX)
5070 AC_SUBST(MOZ_XULRUNNER)
5072 AC_DEFINE_UNQUOTED(MOZ_BUILD_APP,$MOZ_BUILD_APP)
5074 dnl ========================================================
5076 dnl = Toolkit Options
5078 dnl ========================================================
5079 MOZ_ARG_HEADER(Toolkit Options)
5081 dnl ========================================================
5082 dnl = Select the default toolkit
5083 dnl ========================================================
5084 MOZ_ARG_ENABLE_STRING(default-toolkit,
5085 [ --enable-default-toolkit=TK
5086 Select default toolkit
5087 Platform specific defaults:
5089 Mac OS X - cairo-cocoa
5090 Neutrino/QNX - photon
5092 Win32/WinCE - cairo-windows
5093 Gtk2 with DirectFB - cairo-gtk2-dfb
5096 [ _DEFAULT_TOOLKIT=$enableval ],
5097 [ _DEFAULT_TOOLKIT=$_PLATFORM_DEFAULT_TOOLKIT])
5099 if test "$_DEFAULT_TOOLKIT" = "photon" \
5100 -o "$_DEFAULT_TOOLKIT" = "cairo-windows" \
5101 -o "$_DEFAULT_TOOLKIT" = "cairo-gtk2" \
5102 -o "$_DEFAULT_TOOLKIT" = "cairo-gtk2-dfb" \
5103 -o "$_DEFAULT_TOOLKIT" = "cairo-gtk2-x11" \
5104 -o "$_DEFAULT_TOOLKIT" = "cairo-qt" \
5105 -o "$_DEFAULT_TOOLKIT" = "cairo-beos" \
5106 -o "$_DEFAULT_TOOLKIT" = "cairo-os2" \
5107 -o "$_DEFAULT_TOOLKIT" = "cairo-cocoa" \
5108 -o "$_DEFAULT_TOOLKIT" = "cairo-android"
5110 dnl nglayout only supports building with one toolkit,
5111 dnl so ignore everything after the first comma (",").
5112 MOZ_WIDGET_TOOLKIT=`echo "$_DEFAULT_TOOLKIT" | sed -e "s/,.*$//"`
5114 AC_MSG_ERROR([You must specify a default toolkit (perhaps $_PLATFORM_DEFAULT_TOOLKIT).])
5117 dnl ========================================================
5118 dnl = Enable the toolkit as needed =
5119 dnl ========================================================
5121 case "$MOZ_WIDGET_TOOLKIT" in
5124 AC_DEFINE(MOZ_WIDGET_PHOTON)
5128 MOZ_WIDGET_TOOLKIT=windows
5137 cairo-gtk2|cairo-gtk2-x11)
5138 MOZ_WIDGET_TOOLKIT=gtk2
5140 MOZ_ENABLE_XREMOTE=1
5148 TK_CFLAGS='$(MOZ_GTK2_CFLAGS)'
5149 TK_LIBS='$(MOZ_GTK2_LIBS)'
5150 AC_DEFINE(MOZ_WIDGET_GTK2)
5154 MOZ_WIDGET_TOOLKIT=gtk2
5161 TK_CFLAGS='$(MOZ_GTK2_CFLAGS)'
5162 TK_LIBS='$(MOZ_GTK2_LIBS)'
5163 AC_DEFINE(MOZ_WIDGET_GTK2)
5164 if test "$no_x" != "yes"; then
5165 AC_MSG_WARN([Disabling X when DirectFB is specified.])
5171 MOZ_WIDGET_TOOLKIT=qt
5173 MOZ_ENABLE_XREMOTE=1
5183 TK_CFLAGS='$(MOZ_QT_CFLAGS)'
5184 TK_LIBS='$(MOZ_QT_LIBS)'
5185 AC_DEFINE(MOZ_WIDGET_QT)
5189 MOZ_WIDGET_TOOLKIT=beos
5191 TK_CFLAGS='$(MOZ_CAIRO_CFLAGS)'
5192 TK_LIBS='$(MOZ_CAIRO_LIBS)'
5196 MOZ_WIDGET_TOOLKIT=os2
5198 TK_CFLAGS='$(MOZ_CAIRO_CFLAGS)'
5199 TK_LIBS='$(MOZ_CAIRO_LIBS)'
5203 MOZ_WIDGET_TOOLKIT=cocoa
5204 AC_DEFINE(MOZ_WIDGET_COCOA)
5205 MOZ_USER_DIR="Mozilla"
5206 AC_DEFINE(XP_MACOSX)
5207 TK_LIBS='-framework QuartzCore -framework Carbon -framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework AddressBook -framework OpenGL'
5208 TK_CFLAGS="-DNO_X11"
5209 LDFLAGS="$LDFLAGS -framework Cocoa -lobjc"
5210 CFLAGS="$CFLAGS $TK_CFLAGS"
5211 CXXFLAGS="$CXXFLAGS $TK_CFLAGS"
5212 LIBXUL_LIBS='$(XPCOM_FROZEN_LDOPTS) $(LIBXUL_DIST)/bin/XUL'
5213 MOZ_FS_LAYOUT=bundle
5218 AC_DEFINE(MOZ_WIDGET_ANDROID)
5219 MOZ_WIDGET_TOOLKIT=android
5225 if test "$MOZ_ENABLE_XREMOTE"; then
5226 AC_DEFINE(MOZ_ENABLE_XREMOTE)
5229 if test "$COMPILE_ENVIRONMENT"; then
5230 if test "$MOZ_ENABLE_GTK2"; then
5231 if test "$MOZ_X11"; then
5232 GDK_PACKAGES=gdk-x11-2.0
5233 elif test "$MOZ_DFB"; then
5234 PKG_CHECK_MODULES(MOZ_DFB, directfb >= 1.1.0)
5235 GDK_PACKAGES=directfb
5238 PKG_CHECK_MODULES(MOZ_GTK2, gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 gobject-2.0 $GDK_PACKAGES)
5241 fi # COMPILE_ENVIRONMENT
5243 AC_SUBST(MOZ_FS_LAYOUT)
5245 dnl ========================================================
5246 dnl Use ARM userspace kernel helpers; tell NSPR to enable
5247 dnl their usage and use them in spidermonkey.
5248 dnl ========================================================
5249 MOZ_ARG_WITH_BOOL(arm-kuser,
5250 [ --with-arm-kuser Use kuser helpers (Linux/ARM only -- requires kernel 2.6.13 or later)],
5252 if test -n "$USE_ARM_KUSER"; then
5253 AC_DEFINE(USE_ARM_KUSER)
5256 dnl ========================================================
5257 dnl = startup-notification support module
5258 dnl ========================================================
5260 if test "$MOZ_ENABLE_GTK2"
5262 MOZ_ENABLE_STARTUP_NOTIFICATION=
5264 MOZ_ARG_ENABLE_BOOL(startup-notification,
5265 [ --enable-startup-notification
5266 Enable startup-notification support (default: disabled) ],
5267 MOZ_ENABLE_STARTUP_NOTIFICATION=force,
5268 MOZ_ENABLE_STARTUP_NOTIFICATION=)
5269 if test "$MOZ_ENABLE_STARTUP_NOTIFICATION"
5271 PKG_CHECK_MODULES(MOZ_STARTUP_NOTIFICATION,
5272 libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_VERSION,
5273 [MOZ_ENABLE_STARTUP_NOTIFICATION=1], [
5274 if test "$MOZ_ENABLE_STARTUP_NOTIFICATION" = "force"
5276 AC_MSG_ERROR([* * * Could not find startup-notification >= $STARTUP_NOTIFICATION_VERSION])
5278 MOZ_ENABLE_STARTUP_NOTIFICATION=
5282 if test "$MOZ_ENABLE_STARTUP_NOTIFICATION"; then
5283 AC_DEFINE(MOZ_ENABLE_STARTUP_NOTIFICATION)
5286 TK_LIBS="$TK_LIBS $MOZ_STARTUP_NOTIFICATION_LIBS"
5288 AC_SUBST(MOZ_ENABLE_STARTUP_NOTIFICATION)
5289 AC_SUBST(MOZ_STARTUP_NOTIFICATION_CFLAGS)
5290 AC_SUBST(MOZ_STARTUP_NOTIFICATION_LIBS)
5292 dnl ========================================================
5294 dnl ========================================================
5295 if test "$MOZ_ENABLE_QT"
5297 MOZ_ARG_WITH_STRING(qtdir,
5298 [ --with-qtdir=\$dir Specify Qt directory ],
5301 if test -z "$QTDIR"; then
5302 PKG_CHECK_MODULES(MOZ_QT, QtGui QtNetwork QtCore QtOpenGL)
5303 AC_CHECK_PROGS(HOST_MOC, $MOC moc, "")
5305 MOZ_QT_LIBS="-L$QTDIR/lib/ -lQtGui -lQtNetwork -lQtCore -lQtDBus -lQtXml -lQtOpenGL"
5307 MOZ_QT_CFLAGS="-DQT_SHARED"
5308 MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include"
5309 MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/Qt"
5310 MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtGui"
5311 MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtCore"
5312 MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtNetwork"
5313 MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtDBus"
5314 MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtXml"
5315 HOST_MOC="$QTDIR/bin/moc"
5317 if test -z "$HOST_MOC"; then
5318 AC_MSG_ERROR([No acceptable moc preprocessor found. Qt SDK is not installed or --with-qt is
5324 AC_SUBST(GTK_CONFIG)
5328 AC_SUBST(MOZ_ENABLE_GTK2)
5329 AC_SUBST(MOZ_ENABLE_PHOTON)
5330 AC_SUBST(MOZ_ENABLE_QT)
5331 AC_SUBST(MOZ_ENABLE_XREMOTE)
5332 AC_SUBST(MOZ_GTK2_CFLAGS)
5333 AC_SUBST(MOZ_GTK2_LIBS)
5334 AC_SUBST(MOZ_QT_CFLAGS)
5335 AC_SUBST(MOZ_QT_LIBS)
5336 AC_SUBST(MOZ_ENABLE_MEEGOTOUCH)
5343 dnl ========================================================
5345 dnl = Components & Features
5347 dnl ========================================================
5348 MOZ_ARG_HEADER(Components and Features)
5350 dnl ========================================================
5352 dnl ========================================================
5353 MOZ_ARG_ENABLE_STRING(ui-locale,
5354 [ --enable-ui-locale=ab-CD
5355 Select the user interface locale (default: en-US)],
5356 MOZ_UI_LOCALE=$enableval )
5357 AC_SUBST(MOZ_UI_LOCALE)
5359 dnl ========================================================
5360 dnl = Trademarked Branding
5361 dnl ========================================================
5362 MOZ_ARG_ENABLE_BOOL(official-branding,
5363 [ --enable-official-branding
5364 Enable Official mozilla.org Branding
5365 Do not distribute builds with
5366 --enable-official-branding unless you have
5367 permission to use trademarks per
5368 http://www.mozilla.org/foundation/trademarks/ .],
5370 if test -z "$MOZ_OFFICIAL_BRANDING_DIRECTORY"; then
5371 AC_MSG_ERROR([You must specify MOZ_OFFICIAL_BRANDING_DIRECTORY to use --enable-official-branding.])
5373 MOZ_BRANDING_DIRECTORY=${MOZ_OFFICIAL_BRANDING_DIRECTORY}
5374 MOZ_OFFICIAL_BRANDING=1
5376 ], MOZ_OFFICIAL_BRANDING=)
5378 AC_SUBST(MOZ_OFFICIAL_BRANDING)
5379 if test -n "$MOZ_OFFICIAL_BRANDING"; then
5380 AC_DEFINE(MOZ_OFFICIAL_BRANDING)
5383 MOZ_ARG_WITH_STRING(branding,
5384 [ --with-branding=dir Use branding from the specified directory.],
5385 MOZ_BRANDING_DIRECTORY=$withval)
5387 REAL_BRANDING_DIRECTORY="${MOZ_BRANDING_DIRECTORY}"
5388 if test -z "$REAL_BRANDING_DIRECTORY"; then
5389 REAL_BRANDING_DIRECTORY=${MOZ_BUILD_APP}/branding/nightly
5392 if test -f "${_topsrcdir}/$REAL_BRANDING_DIRECTORY/configure.sh"; then
5393 . "${_topsrcdir}/$REAL_BRANDING_DIRECTORY/configure.sh"
5396 AC_SUBST(MOZ_BRANDING_DIRECTORY)
5398 dnl ========================================================
5399 dnl = Distribution ID
5400 dnl ========================================================
5401 MOZ_ARG_WITH_STRING(distribution-id,
5402 [ --with-distribution-id=ID
5403 Set distribution-specific id (default=org.mozilla)],
5404 [ val=`echo $withval`
5405 MOZ_DISTRIBUTION_ID="$val"])
5407 if test -z "$MOZ_DISTRIBUTION_ID"; then
5408 MOZ_DISTRIBUTION_ID="org.mozilla"
5411 AC_DEFINE_UNQUOTED(MOZ_DISTRIBUTION_ID,"$MOZ_DISTRIBUTION_ID")
5412 AC_SUBST(MOZ_DISTRIBUTION_ID)
5415 dnl ========================================================
5416 dnl complex text support off by default
5417 dnl ========================================================
5418 MOZ_ARG_DISABLE_BOOL(pango,
5419 [ --disable-pango Disable usage of Pango ],
5423 dnl ========================================================
5425 dnl ========================================================
5426 if test "$MOZ_ENABLE_GTK2"
5430 PKG_CHECK_MODULES(_PANGOCHK, pango >= $PANGO_VERSION)
5432 PKG_CHECK_MODULES(MOZ_PANGO, pango >= $PANGO_VERSION pangoft2 >= $PANGO_VERSION)
5433 AC_SUBST(MOZ_PANGO_CFLAGS)
5434 AC_SUBST(MOZ_PANGO_LIBS)
5435 if test "$MOZ_PANGO"
5437 AC_DEFINE(MOZ_PANGO)
5439 PKG_CHECK_MODULES(FT2, freetype2 > 6.1.0 fontconfig)
5440 AC_SUBST(FT2_CFLAGS)
5445 if test "$MOZ_ENABLE_QT"
5447 if test "$MOZ_PANGO"
5449 PKG_CHECK_MODULES(MOZ_PANGO, [pango >= $PANGO_VERSION pangoft2 >= $PANGO_VERSION],
5451 AC_SUBST(MOZ_PANGO_CFLAGS)
5452 AC_SUBST(MOZ_PANGO_LIBS)
5453 AC_DEFINE(MOZ_PANGO)
5456 echo "Pango library not found, will use FT2 font engine"
5463 dnl ========================================================
5464 dnl = GnomeVFS, GIO and GConf support module
5465 dnl ========================================================
5469 dnl build the gnomevfs extension by default only when the
5470 dnl GTK2 toolkit is in use.
5471 if test "$MOZ_ENABLE_GTK2"
5473 MOZ_ENABLE_GNOMEVFS=1
5477 dnl ========================================================
5478 dnl = GnomeVFS support module
5479 dnl ========================================================
5480 MOZ_ARG_DISABLE_BOOL(gnomevfs,
5481 [ --disable-gnomevfs Disable GnomeVFS support ],
5482 MOZ_ENABLE_GNOMEVFS=,
5483 MOZ_ENABLE_GNOMEVFS=force)
5485 if test "$MOZ_ENABLE_GNOMEVFS"
5487 PKG_CHECK_MODULES(MOZ_GNOMEVFS, gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION,[
5488 MOZ_GNOMEVFS_LIBS=`echo $MOZ_GNOMEVFS_LIBS | sed 's/-llinc\>//'`
5489 MOZ_ENABLE_GNOMEVFS=1
5490 AC_DEFINE(MOZ_ENABLE_GNOMEVFS)
5492 if test "$MOZ_ENABLE_GNOMEVFS" = "force"
5494 AC_MSG_ERROR([* * * Could not find gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION])
5496 MOZ_ENABLE_GNOMEVFS=
5499 if test `echo "$MOZ_EXTENSIONS" | grep -c gnomevfs` -ne 0; then
5500 PKG_CHECK_MODULES(MOZ_GNOMEVFS, gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION,[
5501 MOZ_GNOMEVFS_LIBS=`echo $MOZ_GNOMEVFS_LIBS | sed 's/-llinc\>//'`
5506 AC_SUBST(MOZ_ENABLE_GNOMEVFS)
5507 AC_SUBST(MOZ_GNOMEVFS_CFLAGS)
5508 AC_SUBST(MOZ_GNOMEVFS_LIBS)
5510 dnl ========================================================
5511 dnl = GIO support module
5512 dnl ========================================================
5513 MOZ_ARG_ENABLE_BOOL(gio,
5514 [ --enable-gio Enable GIO support (default: disabled)],
5515 MOZ_ENABLE_GIO=force,
5518 if test "$MOZ_ENABLE_GIO" -a "$MOZ_ENABLE_GTK2"
5520 PKG_CHECK_MODULES(MOZ_GIO, gio-2.0 >= $GIO_VERSION,[
5521 MOZ_GIO_LIBS=`echo $MOZ_GIO_LIBS | sed 's/-llinc\>//'`
5523 AC_DEFINE(MOZ_ENABLE_GIO)
5525 if test "$MOZ_ENABLE_GIO" = "force"
5527 AC_MSG_ERROR([* * * Could not find gio-2.0 >= $GIO_VERSION])
5533 AC_SUBST(MOZ_ENABLE_GIO)
5534 AC_SUBST(MOZ_GIO_CFLAGS)
5535 AC_SUBST(MOZ_GIO_LIBS)
5537 dnl ========================================================
5538 dnl = GConf support module
5539 dnl ========================================================
5540 if test "$MOZ_ENABLE_GCONF"
5542 PKG_CHECK_MODULES(MOZ_GCONF, gconf-2.0 >= $GCONF_VERSION gobject-2.0 ,[
5543 MOZ_GCONF_LIBS=`echo $MOZ_GCONF_LIBS | sed 's/-llinc\>//'`
5546 if test "$MOZ_ENABLE_GCONF" = "force"
5548 AC_MSG_ERROR([* * * Could not find gconf-2.0 ])
5554 if test "$MOZ_ENABLE_GCONF"; then
5555 AC_DEFINE(MOZ_ENABLE_GCONF)
5558 AC_SUBST(MOZ_ENABLE_GCONF)
5559 AC_SUBST(MOZ_GCONF_CFLAGS)
5560 AC_SUBST(MOZ_GCONF_LIBS)
5563 dnl ========================================================
5564 dnl = libproxy support
5565 dnl ========================================================
5567 if test "$MOZ_ENABLE_GTK2"
5569 MOZ_ENABLE_LIBPROXY=
5571 MOZ_ARG_ENABLE_BOOL(libproxy,
5572 [ --enable-libproxy Enable libproxy support ],
5573 MOZ_ENABLE_LIBPROXY=1,
5574 MOZ_ENABLE_LIBPROXY=)
5576 if test "$MOZ_ENABLE_LIBPROXY"
5578 PKG_CHECK_MODULES(MOZ_LIBPROXY, libproxy-1.0)
5579 AC_DEFINE(MOZ_ENABLE_LIBPROXY)
5582 AC_SUBST(MOZ_ENABLE_LIBPROXY)
5583 AC_SUBST(MOZ_LIBPROXY_CFLAGS)
5584 AC_SUBST(MOZ_LIBPROXY_LIBS)
5586 dnl ========================================================
5587 dnl = libnotify support
5588 dnl ========================================================
5590 if test "$MOZ_ENABLE_GTK2"
5592 MOZ_ENABLE_LIBNOTIFY=1
5594 MOZ_ARG_DISABLE_BOOL(libnotify,
5595 [ --disable-libnotify Disable libnotify support ],
5596 MOZ_ENABLE_LIBNOTIFY=,
5597 MOZ_ENABLE_LIBNOTIFY=1)
5599 if test "$MOZ_ENABLE_LIBNOTIFY"
5601 AC_DEFINE(MOZ_ENABLE_LIBNOTIFY)
5605 if test -z "$SKIP_LIBRARY_CHECKS"
5607 if test "$MOZ_ENABLE_GTK2"
5609 if test "$MOZ_ENABLE_LIBNOTIFY"
5611 PKG_CHECK_MODULES(MOZ_LIBNOTIFY, libnotify >= $LIBNOTIFY_VERSION)
5615 AC_SUBST(MOZ_ENABLE_LIBNOTIFY)
5616 AC_SUBST(MOZ_LIBNOTIFY_CFLAGS)
5617 AC_SUBST(MOZ_LIBNOTIFY_LIBS)
5619 dnl ========================================================
5620 dnl = GNOME component (mozgnome)
5621 dnl ========================================================
5623 # The GNOME component is built if one of
5624 # gnome-vfs, gio, gconf or libnotify is available.
5625 if test "$MOZ_ENABLE_GCONF" -o \
5626 "$MOZ_ENABLE_GNOMEVFS" -o \
5627 "$MOZ_ENABLE_GIO" -o \
5628 "$MOZ_ENABLE_LIBNOTIFY"; then
5629 MOZ_ENABLE_GNOME_COMPONENT=1
5631 MOZ_ENABLE_GNOME_COMPONENT=
5633 AC_SUBST(MOZ_ENABLE_GNOME_COMPONENT)
5635 dnl ========================================================
5636 dnl = libgnomeui support module
5637 dnl ========================================================
5639 if test "$MOZ_ENABLE_GTK2"
5641 MOZ_ENABLE_GNOMEUI=1
5643 MOZ_ARG_DISABLE_BOOL(gnomeui,
5644 [ --disable-gnomeui Disable libgnomeui support (default: auto, optional at runtime) ],
5645 MOZ_ENABLE_GNOMEUI=,
5646 MOZ_ENABLE_GNOMEUI=force)
5648 if test "$MOZ_ENABLE_GNOMEUI"
5650 PKG_CHECK_MODULES(MOZ_GNOMEUI, libgnomeui-2.0 >= $GNOMEUI_VERSION,
5652 MOZ_GNOMEUI_LIBS=`echo $MOZ_GNOMEUI_LIBS | sed 's/-llinc\>//'`
5653 MOZ_ENABLE_GNOMEUI=1
5655 if test "$MOZ_ENABLE_GNOMEUI" = "force"
5657 AC_MSG_ERROR([* * * Could not find libgnomeui-2.0 >= $GNOMEUI_VERSION])
5663 if test "$MOZ_ENABLE_GNOMEUI"; then
5664 AC_DEFINE(MOZ_ENABLE_GNOMEUI)
5668 AC_SUBST(MOZ_ENABLE_GNOMEUI)
5669 AC_SUBST(MOZ_GNOMEUI_CFLAGS)
5670 AC_SUBST(MOZ_GNOMEUI_LIBS)
5672 dnl ========================================================
5674 dnl ========================================================
5676 if test "$MOZ_ENABLE_GTK2" -o "$MOZ_ENABLE_QT"
5680 MOZ_ARG_DISABLE_BOOL(dbus,
5681 [ --disable-dbus Disable dbus support ],
5685 if test "$MOZ_ENABLE_DBUS"
5687 PKG_CHECK_MODULES(MOZ_DBUS, dbus-1 >= $DBUS_VERSION)
5688 PKG_CHECK_MODULES(MOZ_DBUS_GLIB, dbus-glib-1 >= $DBUS_VERSION)
5689 AC_DEFINE(MOZ_ENABLE_DBUS)
5692 AC_SUBST(MOZ_ENABLE_DBUS)
5693 AC_SUBST(MOZ_DBUS_CFLAGS)
5694 AC_SUBST(MOZ_DBUS_LIBS)
5695 AC_SUBST(MOZ_DBUS_GLIB_CFLAGS)
5696 AC_SUBST(MOZ_DBUS_GLIB_LIBS)
5698 dnl ========================================================
5699 dnl = Build Personal Security Manager
5700 dnl ========================================================
5701 MOZ_ARG_DISABLE_BOOL(crypto,
5702 [ --disable-crypto Disable crypto support (Personal Security Manager)],
5706 dnl ========================================================
5707 dnl = JS Debugger XPCOM component (js/jsd)
5708 dnl ========================================================
5709 MOZ_ARG_DISABLE_BOOL(jsd,
5710 [ --disable-jsd Disable JavaScript debug library],
5715 dnl ========================================================
5716 dnl = Disable IPC support for tabs and plugins
5717 dnl ========================================================
5718 MOZ_ARG_DISABLE_BOOL(ipc,
5719 [ --disable-ipc Disable IPC supports for tabs and plugins],
5723 if test -n "$MOZ_IPC"; then
5729 dnl ========================================================
5730 dnl = Enable IPDL's "expensive" unit tests
5731 dnl ========================================================
5734 MOZ_ARG_ENABLE_BOOL(ipdl-tests,
5735 [ --enable-ipdl-tests Enable expensive IPDL tests],
5739 if test -z "$MOZ_IPC" -a -n "$MOZ_IPDL_TESTS"; then
5740 AC_MSG_ERROR([--enable-ipdl-tests requires --enable-ipc])
5743 if test -n "$MOZ_IPDL_TESTS"; then
5744 AC_DEFINE(MOZ_IPDL_TESTS)
5747 AC_SUBST(MOZ_IPDL_TESTS)
5749 dnl ========================================================
5750 dnl = Disable plugin support
5751 dnl ========================================================
5752 MOZ_ARG_DISABLE_BOOL(plugins,
5753 [ --disable-plugins Disable plugins support],
5757 dnl ========================================================
5758 dnl = Disable building dbm
5759 dnl ========================================================
5760 MOZ_ARG_DISABLE_BOOL(dbm,
5761 [ --disable-dbm Disable building dbm],
5765 dnl bi-directional support always on
5769 dnl ========================================================
5770 dnl view source support on by default
5771 dnl ========================================================
5772 if test "$MOZ_VIEW_SOURCE"; then
5773 AC_DEFINE(MOZ_VIEW_SOURCE)
5776 dnl ========================================================
5777 dnl accessibility support on by default on all platforms
5779 dnl ========================================================
5780 MOZ_ARG_DISABLE_BOOL(accessibility,
5781 [ --disable-accessibility Disable accessibility support (off by default on OS X)],
5784 if test "$ACCESSIBILITY"; then
5785 AC_DEFINE(ACCESSIBILITY)
5788 if test -n "$ACCESSIBILITY" -a "$COMPILE_ENVIRONMENT" = "1"; then
5790 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
5791 if test "$ac_cv_header_atlbase_h" = "no"; then
5792 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.])
5794 if test "$ac_cv_header_oleacc_idl" = "no"; then
5795 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.])
5801 dnl ========================================================
5802 dnl xpcom js loader support on by default
5803 dnl ========================================================
5804 if test "$MOZ_JSLOADER"; then
5805 AC_DEFINE(MOZ_JSLOADER)
5808 dnl ========================================================
5809 dnl Disable printing
5810 dnl ========================================================
5811 MOZ_ARG_DISABLE_BOOL(printing,
5812 [ --disable-printing Disable printing support],
5816 if test "$MOZ_WIDGET_TOOLKIT" = "qt"; then
5817 AC_MSG_WARN([Printing does not work with Qt at this time. Omitting printing support.])
5821 if test "$NS_PRINTING"; then
5822 AC_DEFINE(NS_PRINTING)
5823 AC_DEFINE(NS_PRINT_PREVIEW)
5825 dnl ========================================================
5826 dnl use native unicode converters
5827 dnl ========================================================
5828 MOZ_ARG_ENABLE_BOOL(native-uconv,
5829 [ --enable-native-uconv Enable iconv support],
5830 MOZ_USE_NATIVE_UCONV=1,
5831 MOZ_USE_NATIVE_UCONV= )
5832 if test "$MOZ_USE_NATIVE_UCONV"; then
5833 AC_DEFINE(MOZ_USE_NATIVE_UCONV)
5835 if test "$OS_ARCH" != "WINCE" -a "$OS_ARCH" != "WINNT" -a "$MOZ_USE_NATIVE_UCONV" -a "$ac_cv_func_iconv" != "yes"; then
5836 AC_MSG_ERROR([iconv() not found. Cannot enable native uconv support.])
5840 dnl ========================================================
5841 dnl Libeditor can be build as plaintext-only,
5842 dnl or as a full html and text editing component.
5843 dnl We build both by default.
5844 dnl ========================================================
5845 MOZ_ARG_ENABLE_BOOL(plaintext-editor-only,
5846 [ --enable-plaintext-editor-only
5847 Allow only plaintext editing],
5848 MOZ_PLAINTEXT_EDITOR_ONLY=1,
5849 MOZ_PLAINTEXT_EDITOR_ONLY= )
5850 dnl Note the #define is MOZILLA, not MOZ, for compat with the Mac build.
5851 AC_SUBST(MOZ_PLAINTEXT_EDITOR_ONLY)
5853 dnl ========================================================
5854 dnl = Disable Fast Load
5855 dnl ========================================================
5856 MOZ_ARG_DISABLE_BOOL(xpcom-fastload,
5857 [ --disable-xpcom-fastload
5858 Disable XPCOM fastload support],
5862 AC_SUBST(MOZ_NO_FAST_LOAD)
5864 if test -n "$MOZ_NO_FAST_LOAD"; then
5865 AC_DEFINE(MOZ_NO_FAST_LOAD)
5871 dnl ========================================================
5872 dnl = Disable Ogg Codecs
5873 dnl ========================================================
5874 MOZ_ARG_DISABLE_BOOL(ogg,
5875 [ --disable-ogg Disable support for OGG media (Theora video and Vorbis audio)],
5879 if test -n "$MOZ_OGG"; then
5885 dnl Checks for __attribute__(aligned()) directive
5886 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
5887 [ac_cv_c_attribute_aligned],
5888 [ac_cv_c_attribute_aligned=0
5889 CFLAGS_save="${CFLAGS}"
5890 CFLAGS="${CFLAGS} -Werror"
5891 for ac_cv_c_attr_align_try in 64 32 16 8; do
5892 echo "trying $ac_cv_c_attr_align_try"
5894 [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
5895 [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
5896 if test "$ac_cv_c_attribute_aligned" != 0; then
5900 CFLAGS="${CFLAGS_save}"])
5901 if test "${ac_cv_c_attribute_aligned}" != "0"; then
5902 AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
5903 [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
5907 dnl ========================================================
5908 dnl = Disable VP8 decoder support
5909 dnl ========================================================
5910 MOZ_ARG_DISABLE_BOOL(webm,
5911 [ --disable-webm Disable support for WebM media (VP8 video and Vorbis audio)],
5915 if test -n "$MOZ_WEBM"; then
5921 dnl Detect if we can use an assembler to compile optimized assembly for libvpx.
5922 dnl For Win32 (MSVC) we must use MASM.
5923 if test "$OS_ARCH" = "WINNT" -a "$CPU_ARCH" = "x86" -a -z "$GNU_CC"; then
5924 AC_MSG_CHECKING([for MASM assembler])
5925 AC_CHECK_PROGS(VPX_AS, ml, "")
5926 if test -n "$VPX_AS"; then
5928 VPX_AS='sh $(topsrcdir)/media/libvpx/yasm2masm-as.sh'
5930 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])
5934 dnl For Darwin x86, Darwin x86_64, Linux x86, and WINNT x86_64
5935 dnl we can use YASM.
5936 AC_MSG_CHECKING([for YASM assembler])
5937 AC_CHECK_PROGS(VPX_AS, $YASM yasm, "")
5938 dnl We have YASM, see if we have assembly on this platform.
5939 case "$OS_ARCH:$OS_TEST" in
5940 Linux:x86|Linux:i?86)
5941 VPX_ASFLAGS="-f elf32 -rnasm -pnasm"
5945 VPX_ASFLAGS="-f elf64 -rnasm -pnasm -DPIC"
5949 VPX_ASFLAGS="-f elf32 -rnasm -pnasm"
5953 VPX_ASFLAGS="-f elf64 -rnasm -pnasm -DPIC"
5957 VPX_ASFLAGS="-f macho32 -rnasm -pnasm -DPIC"
5961 VPX_ASFLAGS="-f macho64 -rnasm -pnasm -DPIC"
5965 if test -z "$GNU_CC"; then
5966 VPX_ASFLAGS="-f x64 -rnasm -pnasm"
5971 if test "$COMPILE_ENVIRONMENT" -a -n "$VPX_X86_ASM" -a -z "$VPX_AS"; then
5972 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.])
5974 fi # end !WINNT_x86_MSVC
5976 if test -n "$VPX_X86_ASM"; then
5977 AC_DEFINE(VPX_X86_ASM)
5979 AC_MSG_WARN([No assembler or assembly support for libvpx, using unoptimized C routines.])
5983 dnl ========================================================
5984 dnl = Disable Wave decoder support
5985 dnl ========================================================
5986 MOZ_ARG_DISABLE_BOOL(wave,
5987 [ --disable-wave Disable Wave decoder support],
5991 if test -n "$MOZ_WAVE"; then
5997 dnl ========================================================
5998 dnl = Handle dependent SYDNEYAUDIO and MEDIA defines
5999 dnl ========================================================
6001 if test -n "$MOZ_SYDNEYAUDIO"; then
6002 AC_DEFINE(MOZ_SYDNEYAUDIO)
6005 if test -n "$MOZ_MEDIA"; then
6006 AC_DEFINE(MOZ_MEDIA)
6009 if test -n "$MOZ_VORBIS"; then
6010 AC_DEFINE(MOZ_VORBIS)
6013 dnl ========================================================
6014 dnl = Check alsa availability on Linux if using sydneyaudio
6015 dnl ========================================================
6017 dnl If using sydneyaudio with Linux, ensure that the alsa library is available
6018 if test -n "$MOZ_SYDNEYAUDIO"; then
6019 case "$target_os" in
6021 PKG_CHECK_MODULES(MOZ_ALSA, alsa, ,
6022 [echo "$MOZ_ALSA_PKG_ERRORS"
6023 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.)])])
6028 dnl ========================================================
6030 dnl ========================================================
6031 AC_ARG_ENABLE(splashscreen,
6032 [ --enable-splashscreen display splashscreen while loading (default=no)],
6033 [enable_splash="yes"],[enable_splash=""])
6034 if test "x$enable_splash" = "xyes"; then
6036 AC_DEFINE(MOZ_SPLASHSCREEN)
6038 AC_SUBST(MOZ_SPLASHSCREEN)
6040 dnl ========================================================
6041 dnl Permissions System
6042 dnl ========================================================
6043 MOZ_ARG_DISABLE_BOOL(permissions,
6044 [ --disable-permissions Disable permissions (popup and cookie blocking)],
6049 dnl ========================================================
6051 dnl ========================================================
6052 MOZ_ARG_DISABLE_BOOL(negotiateauth,
6053 [ --disable-negotiateauth Disable GSS-API negotiation ],
6054 MOZ_AUTH_EXTENSION=,
6055 MOZ_AUTH_EXTENSION=1 )
6057 dnl ========================================================
6059 dnl ========================================================
6060 MOZ_ARG_DISABLE_BOOL(xtf,
6061 [ --disable-xtf Disable XTF (pluggable xml tags) support],
6064 if test "$MOZ_XTF"; then
6068 dnl ========================================================
6069 dnl Pref extensions (autoconfig and system-pref)
6070 dnl ========================================================
6071 MOZ_ARG_DISABLE_BOOL(pref-extensions,
6072 [ --disable-pref-extensions
6073 Disable pref extensions such as autoconfig and
6075 MOZ_PREF_EXTENSIONS=,
6076 MOZ_PREF_EXTENSIONS=1 )
6078 dnl ========================================================
6079 dnl = Universalchardet
6080 dnl ========================================================
6081 MOZ_ARG_DISABLE_BOOL(universalchardet,
6082 [ --disable-universalchardet
6083 Disable universal encoding detection],
6084 MOZ_UNIVERSALCHARDET=,
6085 MOZ_UNIVERSALCHARDET=1 )
6087 dnl ========================================================
6089 dnl ========================================================
6096 MOZ_ARG_ENABLE_BOOL(javaxpcom,
6097 [ --enable-javaxpcom
6098 Enable Java-XPCOM bridge],
6104 if test -n "$JAVA_HOME"; then
6105 JAVA_HOME=`cygpath -u \`cygpath -m -s "$JAVA_HOME"\``
6109 if test -n "$JAVA_HOME"; then
6110 JAVA_HOME=`cd "$JAVA_HOME" && pwd`
6115 if test -n "${JAVA_BIN_PATH}"; then
6116 dnl Look for javac and jar in the specified path.
6117 JAVA_PATH="$JAVA_BIN_PATH"
6119 dnl No path specified, so look for javac and jar in $JAVA_HOME & $PATH.
6120 JAVA_PATH="$JAVA_HOME/bin:$PATH"
6123 MOZ_PATH_PROG(JAVA, java, :, [$JAVA_PATH])
6124 MOZ_PATH_PROG(JAVAC, javac, :, [$JAVA_PATH])
6125 MOZ_PATH_PROG(JAR, jar, :, [$JAVA_PATH])
6127 if test -n "${JAVA_BIN_PATH}" -o "$OS_TARGET" = Android; then
6128 if test -z "$JAVA" -o "$JAVA" = ":" -o -z "$JAVAC" -o "$JAVAC" = ":" -o -z "$JAR" -o "$JAR" = ":"; then
6129 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}])
6133 if test -n "${MOZ_JAVAXPCOM}"; then
6134 if test -n "${JAVA_INCLUDE_PATH}"; then
6135 dnl Make sure jni.h exists in the given include path.
6136 if test ! -f "$JAVA_INCLUDE_PATH/jni.h"; then
6137 AC_MSG_ERROR([jni.h was not found in given include path $JAVA_INCLUDE_PATH.])
6140 case "$target_os" in
6142 dnl Default to java system location
6143 JAVA_INCLUDE_PATH=/System/Library/Frameworks/JavaVM.framework/Headers
6147 JAVA_INCLUDE_PATH="$JAVA_HOME/include"
6150 if test ! -f "$JAVA_INCLUDE_PATH/jni.h"; then
6151 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.])
6156 dnl ========================================================
6157 dnl = Breakpad crash reporting (on by default on supported platforms)
6158 dnl ========================================================
6164 i?86-apple-darwin*|powerpc-apple-darwin*|x86_64-apple-darwin*)
6167 i?86-*-linux*|x86_64-*-linux*|arm-*-linux*)
6175 MOZ_ARG_DISABLE_BOOL(crashreporter,
6176 [ --disable-crashreporter Disable breakpad crash reporting],
6178 MOZ_CRASHREPORTER=1)
6180 if test -n "$MOZ_CRASHREPORTER"; then
6181 AC_DEFINE(MOZ_CRASHREPORTER)
6183 if (test "$OS_ARCH" = "Linux" -o "$OS_ARCH" = "SunOS") && \
6184 test -z "$SKIP_LIBRARY_CHECKS"; then
6185 PKG_CHECK_MODULES(MOZ_GTHREAD, gthread-2.0)
6186 AC_SUBST(MOZ_GTHREAD_CFLAGS)
6187 AC_SUBST(MOZ_GTHREAD_LIBS)
6189 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.])])
6193 MOZ_ARG_WITH_STRING(crashreporter-enable-percent,
6194 [ --with-crashreporter-enable-percent=NN
6195 Enable sending crash reports by default on NN% of users. (default=100)],
6196 [ val=`echo $withval | sed 's/[^0-9]//g'`
6197 MOZ_CRASHREPORTER_ENABLE_PERCENT="$val"])
6199 if test -z "$MOZ_CRASHREPORTER_ENABLE_PERCENT"; then
6200 MOZ_CRASHREPORTER_ENABLE_PERCENT=100
6202 AC_DEFINE_UNQUOTED(MOZ_CRASHREPORTER_ENABLE_PERCENT, $MOZ_CRASHREPORTER_ENABLE_PERCENT)
6204 dnl ========================================================
6205 dnl = Enable compilation of specific extension modules
6206 dnl ========================================================
6208 MOZ_ARG_ENABLE_STRING(extensions,
6209 [ --enable-extensions Enable extensions],
6210 [ for option in `echo $enableval | sed 's/,/ /g'`; do
6211 if test "$option" = "yes" -o "$option" = "all"; then
6212 AC_MSG_ERROR([--enable-extensions=$option is no longer supported.])
6213 elif test "$option" = "no" -o "$option" = "none"; then
6215 elif test "$option" = "default"; then
6216 MOZ_EXTENSIONS="$MOZ_EXTENSIONS $MOZ_EXTENSIONS_DEFAULT"
6217 elif test `echo "$option" | grep -c \^-` != 0; then
6218 option=`echo $option | sed 's/^-//'`
6219 MOZ_EXTENSIONS=`echo "$MOZ_EXTENSIONS" | sed "s/ ${option}//"`
6221 MOZ_EXTENSIONS="$MOZ_EXTENSIONS $option"
6224 MOZ_EXTENSIONS="$MOZ_EXTENSIONS_DEFAULT")
6226 if test -z "$MOZ_ENABLE_GNOMEVFS" -a -z "$MOZ_GNOMEVFS_LIBS" -a `echo "$MOZ_EXTENSIONS" | grep -c gnomevfs` -ne 0; then
6227 # Suppress warning on non-X11 platforms
6228 if test -n "$MOZ_X11"; then
6229 AC_MSG_WARN([Cannot build gnomevfs without required libraries. Removing gnomevfs from MOZ_EXTENSIONS.])
6231 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gnomevfs||'`
6234 dnl Do not build gnomevfs with libxul based apps
6235 if test -n "$LIBXUL_SDK_DIR" -a `echo "$MOZ_EXTENSIONS" | grep -c gnomevfs` -ne 0; then
6236 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gnomevfs||'`
6239 if test -z "$MOZ_ENABLE_GIO" -a `echo "$MOZ_EXTENSIONS" | grep -c gio` -ne 0; then
6240 # Suppress warning on non-X11 platforms
6241 if test -n "$MOZ_X11"; then
6242 AC_MSG_WARN([Cannot build gio without required libraries. Removing gio from MOZ_EXTENSIONS.])
6244 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gio||'`
6247 dnl Do not build gio with libxul based apps
6248 if test -n "$LIBXUL_SDK_DIR" -a `echo "$MOZ_EXTENSIONS" | grep -c gio` -ne 0; then
6249 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gio||'`
6252 if test -z "$MOZ_JSDEBUGGER" -a `echo "$MOZ_EXTENSIONS" | grep -c venkman` -ne 0; then
6253 AC_MSG_WARN([Cannot build venkman without JavaScript debug library. Removing venkman from MOZ_EXTENSIONS.])
6254 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|venkman||'`
6257 dnl This might be temporary: build tridentprofile only on Windows
6258 if test `echo "$MOZ_EXTENSIONS" | grep -c tridentprofile` -ne 0 && test "$OS_ARCH" != "WINNT"; then
6259 AC_MSG_WARN([tridentprofile extension works only on Windows at this time. Removing tridentprofile from MOZ_EXTENSIONS.])
6260 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|tridentprofile||'`
6263 dnl cookie must be built before tridentprofile. put it at list's end.
6264 if test `echo "$MOZ_EXTENSIONS" | grep -c tridentprofile` -ne 0; then
6265 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|tridentprofile||'`
6266 MOZ_EXTENSIONS="$MOZ_EXTENSIONS tridentprofile"
6269 dnl xforms requires xtf and schema-validation
6270 if test -z "$MOZ_XTF" -a `echo "$MOZ_EXTENSIONS" | grep -c xforms` -ne 0; then
6271 AC_MSG_WARN([Cannot build XForms without XTF support. Removing XForms from MOZ_EXTENSIONS.])
6272 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|xforms||g'`
6274 if test `echo "$MOZ_EXTENSIONS" | grep -c xforms` -ne 0 && test `echo "$MOZ_EXTENSIONS" | grep -c schema-validation` -eq 0; then
6275 AC_MSG_WARN([Cannot build XForms without schema validation. Removing XForms from MOZ_EXTENSIONS.])
6276 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|xforms||g'`
6279 if test `echo "$MOZ_EXTENSIONS" | grep -c auth` -ne 0; then
6280 AC_MSG_WARN([auth is no longer an extension, use --disable-negotiateauth to disable.])
6281 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|auth||g'`
6284 if test `echo "$MOZ_EXTENSIONS" | grep -c 'cookie\|permissions'` -ne 0; then
6285 AC_MSG_WARN([cookie and permissions are no longer extensions, use --disable-permissions to disable.])
6286 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|cookie||g; s|permissions||g'`
6289 if test `echo "$MOZ_EXTENSIONS" | grep -c pref` -ne 0; then
6290 AC_MSG_WARN([pref is no longer an extension, use --disable-pref-extensions to disable.])
6291 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|pref||g'`
6294 if test `echo "$MOZ_EXTENSIONS" | grep -c universalchardet` -ne 0; then
6295 AC_MSG_WARN([universalchardet is no longer an extension, use --disable-universalchardet to disable.])
6296 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|universalchardet||g'`
6299 if test `echo "$MOZ_EXTENSIONS" | grep -c java` -ne 0; then
6300 AC_MSG_WARN([java is no longer an extension, use --enable-javaxpcom to enable.])
6301 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|java||g'`
6304 if test `echo "$MOZ_EXTENSIONS" | grep -c spellcheck` -ne 0; then
6305 AC_MSG_WARN([spellcheck is no longer an extension.])
6306 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|spellcheck||g'`
6310 MOZ_EXTENSIONS=`${PERL} ${srcdir}/build/unix/uniq.pl ${MOZ_EXTENSIONS}`
6312 dnl Ensure every extension exists, to avoid mostly-inscrutable error messages
6313 dnl when trying to build a nonexistent extension.
6314 for extension in $MOZ_EXTENSIONS; do
6315 if test ! -d "${srcdir}/extensions/${extension}"; then
6316 AC_MSG_ERROR([Unrecognized extension provided to --enable-extensions: ${extension}.])
6320 dnl ========================================================
6322 dnl ========================================================
6323 MOZ_ARG_ENABLE_STRING(image-encoders,
6324 [ --enable-image-encoders[={mod1,mod2,default,all,none}]
6325 Enable specific image encoders],
6326 [ for option in `echo $enableval | sed 's/,/ /g'`; do
6327 if test "$option" = "yes" -o "$option" = "all"; then
6328 addencoder="$MOZ_IMG_ENCODERS_DEFAULT"
6329 elif test "$option" = "no" -o "$option" = "none"; then
6332 elif test "$option" = "default"; then
6333 addencoder="$MOZ_IMG_ENCODERS_DEFAULT"
6334 elif test `echo "$option" | grep -c \^-` != 0; then
6335 option=`echo $option | sed 's/^-//'`
6336 addencoder=`echo "$MOZ_IMG_ENCODERS" | sed "s/ ${option}//"`
6338 addencoder="$option"
6340 MOZ_IMG_ENCODERS="$MOZ_IMG_ENCODERS $addencoder"
6342 MOZ_IMG_ENCODERS="$MOZ_IMG_ENCODERS_DEFAULT")
6345 MOZ_IMG_ENCODERS=`${PERL} ${srcdir}/build/unix/uniq.pl ${MOZ_IMG_ENCODERS}`
6347 dnl ========================================================
6348 dnl MathML on by default
6349 dnl ========================================================
6350 MOZ_ARG_DISABLE_BOOL(mathml,
6351 [ --disable-mathml Disable MathML support],
6354 if test "$MOZ_MATHML"; then
6355 AC_DEFINE(MOZ_MATHML)
6358 dnl ========================================================
6360 dnl ========================================================
6361 MOZ_ARG_DISABLE_BOOL(svg,
6362 [ --disable-svg Disable SVG support],
6365 if test -n "$MOZ_SVG"; then
6369 dnl ========================================================
6371 dnl ========================================================
6373 MOZ_ARG_DISABLE_BOOL(smil,
6374 [ --disable-smil Disable SMIL animation support],
6377 # Automatically disable SMIL if SVG is disabled
6378 if test -z "$MOZ_SVG"; then
6381 if test -n "$MOZ_SMIL"; then
6385 dnl ========================================================
6386 dnl Build Freetype in the tree
6387 dnl ========================================================
6388 MOZ_ARG_ENABLE_BOOL(tree-freetype,
6389 [ --enable-tree-freetype Enable Tree FreeType],
6390 MOZ_TREE_FREETYPE=1,
6391 MOZ_TREE_FREETYPE= )
6392 if test -n "$MOZ_TREE_FREETYPE"; then
6393 AC_DEFINE(MOZ_TREE_FREETYPE)
6394 AC_SUBST(MOZ_TREE_FREETYPE)
6395 MOZ_ENABLE_CAIRO_FT=1
6396 FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
6397 FT2_CFLAGS='-I$(topsrcdir)/modules/freetype2/include'
6398 CAIRO_FT_CFLAGS='-I$(topsrcdir)/modules/freetype2/include'
6399 FT2_LIBS='$(call EXPAND_LIBNAME_PATH,freetype2,$(LIBXUL_DIST)/lib)'
6400 CAIRO_FT_LIBS='$(call EXPAND_LIBNAME_PATH,freetype2,$(LIBXUL_DIST)/lib)'
6401 AC_DEFINE(HAVE_FT_BITMAP_SIZE_Y_PPEM)
6402 AC_DEFINE(HAVE_FT_GLYPHSLOT_EMBOLDEN)
6403 AC_DEFINE(HAVE_FT_LOAD_SFNT_TABLE)
6404 AC_SUBST(CAIRO_FT_CFLAGS)
6408 dnl ========================================================
6410 dnl ========================================================
6411 case "$target_os" in
6412 aix*|solaris*|linux*|msvc*|mks*|cygwin*|mingw*|os2*|wince*|winmo*)
6417 MOZ_ARG_DISABLE_BOOL(installer,
6418 [ --disable-installer Disable building of installer],
6421 if test -n "$MOZ_INSTALLER" -a "$OS_ARCH" = "WINNT"; then
6422 # Disable installer for Windows builds that use the new toolkit if the
6423 # required major version and minimum minor version of Unicode NSIS isn't in
6425 REQ_NSIS_MAJOR_VER=2
6426 MIN_NSIS_MINOR_VER=33
6427 MOZ_PATH_PROGS(MAKENSISU, $MAKENSISU makensisu-2.46 makensisu makensis)
6428 if test -z "$MAKENSISU" -o "$MAKENSISU" = ":"; then
6429 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.])
6432 MAKENSISU_VER=`"$MAKENSISU" -version 2>/dev/null | sed -e '/-Unicode/!s/.*//g' -e 's/^v\([0-9]\+\.[0-9]\+\)\-Unicode$/\1/g'`
6434 if test ! "$MAKENSISU_VER" == ""; then
6435 MAKENSISU_MAJOR_VER=`echo $MAKENSISU_VER | $AWK -F\. '{ print $1 }'`
6436 MAKENSISU_MINOR_VER=`echo $MAKENSISU_VER | $AWK -F\. '{ print $2 }'`
6438 AC_MSG_CHECKING([for Unicode NSIS with major version == $REQ_NSIS_MAJOR_VER and minor version >= $MIN_NSIS_MINOR_VER])
6439 if test "$MAKENSISU_VER" == "" -o \
6440 ! "$MAKENSISU_MAJOR_VER" == "$REQ_NSIS_MAJOR_VER" -o \
6441 ! "$MAKENSISU_MINOR_VER" -ge $MIN_NSIS_MINOR_VER; then
6443 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.])
6445 AC_MSG_RESULT([yes])
6446 MAKENSISU="${CYGWIN_WRAPPER} $MAKENSISU"
6449 AC_SUBST(MOZ_INSTALLER)
6451 AC_MSG_CHECKING([for tar archiver])
6452 AC_CHECK_PROGS(TAR, gnutar gtar tar, "")
6453 if test -z "$TAR"; then
6454 AC_MSG_ERROR([no tar archiver found in \$PATH])
6456 AC_MSG_RESULT([$TAR])
6459 AC_MSG_CHECKING([for wget])
6460 AC_CHECK_PROGS(WGET, wget, "")
6461 AC_MSG_RESULT([$WGET])
6464 dnl ========================================================
6466 dnl ========================================================
6468 MOZ_ARG_DISABLE_BOOL(updater,
6469 [ --disable-updater Disable building of updater],
6473 if test -n "$MOZ_UPDATER"; then
6474 AC_DEFINE(MOZ_UPDATER)
6477 # app update channel is 'default' when not supplied.
6478 MOZ_ARG_ENABLE_STRING([update-channel],
6479 [ --enable-update-channel=CHANNEL
6480 Select application update channel (default=default)],
6481 MOZ_UPDATE_CHANNEL=`echo $enableval | tr A-Z a-z`)
6483 if test -z "$MOZ_UPDATE_CHANNEL"; then
6484 MOZ_UPDATE_CHANNEL=default
6486 AC_DEFINE_UNQUOTED(MOZ_UPDATE_CHANNEL, $MOZ_UPDATE_CHANNEL)
6487 AC_SUBST(MOZ_UPDATE_CHANNEL)
6489 # tools/update-packaging is not checked out by default.
6490 MOZ_ARG_ENABLE_BOOL(update-packaging,
6491 [ --enable-update-packaging
6492 Enable tools/update-packaging],
6493 MOZ_UPDATE_PACKAGING=1,
6494 MOZ_UPDATE_PACKAGING= )
6495 AC_SUBST(MOZ_UPDATE_PACKAGING)
6497 dnl ========================================================
6499 dnl ========================================================
6501 MOZ_ARG_DISABLE_BOOL(xpconnect-idispatch,
6502 [ --disable-xpconnect-idispatch
6503 Disable building of xpconnect support for IDispatch
6505 XPC_IDISPATCH_SUPPORT=,
6506 XPC_IDISPATCH_SUPPORT=1)
6507 AC_SUBST(XPC_IDISPATCH_SUPPORT)
6509 MOZ_ARG_DISABLE_BOOL(activex,
6510 [ --disable-activex Disable building of ActiveX control (win32 only)],
6511 MOZ_NO_ACTIVEX_SUPPORT=1,
6512 MOZ_NO_ACTIVEX_SUPPORT= )
6513 AC_SUBST(MOZ_NO_ACTIVEX_SUPPORT)
6515 MOZ_ARG_ENABLE_BOOL(activex-scripting,
6516 [ --enable-activex-scripting
6517 Enable building of ActiveX scripting support (win32)],
6518 MOZ_ACTIVEX_SCRIPTING_SUPPORT=1,
6519 MOZ_ACTIVEX_SCRIPTING_SUPPORT=)
6520 AC_SUBST(MOZ_ACTIVEX_SCRIPTING_SUPPORT)
6522 if test -n "$MOZ_NO_ACTIVEX_SUPPORT" -a -n "$MOZ_ACTIVEX_SCRIPTING_SUPPORT";
6524 AC_MSG_ERROR([Cannot enable ActiveX scripting support when ActiveX support is disabled.])
6527 if test "$COMPILE_ENVIRONMENT" = "1"; then
6528 if test -n "$XPC_IDISPATCH_SUPPORT" -o -n "$MOZ_ACTIVEX_SCRIPTING_SUPPORT" -o -z "$MOZ_NO_ACTIVEX_SUPPORT"; then
6530 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
6531 if test "$ac_cv_header_atlbase_h" = "no"; then
6532 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.])
6539 dnl ========================================================
6541 dnl ========================================================
6542 MOZ_ARG_ENABLE_BOOL(leaky,
6543 [ --enable-leaky Build leaky memory tool],
6548 dnl ========================================================
6549 dnl build the tests by default
6550 dnl ========================================================
6551 MOZ_ARG_DISABLE_BOOL(tests,
6552 [ --disable-tests Do not build test libraries & programs],
6556 dnl ========================================================
6557 dnl parental controls (for Windows Vista)
6558 dnl ========================================================
6559 MOZ_ARG_DISABLE_BOOL(parental-controls,
6560 [ --disable-parental-controls
6561 Do not build parental controls],
6562 MOZ_DISABLE_PARENTAL_CONTROLS=1,
6563 MOZ_DISABLE_PARENTAL_CONTROLS=)
6564 if test -n "$MOZ_DISABLE_PARENTAL_CONTROLS"; then
6565 AC_DEFINE(MOZ_DISABLE_PARENTAL_CONTROLS)
6568 AC_SUBST(MOZ_DISABLE_PARENTAL_CONTROLS)
6570 dnl ========================================================
6572 dnl = Module specific options
6574 dnl ========================================================
6575 MOZ_ARG_HEADER(Individual module options)
6577 dnl ========================================================
6578 dnl = Disable feed handling components
6579 dnl ========================================================
6580 MOZ_ARG_DISABLE_BOOL(feeds,
6581 [ --disable-feeds Disable feed handling and processing components],
6584 if test -n "$MOZ_FEEDS"; then
6585 AC_DEFINE(MOZ_FEEDS)
6587 if test "$MOZ_BUILD_APP" = "browser"; then
6588 AC_MSG_ERROR([Cannot build Firefox with --disable-feeds.])
6592 dnl ========================================================
6593 dnl = Enable mozStorage
6594 dnl ========================================================
6595 dnl Implicitly enabled by default if building calendar or places
6596 MOZ_ARG_ENABLE_BOOL(storage,
6597 [ --enable-storage Enable mozStorage module and related components],
6600 if test -n "$MOZ_STORAGE"; then
6601 AC_DEFINE(MOZ_STORAGE)
6604 dnl ========================================================
6605 dnl Check for sqlite
6606 dnl ========================================================
6609 MOZ_ARG_ENABLE_BOOL(system-sqlite,
6610 [ --enable-system-sqlite Use system sqlite (located with pkgconfig)],
6611 MOZ_NATIVE_SQLITE=1,
6612 MOZ_NATIVE_SQLITE= )
6614 if test -z "$MOZ_NATIVE_SQLITE"
6617 SQLITE_LIBS='$(call EXPAND_LIBNAME_PATH,mozsqlite3,$(DIST)/lib)'
6619 dnl ============================
6620 dnl === SQLite Version check ===
6621 dnl ============================
6622 dnl Check to see if the system SQLite package is new enough.
6623 PKG_CHECK_MODULES(SQLITE, sqlite3 >= $SQLITE_VERSION)
6625 dnl ==================================
6626 dnl === SQLITE_SECURE_DELETE check ===
6627 dnl ==================================
6628 dnl Check to see if the system SQLite package is compiled with
6629 dnl SQLITE_SECURE_DELETE enabled.
6630 AC_MSG_CHECKING(for SQLITE_SECURE_DELETE support in system SQLite)
6631 _SAVE_CFLAGS="$CFLAGS"
6632 CFLAGS="$CFLAGS $SQLITE_CFLAGS"
6634 LIBS="$LIBS $SQLITE_LIBS"
6635 AC_CACHE_VAL(ac_cv_sqlite_secure_delete,[
6637 #include "sqlite3.h"
6639 int main(int argc, char **argv){
6640 return !sqlite3_compileoption_used("SQLITE_SECURE_DELETE");
6642 ac_cv_sqlite_secure_delete=yes,
6643 ac_cv_sqlite_secure_delete=no,
6644 ac_cv_sqlite_secure_delete=no
6647 AC_MSG_RESULT($ac_cv_sqlite_secure_delete)
6648 CFLAGS="$_SAVE_CFLAGS"
6650 if test "x$ac_cv_sqlite_secure_delete" = "xno"; then
6651 AC_MSG_ERROR([System SQLite library is not compiled with SQLITE_SECURE_DELETE.])
6654 dnl ===============================
6655 dnl === SQLITE_THREADSAFE check ===
6656 dnl ===============================
6657 dnl Check to see if the system SQLite package is compiled with
6658 dnl SQLITE_THREADSAFE enabled.
6659 AC_MSG_CHECKING(for SQLITE_THREADSAFE support in system SQLite)
6660 _SAVE_CFLAGS="$CFLAGS"
6661 CFLAGS="$CFLAGS $SQLITE_CFLAGS"
6663 LIBS="$LIBS $SQLITE_LIBS"
6664 AC_CACHE_VAL(ac_cv_sqlite_threadsafe,[
6666 #include "sqlite3.h"
6668 int main(int argc, char **argv){
6669 return !sqlite3_compileoption_used("SQLITE_THREADSAFE=1");
6671 ac_cv_sqlite_threadsafe=yes,
6672 ac_cv_sqlite_threadsafe=no,
6673 ac_cv_sqlite_threadsafe=no
6676 AC_MSG_RESULT($ac_cv_sqlite_threadsafe)
6677 CFLAGS="$_SAVE_CFLAGS"
6679 if test "x$ac_cv_sqlite_threadsafe" = "xno"; then
6680 AC_MSG_ERROR([System SQLite library is not compiled with SQLITE_THREADSAFE.])
6683 dnl ================================
6684 dnl === SQLITE_ENABLE_FTS3 check ===
6685 dnl ================================
6686 dnl check to see if the system SQLite package is compiled with
6687 dnl SQLITE_ENABLE_FTS3 enabled.
6688 AC_MSG_CHECKING(for SQLITE_ENABLE_FTS3 support in system SQLite)
6689 _SAVE_CFLAGS="$CFLAGS"
6690 CFLAGS="$CFLAGS $SQLITE_CFLAGS"
6692 LIBS="$LIBS $SQLITE_LIBS"
6693 AC_CACHE_VAL(ac_cv_sqlite_enable_fts3,[
6695 #include "sqlite3.h"
6697 int main(int argc, char **argv){
6698 return !sqlite3_compileoption_used("SQLITE_ENABLE_FTS3");
6700 ac_cv_sqlite_enable_fts3=yes,
6701 ac_cv_sqlite_enable_fts3=no,
6702 ac_cv_sqlite_enable_fts3=no
6705 AC_MSG_RESULT($ac_cv_sqlite_enable_fts3)
6706 CFLAGS="$_SAVE_CFLAGS"
6708 if test "x$ac_cv_sqlite_enable_fts3" = "xno"; then
6709 AC_MSG_ERROR([System SQLite library is not compiled with SQLITE_ENABLE_FTS3.])
6712 dnl =========================================
6713 dnl === SQLITE_ENABLE_UNLOCK_NOTIFY check ===
6714 dnl =========================================
6715 dnl check to see if the system SQLite package is compiled with
6716 dnl SQLITE_ENABLE_UNLOCK_NOTIFY enabled.
6717 AC_MSG_CHECKING(for SQLITE_ENABLE_UNLOCK_NOTIFY support in system SQLite)
6718 _SAVE_CFLAGS="$CFLAGS"
6719 CFLAGS="$CFLAGS $SQLITE_CFLAGS"
6721 LIBS="$LIBS $SQLITE_LIBS"
6722 AC_CACHE_VAL(ac_cv_sqlite_enable_unlock_notify,[
6724 #include "sqlite3.h"
6726 int main(int argc, char **argv){
6727 return !sqlite3_compileoption_used("SQLITE_ENABLE_UNLOCK_NOTIFY");
6729 ac_cv_sqlite_enable_unlock_notify=yes,
6730 ac_cv_sqlite_enable_unlock_notify=no,
6731 ac_cv_sqlite_enable_unlock_notify=no
6734 AC_MSG_RESULT($ac_cv_sqlite_enable_unlock_notify)
6735 CFLAGS="$_SAVE_CFLAGS"
6737 if test "x$ac_cv_sqlite_enable_unlock_notify" = "xno"; then
6738 AC_MSG_ERROR([System SQLite library is not compiled with SQLITE_ENABLE_UNLOCK_NOTIFY.])
6742 AC_SUBST(MOZ_NATIVE_SQLITE)
6744 dnl ========================================================
6745 dnl = Enable help viewer (off by default)
6746 dnl ========================================================
6747 if test -n "$MOZ_HELP_VIEWER"; then
6748 dnl Do this if defined in confvars.sh
6749 AC_DEFINE(MOZ_HELP_VIEWER)
6752 dnl ========================================================
6753 dnl = Enable safe browsing (anti-phishing)
6754 dnl ========================================================
6755 MOZ_ARG_ENABLE_BOOL(safe-browsing,
6756 [ --enable-safe-browsing Enable safe browsing (anti-phishing) implementation],
6757 MOZ_SAFE_BROWSING=1,
6758 MOZ_SAFE_BROWSING= )
6759 if test -n "$MOZ_SAFE_BROWSING"; then
6760 AC_DEFINE(MOZ_SAFE_BROWSING)
6762 AC_SUBST(MOZ_SAFE_BROWSING)
6764 dnl ========================================================
6765 dnl = Enable faststart component
6766 dnl ========================================================
6767 MOZ_ARG_ENABLE_BOOL(faststart,
6768 [ --enable-faststart Enable the faststart component],
6771 if test -n "$MOZ_FASTSTART"; then
6772 AC_DEFINE(MOZ_FASTSTART)
6774 AC_SUBST(MOZ_FASTSTART)
6776 dnl ========================================================
6777 dnl = Enable url-classifier
6778 dnl ========================================================
6779 dnl Implicitly enabled by default if building with safe-browsing
6780 if test -n "$MOZ_SAFE_BROWSING"; then
6781 MOZ_URL_CLASSIFIER=1
6783 MOZ_ARG_ENABLE_BOOL(url-classifier,
6784 [ --enable-url-classifier Enable url classifier module],
6785 MOZ_URL_CLASSIFIER=1,
6786 MOZ_URL_CLASSIFIER= )
6787 if test -n "$MOZ_URL_CLASSIFIER"; then
6788 AC_DEFINE(MOZ_URL_CLASSIFIER)
6790 AC_SUBST(MOZ_URL_CLASSIFIER)
6792 dnl ========================================================
6793 dnl = Disable zipwriter
6794 dnl ========================================================
6795 MOZ_ARG_DISABLE_BOOL(zipwriter,
6796 [ --disable-zipwriter Disable zipwriter component],
6799 AC_SUBST(MOZ_ZIPWRITER)
6801 dnl ========================================================
6802 dnl = Disable libconic
6803 dnl ========================================================
6804 MOZ_ENABLE_LIBCONIC=1
6805 MOZ_ARG_DISABLE_BOOL(libconic,
6806 [ --disable-libconic Disable libconic],
6807 MOZ_ENABLE_LIBCONIC=,
6808 MOZ_ENABLE_LIBCONIC=1 )
6810 if test -n "$MOZ_ENABLE_LIBCONIC"; then
6811 PKG_CHECK_MODULES(LIBCONIC, conic,
6812 MOZ_ENABLE_LIBCONIC=1,
6813 MOZ_ENABLE_LIBCONIC=)
6815 if test "$MOZ_ENABLE_LIBCONIC"; then
6816 AC_DEFINE(MOZ_ENABLE_LIBCONIC)
6819 AC_SUBST(MOZ_ENABLE_LIBCONIC)
6820 AC_SUBST(LIBCONIC_CFLAGS)
6821 AC_SUBST(LIBCONIC_LIBS)
6823 dnl ========================================================
6825 dnl ========================================================
6827 MAEMO_SDK_TARGET_VER=-1
6829 MOZ_ARG_WITH_STRING(maemo-version,
6830 [ --with-maemo-version=MAEMO_SDK_TARGET_VER
6832 MAEMO_SDK_TARGET_VER=$withval)
6834 case "$MAEMO_SDK_TARGET_VER" in
6836 MOZ_PLATFORM_MAEMO=5
6840 MOZ_PLATFORM_MAEMO=6
6844 dnl We aren't compiling for Maemo, move on.
6847 AC_MSG_ERROR([Unknown Maemo Version. Try setting --with-maemo-version to 5 or 6.])
6851 if test $MOZ_PLATFORM_MAEMO; then
6852 AC_DEFINE_UNQUOTED([MOZ_PLATFORM_MAEMO], $MOZ_PLATFORM_MAEMO)
6854 if test -z "$MOZ_ENABLE_DBUS"; then
6855 AC_MSG_ERROR([DBus is required when building for Maemo])
6858 MOZ_GFX_OPTIMIZE_MOBILE=1
6860 MOZ_MAEMO_LIBLOCATION=
6862 if test $MOZ_PLATFORM_MAEMO = 5; then
6863 dnl if we have Xcomposite we should also have Xdamage and Xfixes
6864 AC_CHECK_HEADERS([X11/extensions/Xdamage.h], [],
6865 [AC_MSG_ERROR([Couldn't find X11/extensions/Xdamage.h which is required for composited plugins.])])
6866 AC_CHECK_LIB(Xcomposite, XCompositeRedirectWindow, [XCOMPOSITE_LIBS="-lXcomposite -lXdamage -lXfixes"],
6867 [MISSING_X="$MISSING_X -lXcomposite"], $XLIBS)
6869 AC_SUBST(XCOMPOSITE_LIBS)
6871 PKG_CHECK_MODULES(LIBHILDONMIME,libhildonmime, _LIB_FOUND=1, _LIB_FOUND=)
6872 MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBHILDONMIME_LIBS"
6873 MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBHILDONMIME_CFLAGS"
6874 if test -z "$_LIB_FOUND"; then
6875 AC_MSG_ERROR([Hildon Mime is required when building for Maemo])
6879 PKG_CHECK_MODULES(LIBOSSO,libosso, _LIB_FOUND=1, _LIB_FOUND=)
6880 MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBOSSO_LIBS"
6881 MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBOSSO_CFLAGS"
6882 if test -z "$_LIB_FOUND"; then
6883 AC_MSG_ERROR([LibOSSO is required when building for Maemo])
6886 PKG_CHECK_MODULES(LIBHILDONFM,hildon-fm-2, _LIB_FOUND=1, _LIB_FOUND=)
6887 MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBHILDONFM_LIBS"
6888 MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBHILDONFM_CFLAGS"
6889 if test -z "$_LIB_FOUND"; then
6890 AC_MSG_ERROR([Hildon FM-2 is required when building for Maemo])
6894 if test $MOZ_PLATFORM_MAEMO = 6; then
6895 PKG_CHECK_MODULES(LIBCONTENTACTION, contentaction-0.1, _LIB_FOUND=1, _LIB_FOUND=)
6896 MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBCONTENTACTION_LIBS"
6897 MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBCONTENTACTION_CFLAGS"
6898 if test -z "$_LIB_FOUND"; then
6899 AC_MSG_ERROR([libcontentaction is required when build for Maemo])
6903 PKG_CHECK_MODULES(MOZ_MEEGOTOUCH, meegotouchcore)
6904 MOZ_ENABLE_MEEGOTOUCH=1
6905 AC_DEFINE(MOZ_ENABLE_MEEGOTOUCH)
6906 MOZ_QT_CFLAGS="$MOZ_MEEGOTOUCH_CFLAGS $MOZ_QT_CFLAGS"
6907 MOZ_QT_LIBS="$MOZ_MEEGOTOUCH_LIBS $MOZ_QT_LIBS"
6910 PKG_CHECK_MODULES(LIBLOCATION,liblocation, _LIB_FOUND=1, _LIB_FOUND=)
6911 MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBLOCATION_LIBS"
6912 MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBLOCATION_CFLAGS"
6913 if test "$_LIB_FOUND"; then
6914 MOZ_MAEMO_LIBLOCATION=1
6915 AC_DEFINE(MOZ_MAEMO_LIBLOCATION)
6917 AC_MSG_WARN([Cannot liblocation-dev. Disabling Maemo geolocation.])
6919 AC_SUBST(MOZ_MAEMO_LIBLOCATION)
6921 AC_SUBST(MOZ_PLATFORM_MAEMO_LIBS)
6922 AC_SUBST(MOZ_PLATFORM_MAEMO_CFLAGS)
6925 dnl ========================================================
6926 dnl = Enable building the Thumb2 instruction set
6927 dnl ========================================================
6928 MOZ_ARG_ENABLE_BOOL(thumb2,
6929 [ --enable-thumb2 Enable Thumb2 instruction set],
6933 if test -n "$MOZ_THUMB2"; then
6934 case "$target_cpu" in
6936 if test "$GNU_CC"; then
6937 CFLAGS="$CFLAGS -march=armv7-a -mthumb -Wa, -march=armv7-a -Wa, -mthumb"
6938 CXXFLAGS="$CXXFLAGS -march=armv7-a -mthumb -Wa, -march=armv7-a -Wa, -mthumb"
6939 ASFLAGS="$ASFLAGS -march=armv7-a -mthumb"
6941 AC_MSG_ERROR([--enable-thumb2 is not supported for non-GNU toolchains])
6945 AC_MSG_ERROR([--enable-thumb2 is not supported for non-ARM CPU architectures])
6950 dnl ========================================================
6951 dnl = faststripe theme
6952 dnl ========================================================
6953 MOZ_ARG_ENABLE_BOOL(faststripe,
6954 [ --enable-faststripe Use faststripe theme],
6955 MOZ_THEME_FASTSTRIPE=1,
6956 MOZ_THEME_FASTSTRIPE= )
6957 AC_SUBST(MOZ_THEME_FASTSTRIPE)
6959 dnl ========================================================
6961 dnl = Feature options that require extra sources to be pulled
6963 dnl ========================================================
6964 dnl MOZ_ARG_HEADER(Features that require extra sources)
6966 dnl ========================================================
6968 dnl = Debugging Options
6970 dnl ========================================================
6971 MOZ_ARG_HEADER(Debugging and Optimizations)
6973 dnl ========================================================
6974 dnl = Disable building with debug info.
6975 dnl = Debugging is OFF by default
6976 dnl ========================================================
6977 if test -z "$MOZ_DEBUG_FLAGS"; then
6978 MOZ_DEBUG_FLAGS="-g"
6981 MOZ_ARG_ENABLE_STRING(debug,
6982 [ --enable-debug[=DBG] Enable building with developer debug info
6983 (using compiler flags DBG)],
6984 [ if test "$enableval" != "no"; then
6986 if test -n "$enableval" -a "$enableval" != "yes"; then
6987 MOZ_DEBUG_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'`
6988 _MOZ_DEBUG_FLAGS_SET=1
6995 MOZ_DEBUG_ENABLE_DEFS="-DDEBUG -D_DEBUG -DTRACING"
6996 MOZ_ARG_WITH_STRING(debug-label,
6997 [ --with-debug-label=LABELS
6998 Define DEBUG_<value> for each comma-separated
7000 [ for option in `echo $withval | sed 's/,/ /g'`; do
7001 MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_${option}"
7004 MOZ_DEBUG_DISABLE_DEFS="-DNDEBUG -DTRIMMED"
7006 if test -n "$MOZ_DEBUG"; then
7007 AC_MSG_CHECKING([for valid debug flags])
7008 _SAVE_CFLAGS=$CFLAGS
7009 CFLAGS="$CFLAGS $MOZ_DEBUG_FLAGS"
7010 AC_TRY_COMPILE([#include <stdio.h>],
7011 [printf("Hello World\n");],
7014 AC_MSG_RESULT([$_results])
7015 if test "$_results" = "no"; then
7016 AC_MSG_ERROR([These compiler flags are invalid: $MOZ_DEBUG_FLAGS])
7018 CFLAGS=$_SAVE_CFLAGS
7021 dnl ========================================================
7022 dnl enable mobile optimizations
7023 dnl ========================================================
7024 MOZ_ARG_ENABLE_BOOL(mobile-optimize,
7025 [ --enable-mobile-optimize
7026 Enable mobile optimizations],
7027 MOZ_GFX_OPTIMIZE_MOBILE=1)
7029 AC_SUBST(MOZ_GFX_OPTIMIZE_MOBILE)
7031 if test "$MOZ_GFX_OPTIMIZE_MOBILE"; then
7032 AC_DEFINE(MOZ_GFX_OPTIMIZE_MOBILE)
7035 dnl ========================================================
7036 dnl = Enable code optimization. ON by default.
7037 dnl ========================================================
7038 if test -z "$MOZ_OPTIMIZE_FLAGS"; then
7039 MOZ_OPTIMIZE_FLAGS="-O"
7042 MOZ_ARG_ENABLE_STRING(optimize,
7043 [ --disable-optimize Disable compiler optimization
7044 --enable-optimize=[OPT] Specify compiler optimization flags [OPT=-O]],
7045 [ if test "$enableval" != "no"; then
7047 if test -n "$enableval" -a "$enableval" != "yes"; then
7048 MOZ_OPTIMIZE_FLAGS=`echo "$enableval" | sed -e 's|\\\ | |g'`
7053 fi ], MOZ_OPTIMIZE=1)
7055 if test "$COMPILE_ENVIRONMENT"; then
7056 if test -n "$MOZ_OPTIMIZE"; then
7057 AC_MSG_CHECKING([for valid optimization flags])
7058 _SAVE_CFLAGS=$CFLAGS
7059 CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS"
7060 AC_TRY_COMPILE([#include <stdio.h>],
7061 [printf("Hello World\n");],
7064 AC_MSG_RESULT([$_results])
7065 if test "$_results" = "no"; then
7066 AC_MSG_ERROR([These compiler flags are invalid: $MOZ_OPTIMIZE_FLAGS])
7068 CFLAGS=$_SAVE_CFLAGS
7070 fi # COMPILE_ENVIRONMENT
7072 AC_SUBST(MOZ_OPTIMIZE)
7073 AC_SUBST(MOZ_OPTIMIZE_FLAGS)
7074 AC_SUBST(MOZ_OPTIMIZE_LDFLAGS)
7075 AC_SUBST(MOZ_OPTIMIZE_SIZE_TWEAK)
7077 dnl ========================================================
7078 dnl = (Deprecated) generation of debugger info for specific modules
7079 dnl ========================================================
7080 MOZ_ARG_ENABLE_STRING(debugger-info-modules,
7081 [ --enable-debugger-info-modules
7082 Enable/disable debugger info for specific modules],
7083 [ if test "$enableval" != "no"; then
7084 AC_MSG_WARN([--enable-debugger-info-modules is deprecated, use --enable-debug-symbols instead])
7088 dnl ========================================================
7089 dnl = Enable generation of debug symbols
7090 dnl ========================================================
7091 MOZ_ARG_ENABLE_STRING(debug-symbols,
7092 [ --enable-debug-symbols[=DBG]
7093 Enable debugging symbols (using compiler flags DBG)],
7094 [ if test "$enableval" != "no"; then
7096 if test -n "$enableval" -a "$enableval" != "yes"; then
7097 if test -z "$_MOZ_DEBUG_FLAGS_SET"; then
7098 MOZ_DEBUG_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'`
7100 AC_MSG_ERROR([--enable-debug-symbols flags cannot be used with --enable-debug flags])
7105 if test -n "$MOZ_DEBUG" -o -n "$MOZ_DEBUG_SYMBOLS"; then
7106 AC_DEFINE(MOZ_DEBUG_SYMBOLS)
7107 export MOZ_DEBUG_SYMBOLS
7110 dnl ========================================================
7111 dnl = Disable any treating of compile warnings as errors
7112 dnl ========================================================
7113 MOZ_ARG_DISABLE_BOOL(warnings-as-errors,
7114 [ --disable-warnings-as-errors
7115 Disable treating of warnings as errors],
7116 MOZ_DISABLE_WARNINGS_AS_ERRORS=1,
7117 MOZ_DISABLE_WARNINGS_AS_ERRORS= )
7118 if test "$MOZ_DISABLE_WARNINGS_AS_ERRORS"; then
7119 WARNINGS_AS_ERRORS=''
7122 dnl ========================================================
7123 dnl = Disable runtime logging checks
7124 dnl ========================================================
7125 MOZ_ARG_DISABLE_BOOL(logging,
7126 [ --disable-logging Disable logging facilities],
7127 NS_DISABLE_LOGGING=1,
7128 NS_DISABLE_LOGGING= )
7129 if test "$NS_DISABLE_LOGGING"; then
7130 AC_DEFINE(NS_DISABLE_LOGGING)
7132 AC_DEFINE(MOZ_LOGGING)
7135 dnl ========================================================
7136 dnl = This will enable logging of addref, release, ctor, dtor.
7137 dnl ========================================================
7138 _ENABLE_LOGREFCNT=42
7139 MOZ_ARG_ENABLE_BOOL(logrefcnt,
7140 [ --enable-logrefcnt Enable logging of refcounts (default=debug) ],
7141 _ENABLE_LOGREFCNT=1,
7142 _ENABLE_LOGREFCNT= )
7143 if test "$_ENABLE_LOGREFCNT" = "1"; then
7144 AC_DEFINE(FORCE_BUILD_REFCNT_LOGGING)
7145 elif test -z "$_ENABLE_LOGREFCNT"; then
7146 AC_DEFINE(NO_BUILD_REFCNT_LOGGING)
7149 dnl ========================================================
7150 dnl = Enable trace malloc
7151 dnl ========================================================
7152 NS_TRACE_MALLOC=${MOZ_TRACE_MALLOC}
7153 MOZ_ARG_ENABLE_BOOL(trace-malloc,
7154 [ --enable-trace-malloc Enable malloc tracing],
7157 if test "$NS_TRACE_MALLOC"; then
7158 # Please, Mr. Linker Man, don't take away our symbol names
7159 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS=
7161 AC_DEFINE(NS_TRACE_MALLOC)
7163 AC_SUBST(NS_TRACE_MALLOC)
7165 dnl ========================================================
7166 dnl = Enable jemalloc
7167 dnl ========================================================
7168 MOZ_ARG_ENABLE_BOOL(jemalloc,
7169 [ --enable-jemalloc Replace memory allocator with jemalloc],
7173 if test "$NS_TRACE_MALLOC"; then
7177 if test "$MOZ_MEMORY"; then
7179 dnl Don't try to run compiler tests on Windows
7180 if test "$OS_ARCH" = "WINNT"; then
7181 if test -z "$HAVE_64BIT_OS"; then
7182 AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 2)
7184 AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 3)
7187 AC_CHECK_SIZEOF([int *], [4])
7188 case "${ac_cv_sizeof_int_p}" in
7190 AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 2)
7193 AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 3)
7196 AC_MSG_ERROR([Unexpected pointer size])
7201 AC_DEFINE(MOZ_MEMORY)
7202 if test "x$MOZ_DEBUG" = "x1"; then
7203 AC_DEFINE(MOZ_MEMORY_DEBUG)
7205 dnl The generic feature tests that determine how to compute ncpus are long and
7206 dnl complicated. Therefore, simply define special cpp variables for the
7207 dnl platforms we have special knowledge of.
7210 AC_DEFINE(MOZ_MEMORY_DARWIN)
7213 AC_DEFINE(MOZ_MEMORY_BSD)
7216 AC_DEFINE(MOZ_MEMORY_LINUX)
7219 AC_DEFINE(MOZ_MEMORY_BSD)
7222 AC_DEFINE(MOZ_MEMORY_SOLARIS)
7224 *-msvc*|*-mks*|*-cygwin*|*-mingw*)
7225 AC_DEFINE(MOZ_MEMORY_WINDOWS)
7226 dnl This is sort of awful. Will revisit if we add support for more versions
7227 if test "$CC_VERSION" != "14.00.50727.762" -a "$CC_VERSION" != "15.00.30729.01"; then
7228 AC_MSG_ERROR([Building jemalloc requires exactly Visual C++ 2005 SP1 or 2008 SP1 currently.])
7230 if test -z "$WIN32_CRT_SRC_DIR"; then
7231 if test -z "$VCINSTALLDIR" -o ! -d "$VCINSTALLDIR"; then
7232 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).])
7234 WIN32_CRT_SRC_DIR="$VCINSTALLDIR\crt\src"
7238 case "${target_cpu}" in
7240 MOZ_CRT_CPU_ARCH=intel
7243 MOZ_CRT_CPU_ARCH=amd64
7246 AC_MSG_ERROR([--enable-jemalloc not supported on ${target}])
7250 AC_SUBST(MOZ_CRT_CPU_ARCH)
7252 if test ! -d "$WIN32_CRT_SRC_DIR"; then
7253 AC_MSG_ERROR([Invalid Win32 CRT source directory: ${WIN32_CRT_SRC_DIR}])
7255 WIN32_CRT_SRC_DIR=`cd "$WIN32_CRT_SRC_DIR" && pwd -W`
7256 _objdir_win=`pwd -W`
7257 WIN32_CUSTOM_CRT_DIR="$_objdir_win/memory/jemalloc/crtsrc/build/$MOZ_CRT_CPU_ARCH"
7258 MOZ_MEMORY_LDFLAGS="-MANIFEST:NO -LIBPATH:\"$WIN32_CUSTOM_CRT_DIR\" -NODEFAULTLIB:msvcrt -NODEFAULTLIB:msvcrtd -NODEFAULTLIB:msvcprt -NODEFAULTLIB:msvcprtd -DEFAULTLIB:mozcrt19 -DEFAULTLIB:mozcpp19"
7259 dnl Also pass this to NSPR/NSS
7260 DLLFLAGS="$DLLFLAGS $MOZ_MEMORY_LDFLAGS"
7264 AC_DEFINE(MOZ_MEMORY_WINCE)
7265 AC_DEFINE(MOZ_MEMORY_WINDOWS)
7266 if test -z "$WINCE_WINDOWS_MOBILE"; then
7267 AC_DEFINE(MOZ_MEMORY_WINCE6)
7271 AC_DEFINE(MOZ_MEMORY_WINCE)
7272 AC_DEFINE(MOZ_MEMORY_WINDOWS)
7275 AC_DEFINE(MOZ_MEMORY_LINUX)
7276 AC_DEFINE(MOZ_MEMORY_ANDROID)
7278 export WRAP_MALLOC_LIB="-L$_objdir/dist/lib -lmozalloc"
7281 AC_MSG_ERROR([--enable-jemalloc not supported on ${target}])
7285 if test "$OS_ARCH" != "Darwin"; then
7286 dnl NB: this must be kept in sync with jemalloc.h
7287 AC_DEFINE(HAVE_JEMALLOC_VALLOC)
7288 AC_DEFINE(HAVE_JEMALLOC_POSIX_MEMALIGN)
7289 AC_DEFINE(HAVE_JEMALLOC_MEMALIGN)
7292 AC_SUBST(MOZ_MEMORY)
7293 AC_SUBST(MOZ_MEMORY_LDFLAGS)
7294 AC_SUBST(WIN32_CRT_SRC_DIR)
7295 dnl Need to set this for make because NSS doesn't have configure
7298 dnl ========================================================
7299 dnl = Use malloc wrapper lib
7300 dnl ========================================================
7301 MOZ_ARG_ENABLE_BOOL(wrap-malloc,
7302 [ --enable-wrap-malloc Wrap malloc calls (gnu linker only)],
7306 if test -n "$_WRAP_MALLOC"; then
7307 if test "$GNU_CC"; then
7308 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"
7309 MKSHLIB='$(CXX) $(DSO_LDOPTS) $(WRAP_MALLOC_CFLAGS) $(WRAP_MALLOC_LIB) -o $@'
7313 dnl ========================================================
7314 dnl = Location of malloc wrapper lib
7315 dnl ========================================================
7316 MOZ_ARG_WITH_STRING(wrap-malloc,
7317 [ --with-wrap-malloc=DIR Location of malloc wrapper library],
7318 WRAP_MALLOC_LIB=$withval)
7320 dnl ========================================================
7321 dnl = Use JS Call tracing
7322 dnl ========================================================
7323 MOZ_ARG_ENABLE_BOOL(trace-jscalls,
7324 [ --enable-trace-jscalls Enable JS call enter/exit callback (default=no)],
7325 MOZ_TRACE_JSCALLS=1,
7326 MOZ_TRACE_JSCALLS= )
7327 if test -n "$MOZ_TRACE_JSCALLS"; then
7328 AC_DEFINE(MOZ_TRACE_JSCALLS)
7331 dnl ========================================================
7333 dnl ========================================================
7334 MOZ_ARG_ENABLE_BOOL(tracevis,
7335 [ --enable-tracevis Enable TraceVis tracing tool (default=no)],
7338 if test -n "$MOZ_TRACEVIS"; then
7339 AC_DEFINE(MOZ_TRACEVIS)
7342 dnl ========================================================
7344 dnl ========================================================
7345 MOZ_ARG_ENABLE_BOOL(gctimer,
7346 [ --enable-gctimer Enable GC timer (default=no)],
7349 if test -n "$MOZ_GCTIMER"; then
7350 AC_DEFINE(MOZ_GCTIMER)
7353 dnl ========================================================
7355 dnl ========================================================
7356 MOZ_ARG_ENABLE_BOOL(valgrind,
7357 [ --enable-valgrind Enable Valgrind integration hooks (default=no)],
7360 if test -n "$MOZ_VALGRIND"; then
7361 AC_CHECK_HEADER([valgrind/valgrind.h], [],
7363 [--enable-valgrind specified but Valgrind is not installed]))
7364 AC_DEFINE(MOZ_VALGRIND)
7367 dnl ========================================================
7369 dnl ========================================================
7370 MOZ_ARG_ENABLE_BOOL(jprof,
7371 [ --enable-jprof Enable jprof profiling tool (needs mozilla/tools/jprof)],
7374 if test -n "$MOZ_JPROF"; then
7375 AC_DEFINE(MOZ_JPROF)
7378 dnl ========================================================
7380 dnl ========================================================
7381 MOZ_ARG_ENABLE_BOOL(shark,
7382 [ --enable-shark Enable shark remote profiling (needs CHUD framework)],
7385 if test -n "$MOZ_SHARK"; then
7386 AC_DEFINE(MOZ_SHARK)
7389 dnl ========================================================
7391 dnl ========================================================
7392 MOZ_ARG_ENABLE_BOOL(callgrind,
7393 [ --enable-callgrind Enable callgrind profiling],
7396 if test -n "$MOZ_CALLGRIND"; then
7397 AC_DEFINE(MOZ_CALLGRIND)
7400 dnl ========================================================
7402 dnl ========================================================
7403 MOZ_ARG_ENABLE_BOOL(vtune,
7404 [ --enable-vtune Enable vtune profiling],
7407 if test -n "$MOZ_VTUNE"; then
7408 AC_DEFINE(MOZ_VTUNE)
7411 dnl ========================================================
7412 dnl Zealous JavaScript GC
7413 dnl ========================================================
7414 MOZ_ARG_ENABLE_BOOL(gczeal,
7415 [ --enable-gczeal Enable zealous JavaScript GCing],
7418 if test -n "$JS_GC_ZEAL"; then
7419 AC_DEFINE(JS_GC_ZEAL)
7422 dnl ======================================================
7423 dnl = Enable compiling with ccache
7424 dnl ======================================================
7425 MOZ_ARG_WITH_STRING(ccache,
7426 [ --with-ccache[=path/to/ccache]
7427 Enable compiling with ccache],
7428 CCACHE=$withval, CCACHE="no")
7430 if test "$CCACHE" != "no"; then
7431 if test -z "$CCACHE" -o "$CCACHE" = "yes"; then
7434 if test ! -e "$CCACHE"; then
7435 AC_MSG_ERROR([$CCACHE not found])
7438 MOZ_PATH_PROGS(CCACHE, $CCACHE ccache)
7439 if test -z "$CCACHE" -o "$CCACHE" = ":"; then
7440 AC_MSG_ERROR([ccache not found])
7441 elif test -x "$CCACHE"; then
7445 AC_MSG_ERROR([$CCACHE is not executable])
7449 dnl ========================================================
7450 dnl = Enable static checking using gcc-dehydra
7451 dnl ========================================================
7453 MOZ_ARG_WITH_STRING(static-checking,
7454 [ --with-static-checking=path/to/gcc_dehydra.so
7455 Enable static checking of code using GCC-dehydra],
7456 DEHYDRA_PATH=$withval,
7459 if test -n "$DEHYDRA_PATH"; then
7460 if test ! -f "$DEHYDRA_PATH"; then
7461 AC_MSG_ERROR([The dehydra plugin is not at the specified path.])
7463 AC_DEFINE(NS_STATIC_CHECKING)
7465 AC_SUBST(DEHYDRA_PATH)
7467 dnl ========================================================
7468 dnl = Enable stripping of libs & executables
7469 dnl ========================================================
7470 MOZ_ARG_ENABLE_BOOL(strip,
7471 [ --enable-strip Enable stripping of libs & executables ],
7475 dnl ========================================================
7476 dnl = Enable stripping of libs & executables when packaging
7477 dnl ========================================================
7478 MOZ_ARG_ENABLE_BOOL(install-strip,
7479 [ --enable-install-strip Enable stripping of libs & executables when packaging ],
7483 dnl ========================================================
7484 dnl = --enable-elf-dynstr-gc
7485 dnl ========================================================
7486 MOZ_ARG_ENABLE_BOOL(elf-dynstr-gc,
7487 [ --enable-elf-dynstr-gc Enable elf dynstr garbage collector (opt builds only)],
7488 USE_ELF_DYNSTR_GC=1,
7489 USE_ELF_DYNSTR_GC= )
7491 dnl ========================================================
7493 dnl = Profiling and Instrumenting
7495 dnl ========================================================
7496 MOZ_ARG_HEADER(Profiling and Instrumenting)
7498 dnl ========================================================
7499 dnl = Enable timeline service, which provides lightweight
7500 dnl = instrumentation of mozilla for performance measurement.
7501 dnl = Timeline is off by default.
7502 dnl ========================================================
7503 MOZ_ARG_ENABLE_BOOL(timeline,
7504 [ --enable-timeline Enable timeline services ],
7507 if test -n "$MOZ_TIMELINE"; then
7508 AC_DEFINE(MOZ_TIMELINE)
7511 dnl ========================================================
7512 dnl = Enable NS_FUNCTION_TIMER, which provides Function
7513 dnl = timing for identifying code bottlenecks
7514 dnl = NS_FUNCTION_TIMER is off by default.
7515 dnl ========================================================
7516 MOZ_ARG_ENABLE_BOOL(functiontimer,
7517 [ --enable-functiontimer Enable NS_FUNCTION_TIMER ],
7518 NS_FUNCTION_TIMER=1,
7519 NS_FUNCTION_TIMER= )
7520 if test -n "$NS_FUNCTION_TIMER"; then
7521 AC_DEFINE(NS_FUNCTION_TIMER)
7524 dnl ========================================================
7525 dnl Turn on reflow counting
7526 dnl ========================================================
7527 MOZ_ARG_ENABLE_BOOL(reflow-perf,
7528 [ --enable-reflow-perf Enable reflow performance tracing],
7531 if test -n "$MOZ_REFLOW_PERF"; then
7532 AC_DEFINE(MOZ_REFLOW_PERF)
7535 dnl ========================================================
7536 dnl Enable code size metrics.
7537 dnl ========================================================
7538 MOZ_ARG_ENABLE_BOOL(codesighs,
7539 [ --enable-codesighs Enable code size analysis tools],
7540 _ENABLE_CODESIGHS=1,
7541 _ENABLE_CODESIGHS= )
7542 if test -n "$_ENABLE_CODESIGHS"; then
7543 if test -d $srcdir/tools/codesighs; then
7546 AC_MSG_ERROR([Codesighs directory $srcdir/tools/codesighs required.])
7550 dnl ========================================================
7551 dnl = Support for Quantify (Windows)
7552 dnl ========================================================
7553 MOZ_ARG_ENABLE_BOOL(quantify,
7554 [ --enable-quantify Enable Quantify support (Windows only) ],
7558 dnl ========================================================
7559 dnl = Support for demangling undefined symbols
7560 dnl ========================================================
7561 if test -z "$SKIP_LIBRARY_CHECKS"; then
7564 AC_CHECK_FUNCS(__cxa_demangle, HAVE_DEMANGLE=1, HAVE_DEMANGLE=)
7568 # Demangle only for debug or trace-malloc builds
7569 MOZ_DEMANGLE_SYMBOLS=
7570 if test "$HAVE_DEMANGLE" -a "$HAVE_GCC3_ABI" && test "$MOZ_DEBUG" -o "$NS_TRACE_MALLOC"; then
7571 MOZ_DEMANGLE_SYMBOLS=1
7572 AC_DEFINE(MOZ_DEMANGLE_SYMBOLS)
7574 AC_SUBST(MOZ_DEMANGLE_SYMBOLS)
7576 dnl ========================================================
7577 dnl = Support for gcc stack unwinding (from gcc 3.3)
7578 dnl ========================================================
7579 if test "$HAVE_GCC3_ABI" -a -z "$SKIP_LIBRARY_CHECKS"; then
7580 AC_CHECK_HEADER(unwind.h, AC_CHECK_FUNCS(_Unwind_Backtrace))
7583 dnl ========================================================
7587 dnl ========================================================
7588 MOZ_ARG_HEADER(Misc. Options)
7590 dnl ========================================================
7591 dnl update xterm title
7592 dnl ========================================================
7593 MOZ_ARG_ENABLE_BOOL(xterm-updates,
7594 [ --enable-xterm-updates Update XTERM titles with current command.],
7598 dnl =========================================================
7600 dnl =========================================================
7601 MOZ_ARG_ENABLE_STRING([chrome-format],
7602 [ --enable-chrome-format=jar|flat|both|symlink|omni
7603 Select FORMAT of chrome files (default=jar)],
7604 MOZ_CHROME_FILE_FORMAT=`echo $enableval | tr A-Z a-z`)
7606 if test -z "$MOZ_CHROME_FILE_FORMAT"; then
7607 MOZ_CHROME_FILE_FORMAT=jar
7610 if test "$MOZ_CHROME_FILE_FORMAT" != "jar" &&
7611 test "$MOZ_CHROME_FILE_FORMAT" != "flat" &&
7612 test "$MOZ_CHROME_FILE_FORMAT" != "symlink" &&
7613 test "$MOZ_CHROME_FILE_FORMAT" != "both" &&
7614 test "$MOZ_CHROME_FILE_FORMAT" != "omni"; then
7615 AC_MSG_ERROR([--enable-chrome-format must be set to either jar, flat, both, symlink, or omni])
7618 dnl =========================================================
7619 dnl Omnijar packaging (bug 552121)
7620 dnl =========================================================
7621 dnl Omnijar packaging is compatible with flat packaging.
7622 dnl In unpackaged builds, omnijar looks for files as if
7623 dnl things were flat packaged. After packaging, all files
7624 dnl are loaded from a single jar. MOZ_CHROME_FILE_FORMAT
7625 dnl is set to flat since putting files into jars is only
7626 dnl done during packaging with omnijar.
7627 if test "$MOZ_CHROME_FILE_FORMAT" = "omni"; then
7629 AC_DEFINE(MOZ_OMNIJAR)
7630 MOZ_CHROME_FILE_FORMAT=flat
7631 elif test "$MOZ_CHROME_FILE_FORMAT" = "jar"; then
7632 AC_DEFINE(MOZ_CHROME_FILE_FORMAT_JAR)
7635 AC_SUBST(MOZ_OMNIJAR)
7637 dnl ========================================================
7638 dnl = Define default location for MOZILLA_FIVE_HOME
7639 dnl ========================================================
7640 MOZ_ARG_WITH_STRING(default-mozilla-five-home,
7641 [ --with-default-mozilla-five-home
7642 Set the default value for MOZILLA_FIVE_HOME],
7643 [ val=`echo $withval`
7644 AC_DEFINE_UNQUOTED(MOZ_DEFAULT_MOZILLA_FIVE_HOME,"$val") ])
7646 dnl ========================================================
7647 dnl = Location of the mozilla user directory (default is ~/.mozilla).],
7648 dnl ========================================================
7649 MOZ_ARG_WITH_STRING(user-appdir,
7650 [ --with-user-appdir=DIR Set user-specific appdir (default=.mozilla)],
7651 [ val=`echo $withval`
7652 if echo "$val" | grep "\/" >/dev/null; then
7653 AC_MSG_ERROR("Homedir must be single relative path.")
7658 AC_DEFINE_UNQUOTED(MOZ_USER_DIR,"$MOZ_USER_DIR")
7660 dnl ========================================================
7661 dnl = Doxygen configuration
7662 dnl ========================================================
7663 dnl Use commas to specify multiple dirs to this arg
7664 MOZ_DOC_INPUT_DIRS='./dist/include ./dist/idl'
7665 MOZ_ARG_WITH_STRING(doc-input-dirs,
7666 [ --with-doc-input-dirs=DIRS
7667 Header/idl dirs to create docs from],
7668 [ MOZ_DOC_INPUT_DIRS=`echo "$withval" | sed "s/,/ /g"` ] )
7669 AC_SUBST(MOZ_DOC_INPUT_DIRS)
7671 dnl Use commas to specify multiple dirs to this arg
7672 MOZ_DOC_INCLUDE_DIRS='./dist/include ./dist/include/nspr'
7673 MOZ_ARG_WITH_STRING(doc-include-dirs,
7674 [ --with-doc-include-dirs=DIRS
7675 Include dirs to preprocess doc headers],
7676 [ MOZ_DOC_INCLUDE_DIRS=`echo "$withval" | sed "s/,/ /g"` ] )
7677 AC_SUBST(MOZ_DOC_INCLUDE_DIRS)
7679 MOZ_DOC_OUTPUT_DIR='./dist/docs'
7680 MOZ_ARG_WITH_STRING(doc-output-dir,
7681 [ --with-doc-output-dir=DIR
7682 Dir to generate docs into],
7683 [ MOZ_DOC_OUTPUT_DIR=$withval ] )
7684 AC_SUBST(MOZ_DOC_OUTPUT_DIR)
7686 if test -z "$SKIP_COMPILER_CHECKS"; then
7687 dnl ========================================================
7689 dnl = Compiler Options
7691 dnl ========================================================
7692 MOZ_ARG_HEADER(Compiler Options)
7694 dnl ========================================================
7695 dnl Check for gcc -pipe support
7696 dnl ========================================================
7697 AC_MSG_CHECKING([for gcc -pipe support])
7698 if test -n "$GNU_CC" -a -n "$GNU_CXX" -a -n "$GNU_AS"; then
7699 echo '#include <stdio.h>' > dummy-hello.c
7700 echo 'int main() { printf("Hello World\n"); exit(0); }' >> dummy-hello.c
7701 ${CC} -S dummy-hello.c -o dummy-hello.s 2>&5
7702 cat dummy-hello.s 2> /dev/null | ${AS_BIN} -o dummy-hello.S - 2>&5
7703 if test $? = 0; then
7708 if test "$_res_as_stdin" = "yes"; then
7709 _SAVE_CFLAGS=$CFLAGS
7710 CFLAGS="$CFLAGS -pipe"
7711 AC_TRY_COMPILE( [ #include <stdio.h> ],
7712 [printf("Hello World\n");],
7713 [_res_gcc_pipe="yes"],
7714 [_res_gcc_pipe="no"] )
7715 CFLAGS=$_SAVE_CFLAGS
7717 if test "$_res_as_stdin" = "yes" -a "$_res_gcc_pipe" = "yes"; then
7719 CFLAGS="$CFLAGS -pipe"
7720 CXXFLAGS="$CXXFLAGS -pipe"
7724 rm -f dummy-hello.c dummy-hello.s dummy-hello.S dummy-hello a.out
7725 AC_MSG_RESULT([$_res])
7730 dnl ========================================================
7731 dnl Profile guided optimization
7732 dnl ========================================================
7733 dnl Test for profiling options
7734 dnl Under gcc 3.4+, use -fprofile-generate/-fprofile-use
7736 dnl Provide a switch to disable PGO even when called via profiledbuild.
7737 MOZ_ARG_DISABLE_BOOL(profile-guided-optimization,
7738 [ --disable-profile-guided-optimization
7739 Don't build with PGO even if called via make profiledbuild],
7740 MOZ_PROFILE_GUIDED_OPTIMIZE_DISABLE=1,
7741 MOZ_PROFILE_GUIDED_OPTIMIZE_DISABLE=)
7743 AC_SUBST(MOZ_PROFILE_GUIDED_OPTIMIZE_DISABLE)
7745 _SAVE_CFLAGS="$CFLAGS"
7746 CFLAGS="$CFLAGS -fprofile-generate -fprofile-correction"
7748 AC_MSG_CHECKING([whether C compiler supports -fprofile-generate])
7749 AC_TRY_COMPILE([], [return 0;],
7750 [ PROFILE_GEN_CFLAGS="-fprofile-generate"
7751 result="yes" ], result="no")
7752 AC_MSG_RESULT([$result])
7754 if test $result = "yes"; then
7755 PROFILE_GEN_LDFLAGS="-fprofile-generate"
7756 PROFILE_USE_CFLAGS="-fprofile-use -fprofile-correction -Wcoverage-mismatch -freorder-blocks-and-partition"
7757 PROFILE_USE_LDFLAGS="-fprofile-use"
7760 CFLAGS="$_SAVE_CFLAGS"
7762 if test -n "$INTEL_CC"; then
7763 PROFILE_GEN_CFLAGS="-prof-gen -prof-dir ."
7764 PROFILE_GEN_LDFLAGS=
7765 PROFILE_USE_CFLAGS="-prof-use -prof-dir ."
7766 PROFILE_USE_LDFLAGS=
7769 dnl Sun Studio on Solaris
7770 if test "$SOLARIS_SUNPRO_CC"; then
7771 PROFILE_GEN_CFLAGS="-xprofile=collect:$_objdir/$enable_application"
7772 PROFILE_GEN_LDFLAGS="-xprofile=collect:$_objdir/$enable_application"
7773 PROFILE_USE_CFLAGS="-xprofile=use:$_objdir/$enable_application"
7774 PROFILE_USE_LDFLAGS="-xprofile=use:$_objdir/$enable_application"
7777 AC_SUBST(PROFILE_GEN_CFLAGS)
7778 AC_SUBST(PROFILE_GEN_LDFLAGS)
7779 AC_SUBST(PROFILE_USE_CFLAGS)
7780 AC_SUBST(PROFILE_USE_LDFLAGS)
7784 dnl ========================================================
7785 dnl Test for -pedantic bustage
7786 dnl ========================================================
7787 MOZ_ARG_DISABLE_BOOL(pedantic,
7788 [ --disable-pedantic Issue all warnings demanded by strict ANSI C ],
7790 if test "$_PEDANTIC"; then
7791 _SAVE_CXXFLAGS=$CXXFLAGS
7792 CXXFLAGS="$CXXFLAGS ${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-pedantic ${_COMPILER_PREFIX}-Wno-long-long"
7793 AC_MSG_CHECKING([whether C++ compiler has -pedantic long long bug])
7794 AC_TRY_COMPILE([$configure_static_assert_macros],
7795 [CONFIGURE_STATIC_ASSERT(sizeof(long long) == 8)],
7796 result="no", result="yes" )
7797 AC_MSG_RESULT([$result])
7798 CXXFLAGS="$_SAVE_CXXFLAGS"
7802 _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} ${_COMPILER_PREFIX}-pedantic ${_COMPILER_PREFIX}-Wno-long-long"
7803 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-pedantic ${_COMPILER_PREFIX}-Wno-long-long"
7806 AC_MSG_ERROR([Your compiler appears to have a known bug where long long is miscompiled when using -pedantic. Reconfigure using --disable-pedantic. ])
7811 dnl ========================================================
7812 dnl Test for correct temporary object destruction order
7813 dnl ========================================================
7814 dnl We want to make sure the compiler follows the C++ spec here as
7815 dnl xpcom and the string classes depend on it (bug 235381).
7816 AC_MSG_CHECKING([for correct temporary object destruction order])
7817 AC_TRY_RUN([ class A {
7818 public: A(int& x) : mValue(x) {}
7820 operator char**() { return 0; }
7821 private: int& mValue;
7823 void func(char **arg) {}
7834 result="yes", result="no", result="maybe")
7835 AC_MSG_RESULT([$result])
7837 if test "$result" = "no"; then
7838 AC_MSG_ERROR([Your compiler does not follow the C++ specification for temporary object destruction order.])
7841 dnl ========================================================
7842 dnl Autoconf test for gcc 2.7.2.x (and maybe others?) so that we don't
7843 dnl provide non-const forms of the operator== for comparing nsCOMPtrs to
7844 dnl raw pointers in nsCOMPtr.h. (VC++ has the same bug.)
7845 dnl ========================================================
7846 _SAVE_CXXFLAGS=$CXXFLAGS
7847 CXXFLAGS="$CXXFLAGS ${_WARNINGS_CXXFLAGS}"
7848 AC_CACHE_CHECK(for correct overload resolution with const and templates,
7849 ac_nscap_nonconst_opeq_bug,
7858 template <class T, class U>
7859 int operator==(const Pointer<T>& rhs, U* lhs)
7861 return rhs.myPtr == lhs;
7864 template <class T, class U>
7865 int operator==(const Pointer<T>& rhs, const U* lhs)
7867 return rhs.myPtr == lhs;
7875 ac_nscap_nonconst_opeq_bug="no",
7876 ac_nscap_nonconst_opeq_bug="yes")])
7877 CXXFLAGS="$_SAVE_CXXFLAGS"
7879 if test "$ac_nscap_nonconst_opeq_bug" = "yes" ; then
7880 AC_DEFINE(NSCAP_DONT_PROVIDE_NONCONST_OPEQ)
7882 fi # SKIP_COMPILER_CHECKS
7884 dnl ========================================================
7886 dnl Should be smarter and check that the compiler does indeed have rtti
7887 dnl ========================================================
7889 MOZ_ARG_ENABLE_BOOL(cpp-rtti,
7890 [ --enable-cpp-rtti Enable C++ RTTI ],
7891 [ _MOZ_USE_RTTI=1 ],
7894 if test "$_MOZ_USE_RTTI"; then
7895 _MOZ_RTTI_FLAGS=$_MOZ_RTTI_FLAGS_ON
7897 _MOZ_RTTI_FLAGS=$_MOZ_RTTI_FLAGS_OFF
7900 AC_SUBST(_MOZ_RTTI_FLAGS_ON)
7902 dnl ========================================================
7903 dnl C++ exceptions (g++/VC/irix6/Sun only - for now)
7904 dnl Should be smarter and check that the compiler does indeed have exceptions
7905 dnl ========================================================
7906 MOZ_ARG_ENABLE_BOOL(cpp-exceptions,
7907 [ --enable-cpp-exceptions Enable C++ exceptions ],
7908 [ _MOZ_CPP_EXCEPTIONS=1 ],
7909 [ _MOZ_CPP_EXCEPTIONS= ])
7911 if test "$_MOZ_CPP_EXCEPTIONS"; then
7912 _MOZ_EXCEPTIONS_FLAGS=$_MOZ_EXCEPTIONS_FLAGS_ON
7913 AC_DEFINE(MOZ_CPP_EXCEPTIONS)
7915 _MOZ_EXCEPTIONS_FLAGS=$_MOZ_EXCEPTIONS_FLAGS_OFF
7918 AC_SUBST(_MOZ_EXCEPTIONS_FLAGS_ON)
7920 # Irix & OSF native compilers do not like exception declarations
7921 # when exceptions are disabled
7922 if test -n "$MIPSPRO_CXX" -o -n "$COMPAQ_CXX" -o -n "$VACPP"; then
7923 AC_DEFINE(CPP_THROW_NEW, [])
7925 AC_DEFINE(CPP_THROW_NEW, [throw()])
7929 dnl ========================================================
7931 dnl = Build depencency options
7933 dnl ========================================================
7934 MOZ_ARG_HEADER(Build dependencies)
7936 dnl ========================================================
7937 dnl = Do not auto generate dependency info
7938 dnl ========================================================
7940 MOZ_ARG_DISABLE_BOOL(auto-deps,
7941 [ --disable-auto-deps Do not automatically generate dependency info],
7945 if test -n "$MOZ_AUTO_DEPS"; then
7946 dnl ========================================================
7947 dnl = Use mkdepend instead of $CC -MD for dependency generation
7948 dnl ========================================================
7950 MOZ_ARG_DISABLE_BOOL(md,
7951 [ --disable-md Do not use compiler-based dependencies ],
7954 [dnl Default is to turn on -MD if using GNU-compatible compilers
7955 if test "$GNU_CC" -a "$GNU_CXX" -a "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "WINCE"; then
7958 dnl Default is to use -xM if using Sun Studio on Solaris
7959 if test "$SOLARIS_SUNPRO_CC"; then
7962 if test "$_cpp_md_flag"; then
7964 if test "$OS_ARCH" = "OpenVMS"; then
7965 _DEPEND_CFLAGS='$(subst =, ,$(filter-out %/.pp,-MM=-MD=-MF=$(MDDEPDIR)/$(basename $(@F)).pp))'
7967 _DEPEND_CFLAGS='$(filter-out %/.pp,-MD -MF $(MDDEPDIR)/$(basename $(@F)).pp)'
7969 dnl Sun Studio on Solaris use -xM instead of -MD, see config/rules.mk
7970 if test "$SOLARIS_SUNPRO_CC"; then
7975 dnl Don't override this for MSVC
7976 if test -z "$_WIN32_MSVC"; then
7977 _USE_CPP_INCLUDE_FLAG=
7978 _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
7979 _DEFINES_CXXFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
7981 _topsrcdirwin=`cd \`dirname $0\`; pwd -W`
7982 dnl cl.py provides dependency generation for MSVC
7983 CC_WRAPPER="$PYTHON -O $_topsrcdirwin/build/cl.py"
7984 CXX_WRAPPER="$PYTHON -O $_topsrcdirwin/build/cl.py"
7990 AC_SUBST(MOZ_AUTO_DEPS)
7991 AC_SUBST(COMPILER_DEPEND)
7993 AC_SUBST(CC_WRAPPER)
7994 AC_SUBST(CXX_WRAPPER)
7997 dnl ========================================================
7999 dnl = Static Build Options
8001 dnl ========================================================
8002 MOZ_ARG_HEADER(Static build options)
8004 MOZ_ARG_ENABLE_BOOL(static,
8005 [ --enable-static Enable building of internal static libs],
8006 BUILD_STATIC_LIBS=1,
8009 MOZ_ARG_ENABLE_BOOL(libxul,
8010 [ --enable-libxul Enable building of libxul],
8011 MOZ_ENABLE_LIBXUL=1,
8014 MOZ_ARG_ENABLE_BOOL(shared-js,
8015 [ --enable-shared-js
8016 Create a shared JavaScript library.],
8020 if test -z "$MOZ_ENABLE_LIBXUL"; then
8021 dnl --disable-libxul implies shared js
8025 if test -n "$ENABLE_SHARED_JS"; then
8027 MOZ_JS_LIBS=$MOZ_JS_SHARED_LIBS
8029 MOZ_JS_LIBS=$MOZ_JS_STATIC_LIBS
8030 AC_DEFINE(MOZ_STATIC_JS)
8032 AC_SUBST(JS_SHARED_LIBRARY)
8034 if test -n "$MOZ_STATIC_BUILD_UNSUPPORTED" -a -n "$BUILD_STATIC_LIBS"; then
8035 AC_MSG_ERROR([--enable-static is not supported for building $MOZ_APP_NAME. You probably want --enable-libxul.])
8038 if test -n "$MOZ_ENABLE_LIBXUL" -a -n "$BUILD_STATIC_LIBS"; then
8039 AC_MSG_ERROR([--enable-libxul is not compatible with --enable-static])
8042 if test -n "$MOZ_IPC" -a -z "$MOZ_ENABLE_LIBXUL"; then
8043 AC_MSG_ERROR([--enable-ipc requires --enable-libxul])
8046 if test -z "$MOZ_ENABLE_LIBXUL" -a -n "$MOZ_OMNIJAR"; then
8047 AC_MSG_ERROR([Omnijar packaging is incompatible with --disable-libxul. Please either --enable-libxul or --enable-chrome-format=jar|flat|symlink]);
8050 AC_SUBST(LIBXUL_LIBS)
8052 if test -n "$MOZ_ENABLE_LIBXUL"; then
8053 XPCOM_LIBS="$LIBXUL_LIBS"
8054 AC_DEFINE(MOZ_ENABLE_LIBXUL)
8056 if test -n "$BUILD_STATIC_LIBS"; then
8057 AC_DEFINE(MOZ_STATIC_BUILD)
8059 XPCOM_LIBS="$DYNAMIC_XPCOM_LIBS"
8062 dnl ========================================================
8064 dnl = Standalone module options
8066 dnl ========================================================
8067 MOZ_ARG_HEADER(Standalone module options (Not for building Mozilla))
8069 dnl Check for GLib and libIDL.
8070 dnl ========================================================
8073 if test -z "$COMPILE_ENVIRONMENT"; then
8074 SKIP_IDL_CHECK="yes"
8077 dnl = Allow users to disable libIDL checking for standalone modules
8078 MOZ_ARG_WITHOUT_BOOL(libIDL,
8079 [ --without-libIDL Skip check for libIDL (standalone modules only)],
8080 SKIP_IDL_CHECK="yes")
8082 if test -z "$CROSS_COMPILE"; then
8083 if test -z "$HOST_LIBIDL_CONFIG"; then
8084 HOST_LIBIDL_CONFIG="$LIBIDL_CONFIG"
8086 if test -z "$HOST_LIBIDL_PREFIX"; then
8087 HOST_LIBIDL_PREFIX="$LIBIDL_PREFIX"
8091 if test "$SKIP_IDL_CHECK" = "no"
8095 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
8096 if test -n "$GLIB_PREFIX"; then
8097 _GLIB_PREFIX_DIR=`cd $GLIB_PREFIX && pwd -W`
8098 if test "$?" = "0"; then
8099 if test `echo ${PATH}: | grep -ic "$_GLIB_PREFIX_DIR/bin:"` = 0; then
8100 AC_MSG_ERROR([GLIB_PREFIX must be in your \$PATH.])
8102 _GLIB_PREFIX_DIR=`$CYGPATH_W $_GLIB_PREFIX_DIR | $CYGPATH_S`
8104 AC_MSG_ERROR([GLIB_PREFIX is set but "${GLIB_PREFIX}" is not a directory.])
8107 _GLIB_PREFIX_DIR=$MOZ_TOOLS_DIR
8109 if test ! -f "${_GLIB_PREFIX_DIR}/include/glib.h"; then
8110 AC_MSG_ERROR([Cannot find $_GLIB_PREFIX_DIR/include/glib.h .])
8112 GLIB_CFLAGS="-I${_GLIB_PREFIX_DIR}/include"
8113 if test -f "${_GLIB_PREFIX_DIR}/lib/glib-1.2_s.lib"; then
8114 GLIB_LIBS="${_GLIB_PREFIX_DIR}/lib/glib-1.2_s.lib"
8115 elif test -f "${_GLIB_PREFIX_DIR}/lib/glib-1.2.lib"; then
8116 GLIB_LIBS="${_GLIB_PREFIX_DIR}/lib/glib-1.2.lib"
8118 AC_MSG_ERROR([Cannot find $_GLIB_PREFIX_DIR/lib/glib-1.2.lib or $_GLIB_PREFIX_DIR/lib/glib-1.2_s.lib])
8121 if test -n "$HOST_LIBIDL_PREFIX"; then
8122 _LIBIDL_PREFIX_DIR=`cd $HOST_LIBIDL_PREFIX && pwd -W`
8123 if test "$?" = "0"; then
8124 if test `echo ${PATH}: | grep -ic "$_LIBIDL_PREFIX_DIR/bin:"` = 0; then
8125 AC_MSG_ERROR([LIBIDL_PREFIX must be in your \$PATH.])
8127 _LIBIDL_PREFIX_DIR=`$CYGPATH_W $_LIBIDL_PREFIX_DIR | $CYGPATH_S`
8129 AC_MSG_ERROR([LIBIDL_PREFIX is set but "${LIBIDL_PREFIX}" is not a directory.])
8132 _LIBIDL_PREFIX_DIR=$MOZ_TOOLS_DIR
8134 if test ! -f "${_LIBIDL_PREFIX_DIR}/include/libIDL/IDL.h"; then
8135 AC_MSG_ERROR([Cannot find $_LIBIDL_PREFIX_DIR/include/libIDL/IDL.h .])
8137 HOST_LIBIDL_CFLAGS="-I${_LIBIDL_PREFIX_DIR}/include ${GLIB_CFLAGS}"
8138 if test -f "${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6_s.lib"; then
8139 HOST_LIBIDL_LIBS="${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6_s.lib"
8141 elif test -f "${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6.lib"; then
8142 HOST_LIBIDL_LIBS="${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6.lib"
8144 AC_MSG_ERROR([Cannot find $_LIBIDL_PREFIX_DIR/lib/libidl-0.6.lib or $_LIBIDL_PREFIX_DIR/lib/libidl-0.6_s.lib])
8146 HOST_LIBIDL_LIBS="${HOST_LIBIDL_LIBS} ${GLIB_LIBS}"
8151 if test -z "$_LIBIDL_FOUND"; then
8152 if test "$MACOS_SDK_DIR"; then
8153 dnl xpidl, and therefore libIDL, is only needed on the build host.
8154 dnl Don't build it against the SDK, as that causes problems.
8155 _MACSAVE_CFLAGS="$CFLAGS"
8156 _MACSAVE_LIBS="$LIBS"
8157 _MACSAVE_LDFLAGS="$LDFLAGS"
8158 _MACSAVE_NEXT_ROOT="$NEXT_ROOT"
8160 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"`
8161 LIBS=`echo $LIBS|sed -e "s?-L${MACOS_SDK_DIR}/usr/lib[^ ]*??g"`
8162 LDFLAGS=`echo $LDFLAGS|sed -e "s?-Wl,-syslibroot,${MACOS_SDK_DIR}??g"`
8167 PKG_CHECK_MODULES(HOST_LIBIDL, libIDL-2.0 >= 0.8.0 glib-2.0 gobject-2.0, _LIBIDL_FOUND=1,_LIBIDL_FOUND=)
8170 dnl if no gtk/libIDL1 or gtk2/libIDL2 combination was found, fall back
8171 dnl to either libIDL1 or libIDL2.
8172 if test -z "$_LIBIDL_FOUND"; then
8173 AM_PATH_LIBIDL($LIBIDL_VERSION,_LIBIDL_FOUND=1)
8174 if test -z "$_LIBIDL_FOUND"; then
8175 PKG_CHECK_MODULES(HOST_LIBIDL, libIDL-2.0 >= 0.8.0,_LIBIDL_FOUND=1)
8179 dnl If we don't have a libIDL config program & not cross-compiling,
8180 dnl look for orbit-config instead.
8182 if test -z "$_LIBIDL_FOUND" -a -z "$CROSS_COMPILE"; then
8183 MOZ_PATH_PROGS(ORBIT_CONFIG, $ORBIT_CONFIG orbit-config)
8184 if test -n "$ORBIT_CONFIG"; then
8185 AC_MSG_CHECKING([for ORBit libIDL usability])
8186 _ORBIT_CFLAGS=`${ORBIT_CONFIG} client --cflags`
8187 _ORBIT_LIBS=`${ORBIT_CONFIG} client --libs`
8188 _ORBIT_INC_PATH=`${PERL} -e '{ for $f (@ARGV) { print "$f " if ($f =~ m/^-I/); } }' -- ${_ORBIT_CFLAGS}`
8189 _ORBIT_LIB_PATH=`${PERL} -e '{ for $f (@ARGV) { print "$f " if ($f =~ m/^-L/); } }' -- ${_ORBIT_LIBS}`
8190 HOST_LIBIDL_CFLAGS="$_ORBIT_INC_PATH"
8191 HOST_LIBIDL_LIBS="$_ORBIT_LIB_PATH -lIDL -lglib"
8193 _SAVE_CFLAGS="$CFLAGS"
8195 CFLAGS="$HOST_LIBIDL_CFLAGS $CFLAGS"
8196 LIBS="$HOST_LIBIDL_LIBS $LIBS"
8199 #include <libIDL/IDL.h>
8202 s=strdup(IDL_get_libver_string());
8210 [HOST_LIBIDL_CFLAGS=
8215 AC_MSG_RESULT($result)
8216 CFLAGS="$_SAVE_CFLAGS"
8220 if test -z "$_LIBIDL_FOUND"; then
8221 AC_MSG_ERROR([libIDL not found.
8222 libIDL $LIBIDL_VERSION or higher is required.])
8224 if test "$MACOS_SDK_DIR"; then
8225 CFLAGS="$_MACSAVE_CFLAGS"
8226 LIBS="$_MACSAVE_LIBS"
8227 LDFLAGS="$_MACSAVE_LDFLAGS"
8228 if test -n "$_MACSAVE_NEXT_ROOT" ; then
8229 export NEXT_ROOT="$_MACSAVE_NEXT_ROOT"
8234 if test -n "$CROSS_COMPILE"; then
8236 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
8237 if test -n "$GLIB_PREFIX"; then
8238 GLIB_CFLAGS="-I${GLIB_PREFIX}/include"
8239 if test -f "${GLIB_PREFIX}/lib/glib-1.2_s.lib"; then
8240 GLIB_LIBS="${GLIB_PREFIX}/lib/glib-1.2_s.lib"
8241 elif test -f "${GLIB_PREFIX}/lib/glib-1.2.lib"; then
8242 GLIB_LIBS="${GLIB_PREFIX}/lib/glib-1.2.lib"
8244 AC_MSG_ERROR([Cannot find $GLIB_PREFIX/lib/glib-1.2.lib or $GLIB_PREFIX/lib/glib-1.2_s.lib])
8248 if test -n "$LIBIDL_PREFIX"; then
8249 LIBIDL_CFLAGS="-I${LIBIDL_PREFIX}/include ${GLIB_CFLAGS}"
8250 if test -f "${LIBIDL_PREFIX}/lib/libIDL-0.6_s.lib"; then
8251 LIBIDL_LIBS="${LIBIDL_PREFIX}/lib/libIDL-0.6_s.lib"
8253 elif test -f "${LIBIDL_PREFIX}/lib/libIDL-0.6.lib"; then
8254 LIBIDL_LIBS="${LIBIDL_PREFIX}/lib/libIDL-0.6.lib"
8256 AC_MSG_ERROR([Cannot find $LIBIDL_PREFIX/lib/libIDL-0.6.lib or $LIBIDL_PREFIX/lib/libIDL-0.6_s.lib])
8259 LIBIDL_LIBS="${LIBIDL_LIBS} ${GLIB_LIBS}"
8262 if test -n "LIBIDL_CONFIG" -a "LIBIDL_CONFIG" != "no"; then
8263 LIBIDL_CFLAGS=`${LIBIDL_CONFIG} --cflags`
8264 LIBIDL_LIBS=`${LIBIDL_CONFIG} --libs`
8269 LIBIDL_CFLAGS="$HOST_LIBIDL_CFLAGS"
8270 LIBIDL_LIBS="$HOST_LIBIDL_LIBS"
8273 if test -z "$SKIP_PATH_CHECKS"; then
8274 if test -z "${GLIB_CFLAGS}" -o -z "${GLIB_LIBS}" ; then
8275 if test "$MOZ_ENABLE_GTK2" -o "$USE_ELF_DYNSTR_GC" ; then
8276 PKG_CHECK_MODULES(GLIB, glib-2.0 >= 1.3.7 gobject-2.0)
8278 AM_PATH_GLIB(${GLIB_VERSION})
8283 if test -z "${GLIB_GMODULE_LIBS}" -a -n "${GLIB_CONFIG}"; then
8284 GLIB_GMODULE_LIBS=`$GLIB_CONFIG gmodule --libs`
8287 AC_SUBST(LIBIDL_CFLAGS)
8288 AC_SUBST(LIBIDL_LIBS)
8289 AC_SUBST(STATIC_LIBIDL)
8290 AC_SUBST(GLIB_CFLAGS)
8292 AC_SUBST(GLIB_GMODULE_LIBS)
8293 AC_SUBST(HOST_LIBIDL_CONFIG)
8294 AC_SUBST(HOST_LIBIDL_CFLAGS)
8295 AC_SUBST(HOST_LIBIDL_LIBS)
8297 dnl ========================================================
8299 dnl ========================================================
8300 MOZ_CAIRO_CFLAGS='-I$(LIBXUL_DIST)/include/cairo'
8303 MOZ_ARG_ENABLE_BOOL(system-cairo,
8304 [ --enable-system-cairo Use system cairo (located with pkgconfig)],
8308 # Check for headers defining standard int types.
8309 AC_CHECK_HEADERS(stdint.h inttypes.h sys/int_types.h)
8311 if test "$MOZ_TREE_CAIRO"; then
8312 AC_DEFINE(MOZ_TREE_CAIRO)
8314 # For now we assume that we will have a uint64_t available through
8315 # one of the above headers or mozstdint.h.
8316 AC_DEFINE(HAVE_UINT64_T)
8318 # Define macros for cairo-features.h
8319 if test "$MOZ_X11"; then
8320 XLIB_SURFACE_FEATURE="#define CAIRO_HAS_XLIB_SURFACE 1"
8321 XLIB_XRENDER_SURFACE_FEATURE="#define CAIRO_HAS_XLIB_XRENDER_SURFACE 1"
8322 PS_SURFACE_FEATURE="#define CAIRO_HAS_PS_SURFACE 1"
8323 PDF_SURFACE_FEATURE="#define CAIRO_HAS_PDF_SURFACE 1"
8324 FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
8325 MOZ_ENABLE_CAIRO_FT=1
8326 CAIRO_FT_CFLAGS="$FT2_CFLAGS"
8328 if test "$MOZ_WIDGET_TOOLKIT" = "qt"; then
8329 QT_SURFACE_FEATURE="#define CAIRO_HAS_QT_SURFACE 1"
8331 if test "$MOZ_WIDGET_TOOLKIT" = "cocoa"; then
8332 QUARTZ_SURFACE_FEATURE="#define CAIRO_HAS_QUARTZ_SURFACE 1"
8333 QUARTZ_IMAGE_SURFACE_FEATURE="#define CAIRO_HAS_QUARTZ_IMAGE_SURFACE 1"
8334 QUARTZ_FONT_FEATURE="#define CAIRO_HAS_QUARTZ_FONT 1"
8336 if test "$MOZ_WIDGET_TOOLKIT" = "windows"; then
8337 WIN32_SURFACE_FEATURE="#define CAIRO_HAS_WIN32_SURFACE 1"
8338 if test -z "$WINCE"; then
8339 WIN32_FONT_FEATURE="#define CAIRO_HAS_WIN32_FONT 1"
8340 if test "$MOZ_WINSDK_TARGETVER" -ge "06010000"; then
8341 WIN32_DWRITE_FONT_FEATURE="#define CAIRO_HAS_DWRITE_FONT 1"
8342 WIN32_D2D_SURFACE_FEATURE="#define CAIRO_HAS_D2D_SURFACE 1"
8343 MOZ_ENABLE_D2D_SURFACE=1
8344 MOZ_ENABLE_DWRITE_FONT=1
8346 WIN32_DWRITE_FONT_FEATURE=
8347 WIN32_D2D_SURFACE_FEATURE=
8351 WIN32_DWRITE_FONT_FEATURE=
8352 WIN32_D2D_SURFACE_FEATURE=
8355 AC_CHECK_HEADER(d3d9.h, MOZ_ENABLE_D3D9_LAYER=1)
8357 AC_TRY_COMPILE([#include <ddraw.h>], [int foo = DDLOCK_WAITNOTBUSY;], HAS_DDRAW=1, HAS_DDRAW=)
8358 if test -z "$HAS_DDRAW"; then
8359 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.])
8360 DDRAW_SURFACE_FEATURE=
8362 DDRAW_SURFACE_FEATURE="#define CAIRO_HAS_DDRAW_SURFACE 1"
8365 if test -z "$OGLES_SDK_DIR"; then
8366 OGLES_SURFACE_FEATURE=
8369 #include <EGL/egl.h>
8370 #include <EGL/eglext.h>
8371 #include <GLES2/gl2.h>
8372 #include <GLES2/gl2ext.h>
8373 ], [ EGLDisplay _cairo_ddraw_egl_dpy = EGL_NO_DISPLAY;], HAS_OGLES=1, HAS_OGLES=)
8374 if test -z "$HAS_OGLES"; then
8375 AC_MSG_WARN([OpenGL ES2 headers not found, disabling OpenGL acceleration surfaces.])
8376 OGLES_SURFACE_FEATURE=
8378 OGLES_SURFACE_FEATURE="#define CAIRO_DDRAW_USE_GL 1"
8382 PDF_SURFACE_FEATURE="#define CAIRO_HAS_PDF_SURFACE 1"
8384 if test "$MOZ_WIDGET_TOOLKIT" = "os2"; then
8385 OS2_SURFACE_FEATURE="#define CAIRO_HAS_OS2_SURFACE 1"
8386 FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
8387 PDF_SURFACE_FEATURE="#define CAIRO_HAS_PDF_SURFACE 1"
8388 MOZ_ENABLE_CAIRO_FT=1
8389 CAIRO_FT_CFLAGS="-I${MZFTCFGFT2}/include"
8390 CAIRO_FT_LIBS="-L${MZFTCFGFT2}/lib -lmozft -lmzfntcfg"
8392 if test "$MOZ_WIDGET_TOOLKIT" = "beos"; then
8393 PKG_CHECK_MODULES(CAIRO_FT, fontconfig freetype2)
8394 BEOS_SURFACE_FEATURE="#define CAIRO_HAS_BEOS_SURFACE 1"
8395 FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
8396 MOZ_ENABLE_CAIRO_FT=1
8398 if test "$USE_FC_FREETYPE"; then
8399 FC_FONT_FEATURE="#define CAIRO_HAS_FC_FONT 1"
8401 AC_SUBST(MOZ_ENABLE_CAIRO_FT)
8402 AC_SUBST(MOZ_ENABLE_DWRITE_FONT)
8403 AC_SUBST(MOZ_ENABLE_D2D_SURFACE)
8404 AC_SUBST(MOZ_ENABLE_D3D9_LAYER)
8405 AC_SUBST(CAIRO_FT_CFLAGS)
8408 if test "$MOZ_DEBUG"; then
8409 SANITY_CHECKING_FEATURE="#define CAIRO_DO_SANITY_CHECKING 1"
8411 SANITY_CHECKING_FEATURE="#undef CAIRO_DO_SANITY_CHECKING"
8414 PNG_FUNCTIONS_FEATURE="#define CAIRO_HAS_PNG_FUNCTIONS 1"
8416 AC_SUBST(PS_SURFACE_FEATURE)
8417 AC_SUBST(PDF_SURFACE_FEATURE)
8418 AC_SUBST(SVG_SURFACE_FEATURE)
8419 AC_SUBST(XLIB_SURFACE_FEATURE)
8420 AC_SUBST(XLIB_XRENDER_SURFACE_FEATURE)
8421 AC_SUBST(QUARTZ_SURFACE_FEATURE)
8422 AC_SUBST(QUARTZ_IMAGE_SURFACE_FEATURE)
8423 AC_SUBST(XCB_SURFACE_FEATURE)
8424 AC_SUBST(WIN32_SURFACE_FEATURE)
8425 AC_SUBST(DDRAW_SURFACE_FEATURE)
8426 AC_SUBST(OGLES_SURFACE_FEATURE)
8427 AC_SUBST(OS2_SURFACE_FEATURE)
8428 AC_SUBST(BEOS_SURFACE_FEATURE)
8429 AC_SUBST(DIRECTFB_SURFACE_FEATURE)
8430 AC_SUBST(FT_FONT_FEATURE)
8431 AC_SUBST(FC_FONT_FEATURE)
8432 AC_SUBST(WIN32_FONT_FEATURE)
8433 AC_SUBST(WIN32_DWRITE_FONT_FEATURE)
8434 AC_SUBST(WIN32_D2D_SURFACE_FEATURE)
8435 AC_SUBST(QUARTZ_FONT_FEATURE)
8436 AC_SUBST(PNG_FUNCTIONS_FEATURE)
8437 AC_SUBST(QT_SURFACE_FEATURE)
8439 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"
8440 if test "$MOZ_X11"; then
8441 MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS $XLDFLAGS -lXrender -lfreetype -lfontconfig"
8444 CAIRO_FEATURES_H=gfx/cairo/cairo/src/cairo-features.h
8445 mv -f $CAIRO_FEATURES_H "$CAIRO_FEATURES_H".orig 2> /dev/null
8448 PKG_CHECK_MODULES(CAIRO, cairo >= $CAIRO_VERSION pixman-1 freetype2 fontconfig)
8449 MOZ_CAIRO_CFLAGS=$CAIRO_CFLAGS
8450 MOZ_CAIRO_LIBS=$CAIRO_LIBS
8451 if test "$MOZ_X11"; then
8452 PKG_CHECK_MODULES(CAIRO_XRENDER, cairo-xlib-xrender >= $CAIRO_VERSION)
8453 MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS $XLDFLAGS $CAIRO_XRENDER_LIBS"
8454 MOZ_CAIRO_CFLAGS="$MOZ_CAIRO_CFLAGS $CAIRO_XRENDER_CFLAGS"
8458 AC_SUBST(MOZ_TREE_CAIRO)
8459 AC_SUBST(MOZ_CAIRO_CFLAGS)
8460 AC_SUBST(MOZ_CAIRO_LIBS)
8462 dnl ========================================================
8464 dnl ========================================================
8466 QCMS_LIBS='$(call EXPAND_LIBNAME_PATH,mozqcms,$(DEPTH)/gfx/qcms)'
8469 dnl ========================================================
8471 dnl ========================================================
8472 MOZ_HARFBUZZ_LIBS='$(DEPTH)/gfx/harfbuzz/src/$(LIB_PREFIX)mozharfbuzz.$(LIB_SUFFIX)'
8473 AC_SUBST(MOZ_HARFBUZZ_LIBS)
8475 dnl ========================================================
8477 dnl ========================================================
8478 MOZ_ARG_DISABLE_BOOL(xul,
8479 [ --disable-xul Disable XUL],
8481 if test "$MOZ_XUL"; then
8484 dnl remove extensions that require XUL
8485 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's/inspector//' -e 's/venkman//' -e 's/irc//' -e 's/tasks//'`
8490 dnl ========================================================
8491 dnl disable profile locking
8492 dnl do no use this in applications that can have more than
8493 dnl one process accessing the profile directory.
8494 dnl ========================================================
8495 MOZ_ARG_DISABLE_BOOL(profilelocking,
8496 [ --disable-profilelocking
8497 Disable profile locking],
8498 MOZ_PROFILELOCKING=,
8499 MOZ_PROFILELOCKING=1 )
8500 if test "$MOZ_PROFILELOCKING"; then
8501 AC_DEFINE(MOZ_PROFILELOCKING)
8504 dnl ========================================================
8505 dnl disable rdf services
8506 dnl ========================================================
8507 MOZ_ARG_DISABLE_BOOL(rdf,
8508 [ --disable-rdf Disable RDF],
8510 if test "$MOZ_RDF"; then
8516 dnl ========================================================
8517 dnl necko configuration options
8518 dnl ========================================================
8521 dnl option to disable various necko protocols
8523 MOZ_ARG_ENABLE_STRING(necko-protocols,
8524 [ --enable-necko-protocols[={http,ftp,default,all,none}]
8525 Enable/disable specific protocol handlers],
8526 [ for option in `echo $enableval | sed 's/,/ /g'`; do
8527 if test "$option" = "yes" -o "$option" = "all"; then
8528 NECKO_PROTOCOLS="$NECKO_PROTOCOLS $NECKO_PROTOCOLS_DEFAULT"
8529 elif test "$option" = "no" -o "$option" = "none"; then
8531 elif test "$option" = "default"; then
8532 NECKO_PROTOCOLS="$NECKO_PROTOCOLS $NECKO_PROTOCOLS_DEFAULT"
8533 elif test `echo "$option" | grep -c \^-` != 0; then
8534 option=`echo $option | sed 's/^-//'`
8535 NECKO_PROTOCOLS=`echo "$NECKO_PROTOCOLS" | sed "s/ ${option}//"`
8537 NECKO_PROTOCOLS="$NECKO_PROTOCOLS $option"
8540 NECKO_PROTOCOLS="$NECKO_PROTOCOLS_DEFAULT")
8542 NECKO_PROTOCOLS=`${PERL} ${srcdir}/build/unix/uniq.pl ${NECKO_PROTOCOLS}`
8543 AC_SUBST(NECKO_PROTOCOLS)
8544 for p in $NECKO_PROTOCOLS; do
8545 AC_DEFINE_UNQUOTED(NECKO_PROTOCOL_$p)
8549 dnl option to disable necko's disk cache
8551 MOZ_ARG_DISABLE_BOOL(necko-disk-cache,
8552 [ --disable-necko-disk-cache
8553 Disable necko disk cache],
8556 AC_SUBST(NECKO_DISK_CACHE)
8557 if test "$NECKO_DISK_CACHE"; then
8558 AC_DEFINE(NECKO_DISK_CACHE)
8562 dnl option to disable necko's wifi scanner
8564 MOZ_ARG_DISABLE_BOOL(necko-wifi,
8565 [ --disable-necko-wifi Disable necko wifi scanner],
8569 if test "$OS_ARCH" = "OS2"; then
8570 dnl OS/2 implementation of Necko-WiFi support will be added in bug 506566
8573 if test "$NECKO_WIFI" -a \
8574 "$OS_ARCH" != "Linux" -a \
8575 "$OS_ARCH" != "Darwin" -a \
8576 "$OS_ARCH" != "SunOS" -a \
8577 "$OS_ARCH" != "WINNT" -a \
8578 "$OS_ARCH" != "WINCE"; then
8579 AC_MSG_ERROR([Necko WiFi scanning not supported on your platform, use --disable-necko-wifi])
8582 if test -z "$SKIP_LIBRARY_CHECKS" -a "$NECKO_WIFI" -a "$OS_ARCH" = "Linux"
8584 AC_CHECK_HEADER([iwlib.h])
8585 if test "$ac_cv_header_iwlib_h" != "yes"; then
8586 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])
8590 if test "$NECKO_WIFI"; then
8591 AC_DEFINE(NECKO_WIFI)
8593 AC_SUBST(NECKO_WIFI)
8596 dnl option to disable cookies
8598 MOZ_ARG_DISABLE_BOOL(cookies,
8599 [ --disable-cookies Disable cookie support],
8602 AC_SUBST(NECKO_COOKIES)
8603 if test "$NECKO_COOKIES"; then
8604 AC_DEFINE(NECKO_COOKIES)
8608 dnl Build jsctypes on the platforms we can, unless it's explicitly disabled.
8610 MOZ_ARG_DISABLE_BOOL(ctypes,
8611 [ --disable-ctypes Disable js-ctypes],
8614 AC_SUBST(BUILD_CTYPES)
8615 if test "$BUILD_CTYPES"; then
8616 if test "$OS_ARCH" = "WINCE" -a `echo $OS_TEST | grep -ic arm` = 1; then
8617 # Disable ctypes for arm/wince.
8620 AC_DEFINE(BUILD_CTYPES)
8624 dnl NECKO_ configuration options are not global
8625 _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_"
8627 dnl Only build Mork if it's required
8629 if test "$MOZ_MORK"; then
8633 dnl Build the lightweight Mork reader if required
8634 AC_SUBST(MOZ_MORKREADER)
8635 if test "$MOZ_MORKREADER"; then
8636 AC_DEFINE(MOZ_MORKREADER)
8639 dnl Build Places if required
8640 if test "$MOZ_PLACES"; then
8641 AC_DEFINE(MOZ_PLACES)
8644 dnl Build Sync Services if required
8645 AC_SUBST(MOZ_SERVICES_SYNC)
8646 if test -n "$MOZ_SERVICES_SYNC"; then
8647 AC_DEFINE(MOZ_SERVICES_SYNC)
8650 dnl ========================================================
8651 if test "$MOZ_DEBUG" -o "$NS_TRACE_MALLOC"; then
8652 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS=
8655 dnl ========================================================
8657 dnl = Maintainer debug option (no --enable equivalent)
8659 dnl ========================================================
8664 AC_SUBST(AR_EXTRACT)
8668 AC_SUBST(AS_DASH_C_FLAG)
8676 AC_SUBST(NS_USE_NATIVE)
8677 AC_SUBST(MOZ_WIDGET_TOOLKIT)
8678 AC_SUBST(MOZ_UPDATE_XTERM)
8680 AC_SUBST(MOZ_PLATFORM_MAEMO)
8681 AC_SUBST(MOZ_AUTH_EXTENSION)
8682 AC_SUBST(MOZ_MATHML)
8683 AC_SUBST(MOZ_PERMISSIONS)
8685 AC_SUBST(MOZ_PREF_EXTENSIONS)
8688 AC_SUBST(MOZ_XSLT_STANDALONE)
8689 AC_SUBST(MOZ_JS_LIBS)
8692 AC_SUBST(MOZ_DEBUG_SYMBOLS)
8693 AC_SUBST(MOZ_DEBUG_ENABLE_DEFS)
8694 AC_SUBST(MOZ_DEBUG_DISABLE_DEFS)
8695 AC_SUBST(MOZ_DEBUG_FLAGS)
8696 AC_SUBST(MOZ_DEBUG_LDFLAGS)
8697 AC_SUBST(WARNINGS_AS_ERRORS)
8698 AC_SUBST(MOZ_EXTENSIONS)
8699 AC_SUBST(MOZ_IMG_ENCODERS)
8700 AC_SUBST(MOZ_JSDEBUGGER)
8701 AC_SUBST(MOZ_PLUGINS)
8702 AC_SUBST(MOZ_LOG_REFCNT)
8706 AC_SUBST(MOZ_CALLGRIND)
8708 AC_SUBST(MOZ_JSLOADER)
8709 AC_SUBST(MOZ_USE_NATIVE_UCONV)
8710 AC_SUBST(MOZ_QUANTIFY)
8712 AC_SUBST(MOZ_PLACES)
8713 AC_SUBST(MOZ_PLACES_BOOKMARKS)
8714 AC_SUBST(MOZ_STORAGE)
8715 AC_SUBST(MOZ_TOOLKIT_SEARCH)
8717 AC_SUBST(NS_PRINTING)
8719 AC_SUBST(MOZ_HELP_VIEWER)
8721 AC_SUBST(MOZ_JAVAXPCOM)
8722 AC_SUBST(JAVA_INCLUDE_PATH)
8727 AC_SUBST(MOZ_PROFILELOCKING)
8730 AC_SUBST(MOZ_XIE_LIBS)
8732 AC_SUBST(BUILD_STATIC_LIBS)
8733 AC_SUBST(MOZ_ENABLE_LIBXUL)
8734 AC_SUBST(ENABLE_TESTS)
8736 AC_SUBST(MOZ_UNIVERSALCHARDET)
8737 AC_SUBST(ACCESSIBILITY)
8738 AC_SUBST(MOZ_VIEW_SOURCE)
8739 AC_SUBST(MOZ_SPELLCHECK)
8740 AC_SUBST(MOZ_USER_DIR)
8741 AC_SUBST(MOZ_CRASHREPORTER)
8742 AC_SUBST(MOZ_UPDATER)
8744 AC_SUBST(ENABLE_STRIP)
8745 AC_SUBST(PKG_SKIP_STRIP)
8746 AC_SUBST(USE_ELF_DYNSTR_GC)
8747 AC_SUBST(INCREMENTAL_LINKER)
8748 AC_SUBST(MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS)
8749 AC_SUBST(MOZ_COMPONENT_NSPR_LIBS)
8751 AC_SUBST(MOZ_FIX_LINK_PATHS)
8752 AC_SUBST(XPCOM_LIBS)
8753 AC_SUBST(XPCOM_FROZEN_LDOPTS)
8754 AC_SUBST(XPCOM_GLUE_LDOPTS)
8755 AC_SUBST(XPCOM_STANDALONE_GLUE_LDOPTS)
8757 AC_SUBST(USE_DEPENDENT_LIBS)
8759 AC_SUBST(MOZ_BUILD_ROOT)
8760 AC_SUBST(MOZ_OS2_TOOLS)
8761 AC_SUBST(MOZ_OS2_USE_DECLSPEC)
8763 AC_SUBST(MOZ_POST_DSO_LIB_COMMAND)
8764 AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
8765 AC_SUBST(MOZ_TIMELINE)
8766 AC_SUBST(OGLES_SDK_DIR)
8768 AC_SUBST(MOZ_APP_NAME)
8769 AC_SUBST(MOZ_APP_DISPLAYNAME)
8770 AC_SUBST(MOZ_APP_VERSION)
8771 AC_SUBST(MOZ_APP_UA_EXTRA)
8772 AC_SUBST(FIREFOX_VERSION)
8774 AC_SUBST(MOZ_PKG_SPECIAL)
8776 AC_SUBST(MOZILLA_OFFICIAL)
8779 AC_SUBST(MOZ_MAPINFO)
8780 AC_SUBST(MOZ_BROWSE_INFO)
8781 AC_SUBST(MOZ_TOOLS_DIR)
8782 AC_SUBST(CYGWIN_WRAPPER)
8784 AC_SUBST(WIN32_REDIST_DIR)
8789 AC_SUBST(WINCE_SDK_DIR)
8790 AC_SUBST(WINCE_WINDOWS_MOBILE)
8792 dnl Echo the CFLAGS to remove extra whitespace.
8799 $_MOZ_EXCEPTIONS_FLAGS \
8800 $_WARNINGS_CXXFLAGS \
8803 COMPILE_CFLAGS=`echo \
8808 COMPILE_CXXFLAGS=`echo \
8809 $_DEFINES_CXXFLAGS \
8813 AC_SUBST(SYSTEM_MAKEDEPEND)
8814 AC_SUBST(SYSTEM_LIBXUL)
8815 AC_SUBST(SYSTEM_JPEG)
8816 AC_SUBST(SYSTEM_PNG)
8817 AC_SUBST(SYSTEM_ZLIB)
8818 AC_SUBST(SYSTEM_BZ2)
8820 AC_SUBST(JPEG_CFLAGS)
8822 AC_SUBST(ZLIB_CFLAGS)
8824 AC_SUBST(BZ2_CFLAGS)
8826 AC_SUBST(PNG_CFLAGS)
8829 AC_SUBST(MOZ_JPEG_CFLAGS)
8830 AC_SUBST(MOZ_JPEG_LIBS)
8831 AC_SUBST(MOZ_ZLIB_CFLAGS)
8832 AC_SUBST(MOZ_ZLIB_LIBS)
8833 AC_SUBST(MOZ_BZ2_CFLAGS)
8834 AC_SUBST(MOZ_BZ2_LIBS)
8835 AC_SUBST(MOZ_PNG_CFLAGS)
8836 AC_SUBST(MOZ_PNG_LIBS)
8838 AC_SUBST(NSPR_CFLAGS)
8840 AC_SUBST(MOZ_NATIVE_NSPR)
8842 AC_SUBST(NSS_CFLAGS)
8844 AC_SUBST(NSS_DEP_LIBS)
8845 AC_SUBST(MOZ_NATIVE_NSS)
8846 AC_SUBST(NSS_DISABLE_DBM)
8851 AC_SUBST(COMPILE_CFLAGS)
8852 AC_SUBST(COMPILE_CXXFLAGS)
8855 AC_SUBST(CROSS_COMPILE)
8856 AC_SUBST(WCHAR_CFLAGS)
8860 AC_SUBST(HOST_CFLAGS)
8861 AC_SUBST(HOST_CXXFLAGS)
8862 AC_SUBST(HOST_OPTIMIZE_FLAGS)
8864 AC_SUBST(HOST_AR_FLAGS)
8866 AC_SUBST(HOST_RANLIB)
8867 AC_SUBST(HOST_NSPR_MDCPUCFG)
8868 AC_SUBST(HOST_BIN_SUFFIX)
8869 AC_SUBST(HOST_OS_ARCH)
8871 AC_SUBST(TARGET_CPU)
8872 AC_SUBST(TARGET_VENDOR)
8874 AC_SUBST(TARGET_NSPR_MDCPUCFG)
8875 AC_SUBST(TARGET_MD_ARCH)
8876 AC_SUBST(TARGET_XPCOM_ABI)
8879 AC_SUBST(OS_RELEASE)
8882 AC_SUBST(MOZ_DISABLE_JAR_PACKAGING)
8883 AC_SUBST(MOZ_CHROME_FILE_FORMAT)
8885 AC_SUBST(WRAP_MALLOC_CFLAGS)
8886 AC_SUBST(WRAP_MALLOC_LIB)
8889 AC_SUBST(MKSHLIB_FORCE_ALL)
8890 AC_SUBST(MKSHLIB_UNFORCE_ALL)
8891 AC_SUBST(DSO_CFLAGS)
8892 AC_SUBST(DSO_PIC_CFLAGS)
8893 AC_SUBST(DSO_LDOPTS)
8894 AC_SUBST(LIB_PREFIX)
8895 AC_SUBST(DLL_PREFIX)
8896 AC_SUBST(DLL_SUFFIX)
8897 AC_DEFINE_UNQUOTED(MOZ_DLL_SUFFIX, "$DLL_SUFFIX")
8898 AC_SUBST(LIB_SUFFIX)
8899 AC_SUBST(OBJ_SUFFIX)
8900 AC_SUBST(BIN_SUFFIX)
8901 AC_SUBST(ASM_SUFFIX)
8902 AC_SUBST(IMPORT_LIB_SUFFIX)
8904 AC_SUBST(CC_VERSION)
8905 AC_SUBST(CXX_VERSION)
8906 AC_SUBST(MSMANIFEST_TOOL)
8907 AC_SUBST(NS_ENABLE_TSF)
8908 AC_SUBST(MOZ_NSS_PATCH)
8911 AC_SUBST(MOZ_SYDNEYAUDIO)
8913 AC_SUBST(MOZ_VORBIS)
8916 AC_SUBST(MOZ_ALSA_LIBS)
8918 AC_SUBST(VPX_ASFLAGS)
8919 AC_SUBST(VPX_X86_ASM)
8921 if test "$USING_HCC"; then
8922 CC='${topsrcdir}/build/hcc'
8924 CXX='${topsrcdir}/build/hcpp'
8925 CXX="$CXX '$_OLDCXX'"
8930 dnl Check for missing components
8931 if test "$COMPILE_ENVIRONMENT"; then
8932 if test "$MOZ_X11"; then
8933 dnl ====================================================
8934 dnl = Check if X headers exist
8935 dnl ====================================================
8936 _SAVE_CFLAGS=$CFLAGS
8937 CFLAGS="$CFLAGS $XCFLAGS"
8941 #include <X11/Xlib.h>
8942 #include <X11/Intrinsic.h>
8946 if ((dpy = XOpenDisplay(NULL)) == NULL) {
8947 fprintf(stderr, ": can't open %s\n", XDisplayName(NULL));
8951 [ AC_MSG_ERROR([Could not compile basic X program.]) ])
8952 CFLAGS="$_SAVE_CFLAGS"
8954 if test ! -z "$MISSING_X"; then
8955 AC_MSG_ERROR([ Could not find the following X libraries: $MISSING_X ]);
8960 dnl Check for headers, etc. needed by WebGL.
8961 if test -n "$MOZ_WEBGL_GLX"; then
8962 AC_CHECK_HEADER(GL/glx.h)
8963 if test "$ac_cv_header_GL_glx_h" != "yes"; then
8964 AC_MSG_ERROR([Can't find header GL/glx.h for WebGL (install mesa-common-dev (Ubuntu), mesa-libGL-devel (Fedora), or Mesa (SuSE))])
8967 fi # COMPILE_ENVIRONMENT
8969 if test "$USE_FC_FREETYPE"; then
8970 if test "$COMPILE_ENVIRONMENT"; then
8971 _SAVE_CPPFLAGS="$CPPFLAGS"
8972 CPPFLAGS="$CPPFLAGS $FT2_CFLAGS $XCFLAGS"
8973 AC_CHECK_HEADERS(fontconfig/fcfreetype.h, ,
8974 [AC_MSG_ERROR(Can't find header fontconfig/fcfreetype.h.)])
8975 CPPFLAGS="$_SAVE_CPPFLAGS"
8977 AC_DEFINE(HAVE_FONTCONFIG_FCFREETYPE_H)
8981 dnl Set various defines and substitutions
8982 dnl ========================================================
8984 if test "$OS_ARCH" = "BeOS"; then
8986 elif test "$OS_ARCH" = "Darwin"; then
8988 AC_DEFINE(UNIX_ASYNC_DNS)
8989 elif test "$OS_ARCH" = "OpenVMS"; then
8991 elif test "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "OS2" -a "$OS_ARCH" != "WINCE"; then
8993 AC_DEFINE(UNIX_ASYNC_DNS)
8996 if test "$MOZ_DEBUG"; then
8997 AC_DEFINE(MOZ_REFLOW_PERF)
8998 AC_DEFINE(MOZ_REFLOW_PERF_DSP)
9001 if test "$ACCESSIBILITY" -a "$MOZ_ENABLE_GTK2" ; then
9002 AC_DEFINE(MOZ_ACCESSIBILITY_ATK)
9003 ATK_FULL_VERSION=`$PKG_CONFIG --modversion atk`
9004 ATK_MAJOR_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
9005 ATK_MINOR_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $2 }'`
9006 ATK_REV_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $3 }'`
9007 AC_DEFINE_UNQUOTED(ATK_MAJOR_VERSION, $ATK_MAJOR_VERSION)
9008 AC_DEFINE_UNQUOTED(ATK_MINOR_VERSION, $ATK_MINOR_VERSION)
9009 AC_DEFINE_UNQUOTED(ATK_REV_VERSION, $ATK_REV_VERSION)
9012 dnl ========================================================
9013 dnl Use cygwin wrapper for win32 builds, except MSYS/MinGW
9014 dnl ========================================================
9017 WIN_TOP_SRC=`cd $srcdir; pwd -W`
9020 HOST_CC="\$(CYGWIN_WRAPPER) $HOST_CC"
9021 HOST_CXX="\$(CYGWIN_WRAPPER) $HOST_CXX"
9022 CC="\$(CYGWIN_WRAPPER) $CC"
9023 CXX="\$(CYGWIN_WRAPPER) $CXX"
9024 CPP="\$(CYGWIN_WRAPPER) $CPP"
9025 LD="\$(CYGWIN_WRAPPER) $LD"
9026 AS="\$(CYGWIN_WRAPPER) $AS"
9027 RC="\$(CYGWIN_WRAPPER) $RC"
9028 MIDL="\$(CYGWIN_WRAPPER) $MIDL"
9029 CYGDRIVE_MOUNT=`mount -p | awk '{ if (/^\//) { print $1; exit } }'`
9030 WIN_TOP_SRC=`cygpath -a -w $srcdir | sed -e 's|\\\\|/|g'`
9034 AC_SUBST(CYGDRIVE_MOUNT)
9035 AC_SUBST(WIN_TOP_SRC)
9037 AC_SUBST(MOZILLA_VERSION)
9039 AC_SUBST(ac_configure_args)
9041 dnl Spit out some output
9042 dnl ========================================================
9044 dnl The following defines are used by xpcom
9045 _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES
9047 HAVE_CPP_2BYTE_WCHAR_T
9048 HAVE_CPP_ACCESS_CHANGING_USING
9049 HAVE_CPP_AMBIGUITY_RESOLVING_USING
9052 HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR
9054 HAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX
9055 HAVE_CPP_NAMESPACE_STD
9057 HAVE_CPP_PARTIAL_SPECIALIZATION
9058 HAVE_CPP_TROUBLE_COMPARING_TO_ZERO
9060 HAVE_CPP_UNAMBIGUOUS_STD_NOTEQUAL
9062 NEED_CPP_UNUSED_IMPLEMENTATIONS
9066 HAVE_ICONV_WITH_CONST_INPUT
9074 netwerk/necko-config.h
9075 xpcom/xpcom-config.h
9076 xpcom/xpcom-private.h
9079 # Save the defines header file before autoconf removes it.
9080 # (Do not add AC_DEFINE calls after this line.)
9081 _CONFIG_TMP=confdefs-tmp.h
9082 _CONFIG_DEFS_H=mozilla-config.h
9084 cat > $_CONFIG_TMP <<\EOF
9085 /* List of defines generated by configure. Included with preprocessor flag,
9086 * -include, to avoid long list of -D defines on the compile command-line.
9090 #ifndef _MOZILLA_CONFIG_H_
9091 #define _MOZILLA_CONFIG_H_
9094 _EGREP_PATTERN='^#define ('
9095 if test -n "$_NON_GLOBAL_ACDEFINES"; then
9096 for f in $_NON_GLOBAL_ACDEFINES; do
9097 _EGREP_PATTERN="${_EGREP_PATTERN}$f|"
9100 _EGREP_PATTERN="${_EGREP_PATTERN}dummy_never_defined)"
9102 sort confdefs.h | egrep -v "$_EGREP_PATTERN" >> $_CONFIG_TMP
9104 cat >> $_CONFIG_TMP <<\EOF
9106 #endif /* _MOZILLA_CONFIG_H_ */
9110 # Only write mozilla-config.h when something changes (or it doesn't exist)
9111 if cmp -s $_CONFIG_TMP $_CONFIG_DEFS_H; then
9114 AC_MSG_RESULT("creating $_CONFIG_DEFS_H")
9115 mv -f $_CONFIG_TMP $_CONFIG_DEFS_H
9117 echo ==== $_CONFIG_DEFS_H =================================
9121 dnl Probably shouldn't call this manually but we always want the output of DEFS
9122 rm -f confdefs.h.save
9123 mv confdefs.h confdefs.h.save
9124 egrep -v "$_EGREP_PATTERN" confdefs.h.save > confdefs.h
9125 AC_OUTPUT_MAKE_DEFS()
9127 AC_SUBST(MOZ_DEFINES)
9129 mv confdefs.h.save confdefs.h
9131 dnl Load the list of Makefiles to generate.
9132 dnl To add new Makefiles, edit allmakefiles.sh.
9133 dnl allmakefiles.sh sets the variable, MAKEFILES.
9134 . ${srcdir}/allmakefiles.sh
9136 dnl Run a perl script to quickly create the makefiles.
9137 dnl If it succeeds, it outputs a shell command to set CONFIG_FILES
9138 dnl for the files it cannot handle correctly. This way, config.status
9139 dnl will handle these files.
9140 dnl If it fails, nothing is set and config.status will run as usual.
9142 dnl This does not change the $MAKEFILES variable.
9144 dnl OpenVMS gets a line overflow on the long eval command, so use a temp file.
9146 if test -z "${AS_PERL}"; then
9147 echo $MAKEFILES | ${PERL} $srcdir/build/autoconf/acoutput-fast.pl > conftest.sh
9149 echo $MAKEFILES | ${PERL} $srcdir/build/autoconf/acoutput-fast.pl -nowrap --cygwin-srcdir=$srcdir > conftest.sh
9154 echo $MAKEFILES > unallmakefiles
9156 mv -f config/autoconf.mk config/autoconf.mk.orig 2> /dev/null
9158 AC_OUTPUT($MAKEFILES)
9160 dnl Prevent the regeneration of cairo-features.h forcing rebuilds of gfx stuff
9161 if test "$CAIRO_FEATURES_H"; then
9162 if cmp -s $CAIRO_FEATURES_H "$CAIRO_FEATURES_H".orig; then
9163 echo "$CAIRO_FEATURES_H is unchanged"
9164 mv -f "$CAIRO_FEATURES_H".orig "$CAIRO_FEATURES_H" 2> /dev/null
9166 rm -f "$CAIRO_FEATURES_H".orig 2> /dev/null
9170 dnl ========================================================
9171 dnl = Setup a nice relatively clean build environment for
9172 dnl = sub-configures.
9173 dnl ========================================================
9176 CFLAGS="$_SUBDIR_CFLAGS"
9177 CPPFLAGS="$_SUBDIR_CPPFLAGS"
9178 CXXFLAGS="$_SUBDIR_CXXFLAGS"
9179 LDFLAGS="$_SUBDIR_LDFLAGS"
9180 HOST_CC="$_SUBDIR_HOST_CC"
9181 HOST_CFLAGS="$_SUBDIR_HOST_CFLAGS"
9182 HOST_LDFLAGS="$_SUBDIR_HOST_LDFLAGS"
9188 # No need to run subconfigures when building with LIBXUL_SDK_DIR
9189 if test "$COMPILE_ENVIRONMENT" -a -z "$LIBXUL_SDK_DIR"; then
9191 if test -n "$MOZ_THUMB2"; then
9192 _SUBDIR_CONFIG_ARGS="$_SUBDIR_CONFIG_ARGS --enable-thumb2"
9194 if test -n "$_WRAP_MALLOC"; then
9195 _SUBDIR_CONFIG_ARGS="$_SUBDIR_CONFIG_ARGS --enable-wrap-malloc"
9198 if test -z "$MOZ_NATIVE_NSPR"; then
9199 ac_configure_args="$_SUBDIR_CONFIG_ARGS --with-dist-prefix=$MOZ_BUILD_ROOT/dist --with-mozilla"
9200 if test -z "$MOZ_DEBUG"; then
9201 ac_configure_args="$ac_configure_args --disable-debug"
9203 if test "$MOZ_OPTIMIZE" = "1"; then
9204 ac_configure_args="$ac_configure_args --enable-optimize"
9206 if test "$OS_ARCH" = "WINNT" -a "$NS_TRACE_MALLOC"; then
9207 ac_configure_args="$ac_configure_args --enable-debug --disable-optimize"
9209 if test -n "$HAVE_64BIT_OS"; then
9210 ac_configure_args="$ac_configure_args --enable-64bit"
9212 if test -n "$USE_ARM_KUSER"; then
9213 ac_configure_args="$ac_configure_args --with-arm-kuser"
9215 AC_OUTPUT_SUBDIRS(nsprpub)
9216 ac_configure_args="$_SUBDIR_CONFIG_ARGS"
9219 if test -z "$MOZ_NATIVE_NSPR"; then
9220 # Hack to deal with the fact that we use NSPR_CFLAGS everywhere
9221 AC_MSG_WARN([Recreating autoconf.mk with updated nspr-config output])
9222 if test "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "WINCE"; then
9223 NSPR_LIBS=`./nsprpub/config/nspr-config --prefix=$LIBXUL_DIST --exec-prefix=$MOZ_BUILD_ROOT/dist --libdir=$LIBXUL_DIST/lib --libs`
9224 $PERL -pi.bak -e "s '^NSPR_LIBS\\s*=.*'NSPR_LIBS = $NSPR_LIBS'" config/autoconf.mk
9225 NSPR_CFLAGS=`./nsprpub/config/nspr-config --prefix=$LIBXUL_DIST --exec-prefix=$MOZ_BUILD_ROOT/dist --includedir=$LIBXUL_DIST/include/nspr --cflags`
9226 $PERL -pi.bak -e "s '^NSPR_CFLAGS\\s*=.*'NSPR_CFLAGS = $NSPR_CFLAGS'" config/autoconf.mk
9228 rm -f config/autoconf.mk.bak
9231 # Run the SpiderMonkey 'configure' script.
9232 dist=$MOZ_BUILD_ROOT/dist
9233 ac_configure_args="$_SUBDIR_CONFIG_ARGS"
9234 ac_configure_args="$ac_configure_args --enable-threadsafe"
9235 if test "$BUILD_CTYPES"; then
9236 # Build js-ctypes on the platforms we can.
9237 ac_configure_args="$ac_configure_args --enable-ctypes"
9239 if test -z "$JS_SHARED_LIBRARY" ; then
9240 ac_configure_args="$ac_configure_args --disable-shared-js"
9242 if test -z "$MOZ_NATIVE_NSPR"; then
9243 ac_configure_args="$ac_configure_args --with-nspr-cflags='$NSPR_CFLAGS'"
9244 ac_configure_args="$ac_configure_args --with-nspr-libs='$NSPR_LIBS'"
9246 ac_configure_args="$ac_configure_args --with-dist-dir=../../dist"
9247 ac_configure_args="$ac_configure_args --prefix=$dist"
9248 ac_configure_args="$ac_configure_args --with-sync-build-files=$_topsrcdir"
9249 if test "$MOZ_MEMORY"; then
9250 ac_configure_args="$ac_configure_args --enable-jemalloc"
9251 if test -n "$MOZ_MEMORY_LDFLAGS"; then
9252 export MOZ_MEMORY_LDFLAGS
9255 AC_OUTPUT_SUBDIRS(js/src)
9256 ac_configure_args="$_SUBDIR_CONFIG_ARGS"
9258 fi # COMPILE_ENVIRONMENT && !LIBXUL_SDK_DIR
9260 dnl Prevent the regeneration of autoconf.mk forcing rebuilds of the world
9261 dnl Needs to be at the end to respect possible changes from NSPR configure
9262 if cmp -s config/autoconf.mk config/autoconf.mk.orig; then
9263 echo "config/autoconf.mk is unchanged"
9264 mv -f config/autoconf.mk.orig config/autoconf.mk 2> /dev/null
9266 rm -f config/autoconf.mk.orig 2> /dev/null