diff --git a/build/autoconf/hooks.m4 b/build/autoconf/hooks.m4 index 067cac19995..cc0d103fe22 100644 --- a/build/autoconf/hooks.m4 +++ b/build/autoconf/hooks.m4 @@ -18,33 +18,42 @@ MOZ_CONFIG_LOG_TRAP ]) dnl Disable the trap when running sub-configures. -define([_MOZ_AC_OUTPUT_SUBDIRS], defn([AC_OUTPUT_SUBDIRS])) -define([MOZ_SUBCONFIGURE_WRAP], -[ _CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} -case "$host" in -*-mingw*) +define(GEN_MOZ_AC_OUTPUT_SUBDIRS, [ +define([_MOZ_AC_OUTPUT_SUBDIRS], [ +patsubst($@, [$srcdir/$ac_config_dir], [$srcdir/$moz_config_srcdir]) +]) +]) +GEN_MOZ_AC_OUTPUT_SUBDIRS(defn([AC_OUTPUT_SUBDIRS])) + +define([AC_OUTPUT_SUBDIRS], +[trap '' EXIT +for moz_config_dir in $1; do + case "$moz_config_dir" in + *:*) + moz_config_srcdir=$(echo $moz_config_dir | awk -F: '{print [$]1}') + moz_config_dir=$(echo $moz_config_dir | awk -F: '{print [$]2}') + ;; + *) + moz_config_srcdir=$moz_config_dir + ;; + esac + _CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + case "$host" in + *-mingw*) _CONFIG_SHELL=$(cd $(dirname $_CONFIG_SHELL); pwd -W)/$(basename $_CONFIG_SHELL) if test ! -e "$_CONFIG_SHELL" -a -e "${_CONFIG_SHELL}.exe"; then _CONFIG_SHELL="${_CONFIG_SHELL}.exe" fi ;; -esac + esac -if test -d "$1"; then - (cd "$1"; $PYTHON $_topsrcdir/build/subconfigure.py dump "$_CONFIG_SHELL") -else - mkdir -p "$1" -fi -$2 -(cd "$1"; $PYTHON $_topsrcdir/build/subconfigure.py adjust $ac_sub_configure) -]) - -define([AC_OUTPUT_SUBDIRS], -[trap '' EXIT -for moz_config_dir in $1; do - MOZ_SUBCONFIGURE_WRAP([$moz_config_dir],[ - _MOZ_AC_OUTPUT_SUBDIRS($moz_config_dir) - ]) + if test -d "$moz_config_dir"; then + (cd "$moz_config_dir"; $PYTHON $_topsrcdir/build/subconfigure.py dump "$_CONFIG_SHELL") + else + mkdir -p "$moz_config_dir" + fi + _MOZ_AC_OUTPUT_SUBDIRS($moz_config_dir) + (cd "$moz_config_dir"; $PYTHON $_topsrcdir/build/subconfigure.py adjust $ac_sub_configure) done MOZ_CONFIG_LOG_TRAP diff --git a/build/autoconf/icu.m4 b/build/autoconf/icu.m4 index 9fe61aaf815..d1b3a408ddf 100644 --- a/build/autoconf/icu.m4 +++ b/build/autoconf/icu.m4 @@ -154,27 +154,8 @@ if test -z "$BUILDING_JS" -o -n "$JS_STANDALONE"; then ICU_CPPFLAGS="$ICU_CPPFLAGS -I$icudir/common -I$icudir/i18n" ICU_CROSS_BUILD_OPT="" - ICU_SRCDIR="" - if test "$HOST_OS_ARCH" = "WINNT"; then - ICU_SRCDIR="--srcdir=$(cd $srcdir/intl/icu/source; pwd -W)" - fi if test "$CROSS_COMPILE"; then - # Building host tools. It is necessary to build target binary. - case "$HOST_OS_ARCH" in - Darwin) - ICU_TARGET=MacOSX - ;; - Linux) - ICU_TARGET=Linux - ;; - WINNT) - ICU_TARGET=MSYS/MSVC - ;; - DragonFly|FreeBSD|NetBSD|OpenBSD|GNU_kFreeBSD) - ICU_TARGET=BSD - ;; - esac # Remove _DEPEND_CFLAGS from HOST_FLAGS to avoid configure error HOST_ICU_CFLAGS="$HOST_CFLAGS" HOST_ICU_CXXFLAGS="$HOST_CXXFLAGS" @@ -196,24 +177,21 @@ if test -z "$BUILDING_JS" -o -n "$JS_STANDALONE"; then abs_srcdir=`(cd $srcdir; pwd)` mkdir -p $_objdir/intl/icu/host - (cd $_objdir/intl/icu/host - MOZ_SUBCONFIGURE_WRAP([.],[ - AR="$HOST_AR" RANLIB="$HOST_RANLIB" \ - CC="$HOST_CC" CXX="$HOST_CXX" LD="$HOST_LD" \ - CFLAGS="$HOST_ICU_CFLAGS $HOST_OPTIMIZE_FLAGS" \ - CPPFLAGS="$ICU_CPPFLAGS" \ - CXXFLAGS="$HOST_ICU_CXXFLAGS $HOST_OPTIMIZE_FLAGS" \ - LDFLAGS="$HOST_LDFLAGS" \ - $SHELL $abs_srcdir/intl/icu/source/runConfigureICU \ - $HOST_ICU_BUILD_OPTS \ - $ICU_TARGET \ - dnl Shell quoting is fun. - ${ICU_SRCDIR+"$ICU_SRCDIR"} \ - --enable-static --disable-shared \ - --enable-extras=no --enable-icuio=no --enable-layout=no \ - --enable-tests=no --enable-samples=no || exit 1 - ]) - ) || exit 1 + (export AR="$HOST_AR" + export RANLIB="$HOST_RANLIB" + export CC="$HOST_CC" + export CXX="$HOST_CXX" + export CPP="$HOST_CPP" + export LD="$HOST_LD" + export CFLAGS="$HOST_ICU_CFLAGS $HOST_OPTIMIZE_FLAGS" + export CPPFLAGS="$ICU_CPPFLAGS" + export CXXFLAGS="$HOST_ICU_CXXFLAGS $HOST_OPTIMIZE_FLAGS" + export LDFLAGS="$HOST_LDFLAGS" + ac_configure_args="$HOST_ICU_BUILD_OPTS" + ac_configure_args="$ac_configure_args --enable-static --disable-shared --enable-extras=no --enable-icuio=no --enable-layout=no --enable-tests=no --enable-samples=no" + cache_file=$_objdir/intl/icu/host/config.cache + AC_OUTPUT_SUBDIRS(intl/icu/source:intl/icu/host) + ) || exit 1 # generate config/icucross.mk $GMAKE -C $_objdir/intl/icu/host/ config/icucross.mk @@ -308,29 +286,19 @@ if test -z "$BUILDING_JS" -o -n "$JS_STANDALONE"; then fi fi - # We cannot use AC_OUTPUT_SUBDIRS since ICU tree is out of spidermonkey. - # When using AC_OUTPUT_SUBDIRS, objdir of ICU is out of objdir - # due to relative path. - # If building ICU moves into root of mozilla tree, we can use - # AC_OUTPUT_SUBDIR instead. - mkdir -p $_objdir/intl/icu/target - (cd $_objdir/intl/icu/target - MOZ_SUBCONFIGURE_WRAP([.],[ - AR="$AR" CC="$CC" CXX="$CXX" LD="$LD" \ - ARFLAGS="$ARFLAGS" \ - CPPFLAGS="$ICU_CPPFLAGS $CPPFLAGS" \ - CFLAGS="$ICU_CFLAGS" \ - CXXFLAGS="$ICU_CXXFLAGS" \ - LDFLAGS="$ICU_LDFLAGS $LDFLAGS" \ - $SHELL $_topsrcdir/intl/icu/source/configure \ - $ICU_BUILD_OPTS \ - $ICU_CROSS_BUILD_OPT \ - $ICU_LINK_OPTS \ - ${ICU_SRCDIR+"$ICU_SRCDIR"} \ - $ICU_TARGET_OPT \ - --disable-extras --disable-icuio --disable-layout \ - --disable-tests --disable-samples || exit 1 - ]) + (export AR="$AR" + export CC="$CC" + export CXX="$CXX" + export LD="$LD" + export ARFLAGS="$ARFLAGS" + export CPPFLAGS="$ICU_CPPFLAGS $CPPFLAGS" + export CFLAGS="$ICU_CFLAGS" + export CXXFLAGS="$ICU_CXXFLAGS" + export LDFLAGS="$ICU_LDFLAGS $LDFLAGS" + ac_configure_args="$ICU_BUILD_OPTS $ICU_CROSS_BUILD_OPT $ICU_LINK_OPTS $ICU_TARGET_OPT" + ac_configure_args="$ac_configure_args --disable-extras --disable-icuio --disable-layout --disable-tests --disable-samples" + cache_file=$_objdir/intl/icu/target/config.cache + AC_OUTPUT_SUBDIRS(intl/icu/source:intl/icu/target) ) || exit 1 fi