1 dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil; -*-
2 dnl vi: set tabstop=4 shiftwidth=4 expandtab syntax=m4:
3 dnl This Source Code Form is subject to the terms of the Mozilla Public
4 dnl License, v. 2.0. If a copy of the MPL was not distributed with this
5 dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 dnl Process this file with autoconf to produce a configure script.
8 dnl ========================================================
10 AC_INIT(config/config.mk)
11 AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf)
14 dnl ========================================================
16 dnl = Don't change the following lines. Doing so breaks:
18 dnl = CFLAGS="-foo" ./configure
20 dnl ========================================================
22 CPPFLAGS="${CPPFLAGS=}"
23 CXXFLAGS="${CXXFLAGS=}"
25 HOST_CFLAGS="${HOST_CFLAGS=}"
26 HOST_CXXFLAGS="${HOST_CXXFLAGS=}"
27 HOST_LDFLAGS="${HOST_LDFLAGS=}"
29 dnl Set the minimum version of toolkit libs used by mozilla
30 dnl ========================================================
33 dnl Set various checks
34 dnl ========================================================
37 dnl Initialize the Pthread test variables early so they can be
38 dnl overridden by each platform.
39 dnl ========================================================
43 LDFLAGS="$LDFLAGS $LINKER_LDFLAGS"
44 HOST_LDFLAGS="$HOST_LDFLAGS $HOST_LINKER_LDFLAGS"
46 if test "$COMPILE_ENVIRONMENT"; then
48 fi # COMPILE_ENVIRONMENT
50 dnl ========================================================
51 dnl Checks for compilers.
52 dnl ========================================================
54 if test "$COMPILE_ENVIRONMENT"; then
56 # Run some logic to figure out exe extensions (mostly for mingw's sake)
59 if test "$target" != "$host"; then
65 # Work around the conftest.exe access problem on Windows
73 dnl ========================================================
74 dnl Special win32 checks
75 dnl ========================================================
81 if test "$GCC" != "yes"; then
82 # Check to see if we are really running in a msvc environemnt
85 # Make sure compilers are valid
86 CXXFLAGS="$CXXFLAGS -TP"
89 AC_TRY_COMPILE([#include <stdio.h>],
90 [ printf("Hello World\n"); ],,
91 AC_MSG_ERROR([\$(CC) test failed. You must have MS VC++ in your path to build.]) )
94 AC_TRY_COMPILE([#include <new.h>],
95 [ unsigned *test = new unsigned(42); ],,
96 AC_MSG_ERROR([\$(CXX) test failed. You must have MS VC++ in your path to build.]) )
99 AC_DEFINE(_CRT_SECURE_NO_WARNINGS)
100 AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)
102 MSVC_C_RUNTIME_DLL=vcruntime140.dll
103 if test -n "$IS_VS2019_OR_MORE" -a "$CPU_ARCH" != "x86"; then
104 MSVC_C_RUNTIME_1_DLL=vcruntime140_1.dll
106 MSVC_CXX_RUNTIME_DLL=msvcp140.dll
108 # -Zc:sizedDealloc- disables C++14 global sized deallocation (see bug 1160146)
109 CXXFLAGS="$CXXFLAGS -Zc:sizedDealloc-"
111 if test -n "$WIN_UCRT_REDIST_DIR"; then
112 if test ! -d "$WIN_UCRT_REDIST_DIR"; then
113 AC_MSG_ERROR([Invalid Windows UCRT Redist directory: ${WIN_UCRT_REDIST_DIR}])
115 WIN_UCRT_REDIST_DIR=`cd "$WIN_UCRT_REDIST_DIR" && (pwd -W 2>/dev/null || pwd)`
118 AC_SUBST(MSVC_C_RUNTIME_DLL)
119 AC_SUBST(MSVC_C_RUNTIME_1_DLL)
120 AC_SUBST(MSVC_CXX_RUNTIME_DLL)
122 AC_DEFINE(HAVE_SEH_EXCEPTIONS)
124 if test -n "$WIN32_REDIST_DIR"; then
125 if test ! -d "$WIN32_REDIST_DIR"; then
126 AC_MSG_ERROR([Invalid Win32 Redist directory: ${WIN32_REDIST_DIR}])
128 WIN32_REDIST_DIR=`cd "$WIN32_REDIST_DIR" && (pwd -W 2>/dev/null || pwd)`
131 # Check w32api version
132 _W32API_MAJOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $1 }'`
133 _W32API_MINOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $2 }'`
134 AC_MSG_CHECKING([for w32api version >= $W32API_VERSION])
135 AC_TRY_COMPILE([#include <w32api.h>],
136 #if (__W32API_MAJOR_VERSION < $_W32API_MAJOR_VERSION) || \
137 (__W32API_MAJOR_VERSION == $_W32API_MAJOR_VERSION && \
138 __W32API_MINOR_VERSION < $_W32API_MINOR_VERSION)
139 #error "test failed."
141 , [ res=yes ], [ res=no ])
142 AC_MSG_RESULT([$res])
143 if test "$res" != "yes"; then
144 AC_MSG_ERROR([w32api version $W32API_VERSION or higher required.])
146 # strsafe.h on mingw uses macros for function deprecation that pollutes namespace
147 # causing problems with local implementations with the same name.
148 AC_DEFINE(STRSAFE_NO_DEPRECATE)
151 AC_DEFINE(_USE_MATH_DEFINES) # Otherwise Windows' math.h doesn't #define M_PI.
153 CFLAGS="$CFLAGS -D_HAS_EXCEPTIONS=0"
154 CXXFLAGS="$CXXFLAGS -D_HAS_EXCEPTIONS=0"
156 AC_DEFINE_UNQUOTED(WINVER,0x$WINVER)
157 AC_DEFINE_UNQUOTED(_WIN32_WINNT,0x$WINVER)
158 # Require OS features provided by IE 8.0 (Win7)
159 AC_DEFINE_UNQUOTED(_WIN32_IE,0x0800)
164 if test -n "$_WIN32_MSVC"; then
166 SKIP_COMPILER_CHECKS=1
167 SKIP_LIBRARY_CHECKS=1
169 # Since we're skipping compiler and library checks, hard-code
172 AC_DEFINE(HAVE_ISATTY)
175 fi # COMPILE_ENVIRONMENT
180 dnl ========================================================
181 dnl set the defaults first
182 dnl ========================================================
183 MOZ_FIX_LINK_PATHS="-Wl,-rpath-link,${DIST}/bin -Wl,-rpath-link,${prefix}/lib"
185 dnl Configure platform-specific CPU architecture compiler options.
186 dnl ==============================================================
187 if test "$COMPILE_ENVIRONMENT"; then
189 fi # COMPILE_ENVIRONMENT
191 if test -n "$COMPILE_ENVIRONMENT"; then
195 dnl ========================================================
196 dnl GNU specific defaults
197 dnl ========================================================
198 if test "$GNU_CC"; then
199 if test "$OS_ARCH" != "WINNT" -o -z "$CLANG_CC"; then
200 DSO_PIC_CFLAGS='-fPIC'
201 ASFLAGS="$ASFLAGS -fPIC"
204 AC_MSG_CHECKING([for --noexecstack option to as])
206 CFLAGS="$CFLAGS -Wa,--noexecstack"
207 AC_TRY_COMPILE(,,AC_MSG_RESULT([yes])
208 [ASFLAGS="$ASFLAGS -Wa,--noexecstack"],
211 AC_MSG_CHECKING([for -z noexecstack option to ld])
212 _SAVE_LDFLAGS=$LDFLAGS
213 LDFLAGS="$LDFLAGS -Wl,-z,noexecstack"
214 AC_TRY_LINK(,,AC_MSG_RESULT([yes]),
216 LDFLAGS=$_SAVE_LDFLAGS)
218 AC_MSG_CHECKING([for -z text option to ld])
219 _SAVE_LDFLAGS=$LDFLAGS
220 LDFLAGS="$LDFLAGS -Wl,-z,text"
221 AC_TRY_LINK(,,AC_MSG_RESULT([yes]),
223 LDFLAGS=$_SAVE_LDFLAGS)
225 AC_MSG_CHECKING([for -z relro option to ld])
226 _SAVE_LDFLAGS=$LDFLAGS
227 LDFLAGS="$LDFLAGS -Wl,-z,relro"
228 AC_TRY_LINK(,,AC_MSG_RESULT([yes]),
230 LDFLAGS=$_SAVE_LDFLAGS)
232 AC_MSG_CHECKING([for -z nocopyreloc option to ld])
233 _SAVE_LDFLAGS=$LDFLAGS
234 LDFLAGS="$LDFLAGS -Wl,-z,nocopyreloc"
235 AC_TRY_LINK(,,AC_MSG_RESULT([yes]),
237 LDFLAGS=$_SAVE_LDFLAGS)
239 AC_MSG_CHECKING([for -Bsymbolic-functions option to ld])
240 _SAVE_LDFLAGS=$LDFLAGS
241 LDFLAGS="$LDFLAGS -Wl,-Bsymbolic-functions"
242 AC_TRY_LINK(,,AC_MSG_RESULT([yes]),
244 LDFLAGS=$_SAVE_LDFLAGS)
246 # While sha1 is deterministic, it is slower.
247 if test -z "$DEVELOPER_OPTIONS"; then
252 AC_MSG_CHECKING([for --build-id=$build_id option to ld])
253 _SAVE_LDFLAGS=$LDFLAGS
254 LDFLAGS="$LDFLAGS -Wl,--build-id=$build_id"
255 AC_TRY_LINK(,,AC_MSG_RESULT([yes]),
257 LDFLAGS=$_SAVE_LDFLAGS)
259 AC_MSG_CHECKING([for --ignore-unresolved-symbol option to ld])
260 HAVE_LINKER_SUPPORT_IGNORE_UNRESOLVED=
261 _SAVE_LDFLAGS=$LDFLAGS
262 LDFLAGS="$LDFLAGS -Wl,--ignore-unresolved-symbol,environ"
263 AC_TRY_LINK(,,AC_MSG_RESULT([yes])
264 [HAVE_LINKER_SUPPORT_IGNORE_UNRESOLVED=1],
266 LDFLAGS=$_SAVE_LDFLAGS
269 if test "$GCC_USE_GNU_LD"; then
270 # Some tools like ASan use a runtime library that is only
271 # linked against executables, so we must allow undefined
272 # symbols for shared objects in some cases.
273 if test -z "$MOZ_ASAN$MOZ_MSAN$MOZ_UBSAN$MOZ_TSAN$FUZZING_INTERFACES"; then
274 # Don't allow undefined symbols in libraries
275 DSO_LDOPTS="$DSO_LDOPTS -Wl,-z,defs"
277 # BSDs need `environ' exposed for posix_spawn (bug 753046)
279 DragonFly|FreeBSD|NetBSD|OpenBSD)
280 if test -n "$HAVE_LINKER_SUPPORT_IGNORE_UNRESOLVED"; then
281 DSO_LDOPTS="$DSO_LDOPTS -Wl,--ignore-unresolved-symbol,environ"
283 DSO_LDOPTS="$DSO_LDOPTS -Wl,--warn-unresolved-symbols"
290 _DEFINES_CFLAGS="-include $_objdir/mozilla-config.h -DMOZILLA_CLIENT"
292 ASFLAGS="$ASFLAGS $_DEFINES_CFLAGS"
295 if test "$GNU_CXX"; then
296 CXXFLAGS="$CXXFLAGS -fno-exceptions"
298 _DEFINES_CXXFLAGS="-DMOZILLA_CLIENT -include $_objdir/mozilla-config.h"
301 dnl ========================================================
302 dnl System overrides of the defaults for host
303 dnl ========================================================
306 if test -n "$_WIN32_MSVC"; then
307 HOST_CFLAGS="$HOST_CFLAGS"
309 HOST_CFLAGS="$HOST_CFLAGS -mwindows"
311 HOST_CFLAGS="$HOST_CFLAGS -DXP_WIN -DWIN32 -D_WIN32 -D_CRT_SECURE_NO_WARNINGS"
312 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
315 case "${host_cpu}" in
317 if test -n "$_WIN32_MSVC"; then
318 HOST_LDFLAGS="$HOST_LDFLAGS -MACHINE:X86"
322 if test -n "$_WIN32_MSVC"; then
323 HOST_LDFLAGS="$HOST_LDFLAGS -MACHINE:X64"
325 HOST_CFLAGS="$HOST_CFLAGS -D_AMD64_"
331 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX -DXP_MACOSX"
332 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
335 *-linux*|*-kfreebsd*-gnu|*-gnu*)
336 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
337 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
341 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
342 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
346 dnl ========================================================
347 dnl System overrides of the defaults for target
348 dnl ========================================================
352 MOZ_OPTIMIZE_FLAGS="-O3"
355 dnl DTrace and -dead_strip don't interact well. See bug 403132.
356 dnl ===================================================================
357 if test "x$enable_dtrace" = "xyes"; then
358 echo "Skipping -dead_strip because DTrace is enabled. See bug 403132."
360 dnl check for the presence of the -dead_strip linker flag
361 AC_MSG_CHECKING([for -dead_strip option to ld])
362 _SAVE_LDFLAGS=$LDFLAGS
363 LDFLAGS="$LDFLAGS -Wl,-dead_strip"
364 AC_TRY_LINK(,[return 0;],_HAVE_DEAD_STRIP=1,_HAVE_DEAD_STRIP=)
365 if test -n "$_HAVE_DEAD_STRIP" ; then
367 MOZ_OPTIMIZE_LDFLAGS="-Wl,-dead_strip"
372 LDFLAGS=$_SAVE_LDFLAGS
378 *-android*|*-linuxandroid*)
379 if test -z "$CLANG_CC"; then
380 MOZ_OPTIMIZE_FLAGS="-freorder-blocks -fno-reorder-functions -Os"
382 # From https://github.com/android-ndk/ndk/issues/133#issuecomment-308549264
383 # -Oz is smaller than -Os on clang.
384 MOZ_OPTIMIZE_FLAGS="-Oz"
385 # Disable the outliner, which causes performance regressions, and is
386 # enabled on some platforms at -Oz.
387 if test -z "$MOZ_LTO"; then
388 DISABLE_OUTLINER="-mno-outline"
390 CFLAGS="$CFLAGS $DISABLE_OUTLINER"
391 AC_TRY_COMPILE(,,[MOZ_OPTIMIZE_FLAGS="$MOZ_OPTIMIZE_FLAGS $DISABLE_OUTLINER"])
392 CFLAGS="$_SAVE_CFLAGS"
394 DISABLE_OUTLINER="-Wl,-plugin-opt=-enable-machine-outliner=never"
395 _SAVE_LDFLAGS=$LDFLAGS
396 LDFLAGS="$LDFLAGS $MOZ_LTO_LDFLAGS $DISABLE_OUTLINER"
397 AC_TRY_LINK(,,[MOZ_OPTIMIZE_LDFLAGS="$MOZ_OPTIMIZE_LDFLAGS $DISABLE_OUTLINER"])
398 LDFLAGS="$_SAVE_LDFLAGS"
404 if test "$GNU_CC" -o "$GNU_CXX"; then
405 MOZ_PGO_OPTIMIZE_FLAGS="-O3"
406 if test -n "$MOZ_DEBUG"; then
407 MOZ_OPTIMIZE_FLAGS="-Os"
409 MOZ_OPTIMIZE_FLAGS="-O2"
411 if test -z "$CLANG_CC"; then
412 MOZ_OPTIMIZE_FLAGS="-freorder-blocks $MOZ_OPTIMIZE_FLAGS"
416 case "${target_cpu}" in
418 CFLAGS="$CFLAGS -mieee"
419 CXXFLAGS="$CXXFLAGS -mieee"
425 # certain versions of cygwin's makedepend barf on the
426 # #include <string> vs -I./dist/include/string issue so don't use it
427 if test -n "$GNU_CC" -o -n "$CLANG_CC"; then
428 # $GNU_CC will match gcc and clang; while $CLANG_CC will match only clang
429 if test -z "$CLANG_CC"; then
430 AC_MSG_ERROR(Firefox cannot be built with mingw-gcc and requires a mingw-clang toolchain to work)
436 MOZ_OPTIMIZE_FLAGS="-O2"
438 WIN32_CONSOLE_EXE_LDFLAGS=-mconsole
439 WIN32_GUI_EXE_LDFLAGS=-mwindows
441 # Silence problematic clang warnings
442 CXXFLAGS="$CXXFLAGS -Wno-incompatible-ms-struct"
443 LDFLAGS="$LDFLAGS -Wl,--no-insert-timestamp"
445 TARGET_COMPILER_ABI=msvc
446 # aarch64 doesn't support subsystems below 6.02
447 if test "$CPU_ARCH" = "aarch64"; then
448 WIN32_SUBSYSTEM_VERSION=6.02
450 WIN32_SUBSYSTEM_VERSION=6.01
452 WIN32_CONSOLE_EXE_LDFLAGS=-SUBSYSTEM:CONSOLE,$WIN32_SUBSYSTEM_VERSION
453 WIN32_GUI_EXE_LDFLAGS=-SUBSYSTEM:WINDOWS,$WIN32_SUBSYSTEM_VERSION
454 DSO_LDOPTS=-SUBSYSTEM:WINDOWS,$WIN32_SUBSYSTEM_VERSION
455 _DEFINES_CFLAGS="-FI $_objdir/mozilla-config.h -DMOZILLA_CLIENT"
456 _DEFINES_CXXFLAGS="-FI $_objdir/mozilla-config.h -DMOZILLA_CLIENT"
457 CFLAGS="$CFLAGS -Gy -Zc:inline"
458 CXXFLAGS="$CXXFLAGS -Gy -Zc:inline"
459 if test "$CPU_ARCH" = "x86"; then
460 dnl VS2012+ defaults to -arch:SSE2. We want to target nothing
461 dnl more recent, so set that explicitly here unless another
462 dnl target arch has already been set.
464 if test -z `echo $CFLAGS | grep -i [-/]arch:`; then
465 CFLAGS="$CFLAGS -arch:SSE2"
467 if test -z `echo $CXXFLAGS | grep -i [-/]arch:`; then
468 CXXFLAGS="$CXXFLAGS -arch:SSE2"
472 dnl VS2013+ supports -Gw for better linker optimizations.
473 dnl http://blogs.msdn.com/b/vcblog/archive/2013/09/11/introducing-gw-compiler-switch.aspx
474 dnl Disabled on ASan because it causes false-positive ODR violations.
475 if test -z "$MOZ_ASAN"; then
477 CXXFLAGS="$CXXFLAGS -Gw"
479 # String tail merging doesn't play nice with ASan's ODR checker.
480 LDFLAGS="$LDFLAGS -opt:nolldtailmerge"
482 # Silence VS2017 15.5+ TR1 deprecation warnings hit by older gtest versions
483 CXXFLAGS="$CXXFLAGS -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING"
484 MOZ_DEBUG_LDFLAGS='-DEBUG'
485 if test "$HOST_OS_ARCH" != "WINNT"; then
486 # %_PDB% is a special signal to emit only the PDB basename. This
487 # avoids problems in Windows tools that don't like forward-slashes.
488 MOZ_DEBUG_LDFLAGS="$MOZ_DEBUG_LDFLAGS -PDBALTPATH:%_PDB%"
490 MOZ_OPTIMIZE_FLAGS='-O2'
492 LDFLAGS="$LDFLAGS -LARGEADDRESSAWARE"
494 AC_DEFINE(WIN32_LEAN_AND_MEAN)
495 dnl See http://support.microsoft.com/kb/143208 to use STL
501 AC_MSG_ERROR([Using a Cygwin build environment is unsupported. Configure cannot check for presence of necessary headers. Please upgrade to MozillaBuild; see https://developer.mozilla.org/en/Windows_Build_Prerequisites.])
507 if test -n "$GNU_CC"; then
508 CFLAGS="$CFLAGS -mstackrealign"
509 CXXFLAGS="$CXXFLAGS -mstackrealign"
510 LDFLAGS="$LDFLAGS -Wl,--large-address-aware"
512 DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X86"
513 LDFLAGS="$LDFLAGS -SAFESEH"
519 if test -n "$_WIN32_MSVC"; then
520 DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X64"
525 if test -n "$_WIN32_MSVC"; then
526 DSO_LDOPTS="$DSO_LDOPTS -MACHINE:ARM64"
531 AC_DEFINE(_CPU_ARCH_NOT_DEFINED)
537 CFLAGS="$CFLAGS -Dunix"
538 CXXFLAGS="$CXXFLAGS -Dunix"
539 if $CC -E - -dM </dev/null | grep __ELF__ >/dev/null; then
540 DSO_PIC_CFLAGS='-fPIC -DPIC'
542 MOZ_PROGRAM_LDFLAGS="$MOZ_PROGRAM_LDFLAGS -Wl,--export-dynamic"
544 DSO_PIC_CFLAGS='-fPIC -DPIC'
547 # This will fail on a.out systems prior to 1.5.1_ALPHA.
548 if test "$LIBRUNPATH"; then
549 DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS"
554 if test -z "$X11BASE"; then
557 MOZ_FIX_LINK_PATHS="$MOZ_FIX_LINK_PATHS -Wl,-rpath-link,${X11BASE}/lib"
558 DSO_PIC_CFLAGS='-fPIC'
559 DSO_LDOPTS='-shared -fPIC'
560 if test "$LIBRUNPATH"; then
561 DSO_LDOPTS="-R$LIBRUNPATH $DSO_LDOPTS"
566 MOZ_FIX_LINK_PATHS="-L${DIST}/bin"
571 CFLAGS="$CFLAGS $DSO_PIC_CFLAGS"
572 CXXFLAGS="$CXXFLAGS $DSO_PIC_CFLAGS"
574 if test -z "$MOZ_OPTIMIZE_FLAGS"; then
575 MOZ_OPTIMIZE_FLAGS="-O"
579 if test -z "$COMPILE_ENVIRONMENT"; then
580 SKIP_COMPILER_CHECKS=1
581 SKIP_LIBRARY_CHECKS=1
585 fi # COMPILE_ENVIRONMENT
587 if test -z "$SKIP_COMPILER_CHECKS"; then
588 dnl Checks for typedefs, structures, and compiler characteristics.
589 dnl ========================================================
604 dnl Checks for header files.
605 dnl ========================================================
608 dnl Checks for libraries.
609 dnl ========================================================
610 AC_CHECK_LIB(c_r, gethostbyname_r)
612 dnl We don't want to link with libdl even if it's present on OS X, since
613 dnl it's not used and not part of the default installation. OS/2 has dlfcn
615 dnl We don't want to link against libm or libpthread on Darwin since
616 dnl they both are just symlinks to libSystem and explicitly linking
617 dnl against libSystem causes issues when debugging (see bug 299601).
622 AC_SEARCH_LIBS(dlopen, dl,
623 MOZ_CHECK_HEADER(dlfcn.h,
624 AC_DEFINE(HAVE_DLOPEN)))
628 _SAVE_CFLAGS="$CFLAGS"
629 CFLAGS="$CFLAGS -D_GNU_SOURCE"
630 AC_CHECK_FUNCS(dladdr)
631 CFLAGS="$_SAVE_CFLAGS"
633 if test ! "$GNU_CXX"; then
634 AC_CHECK_LIB(C, demangle)
637 AC_CHECK_LIB(socket, socket)
639 dnl ========================================================
640 dnl = pthread support
641 dnl = Start by checking whether the system support pthreads
642 dnl ========================================================
648 AC_CHECK_LIB(pthreads, pthread_create,
649 MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthreads",
650 AC_CHECK_LIB(pthread, pthread_create,
651 MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthread",
652 AC_CHECK_LIB(c_r, pthread_create,
653 MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lc_r",
654 AC_CHECK_LIB(c, pthread_create,
663 dnl ========================================================
664 dnl Do the platform specific pthread hackery
665 dnl ========================================================
666 if test "$MOZ_USE_PTHREADS"x != x
669 dnl See if -pthread is supported.
672 ac_cv_have_dash_pthread=no
673 AC_MSG_CHECKING(whether ${CC-cc} accepts -pthread)
674 echo 'int main() { return 0; }' | cat > conftest.c
675 ${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1
676 if test $? -eq 0; then
677 if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthread`" -a -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
678 ac_cv_have_dash_pthread=yes
681 # Freebsd doesn't use -pthread for compiles, it uses them for linking
684 CFLAGS="$CFLAGS -pthread"
685 CXXFLAGS="$CXXFLAGS -pthread"
691 AC_MSG_RESULT($ac_cv_have_dash_pthread)
694 dnl See if -pthreads is supported.
696 ac_cv_have_dash_pthreads=no
697 if test "$ac_cv_have_dash_pthread" = "no"; then
698 AC_MSG_CHECKING(whether ${CC-cc} accepts -pthreads)
699 echo 'int main() { return 0; }' | cat > conftest.c
700 ${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1
701 if test $? -eq 0; then
702 if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthreads`" -a -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
703 ac_cv_have_dash_pthreads=yes
704 CFLAGS="$CFLAGS -pthreads"
705 CXXFLAGS="$CXXFLAGS -pthreads"
709 AC_MSG_RESULT($ac_cv_have_dash_pthreads)
714 AC_DEFINE(_REENTRANT)
715 AC_DEFINE(_THREAD_SAFE)
716 dnl -pthread links in -lpthread, so don't specify it explicitly.
717 if test "$ac_cv_have_dash_pthread" = "yes"; then
718 _PTHREAD_LDFLAGS="-pthread"
722 *-*-openbsd*|*-*-bsdi*)
723 AC_DEFINE(_REENTRANT)
724 AC_DEFINE(_THREAD_SAFE)
725 dnl -pthread links in -lc_r, so don't specify it explicitly.
726 if test "$ac_cv_have_dash_pthread" = "yes"; then
727 _PTHREAD_LDFLAGS="-pthread"
731 *-*-linux*|*-*-kfreebsd*-gnu|*-*-gnu*)
732 AC_DEFINE(_REENTRANT)
736 LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}"
737 AC_SUBST(MOZ_USE_PTHREADS)
738 MOZ_CHECK_HEADERS(pthread.h)
742 dnl Checks for library functions.
743 dnl ========================================================
745 dnl check for clock_gettime(), the CLOCK_MONOTONIC clock
746 AC_CACHE_CHECK(for clock_gettime(CLOCK_MONOTONIC),
747 ac_cv_clock_monotonic,
748 [for libs in "" -lrt; do
751 dnl clock_gettime is available on OSX since 10.12, so depending on MACOSX_DEPLOYMENT_TARGET,
752 dnl we should or not be able to use it. To detect if we can, we need to make the
753 dnl availability attribute strict, so that compilation fails when the target is < 10.12.
754 AC_TRY_LINK([#define availability(os, ...) availability(os, strict, __VA_ARGS)
756 [ struct timespec ts;
757 clock_gettime(CLOCK_MONOTONIC, &ts); ],
758 ac_cv_clock_monotonic=$libs
761 ac_cv_clock_monotonic=no)
764 if test "$ac_cv_clock_monotonic" != "no"; then
765 HAVE_CLOCK_MONOTONIC=1
766 REALTIME_LIBS=$ac_cv_clock_monotonic
767 AC_DEFINE(HAVE_CLOCK_MONOTONIC)
768 AC_SUBST(HAVE_CLOCK_MONOTONIC)
769 AC_SUBST_LIST(REALTIME_LIBS)
774 ac_cv_func_res_ninit,
775 [if test "$OS_TARGET" = NetBSD -o "$OS_TARGET" = OpenBSD; then
776 dnl no need for res_ninit() on NetBSD and OpenBSD
777 ac_cv_func_res_ninit=no
781 #define _BSD_SOURCE 1
783 #include <sys/types.h>
784 #include <netinet/in.h>
785 #include <arpa/nameser.h>
788 [int foo = res_ninit(&_res);],
789 [ac_cv_func_res_ninit=yes],
790 [ac_cv_func_res_ninit=no])
794 if test "$ac_cv_func_res_ninit" = "yes"; then
795 AC_DEFINE(HAVE_RES_NINIT)
796 dnl must add the link line we do something as foolish as this... dougt
798 dnl AC_CHECK_LIB(bind, res_ninit, AC_DEFINE(HAVE_RES_NINIT),
799 dnl AC_CHECK_LIB(resolv, res_ninit, AC_DEFINE(HAVE_RES_NINIT)))
804 dnl ===================================================================
805 dnl ========================================================
806 dnl Put your C++ language/feature checks below
807 dnl ========================================================
811 if test "$GNU_CC"; then
812 if test "$CPU_ARCH" = "arm" ; then
813 AC_CACHE_CHECK(for ARM EABI,
817 #if defined(__ARM_EABI__)
823 ac_cv_gcc_arm_eabi="yes",
824 ac_cv_gcc_arm_eabi="no")])
825 if test "$ac_cv_gcc_arm_eabi" = "yes"; then
833 TARGET_COMPILER_ABI="${TARGET_COMPILER_ABI-${ARM_ABI_PREFIX}gcc3}"
836 # try harder, when checking for __thread support, see bug 521750 comment #33 and below
837 # We pass MOZ_OPTIMIZE_LDFLAGS to the linker because if dead_strip is
838 # enabled, the linker in xcode 4.1 will crash. Without this it would crash when
840 _SAVE_LDFLAGS=$LDFLAGS
841 LDFLAGS="$LDFLAGS $DSO_LDOPTS $MOZ_OPTIMIZE_LDFLAGS"
842 AC_CACHE_CHECK(for __thread keyword for TLS variables,
843 ac_cv_thread_keyword,
844 [AC_TRY_LINK([__thread bool tlsIsMainThread = false;],
845 [return tlsIsMainThread;],
846 ac_cv_thread_keyword=yes,
847 ac_cv_thread_keyword=no)])
848 LDFLAGS=$_SAVE_LDFLAGS
849 # The custom dynamic linker doesn't support TLS variables
850 if test "$ac_cv_thread_keyword" = yes -a "$MOZ_LINKER" != 1; then
851 # mips builds fail with TLS variables because of a binutils bug.
853 # OpenBSD doesn't have TLS support, and the test succeeds with clang++
858 *-android*|*-linuxandroid*)
865 AC_DEFINE(HAVE_THREAD_TLS_KEYWORD)
870 if test -n "$MOZ_LINKER"; then
871 dnl gold emits wrong sysv-style elf hash tables when building both sysv and
872 dnl style tables. https://sourceware.org/bugzilla/show_bug.cgi?id=13597
873 dnl Since the linker only understands the sysv ones, no need to build the
874 dnl gnu style tables anyways.
875 LDFLAGS="$LDFLAGS -Wl,--hash-style=sysv"
878 dnl End of C++ language/feature checks
881 fi # ! SKIP_COMPILER_CHECKS
883 if test -n "${COMPILE_ENVIRONMENT}"; then
888 if test -n "${CPU_ARCH}" -a -n "${TARGET_COMPILER_ABI}"; then
889 TARGET_XPCOM_ABI="${CPU_ARCH}-${TARGET_COMPILER_ABI}"
890 AC_DEFINE_UNQUOTED(TARGET_XPCOM_ABI, ["${TARGET_XPCOM_ABI}"])
893 dnl We can't run TRY_COMPILE tests on Windows, so hard-code some
894 dnl features that Windows actually does support.
896 if test -n "$SKIP_COMPILER_CHECKS"; then
897 dnl Windows has malloc.h
898 AC_DEFINE(MALLOC_H, [<malloc.h>])
899 AC_DEFINE(HAVE_FORCEINLINE)
900 fi # SKIP_COMPILER_CHECKS
902 dnl Mozilla specific options
903 dnl ========================================================
904 dnl The macros used for command line options
905 dnl are defined in build/autoconf/altoptions.m4.
907 dnl ========================================================
911 dnl ========================================================
913 MOZ_BRANDING_DIRECTORY=
914 MOZ_OFFICIAL_BRANDING=
916 MOZ_BINARY_EXTENSIONS=
919 dnl ========================================================
920 dnl = Trademarked Branding
921 dnl ========================================================
922 MOZ_ARG_ENABLE_BOOL(official-branding,
923 [ --enable-official-branding
924 Enable Official mozilla.org Branding
925 Do not distribute builds with
926 --enable-official-branding unless you have
927 permission to use trademarks per
928 http://www.mozilla.org/foundation/trademarks/ .],
929 MOZ_OFFICIAL_BRANDING=1,
930 MOZ_OFFICIAL_BRANDING=)
932 # Allow the application to influence configure with a confvars.sh script.
933 AC_MSG_CHECKING([if app-specific confvars.sh exists])
934 if test -f "${srcdir}/${MOZ_BUILD_APP}/confvars.sh" ; then
935 AC_MSG_RESULT([${srcdir}/${MOZ_BUILD_APP}/confvars.sh])
936 . "${srcdir}/${MOZ_BUILD_APP}/confvars.sh"
941 AC_SUBST(MOZ_OFFICIAL_BRANDING)
942 if test -n "$MOZ_OFFICIAL_BRANDING"; then
943 if test -z "$MOZ_OFFICIAL_BRANDING_DIRECTORY"; then
944 AC_MSG_ERROR([You must specify MOZ_OFFICIAL_BRANDING_DIRECTORY to use --enable-official-branding.])
946 MOZ_BRANDING_DIRECTORY=${MOZ_OFFICIAL_BRANDING_DIRECTORY}
947 AC_DEFINE(MOZ_OFFICIAL_BRANDING)
951 MOZ_ARG_WITH_STRING(branding,
952 [ --with-branding=dir Use branding from the specified directory.],
953 MOZ_BRANDING_DIRECTORY=$withval)
955 REAL_BRANDING_DIRECTORY="${MOZ_BRANDING_DIRECTORY}"
956 if test -z "$REAL_BRANDING_DIRECTORY"; then
957 REAL_BRANDING_DIRECTORY=${MOZ_BUILD_APP}/branding/nightly
960 if test -f "${_topsrcdir}/$REAL_BRANDING_DIRECTORY/configure.sh"; then
961 . "${_topsrcdir}/$REAL_BRANDING_DIRECTORY/configure.sh"
964 AC_SUBST(MOZ_BRANDING_DIRECTORY)
966 dnl ========================================================
967 dnl = Distribution ID
968 dnl ========================================================
969 MOZ_ARG_WITH_STRING(distribution-id,
970 [ --with-distribution-id=ID
971 Set distribution-specific id (default=org.mozilla)],
972 [ val=`echo $withval`
973 MOZ_DISTRIBUTION_ID="$val"])
975 if test -z "$MOZ_DISTRIBUTION_ID"; then
976 MOZ_DISTRIBUTION_ID="org.mozilla"
979 AC_SUBST(MOZ_DISTRIBUTION_ID)
981 dnl ========================================================
982 dnl = Enable code optimization. ON by default.
983 dnl ========================================================
985 # Use value from moz.configure if one is defined. Else use our computed
987 if test -n "${MOZ_CONFIGURE_OPTIMIZE_FLAGS}"; then
988 MOZ_OPTIMIZE_FLAGS=${MOZ_CONFIGURE_OPTIMIZE_FLAGS}
991 if test "$COMPILE_ENVIRONMENT"; then
992 if test -n "$MOZ_OPTIMIZE"; then
993 AC_MSG_CHECKING([for valid C compiler optimization flags])
995 CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS"
996 AC_TRY_COMPILE([#include <stdio.h>],
997 [printf("Hello World\n");],
1000 AC_MSG_RESULT([$_results])
1001 if test "$_results" = "no"; then
1002 AC_MSG_ERROR([These compiler flags for C are invalid: $MOZ_OPTIMIZE_FLAGS])
1004 CFLAGS=$_SAVE_CFLAGS
1005 if test -n "$MOZ_LTO" -a -n "$CLANG_CC"; then
1006 # When using llvm-based LTO, non numeric optimization levels are
1007 # not supported by the linker, so force the linker to use -O2 (
1008 # which doesn't influence the level compilation units are actually
1010 case " $MOZ_OPTIMIZE_FLAGS " in
1011 *\ -Os\ *|*\ -Oz\ *)
1012 MOZ_OPTIMIZE_LDFLAGS="$MOZ_OPTIMIZE_LDFLAGS -O2"
1017 fi # COMPILE_ENVIRONMENT
1019 AC_SUBST_LIST(MOZ_OPTIMIZE_FLAGS)
1020 AC_SUBST_LIST(MOZ_OPTIMIZE_LDFLAGS)
1021 AC_SUBST_LIST(MOZ_PGO_OPTIMIZE_FLAGS)
1023 case "${OS_TARGET}" in
1024 Android|WINNT|Darwin)
1025 MOZ_GLUE_IN_PROGRAM=
1028 dnl On !Android !Windows !OSX, we only want to link executables against mozglue
1029 MOZ_GLUE_IN_PROGRAM=1
1030 AC_DEFINE(MOZ_GLUE_IN_PROGRAM)
1034 dnl ========================================================
1035 dnl = Jemalloc build setup
1036 dnl ========================================================
1037 if test -z "$MOZ_MEMORY"; then
1040 if test -z "$WIN32_REDIST_DIR" -a -z "$MOZ_DEBUG"; then
1041 AC_MSG_WARN([When not building jemalloc, you need to set WIN32_REDIST_DIR to the path to the Visual C++ Redist (usually VCINSTALLDIR/redist/x86/Microsoft.VC80.CRT, for VC++ v8) if you intend to distribute your build.])
1046 dnl The generic feature tests that determine how to compute ncpus are long and
1047 dnl complicated. Therefore, simply define special cpp variables for the
1048 dnl platforms we have special knowledge of.
1051 export MOZ_NO_DEBUG_RTL=1
1055 AC_SUBST(MOZ_GLUE_IN_PROGRAM)
1057 dnl ========================================================
1058 dnl = Enable using the clang plugin to build
1059 dnl ========================================================
1061 if test -n "$COMPILE_ENVIRONMENT"; then
1062 MOZ_CONFIG_CLANG_PLUGIN
1063 fi # COMPILE_ENVIRONMENT
1065 if test -z "$SKIP_COMPILER_CHECKS"; then
1066 dnl ========================================================
1067 dnl Check for gcc -pipe support
1068 dnl ========================================================
1069 AC_MSG_CHECKING([for -pipe support])
1070 if test -n "$GNU_CC" -a -n "$GNU_CXX"; then
1071 dnl Any gcc that supports firefox supports -pipe.
1072 CFLAGS="$CFLAGS -pipe"
1073 CXXFLAGS="$CXXFLAGS -pipe"
1074 AC_MSG_RESULT([yes])
1079 fi # ! SKIP_COMPILER_CHECKS
1083 if test "$COMPILE_ENVIRONMENT"; then
1085 fi # COMPILE_ENVIRONMENT
1087 dnl ========================================================
1088 dnl Check if we need the 32-bit Linux SSE2 error dialog
1089 dnl ========================================================
1091 AC_SUBST(MOZ_LINUX_32_SSE2_STARTUP_ERROR)
1093 dnl ========================================================
1095 dnl ========================================================
1097 if test "$OS_ARCH" = "WINNT"; then
1098 # For now we assume that we will have a uint64_t available through
1099 # one of the above headers or mozstdint.h.
1100 AC_DEFINE(HAVE_UINT64_T)
1103 case "$MOZ_WIDGET_TOOLKIT" in
1105 if test "$COMPILE_ENVIRONMENT"; then
1106 MOZ_CHECK_HEADER(d3d10.h, MOZ_ENABLE_D3D10_LAYER=1)
1110 AC_SUBST(MOZ_ENABLE_D3D10_LAYER)
1112 dnl ========================================================
1114 dnl = Maintainer debug option (no --enable equivalent)
1116 dnl ========================================================
1118 AC_SUBST_LIST(ASFLAGS)
1119 AC_SUBST_LIST(MOZ_DEBUG_LDFLAGS)
1121 AC_SUBST(MOZ_STUB_INSTALLER)
1123 AC_SUBST_LIST(MOZ_FIX_LINK_PATHS)
1125 AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
1127 if test -n "$MOZ_BINARY_EXTENSIONS"; then
1128 AC_DEFINE(MOZ_BINARY_EXTENSIONS)
1131 dnl ========================================================
1132 dnl = Mac bundle name prefix
1133 dnl ========================================================
1134 MOZ_ARG_WITH_STRING(macbundlename-prefix,
1135 [ --with-macbundlename-prefix=prefix
1136 Prefix for MOZ_MACBUNDLE_NAME],
1137 [ MOZ_MACBUNDLE_NAME_PREFIX="$withval"])
1139 MOZ_MACBUNDLE_NAME=$MOZ_APP_DISPLAYNAME
1140 if test "$MOZ_MACBUNDLE_NAME_PREFIX"; then
1141 MOZ_MACBUNDLE_NAME="${MOZ_MACBUNDLE_NAME_PREFIX}${MOZ_MACBUNDLE_NAME}"
1144 if test "$MOZ_DEBUG"; then
1145 MOZ_MACBUNDLE_NAME="${MOZ_MACBUNDLE_NAME}Debug.app"
1147 MOZ_MACBUNDLE_NAME=${MOZ_MACBUNDLE_NAME}.app
1149 AC_SUBST(MOZ_MACBUNDLE_NAME)
1151 dnl Mac bundle identifier (based on MOZ_APP_DISPLAYNAME)
1152 # If the MOZ_MACBUNDLE_ID is defined in the configure.sh, use it
1153 # Otherwise, use MOZ_APP_DISPLAYNAME
1154 if test -z "$MOZ_MACBUNDLE_ID"; then
1155 MOZ_MACBUNDLE_ID=`echo $MOZ_APP_DISPLAYNAME | tr 'A-Z' 'a-z' | tr -dc 'a-z-'`
1157 MOZ_MACBUNDLE_ID=${MOZ_DISTRIBUTION_ID}.${MOZ_MACBUNDLE_ID}
1158 if test "$MOZ_DEBUG"; then
1159 MOZ_MACBUNDLE_ID=${MOZ_MACBUNDLE_ID}debug
1162 AC_DEFINE_UNQUOTED(MOZ_MACBUNDLE_ID,$MOZ_MACBUNDLE_ID)
1163 AC_SUBST(MOZ_MACBUNDLE_ID)
1165 dnl ========================================================
1166 dnl = Child Process Name for IPC
1167 dnl ========================================================
1168 if test "$MOZ_WIDGET_TOOLKIT" != "android"; then
1169 MOZ_CHILD_PROCESS_NAME="plugin-container${BIN_SUFFIX}"
1171 # We want to let Android unpack the file at install time, but it only does
1172 # so if the file is named libsomething.so. The lib/ path is also required
1173 # because the unpacked file will be under the lib/ subdirectory and will
1174 # need to be executed from that path.
1175 MOZ_CHILD_PROCESS_NAME="libplugin-container.so"
1177 MOZ_CHILD_PROCESS_BUNDLE="plugin-container.app/Contents/MacOS/"
1178 MOZ_CHILD_PROCESS_BUNDLEID=${MOZ_DISTRIBUTION_ID}.plugincontainer
1179 MOZ_CHILD_PROCESS_BUNDLENAME="plugin-container.app"
1180 MOZ_CHILD_PROCESS_APPNAME="${MOZ_APP_DISPLAYNAME}CP"
1182 AC_SUBST(MOZ_CHILD_PROCESS_NAME)
1183 AC_SUBST(MOZ_CHILD_PROCESS_BUNDLE)
1184 AC_SUBST(MOZ_CHILD_PROCESS_BUNDLEID)
1185 AC_SUBST(MOZ_CHILD_PROCESS_APPNAME)
1186 AC_SUBST(MOZ_CHILD_PROCESS_BUNDLENAME)
1188 dnl ==========================================================
1189 dnl = Mac Media Plugin Helper (GMP Child) Process Name for IPC
1190 dnl ==========================================================
1191 MOZ_EME_PROCESS_NAME="media-plugin-helper"
1192 MOZ_EME_PROCESS_NAME_BRANDED="$MOZ_APP_DISPLAYNAME Media Plugin Helper"
1193 MOZ_EME_PROCESS_BUNDLENAME="${MOZ_EME_PROCESS_NAME}.app"
1194 # Generate a lower case string with no spaces to be used as the bundle ID
1195 # for the EME helper .app of the form org.mozilla.<executable-name>.
1196 MOZ_EME_PROCESS_BUNDLEID=`echo "$MOZ_APP_DISPLAYNAME" | tr ' ' '-'`
1197 MOZ_EME_PROCESS_BUNDLEID=`echo "$MOZ_EME_PROCESS_BUNDLEID" | tr 'A-Z' 'a-z'`
1198 MOZ_EME_PROCESS_BUNDLEID=${MOZ_EME_PROCESS_BUNDLEID}-${MOZ_EME_PROCESS_NAME}
1199 MOZ_EME_PROCESS_BUNDLEID=${MOZ_DISTRIBUTION_ID}.${MOZ_EME_PROCESS_BUNDLEID}
1201 AC_SUBST(MOZ_EME_PROCESS_NAME)
1202 AC_SUBST(MOZ_EME_PROCESS_NAME_BRANDED)
1203 AC_SUBST(MOZ_EME_PROCESS_BUNDLENAME)
1204 AC_SUBST(MOZ_EME_PROCESS_BUNDLEID)
1206 # The following variables are available to branding and application
1207 # configuration ($BRANDING/configure.sh and $APPLICATION/confvars.sh):
1208 # - MOZ_APP_VENDOR: Used for application.ini's "Vendor" field, which also
1209 # impacts profile location and user-visible fields.
1210 # - MOZ_APP_DISPLAYNAME: Used in user-visible fields (DLL properties,
1211 # Mac Bundle name, Updater, Installer), it is typically used for nightly
1212 # builds (e.g. Aurora for Firefox).
1213 # - MOZ_APP_PROFILE: When set, used for application.ini's
1214 # "Profile" field, which controls profile location.
1215 # - MOZ_APP_ID: When set, used for application.ini's "ID" field, and
1216 # crash reporter server url.
1217 # - MOZ_PROFILE_MIGRATOR: When set, enables profile migrator.
1219 # The following environment variables used to have an effect, but don't anymore:
1220 # - MOZ_APP_VERSION: Defines the application version number. This was replaced with
1221 # the contents from the version.txt file in the application directory, or
1222 # browser/config/version.txt if there isn't one.
1223 # - MOZ_APP_VERSION_DISPLAY: Defines the application version number. Used
1224 # in the "About" window. This was replaced with the contents from the
1225 # version_display.txt or version.txt in the application directory, or
1226 # browser/config/version_display.txt.
1228 # For extensions and langpacks, we require a max version that is compatible
1229 # across security releases. MOZ_APP_MAXVERSION is our method for doing that.
1230 # 24.0a1 and 24.0a2 aren't affected
1232 # 24.1.1 becomes 24.*
1233 IS_ALPHA=`echo $MOZ_APP_VERSION | grep a`
1234 if test -z "$IS_ALPHA"; then
1236 if test "$(basename $MOZ_BUILD_APP)" = "suite"; then
1237 MOZ_APP_MAXVERSION=`echo $MOZ_APP_VERSION | sed "s|\(^[0-9]*\.[0-9]*\).*|\1|"`.*
1239 MOZ_APP_MAXVERSION=`echo $MOZ_APP_VERSION | sed "s|\(^[0-9]*\).*|\1|"`.*
1243 MOZ_APP_MAXVERSION=$MOZ_APP_VERSION
1246 AC_SUBST(MOZ_APP_DISPLAYNAME)
1247 AC_SUBST(MOZ_APP_VENDOR)
1248 AC_SUBST(MOZ_APP_PROFILE)
1249 AC_SUBST(MOZ_APP_ID)
1250 AC_SUBST(MAR_CHANNEL_ID)
1251 AC_SUBST(ACCEPTED_MAR_CHANNEL_IDS)
1252 AC_SUBST(MOZ_PROFILE_MIGRATOR)
1253 AC_DEFINE_UNQUOTED(MOZ_APP_UA_NAME, "$MOZ_APP_UA_NAME")
1254 AC_SUBST(MOZ_APP_UA_NAME)
1255 AC_DEFINE_UNQUOTED(MOZ_APP_UA_VERSION, "$MOZ_APP_VERSION")
1256 AC_DEFINE_UNQUOTED(BROWSER_CHROME_URL, $BROWSER_CHROME_URL)
1257 AC_DEFINE_UNQUOTED(BROWSER_CHROME_URL_QUOTED, "$BROWSER_CHROME_URL")
1259 AC_SUBST(MOZ_APP_MAXVERSION)
1260 AC_SUBST(MOZ_PKG_SPECIAL)
1261 AC_SUBST(MOZ_SIMPLE_PACKAGE_NAME)
1263 if test "$MOZILLA_OFFICIAL"; then
1264 # Build revisions should always be present in official builds
1265 MOZ_INCLUDE_SOURCE_INFO=1
1268 # External builds (specifically Ubuntu) may drop the hg repo information, so we allow to
1269 # explicitly set the repository and changeset information in.
1270 AC_SUBST(MOZ_SOURCE_REPO)
1271 AC_SUBST(MOZ_SOURCE_CHANGESET)
1272 AC_SUBST(MOZ_INCLUDE_SOURCE_INFO)
1275 AC_SUBST(WIN32_REDIST_DIR)
1276 AC_SUBST(WIN_UCRT_REDIST_DIR)
1278 dnl Echo the CFLAGS to remove extra whitespace.
1280 $_COMPILATION_CFLAGS \
1284 $_COMPILATION_CXXFLAGS \
1287 COMPILE_CFLAGS=`echo \
1291 COMPILE_CXXFLAGS=`echo \
1292 $_DEFINES_CXXFLAGS \
1296 $_COMPILATION_HOST_CFLAGS \
1299 HOST_CXXFLAGS=`echo \
1300 $_COMPILATION_HOST_CXXFLAGS \
1303 HOST_CMFLAGS="-x objective-c -fobjc-exceptions"
1304 HOST_CMMFLAGS="-x objective-c++ -fobjc-exceptions"
1305 OS_COMPILE_CMFLAGS="-x objective-c -fobjc-exceptions"
1306 OS_COMPILE_CMMFLAGS="-x objective-c++ -fobjc-exceptions"
1307 if test "$MOZ_WIDGET_TOOLKIT" = uikit; then
1308 OS_COMPILE_CMFLAGS="$OS_COMPILE_CMFLAGS -fobjc-abi-version=2 -fobjc-legacy-dispatch"
1309 OS_COMPILE_CMMFLAGS="$OS_COMPILE_CMMFLAGS -fobjc-abi-version=2 -fobjc-legacy-dispatch"
1311 AC_SUBST(HOST_CMFLAGS)
1312 AC_SUBST(HOST_CMMFLAGS)
1313 AC_SUBST(OS_COMPILE_CMFLAGS)
1314 AC_SUBST(OS_COMPILE_CMMFLAGS)
1317 OS_CXXFLAGS="$CXXFLAGS"
1318 OS_CPPFLAGS="$CPPFLAGS"
1319 OS_COMPILE_CFLAGS="$COMPILE_CFLAGS"
1320 OS_COMPILE_CXXFLAGS="$COMPILE_CXXFLAGS"
1321 OS_LDFLAGS="$LDFLAGS"
1323 AC_SUBST_LIST(OS_CFLAGS)
1324 AC_SUBST_LIST(OS_CXXFLAGS)
1325 AC_SUBST_LIST(OS_CPPFLAGS)
1326 AC_SUBST_LIST(OS_COMPILE_CFLAGS)
1327 AC_SUBST_LIST(OS_COMPILE_CXXFLAGS)
1328 AC_SUBST_LIST(OS_LDFLAGS)
1333 AC_SUBST_LIST(HOST_CFLAGS)
1334 AC_SUBST_LIST(HOST_CPPFLAGS)
1335 AC_SUBST_LIST(HOST_CXXFLAGS)
1336 AC_SUBST(HOST_LDFLAGS)
1337 AC_SUBST_LIST(HOST_OPTIMIZE_FLAGS)
1338 AC_SUBST(HOST_BIN_SUFFIX)
1340 AC_SUBST(TARGET_XPCOM_ABI)
1342 AC_SUBST(DSO_LDOPTS)
1343 AC_SUBST(BIN_SUFFIX)
1345 AC_SUBST(WIN32_CONSOLE_EXE_LDFLAGS)
1346 AC_SUBST(WIN32_GUI_EXE_LDFLAGS)
1348 AC_SUBST(MOZ_DEVTOOLS)
1350 AC_SUBST(MOZ_PACKAGE_JSSHELL)
1354 dnl Host JavaScript runtime, if any, to use during cross compiles.
1357 AC_SUBST(NSS_EXTRA_SYMBOLS_FILE)
1359 dnl Set various defines and substitutions
1360 dnl ========================================================
1362 AC_SUBST(MOZ_DEV_EDITION)
1363 if test -n "$MOZ_DEV_EDITION"; then
1364 AC_DEFINE(MOZ_DEV_EDITION)
1367 dnl Spit out some output
1368 dnl ========================================================
1370 # Avoid using obsolete NSPR features
1371 AC_DEFINE(NO_NSPR_10_SUPPORT)
1373 MOZ_CREATE_CONFIG_STATUS()
1375 rm -fr confdefs* $ac_clean_files