Bug 601571 - Port omnijar build system changes to comm-central; r=Callek
--- a/config/autoconf.mk.in
+++ b/config/autoconf.mk.in
@@ -77,16 +77,17 @@ MOZ_FS_LAYOUT = @MOZ_FS_LAYOUT@
L10NBASEDIR = @L10NBASEDIR@
LIBXUL_DIST = @LIBXUL_DIST@
SYSTEM_LIBXUL = @SYSTEM_LIBXUL@
XULRUNNER_STUB_NAME = @XULRUNNER_STUB_NAME@
MOZ_CHROME_FILE_FORMAT = @MOZ_CHROME_FILE_FORMAT@
+MOZ_OMNIJAR = @MOZ_OMNIJAR@
MOZ_WIDGET_TOOLKIT = @MOZ_WIDGET_TOOLKIT@
MOZ_DFB = @MOZ_DFB@
MOZ_X11 = @MOZ_X11@
MOZ_JS_LIBS = @MOZ_JS_LIBS@
MOZ_DEBUG = @MOZ_DEBUG@
--- a/configure.in
+++ b/configure.in
@@ -6109,30 +6109,44 @@ MOZ_ARG_ENABLE_BOOL(xterm-updates,
[ --enable-xterm-updates Update XTERM titles with current command.],
MOZ_UPDATE_XTERM=1,
MOZ_UPDATE_XTERM= )
dnl =========================================================
dnl = Chrome format
dnl =========================================================
MOZ_ARG_ENABLE_STRING([chrome-format],
-[ --enable-chrome-format=jar|flat|both|symlink
+[ --enable-chrome-format=jar|flat|both|symlink|omni
Select FORMAT of chrome files (default=jar)],
MOZ_CHROME_FILE_FORMAT=`echo $enableval | tr A-Z a-z`)
-if test -z "$MOZ_CHROME_FILE_FORMAT"; then
- MOZ_CHROME_FILE_FORMAT=jar
-fi
-
if test "$MOZ_CHROME_FILE_FORMAT" != "jar" &&
test "$MOZ_CHROME_FILE_FORMAT" != "flat" &&
test "$MOZ_CHROME_FILE_FORMAT" != "symlink" &&
- test "$MOZ_CHROME_FILE_FORMAT" != "both"; then
- AC_MSG_ERROR([--enable-chrome-format must be set to either jar, flat, both, or symlink])
-fi
+ test "$MOZ_CHROME_FILE_FORMAT" != "both" &&
+ test "$MOZ_CHROME_FILE_FORMAT" != "omni"; then
+ AC_MSG_ERROR([--enable-chrome-format must be set to either jar, flat, both, symlink or omni])
+fi
+
+dnl =========================================================
+dnl Omnijar packaging (bug 552121)
+dnl =========================================================
+dnl Omnijar packaging is compatible with flat packaging.
+dnl In unpackaged builds, omnijar looks for files as if
+dnl things were flat packaged. After packaging, all files
+dnl are loaded from a single jar. MOZ_CHROME_FILE_FORMAT
+dnl is set to flat since putting files into jars is only
+dnl done during packaging with omnijar.
+if test "$MOZ_CHROME_FILE_FORMAT" = "omni"; then
+ MOZ_OMNIJAR=1
+ AC_DEFINE(MOZ_OMNIJAR)
+ MOZ_CHROME_FILE_FORMAT=flat
+fi
+
+AC_SUBST(MOZ_OMNIJAR)
dnl ========================================================
dnl = Define default location for MOZILLA_FIVE_HOME
dnl ========================================================
MOZ_ARG_WITH_STRING(default-mozilla-five-home,
[ --with-default-mozilla-five-home
Set the default value for MOZILLA_FIVE_HOME],
[ val=`echo $withval`
@@ -6526,16 +6540,20 @@ fi
if test -n "$MOZ_ENABLE_LIBXUL" -a -n "$BUILD_STATIC_LIBS"; then
AC_MSG_ERROR([--enable-libxul is not compatible with --enable-static])
fi
if test -n "$MOZ_IPC" -a -z "$MOZ_ENABLE_LIBXUL"; then
AC_MSG_ERROR([--enable-ipc requires --enable-libxul])
fi
+if test -z "$MOZ_ENABLE_LIBXUL" -a -n "$MOZ_OMNIJAR"; then
+ AC_MSG_ERROR([Omnijar packaging is incompatible with --disable-libxul. Please either --enable-libxul or --enable-chrome-format=jar|flat|symlink]);
+fi
+
if test -n "$MOZ_ENABLE_LIBXUL"; then
XPCOM_LIBS="$LIBXUL_LIBS"
AC_DEFINE(MOZ_ENABLE_LIBXUL)
else
if test -n "$BUILD_STATIC_LIBS"; then
AC_DEFINE(MOZ_STATIC_BUILD)
fi
XPCOM_LIBS="$DYNAMIC_XPCOM_LIBS"