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) ])