blob: ebe8250b82656f0d440157e24c3cccff119a479f [file] [log] [blame]
dnl This Source Code Form is subject to the terms of the Mozilla Public
dnl License, v. 2.0. If a copy of the MPL was not distributed with this
dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
dnl =======================================================================
dnl = Enable compiling with various compiler wrappers (distcc, ccache, etc)
dnl =======================================================================
AC_DEFUN([MOZ_CHECK_COMPILER_WRAPPER],
[
MOZ_ARG_WITH_STRING(compiler_wrapper,
[ --with-compiler-wrapper[=path/to/wrapper]
Enable compiling with wrappers such as distcc and ccache],
COMPILER_WRAPPER=$withval, COMPILER_WRAPPER="no")
MOZ_ARG_WITH_STRING(ccache,
[ --with-ccache[=path/to/ccache]
Enable compiling with ccache],
CCACHE=$withval, CCACHE="no")
if test "$CCACHE" != "no"; then
if test -z "$CCACHE" -o "$CCACHE" = "yes"; then
CCACHE=
else
if test ! -e "$CCACHE"; then
AC_MSG_ERROR([$CCACHE not found])
fi
fi
MOZ_PATH_PROGS(CCACHE, $CCACHE ccache)
if test -z "$CCACHE" -o "$CCACHE" = ":"; then
AC_MSG_ERROR([ccache not found])
elif test -x "$CCACHE"; then
if test "$COMPILER_WRAPPER" != "no"; then
COMPILER_WRAPPER="$CCACHE $COMPILER_WRAPPER"
else
COMPILER_WRAPPER="$CCACHE"
fi
MOZ_USING_CCACHE=1
else
AC_MSG_ERROR([$CCACHE is not executable])
fi
fi
AC_SUBST(MOZ_USING_CCACHE)
if test "$COMPILER_WRAPPER" != "no"; then
case "$target" in
*-mingw*)
dnl When giving a windows path with backslashes, js/src/configure
dnl fails because of double wrapping because the test further below
dnl doesn't work with backslashes. While fixing that test to work
dnl might seem better, a lot of the make build backend actually
dnl doesn't like backslashes, so normalize windows paths to use
dnl forward slashes.
COMPILER_WRAPPER=`echo "$COMPILER_WRAPPER" | tr '\\' '/'`
;;
esac
case "$CC" in
$COMPILER_WRAPPER\ *)
:
;;
*)
CC="$COMPILER_WRAPPER $CC"
CXX="$COMPILER_WRAPPER $CXX"
_SUBDIR_CC="$CC"
_SUBDIR_CXX="$CXX"
ac_cv_prog_CC="$CC"
ac_cv_prog_CXX="$CXX"
;;
esac
MOZ_USING_COMPILER_WRAPPER=1
fi
AC_SUBST(MOZ_USING_COMPILER_WRAPPER)
])