no bug - Bumping Firefox l10n changesets r=release a=l10n-bump DONTBUILD CLOSED TREE
[gecko.git] / old-configure.in
blobf83794950731e3f057334286b485c572d1dfc37b
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 ========================================================
9 AC_PREREQ(2.13)
10 AC_INIT(config/config.mk)
11 AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf)
12 AC_CANONICAL_SYSTEM
14 dnl ========================================================
15 dnl =
16 dnl = Don't change the following lines. Doing so breaks:
17 dnl =
18 dnl = CFLAGS="-foo" ./configure
19 dnl =
20 dnl ========================================================
21 CFLAGS="${CFLAGS=}"
22 CPPFLAGS="${CPPFLAGS=}"
23 CXXFLAGS="${CXXFLAGS=}"
24 LDFLAGS="${LDFLAGS=}"
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 ========================================================
31 W32API_VERSION=3.14
33 dnl Set various checks
34 dnl ========================================================
35 MISSING_X=
37 dnl Initialize the Pthread test variables early so they can be
38 dnl  overridden by each platform.
39 dnl ========================================================
40 MOZ_USE_PTHREADS=
41 _PTHREAD_LDFLAGS=""
43 LDFLAGS="$LDFLAGS $LINKER_LDFLAGS $PACK_REL_RELOC_FLAGS"
44 HOST_LDFLAGS="$HOST_LDFLAGS $HOST_LINKER_LDFLAGS"
46 if test "$COMPILE_ENVIRONMENT"; then
47     MOZ_ANDROID_NDK
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)
57 AC_EXEEXT
59 if test "$target" != "$host"; then
60     MOZ_CROSS_COMPILER
61 else
62     AC_PROG_CC
63     case "$target" in
64     *-mingw*)
65       # Work around the conftest.exe access problem on Windows
66       sleep 2
67     esac
68     AC_PROG_CXX
71 MOZ_TOOL_VARIABLES
73 dnl ========================================================
74 dnl Special win32 checks
75 dnl ========================================================
77 WINVER=0A00
79 case "$target" in
80 *-mingw*)
81     if test "$GCC" != "yes"; then
82         # Check to see if we are really running in a msvc environemnt
83         _WIN32_MSVC=1
85         # Make sure compilers are valid
86         CXXFLAGS="$CXXFLAGS -TP"
87         AC_LANG_SAVE
88         AC_LANG_C
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.]) )
93         AC_LANG_CPLUSPLUS
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.]) )
97         AC_LANG_RESTORE
99         AC_DEFINE(_CRT_SECURE_NO_WARNINGS)
100         AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)
102         MSVC_C_RUNTIME_DLL=vcruntime140.dll
103         if test "$TARGET_CPU" != "x86"; then
104             MSVC_C_RUNTIME_1_DLL=vcruntime140_1.dll
105         fi
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         AC_SUBST(MSVC_C_RUNTIME_DLL)
112         AC_SUBST(MSVC_C_RUNTIME_1_DLL)
113         AC_SUBST(MSVC_CXX_RUNTIME_DLL)
115         AC_DEFINE(HAVE_SEH_EXCEPTIONS)
116     else
117         # Check w32api version
118         _W32API_MAJOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $1 }'`
119         _W32API_MINOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $2 }'`
120         AC_MSG_CHECKING([for w32api version >= $W32API_VERSION])
121         AC_TRY_COMPILE([#include <w32api.h>],
122             #if (__W32API_MAJOR_VERSION < $_W32API_MAJOR_VERSION) || \
123                 (__W32API_MAJOR_VERSION == $_W32API_MAJOR_VERSION && \
124                  __W32API_MINOR_VERSION < $_W32API_MINOR_VERSION)
125                 #error "test failed."
126             #endif
127             , [ res=yes ], [ res=no ])
128         AC_MSG_RESULT([$res])
129         if test "$res" != "yes"; then
130             AC_MSG_ERROR([w32api version $W32API_VERSION or higher required.])
131         fi
132         # strsafe.h on mingw uses macros for function deprecation that pollutes namespace
133         # causing problems with local implementations with the same name.
134         AC_DEFINE(STRSAFE_NO_DEPRECATE)
135     fi # !GNU_CC
137     AC_DEFINE(_USE_MATH_DEFINES) # Otherwise Windows' math.h doesn't #define M_PI.
139     CFLAGS="$CFLAGS -D_HAS_EXCEPTIONS=0"
140     CXXFLAGS="$CXXFLAGS -D_HAS_EXCEPTIONS=0"
142     AC_DEFINE_UNQUOTED(WINVER,0x$WINVER)
143     AC_DEFINE_UNQUOTED(_WIN32_WINNT,0x$WINVER)
144     AC_DEFINE_UNQUOTED(_WIN32_IE,0x0A00)
146     ;;
147 esac
149 if test -n "$_WIN32_MSVC"; then
150     SKIP_PATH_CHECKS=1
151     SKIP_COMPILER_CHECKS=1
152     SKIP_LIBRARY_CHECKS=1
154     # Since we're skipping compiler and library checks, hard-code
155     # some facts here.
156     AC_DEFINE(HAVE_IO_H)
157     AC_DEFINE(HAVE_ISATTY)
160 fi # COMPILE_ENVIRONMENT
162 AC_SUBST(GNU_CC)
163 AC_SUBST(GNU_CXX)
165 dnl ========================================================
166 dnl set the defaults first
167 dnl ========================================================
168 MOZ_FIX_LINK_PATHS="-Wl,-rpath-link,${DIST}/bin -Wl,-rpath-link,${prefix}/lib"
170 dnl Configure platform-specific CPU architecture compiler options.
171 dnl ==============================================================
172 if test "$COMPILE_ENVIRONMENT"; then
173     MOZ_ARCH_OPTS
174 fi # COMPILE_ENVIRONMENT
176 if test -n "$COMPILE_ENVIRONMENT"; then
177    MOZ_CONFIG_SANITIZE
180 dnl ========================================================
181 dnl GNU specific defaults
182 dnl ========================================================
183 if test "$GNU_CC"; then
184     if test "$OS_ARCH" != "WINNT" -o -z "$CLANG_CC"; then
185         DSO_PIC_CFLAGS='-fPIC'
186         ASFLAGS="$ASFLAGS -fPIC"
187     fi
189     AC_MSG_CHECKING([for --ignore-unresolved-symbol option to ld])
190     HAVE_LINKER_SUPPORT_IGNORE_UNRESOLVED=
191     _SAVE_LDFLAGS=$LDFLAGS
192     LDFLAGS="$LDFLAGS -Wl,--ignore-unresolved-symbol,environ"
193     AC_TRY_LINK(,,AC_MSG_RESULT([yes])
194                   [HAVE_LINKER_SUPPORT_IGNORE_UNRESOLVED=1],
195                   AC_MSG_RESULT([no]))
196     LDFLAGS=$_SAVE_LDFLAGS
198     DSO_LDOPTS='-shared'
199     if test "$GCC_USE_GNU_LD"; then
200         # Some tools like ASan use a runtime library that is only
201         # linked against executables, so we must allow undefined
202         # symbols for shared objects in some cases.
203         if test -z "$MOZ_ASAN$MOZ_MSAN$MOZ_UBSAN$MOZ_TSAN$FUZZING_INTERFACES"; then
204             # Don't allow undefined symbols in libraries
205             DSO_LDOPTS="$DSO_LDOPTS -Wl,-z,defs"
207             # BSDs need `environ' exposed for posix_spawn (bug 753046)
208             case "$OS_TARGET" in
209             DragonFly|FreeBSD|NetBSD|OpenBSD)
210                 if test -n "$HAVE_LINKER_SUPPORT_IGNORE_UNRESOLVED"; then
211                     DSO_LDOPTS="$DSO_LDOPTS -Wl,--ignore-unresolved-symbol,environ"
212                 else
213                     DSO_LDOPTS="$DSO_LDOPTS -Wl,--warn-unresolved-symbols"
214                 fi
215                 ;;
216             esac
217         fi
218     fi
220     _DEFINES_CFLAGS="-include $_objdir/mozilla-config.h -DMOZILLA_CLIENT"
222     ASFLAGS="$ASFLAGS $_DEFINES_CFLAGS"
225 if test "$GNU_CXX"; then
226     CXXFLAGS="$CXXFLAGS -fno-exceptions"
228     _DEFINES_CXXFLAGS="-DMOZILLA_CLIENT -include $_objdir/mozilla-config.h"
231 dnl ========================================================
232 dnl System overrides of the defaults for host
233 dnl ========================================================
234 case "$host" in
235 *mingw*)
236     if test -n "$_WIN32_MSVC"; then
237         HOST_CFLAGS="$HOST_CFLAGS"
238     else
239         HOST_CFLAGS="$HOST_CFLAGS -mwindows"
240     fi
241     HOST_CFLAGS="$HOST_CFLAGS -DXP_WIN -DWIN32 -D_WIN32 -D_CRT_SECURE_NO_WARNINGS"
242     HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
243     HOST_BIN_SUFFIX=.exe
245     case "${host_cpu}" in
246     i*86)
247         if test -n "$_WIN32_MSVC"; then
248             HOST_LDFLAGS="$HOST_LDFLAGS -MACHINE:X86"
249         fi
250         ;;
251     x86_64)
252         if test -n "$_WIN32_MSVC"; then
253             HOST_LDFLAGS="$HOST_LDFLAGS -MACHINE:X64"
254         fi
255         HOST_CFLAGS="$HOST_CFLAGS -D_AMD64_"
256         ;;
257     esac
258     ;;
260 *-darwin*)
261     HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX -DXP_MACOSX"
262     HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
263     ;;
265 *-linux*|*-kfreebsd*-gnu|*-gnu*)
266     HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
267     HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
268     ;;
271     HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
272     HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
273     ;;
274 esac
276 dnl ========================================================
277 dnl System overrides of the defaults for target
278 dnl ========================================================
280 MOZ_OPTIMIZE_LDFLAGS="${_COMPILATION_OPTIMIZE_LDFLAGS} ${MOZ_OPTIMIZE_FLAGS}"
282 case "$target" in
283 *-darwin*)
284     MOZ_OPTIMIZE_FLAGS="-O3"
285     DSO_LDOPTS=''
286     MOZ_FIX_LINK_PATHS=
287     ;;
289 *-android*|*-linuxandroid*)
290     # From https://github.com/android-ndk/ndk/issues/133#issuecomment-308549264
291     # -Oz is smaller than -Os on clang.
292     MOZ_OPTIMIZE_FLAGS="-Oz"
293     # Disable the outliner, which causes performance regressions, and is
294     # enabled on some platforms at -Oz.
295     if test -z "$MOZ_LTO"; then
296         DISABLE_OUTLINER="-mno-outline"
297         _SAVE_CFLAGS=$CFLAGS
298         CFLAGS="$CFLAGS $DISABLE_OUTLINER"
299         AC_TRY_COMPILE(,,[MOZ_OPTIMIZE_FLAGS="$MOZ_OPTIMIZE_FLAGS $DISABLE_OUTLINER"])
300         CFLAGS="$_SAVE_CFLAGS"
301    else
302         DISABLE_OUTLINER="-Wl,-plugin-opt=-enable-machine-outliner=never"
303         _SAVE_LDFLAGS=$LDFLAGS
304         LDFLAGS="$LDFLAGS $MOZ_LTO_LDFLAGS $DISABLE_OUTLINER"
305         AC_TRY_LINK(,,[MOZ_OPTIMIZE_LDFLAGS="$MOZ_OPTIMIZE_LDFLAGS $DISABLE_OUTLINER"])
306         LDFLAGS="$_SAVE_LDFLAGS"
307     fi
308     ;;
310 *-*linux*)
311     if test "$GNU_CC" -o "$GNU_CXX"; then
312         MOZ_PGO_OPTIMIZE_FLAGS="-O3"
313         MOZ_OPTIMIZE_FLAGS="-O2"
314     fi
316     case "${target_cpu}" in
317     alpha*)
318         CFLAGS="$CFLAGS -mieee"
319         CXXFLAGS="$CXXFLAGS -mieee"
320     ;;
321     esac
322     ;;
323 *-mingw*)
324     DSO_PIC_CFLAGS=
325     # certain versions of cygwin's makedepend barf on the
326     # #include <string> vs -I./dist/include/string issue so don't use it
327     if test -n "$GNU_CC" -o -n "$CLANG_CC"; then
328         # $GNU_CC will match gcc and clang; while $CLANG_CC will match only clang
329         if test -z "$CLANG_CC"; then
330             AC_MSG_ERROR(Firefox cannot be built with mingw-gcc and requires a mingw-clang toolchain to work)
331         fi
333         DSO_LDOPTS='-shared'
334         MOZ_FIX_LINK_PATHS=
336         MOZ_OPTIMIZE_FLAGS="-O2"
338         WIN32_CONSOLE_EXE_LDFLAGS=-mconsole
339         WIN32_GUI_EXE_LDFLAGS=-mwindows
341         # Silence problematic clang warnings
342         CXXFLAGS="$CXXFLAGS -Wno-incompatible-ms-struct"
343         LDFLAGS="$LDFLAGS -Wl,--no-insert-timestamp"
344     else
345         TARGET_COMPILER_ABI=msvc
346         WIN32_SUBSYSTEM_VERSION=10.0
347         WIN32_CONSOLE_EXE_LDFLAGS=-SUBSYSTEM:CONSOLE,$WIN32_SUBSYSTEM_VERSION
348         WIN32_GUI_EXE_LDFLAGS=-SUBSYSTEM:WINDOWS,$WIN32_SUBSYSTEM_VERSION
349         DSO_LDOPTS=-SUBSYSTEM:WINDOWS,$WIN32_SUBSYSTEM_VERSION
350         _DEFINES_CFLAGS="-FI $_objdir/mozilla-config.h -DMOZILLA_CLIENT"
351         _DEFINES_CXXFLAGS="-FI $_objdir/mozilla-config.h -DMOZILLA_CLIENT"
352         CFLAGS="$CFLAGS -Gy -Zc:inline"
353         CXXFLAGS="$CXXFLAGS -Gy -Zc:inline"
354         if test "$TARGET_CPU" = "x86"; then
355             dnl VS2012+ defaults to -arch:SSE2. We want to target nothing
356             dnl more recent, so set that explicitly here unless another
357             dnl target arch has already been set.
358             changequote(,)
359             if test -z `echo $CFLAGS | grep -i [-/]arch:`; then
360               CFLAGS="$CFLAGS -arch:SSE2"
361             fi
362             if test -z `echo $CXXFLAGS | grep -i [-/]arch:`; then
363               CXXFLAGS="$CXXFLAGS -arch:SSE2"
364             fi
365             changequote([,])
366         fi
367         dnl VS2013+ supports -Gw for better linker optimizations.
368         dnl http://blogs.msdn.com/b/vcblog/archive/2013/09/11/introducing-gw-compiler-switch.aspx
369         dnl Disabled on ASan because it causes false-positive ODR violations.
370         if test -z "$MOZ_ASAN"; then
371             CFLAGS="$CFLAGS -Gw"
372             CXXFLAGS="$CXXFLAGS -Gw"
373         else
374             # String tail merging doesn't play nice with ASan's ODR checker.
375             LDFLAGS="$LDFLAGS -opt:nolldtailmerge"
376         fi
377         # Silence VS2017 15.5+ TR1 deprecation warnings hit by older gtest versions
378         CXXFLAGS="$CXXFLAGS -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING"
379         MOZ_DEBUG_LDFLAGS='-DEBUG'
380         if test "$HOST_OS_ARCH" != "WINNT"; then
381           # %_PDB% is a special signal to emit only the PDB basename. This
382           # avoids problems in Windows tools that don't like forward-slashes.
383           MOZ_DEBUG_LDFLAGS="$MOZ_DEBUG_LDFLAGS -PDBALTPATH:%_PDB%"
384         fi
385         MOZ_OPTIMIZE_FLAGS='-O2'
386         MOZ_FIX_LINK_PATHS=
387         LDFLAGS="$LDFLAGS -LARGEADDRESSAWARE"
388     fi
389     AC_DEFINE(WIN32_LEAN_AND_MEAN)
390     dnl See http://support.microsoft.com/kb/143208 to use STL
391     AC_DEFINE(NOMINMAX)
392     BIN_SUFFIX='.exe'
394     case "$host_os" in
395     cygwin*|msvc*|mks*)
396         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.])
397         ;;
398     esac
400     case "$target" in
401     i*86-*)
402         if test -n "$GNU_CC"; then
403             CFLAGS="$CFLAGS -mstackrealign"
404             CXXFLAGS="$CXXFLAGS -mstackrealign"
405             LDFLAGS="$LDFLAGS -Wl,--large-address-aware"
406         else
407             DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X86"
408             LDFLAGS="$LDFLAGS -SAFESEH"
409         fi
411         AC_DEFINE(_X86_)
412         ;;
413     x86_64-*)
414         if test -n "$_WIN32_MSVC"; then
415             DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X64"
416         fi
417         AC_DEFINE(_AMD64_)
418         ;;
419     aarch64-*)
420         if test -n "$_WIN32_MSVC"; then
421             DSO_LDOPTS="$DSO_LDOPTS -MACHINE:ARM64"
422         fi
423         AC_DEFINE(_ARM64_)
424         ;;
425     *)
426         AC_DEFINE(_CPU_ARCH_NOT_DEFINED)
427         ;;
428     esac
429     ;;
431 *-netbsd*)
432     CFLAGS="$CFLAGS -Dunix"
433     CXXFLAGS="$CXXFLAGS -Dunix"
434     if $CC -E - -dM </dev/null | grep __ELF__ >/dev/null; then
435         DSO_PIC_CFLAGS='-fPIC -DPIC'
436         DSO_LDOPTS='-shared'
437         MOZ_PROGRAM_LDFLAGS="$MOZ_PROGRAM_LDFLAGS -Wl,--export-dynamic"
438     else
439         DSO_PIC_CFLAGS='-fPIC -DPIC'
440         DSO_LDOPTS='-shared'
441     fi
442     # This will fail on a.out systems prior to 1.5.1_ALPHA.
443     if test "$LIBRUNPATH"; then
444         DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS"
445     fi
446     ;;
448 *-openbsd*)
449     if test -z "$X11BASE"; then
450         X11BASE=/usr/X11R6
451     fi
452     MOZ_FIX_LINK_PATHS="$MOZ_FIX_LINK_PATHS -Wl,-rpath-link,${X11BASE}/lib"
453     DSO_PIC_CFLAGS='-fPIC'
454     DSO_LDOPTS='-shared -fPIC'
455     if test "$LIBRUNPATH"; then
456         DSO_LDOPTS="-R$LIBRUNPATH $DSO_LDOPTS"
457     fi
458     ;;
460 *-solaris*)
461     MOZ_FIX_LINK_PATHS="-L${DIST}/bin"
462     ;;
464 esac
466 CFLAGS="$CFLAGS $DSO_PIC_CFLAGS"
467 CXXFLAGS="$CXXFLAGS $DSO_PIC_CFLAGS"
469 if test -z "$MOZ_OPTIMIZE_FLAGS"; then
470     MOZ_OPTIMIZE_FLAGS="-O"
474 if test -z "$COMPILE_ENVIRONMENT"; then
475     SKIP_COMPILER_CHECKS=1
476     SKIP_LIBRARY_CHECKS=1
477     MOZ_DEBUGGING_OPTS
478 else
479     MOZ_COMPILER_OPTS
480 fi # COMPILE_ENVIRONMENT
482 if test -z "$SKIP_COMPILER_CHECKS"; then
483 dnl Checks for typedefs, structures, and compiler characteristics.
484 dnl ========================================================
485 AC_C_CONST
486 AC_TYPE_MODE_T
487 AC_TYPE_OFF_T
488 AC_TYPE_PID_T
489 AC_TYPE_SIZE_T
490 AC_LANG_CPLUSPLUS
491 AC_LANG_C
493 AC_LANG_CPLUSPLUS
495 MOZ_CXX11
497 AC_LANG_C
499 dnl Checks for header files.
500 dnl ========================================================
501 AC_HEADER_DIRENT
503 dnl Checks for libraries.
504 dnl ========================================================
505 AC_CHECK_LIB(c_r, gethostbyname_r)
507 dnl We don't want to link with libdl even if it's present on OS X, since
508 dnl it's not used and not part of the default installation. OS/2 has dlfcn
509 dnl in libc.
510 dnl We don't want to link against libm or libpthread on Darwin since
511 dnl they both are just symlinks to libSystem and explicitly linking
512 dnl against libSystem causes issues when debugging (see bug 299601).
513 case $target in
514 *-darwin*)
515     ;;
517     AC_SEARCH_LIBS(dlopen, dl,
518         MOZ_CHECK_HEADER(dlfcn.h,
519         AC_DEFINE(HAVE_DLOPEN)))
520     ;;
521 esac
523 _SAVE_CFLAGS="$CFLAGS"
524 CFLAGS="$CFLAGS -D_GNU_SOURCE"
525 AC_CHECK_FUNCS(dladdr)
526 CFLAGS="$_SAVE_CFLAGS"
528 if test ! "$GNU_CXX"; then
529     AC_CHECK_LIB(C, demangle)
532 AC_CHECK_LIB(socket, socket)
534 dnl ========================================================
535 dnl = pthread support
536 dnl = Start by checking whether the system support pthreads
537 dnl ========================================================
538 case "$target_os" in
539 darwin*)
540     MOZ_USE_PTHREADS=1
541     ;;
543     AC_CHECK_LIB(pthreads, pthread_create,
544         MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthreads",
545         AC_CHECK_LIB(pthread, pthread_create,
546             MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthread",
547             AC_CHECK_LIB(c_r, pthread_create,
548                 MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lc_r",
549                 AC_CHECK_LIB(c, pthread_create,
550                     MOZ_USE_PTHREADS=1
551                 )
552             )
553         )
554     )
555     ;;
556 esac
558 dnl ========================================================
559 dnl Do the platform specific pthread hackery
560 dnl ========================================================
561 if test "$MOZ_USE_PTHREADS"x != x
562 then
563     dnl
564     dnl See if -pthread is supported.
565     dnl
566     rm -f conftest*
567     ac_cv_have_dash_pthread=no
568     AC_MSG_CHECKING(whether ${CC-cc} accepts -pthread)
569     echo 'int main() { return 0; }' | cat > conftest.c
570     ${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1
571     if test $? -eq 0; then
572         if test -z "`grep -E -i '(unrecognize|unknown)' conftest.out | grep pthread`" -a -z "`grep -E -i '(error|incorrect)' conftest.out`" ; then
573             ac_cv_have_dash_pthread=yes
574             case "$target_os" in
575             freebsd*)
576 # Freebsd doesn't use -pthread for compiles, it uses them for linking
577                 ;;
578             *)
579                 CFLAGS="$CFLAGS -pthread"
580                 CXXFLAGS="$CXXFLAGS -pthread"
581                 ;;
582             esac
583         fi
584     fi
585     rm -f conftest*
586     AC_MSG_RESULT($ac_cv_have_dash_pthread)
588     dnl
589     dnl See if -pthreads is supported.
590     dnl
591     ac_cv_have_dash_pthreads=no
592     if test "$ac_cv_have_dash_pthread" = "no"; then
593         AC_MSG_CHECKING(whether ${CC-cc} accepts -pthreads)
594         echo 'int main() { return 0; }' | cat > conftest.c
595         ${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1
596         if test $? -eq 0; then
597             if test -z "`grep -E -i '(unrecognize|unknown)' conftest.out | grep pthreads`" -a -z "`grep -E -i '(error|incorrect)' conftest.out`" ; then
598                 ac_cv_have_dash_pthreads=yes
599                 CFLAGS="$CFLAGS -pthreads"
600                 CXXFLAGS="$CXXFLAGS -pthreads"
601             fi
602         fi
603         rm -f conftest*
604         AC_MSG_RESULT($ac_cv_have_dash_pthreads)
605     fi
607     case "$target" in
608         *-*-freebsd*)
609             AC_DEFINE(_REENTRANT)
610             AC_DEFINE(_THREAD_SAFE)
611             dnl -pthread links in -lpthread, so don't specify it explicitly.
612             if test "$ac_cv_have_dash_pthread" = "yes"; then
613                 _PTHREAD_LDFLAGS="-pthread"
614             fi
615             ;;
617         *-*-openbsd*|*-*-bsdi*)
618             AC_DEFINE(_REENTRANT)
619             AC_DEFINE(_THREAD_SAFE)
620             dnl -pthread links in -lc_r, so don't specify it explicitly.
621             if test "$ac_cv_have_dash_pthread" = "yes"; then
622                 _PTHREAD_LDFLAGS="-pthread"
623             fi
624             ;;
626         *-*-linux*|*-*-kfreebsd*-gnu|*-*-gnu*)
627             AC_DEFINE(_REENTRANT)
628             ;;
630     esac
631     LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}"
632     AC_SUBST(MOZ_USE_PTHREADS)
633     MOZ_CHECK_HEADERS(pthread.h)
637 dnl ========================================================
638 dnl Put your C++ language/feature checks below
639 dnl ========================================================
640 AC_LANG_CPLUSPLUS
642 ARM_ABI_PREFIX=
643 if test "$GNU_CC"; then
644   if test "$TARGET_CPU" = "arm" ; then
645     AC_CACHE_CHECK(for ARM EABI,
646         ac_cv_gcc_arm_eabi,
647         [AC_TRY_COMPILE([],
648                         [
649 #if defined(__ARM_EABI__)
650   return 0;
651 #else
652 #error Not ARM EABI.
653 #endif
654                         ],
655                         ac_cv_gcc_arm_eabi="yes",
656                         ac_cv_gcc_arm_eabi="no")])
657     if test "$ac_cv_gcc_arm_eabi" = "yes"; then
658         HAVE_ARM_EABI=1
659         ARM_ABI_PREFIX=eabi-
660     else
661         ARM_ABI_PREFIX=oabi-
662     fi
663   fi
665   TARGET_COMPILER_ABI="${TARGET_COMPILER_ABI-${ARM_ABI_PREFIX}gcc3}"
668 if test -n "$MOZ_LINKER"; then
669 dnl gold emits wrong sysv-style elf hash tables when building both sysv and
670 dnl style tables. https://sourceware.org/bugzilla/show_bug.cgi?id=13597
671 dnl Since the linker only understands the sysv ones, no need to build the
672 dnl gnu style tables anyways.
673   LDFLAGS="$LDFLAGS -Wl,--hash-style=sysv"
676 dnl End of C++ language/feature checks
677 AC_LANG_C
679 fi # ! SKIP_COMPILER_CHECKS
681 if test -n "${COMPILE_ENVIRONMENT}"; then
682   MOZ_CHECK_ALLOCATOR
685 TARGET_XPCOM_ABI=
686 if test -n "${TARGET_CPU}" -a -n "${TARGET_COMPILER_ABI}"; then
687     TARGET_XPCOM_ABI="${TARGET_CPU}-${TARGET_COMPILER_ABI}"
688     AC_DEFINE_UNQUOTED(TARGET_XPCOM_ABI, ["${TARGET_XPCOM_ABI}"])
691 dnl We can't run TRY_COMPILE tests on Windows, so hard-code some
692 dnl features that Windows actually does support.
694 if test -n "$SKIP_COMPILER_CHECKS"; then
695    dnl Windows has malloc.h
696    AC_DEFINE(MALLOC_H, [<malloc.h>])
697    AC_DEFINE(HAVE_FORCEINLINE)
698 fi # SKIP_COMPILER_CHECKS
700 dnl Mozilla specific options
701 dnl ========================================================
702 dnl The macros used for command line options
703 dnl are defined in build/autoconf/altoptions.m4.
705 dnl ========================================================
706 dnl =
707 dnl = Application
708 dnl =
709 dnl ========================================================
711 MOZ_BRANDING_DIRECTORY=
712 MOZ_OFFICIAL_BRANDING=
713 MOZ_NO_SMART_CARDS=
714 MOZ_BINARY_EXTENSIONS=
715 MOZ_DEVTOOLS=server
717 dnl ========================================================
718 dnl = Trademarked Branding
719 dnl ========================================================
720 MOZ_ARG_ENABLE_BOOL(official-branding,
721 [  --enable-official-branding
722                           Enable Official mozilla.org Branding
723                           Do not distribute builds with
724                           --enable-official-branding unless you have
725                           permission to use trademarks per
726                           http://www.mozilla.org/foundation/trademarks/ .],
727     MOZ_OFFICIAL_BRANDING=1,
728     MOZ_OFFICIAL_BRANDING=)
730 # Allow the application to influence configure with a confvars.sh script.
731 AC_MSG_CHECKING([if app-specific confvars.sh exists])
732 if test -f "${srcdir}/${MOZ_BUILD_APP}/confvars.sh" ; then
733   AC_MSG_RESULT([${srcdir}/${MOZ_BUILD_APP}/confvars.sh])
734   . "${srcdir}/${MOZ_BUILD_APP}/confvars.sh"
735 else
736   AC_MSG_RESULT([no])
739 AC_SUBST(MOZ_OFFICIAL_BRANDING)
740 if test -n "$MOZ_OFFICIAL_BRANDING"; then
741   if test -z "$MOZ_OFFICIAL_BRANDING_DIRECTORY"; then
742     AC_MSG_ERROR([You must specify MOZ_OFFICIAL_BRANDING_DIRECTORY to use --enable-official-branding.])
743   else
744     MOZ_BRANDING_DIRECTORY=${MOZ_OFFICIAL_BRANDING_DIRECTORY}
745     AC_DEFINE(MOZ_OFFICIAL_BRANDING)
746   fi
749 MOZ_ARG_WITH_STRING(branding,
750 [  --with-branding=dir     Use branding from the specified directory.],
751     MOZ_BRANDING_DIRECTORY=$withval)
753 REAL_BRANDING_DIRECTORY="${MOZ_BRANDING_DIRECTORY}"
754 if test -z "$REAL_BRANDING_DIRECTORY"; then
755   REAL_BRANDING_DIRECTORY=${MOZ_BUILD_APP}/branding/nightly
758 if test -f "${_topsrcdir}/$REAL_BRANDING_DIRECTORY/configure.sh"; then
759   . "${_topsrcdir}/$REAL_BRANDING_DIRECTORY/configure.sh"
762 AC_SUBST(MOZ_BRANDING_DIRECTORY)
764 dnl ========================================================
765 dnl = Distribution ID
766 dnl ========================================================
767 MOZ_ARG_WITH_STRING(distribution-id,
768 [  --with-distribution-id=ID
769                           Set distribution-specific id (default=org.mozilla)],
770 [ val=`echo $withval`
771     MOZ_DISTRIBUTION_ID="$val"])
773 if test -z "$MOZ_DISTRIBUTION_ID"; then
774    MOZ_DISTRIBUTION_ID="org.mozilla"
777 AC_SUBST(MOZ_DISTRIBUTION_ID)
779 dnl ========================================================
780 dnl = Enable code optimization. ON by default.
781 dnl ========================================================
783 # Use value from moz.configure if one is defined. Else use our computed
784 # value.
785 if test -n "${MOZ_CONFIGURE_OPTIMIZE_FLAGS}"; then
786     MOZ_OPTIMIZE_FLAGS=${MOZ_CONFIGURE_OPTIMIZE_FLAGS}
789 if test "$COMPILE_ENVIRONMENT"; then
790 if test -n "$MOZ_OPTIMIZE"; then
791     AC_MSG_CHECKING([for valid C compiler optimization flags])
792     _SAVE_CFLAGS=$CFLAGS
793     CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS"
794     AC_TRY_COMPILE([#include <stdio.h>],
795         [printf("Hello World\n");],
796         _results=yes,
797         _results=no)
798     AC_MSG_RESULT([$_results])
799     if test "$_results" = "no"; then
800         AC_MSG_ERROR([These compiler flags for C are invalid: $MOZ_OPTIMIZE_FLAGS])
801     fi
802     CFLAGS=$_SAVE_CFLAGS
803     if test -n "$MOZ_LTO" -a -n "$CLANG_CC"; then
804         # When using llvm-based LTO, non numeric optimization levels are
805         # not supported by the linker, so force the linker to use -O2 (
806         # which doesn't influence the level compilation units are actually
807         # compiled at).
808         case " $MOZ_OPTIMIZE_FLAGS " in
809         *\ -Os\ *|*\ -Oz\ *)
810             MOZ_OPTIMIZE_LDFLAGS="$MOZ_OPTIMIZE_LDFLAGS -O2"
811             ;;
812         esac
813     fi
815 fi # COMPILE_ENVIRONMENT
817 AC_SUBST_LIST(MOZ_OPTIMIZE_FLAGS)
818 AC_SUBST_LIST(MOZ_OPTIMIZE_LDFLAGS)
819 AC_SUBST_LIST(MOZ_PGO_OPTIMIZE_FLAGS)
821 case "${OS_TARGET}" in
822 Android|WINNT|Darwin)
823   MOZ_GLUE_IN_PROGRAM=
824   ;;
826   dnl On !Android !Windows !OSX, we only want to link executables against mozglue
827   MOZ_GLUE_IN_PROGRAM=1
828   AC_DEFINE(MOZ_GLUE_IN_PROGRAM)
829   ;;
830 esac
832 dnl ========================================================
833 dnl = Jemalloc build setup
834 dnl ========================================================
835 if test -n "$MOZ_MEMORY"; then
836   case "${target}" in
837   *-mingw*)
838     export MOZ_NO_DEBUG_RTL=1
839     ;;
840   esac
841 fi # MOZ_MEMORY
842 AC_SUBST(MOZ_GLUE_IN_PROGRAM)
844 dnl ========================================================
845 dnl = Enable using the clang plugin to build
846 dnl ========================================================
848 if test -n "$COMPILE_ENVIRONMENT"; then
849 MOZ_CONFIG_CLANG_PLUGIN
850 fi # COMPILE_ENVIRONMENT
852 AC_LANG_C
854 if test "$COMPILE_ENVIRONMENT"; then
855 MOZ_EXPAND_LIBS
856 fi # COMPILE_ENVIRONMENT
858 dnl ========================================================
859 dnl Check if we need the 32-bit Linux SSE2 error dialog
860 dnl ========================================================
862 AC_SUBST(MOZ_LINUX_32_SSE2_STARTUP_ERROR)
864 dnl ========================================================
865 dnl Check for cairo
866 dnl ========================================================
868 if test "$OS_ARCH" = "WINNT"; then
869     # For now we assume that we will have a uint64_t available through
870     # one of the above headers or mozstdint.h.
871     AC_DEFINE(HAVE_UINT64_T)
874 case "$MOZ_WIDGET_TOOLKIT" in
875   windows)
876     if test "$COMPILE_ENVIRONMENT"; then
877       MOZ_CHECK_HEADER(d3d10.h, MOZ_ENABLE_D3D10_LAYER=1)
878     fi
879     ;;
880 esac
881 AC_SUBST(MOZ_ENABLE_D3D10_LAYER)
883 dnl ========================================================
884 dnl =
885 dnl = Maintainer debug option (no --enable equivalent)
886 dnl =
887 dnl ========================================================
889 AC_SUBST_LIST(ASFLAGS)
890 AC_SUBST_LIST(MOZ_DEBUG_LDFLAGS)
892 AC_SUBST(MOZ_STUB_INSTALLER)
894 AC_SUBST_LIST(MOZ_FIX_LINK_PATHS)
896 AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
898 if test -n "$MOZ_BINARY_EXTENSIONS"; then
899   AC_DEFINE(MOZ_BINARY_EXTENSIONS)
902 dnl ========================================================
903 dnl = Mac bundle name prefix
904 dnl ========================================================
905 MOZ_ARG_WITH_STRING(macbundlename-prefix,
906 [  --with-macbundlename-prefix=prefix
907                           Prefix for MOZ_MACBUNDLE_NAME],
908 [ MOZ_MACBUNDLE_NAME_PREFIX="$withval"])
910 MOZ_MACBUNDLE_NAME=$MOZ_APP_DISPLAYNAME
911 if test "$MOZ_MACBUNDLE_NAME_PREFIX"; then
912   MOZ_MACBUNDLE_NAME="${MOZ_MACBUNDLE_NAME_PREFIX}${MOZ_MACBUNDLE_NAME}"
915 if test "$MOZ_DEBUG"; then
916   MOZ_MACBUNDLE_NAME="${MOZ_MACBUNDLE_NAME}Debug.app"
917 else
918   MOZ_MACBUNDLE_NAME=${MOZ_MACBUNDLE_NAME}.app
920 AC_SUBST(MOZ_MACBUNDLE_NAME)
922 dnl Mac bundle identifier (based on MOZ_APP_DISPLAYNAME)
923 # If the MOZ_MACBUNDLE_ID is defined in the configure.sh, use it
924 # Otherwise, use MOZ_APP_DISPLAYNAME
925 if test -z "$MOZ_MACBUNDLE_ID"; then
926    MOZ_MACBUNDLE_ID=`echo $MOZ_APP_DISPLAYNAME | tr 'A-Z' 'a-z' | tr -dc 'a-z-'`
928 MOZ_MACBUNDLE_ID=${MOZ_DISTRIBUTION_ID}.${MOZ_MACBUNDLE_ID}
929 if test "$MOZ_DEBUG"; then
930   MOZ_MACBUNDLE_ID=${MOZ_MACBUNDLE_ID}debug
933 AC_DEFINE_UNQUOTED(MOZ_MACBUNDLE_ID,$MOZ_MACBUNDLE_ID)
934 AC_SUBST(MOZ_MACBUNDLE_ID)
936 dnl ========================================================
937 dnl = Child Process Name for IPC
938 dnl ========================================================
939 if test "$MOZ_WIDGET_TOOLKIT" != "android"; then
940   MOZ_CHILD_PROCESS_NAME="plugin-container${BIN_SUFFIX}"
941 else
942   # We want to let Android unpack the file at install time, but it only does
943   # so if the file is named libsomething.so. The lib/ path is also required
944   # because the unpacked file will be under the lib/ subdirectory and will
945   # need to be executed from that path.
946   MOZ_CHILD_PROCESS_NAME="libplugin-container.so"
948 MOZ_CHILD_PROCESS_BUNDLE="plugin-container.app/Contents/MacOS/"
949 MOZ_CHILD_PROCESS_BUNDLEID=${MOZ_DISTRIBUTION_ID}.plugincontainer
950 MOZ_CHILD_PROCESS_BUNDLENAME="plugin-container.app"
951 MOZ_CHILD_PROCESS_APPNAME="${MOZ_APP_DISPLAYNAME}CP"
953 AC_SUBST(MOZ_CHILD_PROCESS_NAME)
954 AC_SUBST(MOZ_CHILD_PROCESS_BUNDLE)
955 AC_SUBST(MOZ_CHILD_PROCESS_BUNDLEID)
956 AC_SUBST(MOZ_CHILD_PROCESS_APPNAME)
957 AC_SUBST(MOZ_CHILD_PROCESS_BUNDLENAME)
959 dnl ==========================================================
960 dnl = Mac Media Plugin Helper (GMP Child) Process Name for IPC
961 dnl ==========================================================
962 MOZ_EME_PROCESS_NAME="media-plugin-helper"
963 MOZ_EME_PROCESS_NAME_BRANDED="$MOZ_APP_DISPLAYNAME Media Plugin Helper"
964 MOZ_EME_PROCESS_BUNDLENAME="${MOZ_EME_PROCESS_NAME}.app"
965 # Generate a lower case string with no spaces to be used as the bundle ID
966 # for the EME helper .app of the form org.mozilla.<executable-name>.
967 MOZ_EME_PROCESS_BUNDLEID=`echo "$MOZ_APP_DISPLAYNAME" | tr ' ' '-'`
968 MOZ_EME_PROCESS_BUNDLEID=`echo "$MOZ_EME_PROCESS_BUNDLEID" | tr 'A-Z' 'a-z'`
969 MOZ_EME_PROCESS_BUNDLEID=${MOZ_EME_PROCESS_BUNDLEID}-${MOZ_EME_PROCESS_NAME}
970 MOZ_EME_PROCESS_BUNDLEID=${MOZ_DISTRIBUTION_ID}.${MOZ_EME_PROCESS_BUNDLEID}
972 AC_SUBST(MOZ_EME_PROCESS_NAME)
973 AC_SUBST(MOZ_EME_PROCESS_NAME_BRANDED)
974 AC_SUBST(MOZ_EME_PROCESS_BUNDLENAME)
975 AC_SUBST(MOZ_EME_PROCESS_BUNDLEID)
977 # The following variables are available to branding and application
978 # configuration ($BRANDING/configure.sh and $APPLICATION/confvars.sh):
979 # - MOZ_APP_VENDOR: Used for application.ini's "Vendor" field, which also
980 # impacts profile location and user-visible fields.
981 # - MOZ_APP_DISPLAYNAME: Used in user-visible fields (DLL properties,
982 # Mac Bundle name, Updater, Installer), it is typically used for nightly
983 # builds (e.g. Aurora for Firefox).
984 # - MOZ_APP_PROFILE: When set, used for application.ini's
985 # "Profile" field, which controls profile location.
986 # - MOZ_APP_ID: When set, used for application.ini's "ID" field, and
987 # crash reporter server url.
988 # - MOZ_PROFILE_MIGRATOR: When set, enables profile migrator.
990 # The following environment variables used to have an effect, but don't anymore:
991 # - MOZ_APP_VERSION: Defines the application version number. This was replaced with
992 # the contents from the version.txt file in the application directory, or
993 # browser/config/version.txt if there isn't one.
994 # - MOZ_APP_VERSION_DISPLAY: Defines the application version number. Used
995 # in the "About" window. This was replaced with the contents from the
996 # version_display.txt or version.txt in the application directory, or
997 # browser/config/version_display.txt.
999 # For extensions and langpacks, we require a max version that is compatible
1000 # across security releases. MOZ_APP_MAXVERSION is our method for doing that.
1001 # 24.0a1 and 24.0a2 aren't affected
1002 # 24.0 becomes 24.*
1003 # 24.1.1 becomes 24.*
1004 IS_ALPHA=`echo $MOZ_APP_VERSION | grep a`
1005 if test -z "$IS_ALPHA"; then
1006   changequote(,)
1007   if test "$(basename $MOZ_BUILD_APP)" = "suite"; then
1008     MOZ_APP_MAXVERSION=`echo $MOZ_APP_VERSION | sed "s|\(^[0-9]*\.[0-9]*\).*|\1|"`.*
1009   else
1010     MOZ_APP_MAXVERSION=`echo $MOZ_APP_VERSION | sed "s|\(^[0-9]*\).*|\1|"`.*
1011   fi
1012   changequote([,])
1013 else
1014   MOZ_APP_MAXVERSION=$MOZ_APP_VERSION
1017 AC_SUBST(MOZ_APP_DISPLAYNAME)
1018 AC_SUBST(MOZ_APP_VENDOR)
1019 AC_SUBST(MOZ_APP_PROFILE)
1020 AC_SUBST(MOZ_APP_ID)
1021 AC_SUBST(MAR_CHANNEL_ID)
1022 AC_SUBST(ACCEPTED_MAR_CHANNEL_IDS)
1023 AC_SUBST(MOZ_PROFILE_MIGRATOR)
1024 AC_DEFINE_UNQUOTED(MOZ_APP_UA_NAME, "$MOZ_APP_UA_NAME")
1025 AC_SUBST(MOZ_APP_UA_NAME)
1026 AC_DEFINE_UNQUOTED(MOZ_APP_UA_VERSION, "$MOZ_APP_VERSION")
1027 AC_DEFINE_UNQUOTED(BROWSER_CHROME_URL, $BROWSER_CHROME_URL)
1028 AC_DEFINE_UNQUOTED(BROWSER_CHROME_URL_QUOTED, "$BROWSER_CHROME_URL")
1030 AC_SUBST(MOZ_APP_MAXVERSION)
1031 AC_SUBST(MOZ_PKG_SPECIAL)
1032 AC_SUBST(MOZ_SIMPLE_PACKAGE_NAME)
1034 if test "$MOZILLA_OFFICIAL"; then
1035     # Build revisions should always be present in official builds
1036     MOZ_INCLUDE_SOURCE_INFO=1
1039 # External builds (specifically Ubuntu) may drop the hg repo information, so we allow to
1040 # explicitly set the repository and changeset information in.
1041 AC_SUBST(MOZ_SOURCE_REPO)
1042 AC_SUBST(MOZ_SOURCE_CHANGESET)
1043 AC_SUBST(MOZ_INCLUDE_SOURCE_INFO)
1045 dnl Echo the CFLAGS to remove extra whitespace.
1046 CFLAGS=`echo \
1047     $_COMPILATION_CFLAGS \
1048     $CFLAGS`
1050 CXXFLAGS=`echo \
1051     $_COMPILATION_CXXFLAGS \
1052     $CXXFLAGS`
1054 ASFLAGS=`echo \
1055     $_COMPILATION_ASFLAGS \
1056     $ASFLAGS`
1058 COMPILE_CFLAGS=`echo \
1059     $_DEFINES_CFLAGS \
1060     $COMPILE_CFLAGS`
1062 COMPILE_CXXFLAGS=`echo \
1063     $_DEFINES_CXXFLAGS \
1064     $COMPILE_CXXFLAGS`
1066 HOST_CFLAGS=`echo \
1067     $_COMPILATION_HOST_CFLAGS \
1068     $HOST_CFLAGS`
1070 HOST_CXXFLAGS=`echo \
1071     $_COMPILATION_HOST_CXXFLAGS \
1072     $HOST_CXXFLAGS`
1074 LDFLAGS=`echo \
1075     $LDFLAGS \
1076     $_COMPILATION_LDFLAGS`
1078 HOST_LDFLAGS=`echo \
1079     $HOST_LDFLAGS \
1080     $_COMPILATION_HOST_LDFLAGS`
1082 HOST_CMFLAGS="-x objective-c -fobjc-exceptions"
1083 HOST_CMMFLAGS="-x objective-c++ -fobjc-exceptions"
1084 OS_COMPILE_CMFLAGS="-x objective-c -fobjc-exceptions"
1085 OS_COMPILE_CMMFLAGS="-x objective-c++ -fobjc-exceptions"
1086 if test "$MOZ_WIDGET_TOOLKIT" = uikit; then
1087   OS_COMPILE_CMFLAGS="$OS_COMPILE_CMFLAGS -fobjc-abi-version=2 -fobjc-legacy-dispatch"
1088   OS_COMPILE_CMMFLAGS="$OS_COMPILE_CMMFLAGS -fobjc-abi-version=2 -fobjc-legacy-dispatch"
1090 AC_SUBST(HOST_CMFLAGS)
1091 AC_SUBST(HOST_CMMFLAGS)
1092 AC_SUBST(OS_COMPILE_CMFLAGS)
1093 AC_SUBST(OS_COMPILE_CMMFLAGS)
1095 OS_CFLAGS="$CFLAGS"
1096 OS_CXXFLAGS="$CXXFLAGS"
1097 OS_CPPFLAGS="$CPPFLAGS"
1098 OS_COMPILE_CFLAGS="$COMPILE_CFLAGS"
1099 OS_COMPILE_CXXFLAGS="$COMPILE_CXXFLAGS"
1100 OS_LDFLAGS="$LDFLAGS"
1101 OS_LIBS="$LIBS"
1102 AC_SUBST_LIST(OS_CFLAGS)
1103 AC_SUBST_LIST(OS_CXXFLAGS)
1104 AC_SUBST_LIST(OS_CPPFLAGS)
1105 AC_SUBST_LIST(OS_COMPILE_CFLAGS)
1106 AC_SUBST_LIST(OS_COMPILE_CXXFLAGS)
1107 AC_SUBST_LIST(OS_LDFLAGS)
1108 AC_SUBST(OS_LIBS)
1110 AC_SUBST(HOST_CC)
1111 AC_SUBST(HOST_CXX)
1112 AC_SUBST_LIST(HOST_CFLAGS)
1113 AC_SUBST_LIST(HOST_CPPFLAGS)
1114 AC_SUBST_LIST(HOST_CXXFLAGS)
1115 AC_SUBST(HOST_LDFLAGS)
1116 AC_SUBST_LIST(HOST_OPTIMIZE_FLAGS)
1117 AC_SUBST(HOST_BIN_SUFFIX)
1119 AC_SUBST(TARGET_XPCOM_ABI)
1121 AC_SUBST(DSO_LDOPTS)
1122 AC_SUBST(BIN_SUFFIX)
1123 AC_SUBST(USE_N32)
1124 AC_SUBST(WIN32_CONSOLE_EXE_LDFLAGS)
1125 AC_SUBST(WIN32_GUI_EXE_LDFLAGS)
1127 AC_SUBST(MOZ_DEVTOOLS)
1129 AC_SUBST(MOZ_PACKAGE_JSSHELL)
1131 AC_SUBST(DMG_TOOL)
1133 dnl Host JavaScript runtime, if any, to use during cross compiles.
1134 AC_SUBST(JS_BINARY)
1136 AC_SUBST(NSS_EXTRA_SYMBOLS_FILE)
1138 dnl Set various defines and substitutions
1139 dnl ========================================================
1141 AC_SUBST(MOZ_DEV_EDITION)
1142 if test -n "$MOZ_DEV_EDITION"; then
1143     AC_DEFINE(MOZ_DEV_EDITION)
1146 dnl Spit out some output
1147 dnl ========================================================
1149 # Avoid using obsolete NSPR features
1150 AC_DEFINE(NO_NSPR_10_SUPPORT)
1152 MOZ_CREATE_CONFIG_STATUS()
1154 rm -fr confdefs* $ac_clean_files