mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-08 12:37:37 +00:00
135 lines
4.5 KiB
Plaintext
135 lines
4.5 KiB
Plaintext
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 Set the MOZ_ICU_VERSION variable to denote the current version of the
|
|
dnl ICU library, and also the MOZ_SHARED_ICU which would be true if we are
|
|
dnl linking against a shared library of ICU, either one that we build from
|
|
dnl our copy of ICU or the system provided library.
|
|
|
|
AC_DEFUN([MOZ_CONFIG_ICU], [
|
|
|
|
ICU_LIB_NAMES=
|
|
MOZ_NATIVE_ICU=
|
|
MOZ_ARG_WITH_BOOL(system-icu,
|
|
[ --with-system-icu
|
|
Use system ICU (located with pkgconfig)],
|
|
MOZ_NATIVE_ICU=1)
|
|
|
|
if test -n "$MOZ_NATIVE_ICU"; then
|
|
PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1)
|
|
MOZ_SHARED_ICU=1
|
|
else
|
|
MOZ_ICU_CFLAGS='-I$(topsrcdir)/intl/icu/source/common -I$(topsrcdir)/intl/icu/source/i18n'
|
|
AC_SUBST(MOZ_ICU_CFLAGS)
|
|
fi
|
|
|
|
AC_SUBST(MOZ_NATIVE_ICU)
|
|
|
|
MOZ_ARG_WITH_STRING(intl-api,
|
|
[ --with-intl-api, --with-intl-api=build, --without-intl-api
|
|
Determine the status of the ECMAScript Internationalization API. The first
|
|
(or lack of any of these) builds and exposes the API. The second builds it
|
|
but doesn't use ICU or expose the API to script. The third doesn't build
|
|
ICU at all.],
|
|
_INTL_API=$withval)
|
|
|
|
ENABLE_INTL_API=
|
|
EXPOSE_INTL_API=
|
|
case "$_INTL_API" in
|
|
no)
|
|
;;
|
|
build)
|
|
ENABLE_INTL_API=1
|
|
;;
|
|
yes)
|
|
ENABLE_INTL_API=1
|
|
EXPOSE_INTL_API=1
|
|
;;
|
|
*)
|
|
AC_MSG_ERROR([Invalid value passed to --with-intl-api: $_INTL_API])
|
|
;;
|
|
esac
|
|
|
|
if test -n "$EXPOSE_INTL_API"; then
|
|
AC_DEFINE(EXPOSE_INTL_API)
|
|
fi
|
|
|
|
dnl Settings for the implementation of the ECMAScript Internationalization API
|
|
if test -n "$ENABLE_INTL_API"; then
|
|
AC_DEFINE(ENABLE_INTL_API)
|
|
|
|
icudir="$_topsrcdir/intl/icu/source"
|
|
if test ! -d "$icudir"; then
|
|
icudir="$_topsrcdir/../../intl/icu/source"
|
|
if test ! -d "$icudir"; then
|
|
AC_MSG_ERROR([Cannot find the ICU directory])
|
|
fi
|
|
fi
|
|
|
|
version=`sed -n 's/^[[:space:]]*#[[:space:]]*define[[:space:]][[:space:]]*U_ICU_VERSION_MAJOR_NUM[[:space:]][[:space:]]*\([0-9][0-9]*\)[[:space:]]*$/\1/p' "$icudir/common/unicode/uvernum.h"`
|
|
if test x"$version" = x; then
|
|
AC_MSG_ERROR([cannot determine icu version number from uvernum.h header file $lineno])
|
|
fi
|
|
MOZ_ICU_VERSION="$version"
|
|
|
|
if test -z "${JS_STANDALONE}" -a -n "${JS_SHARED_LIBRARY}${MOZ_NATIVE_ICU}"; then
|
|
MOZ_SHARED_ICU=1
|
|
fi
|
|
|
|
AC_SUBST(MOZ_ICU_VERSION)
|
|
AC_SUBST(MOZ_SHARED_ICU)
|
|
|
|
if test -z "$MOZ_NATIVE_ICU"; then
|
|
case "$OS_TARGET" in
|
|
WINNT)
|
|
ICU_LIB_NAMES="icuin icuuc icudt"
|
|
if test -n "$MOZ_SHARED_ICU"; then
|
|
DBG_SUFFIX=
|
|
if test -n "$MOZ_DEBUG"; then
|
|
DBG_SUFFIX=d
|
|
fi
|
|
MOZ_ICU_LIBS='$(foreach lib,$(ICU_LIB_NAMES),$(DEPTH)$1/intl/icu/target/lib/$(LIB_PREFIX)$(lib)$(DBG_SUFFIX).$(LIB_SUFFIX))'
|
|
fi
|
|
;;
|
|
Darwin)
|
|
ICU_LIB_NAMES="icui18n icuuc icudata"
|
|
if test -n "$MOZ_SHARED_ICU"; then
|
|
MOZ_ICU_LIBS='$(foreach lib,$(ICU_LIB_NAMES),$(DEPTH)$1/intl/icu/target/lib/$(DLL_PREFIX)$(lib).$(MOZ_ICU_VERSION)$(DLL_SUFFIX))'
|
|
fi
|
|
;;
|
|
Linux|DragonFly|FreeBSD|NetBSD|OpenBSD)
|
|
ICU_LIB_NAMES="icui18n icuuc icudata"
|
|
if test -n "$MOZ_SHARED_ICU"; then
|
|
MOZ_ICU_LIBS='$(foreach lib,$(ICU_LIB_NAMES),$(DEPTH)$1/intl/icu/target/lib/$(DLL_PREFIX)$(lib)$(DLL_SUFFIX).$(MOZ_ICU_VERSION))'
|
|
fi
|
|
;;
|
|
*)
|
|
AC_MSG_ERROR([ECMAScript Internationalization API is not yet supported on this platform])
|
|
esac
|
|
if test -z "$MOZ_SHARED_ICU"; then
|
|
MOZ_ICU_LIBS='$(call EXPAND_LIBNAME_PATH,$(ICU_LIB_NAMES),$(DEPTH)$1/intl/icu/target/lib)'
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(DBG_SUFFIX)
|
|
AC_SUBST(ENABLE_INTL_API)
|
|
AC_SUBST(ICU_LIB_NAMES)
|
|
AC_SUBST(MOZ_ICU_LIBS)
|
|
|
|
if test -n "$ENABLE_INTL_API" -a -z "$MOZ_NATIVE_ICU"; then
|
|
dnl We build ICU as a static library for non-shared js builds and as a shared library for shared js builds.
|
|
if test -z "$MOZ_SHARED_ICU"; then
|
|
AC_DEFINE(U_STATIC_IMPLEMENTATION)
|
|
else
|
|
AC_DEFINE(U_COMBINED_IMPLEMENTATION)
|
|
fi
|
|
dnl Source files that use ICU should have control over which parts of the ICU
|
|
dnl namespace they want to use.
|
|
AC_DEFINE(U_USING_ICU_NAMESPACE,0)
|
|
fi
|
|
|
|
|
|
])
|