--- a/build/mozconfig.common
+++ b/build/mozconfig.common
@@ -4,8 +4,10 @@
# Common mozconfig for all users
#
# Add options to this file that will be inherited by all in-tree mozconfigs.
# This is useful for eg try builds with nondefault options that apply to all
# architectures, though note that if you want to override options set in
# another mozconfig file, you'll need to use mozconfig.common.override instead
# of this file.
+
+ac_add_options --enable-calendar
--- a/calendar/lightning/Makefile.in
+++ b/calendar/lightning/Makefile.in
@@ -3,16 +3,17 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
DEPTH = @DEPTH@
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
+include $(MOZILLA_SRCDIR)/toolkit/mozapps/installer/package-name.mk
# Calendar builders currently use STRIP_XPI to reduce the binary component in
# Lightning.
MODULE = lightning
export XPI_NAME = lightning
export USE_EXTENSION_MANIFEST = 1
@@ -24,16 +25,17 @@ XPI_EM_ID = {e2fda1a4-762b-4020-b5ad-a41
DIST_FILES = install.rdf application.ini
PREF_JS_EXPORTS = $(srcdir)/content/lightning.js
# Lighting version number
LIGHTNING_VERSION := $(shell cat $(srcdir)/../sunbird/config/version.txt)
THUNDERBIRD_VERSION := $(shell cat $(topsrcdir)/mail/config/version.txt)
SEAMONKEY_VERSION := $(shell cat $(topsrcdir)/suite/config/version.txt)
GDATA_VERSION := $(shell $(PYTHON) $(topsrcdir)/calendar/providers/gdata/makeversion.py $(LIGHTNING_VERSION))
+PACKAGE_VERSION := $(LIGHTNING_VERSION)
# For extensions we require a max version that is compatible across security releases.
# THUNDERBIRD_MAXVERSION and SEAMONKEY_MAXVERSION is our method for doing that.
# Alpha versions 10.0a1 and 10.0a2 aren't affected
# For Seamonkey, 2.17 becomes 2.17.*, 2.17.1 becomes 2.17.*
# For Thunderbird, 10.0 becomes 10.*, 10.0.1 becomes 10.*
THUNDERBIRD_MAXVERSION := $(THUNDERBIRD_VERSION)
ifneq (a,$(findstring a,$(THUNDERBIRD_VERSION)))
@@ -118,16 +120,22 @@ DEFINES += -DTHUNDERBIRD_VERSION=$(THUND
GRE_BUILDID = $(shell $(PYTHON) $(MOZILLA_SRCDIR)/config/printconfigsetting.py $(LIBXUL_DIST)/bin/platform.ini Build BuildID)
DEFINES += -DGRE_BUILDID=$(GRE_BUILDID)
# xxx todo: unless our packaging story is revised (bug 406579) we package up timezones.sqlite
libs::
$(NSINSTALL) -m 0644 $(srcdir)/../timezones/timezones.sqlite $(FINAL_TARGET)
+
+# For Lightning, we also need to preprocess the l10n prefs
+repack-process-extrafiles: lightning-extrafiles
+lightning-extrafiles:
+ $(PYTHON) $(MOZILLA_SRCDIR)/config/Preprocessor.py $(PREF_PPFLAGS) $(DEFINES) $(ACDEFINES) $(XULPPFLAGS) $(LOCALE_BASEDIR)/lightning-l10n.js > $(DIST)/$(UNIVERSAL_PATH)xpi-stage/$(L10N_XPI_NAME)/$(PREF_DIR)/lightning-l10n.js
+
include $(topsrcdir)/config/rules.mk
include $(srcdir)/lightning-packager.mk
ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
# If the macbundle dist dir was already created, sync lightning here to avoid
# the need to make -C objdir/mail/app each time
libs::
[ -d $(DIST)/$(MOZ_MACBUNDLE_NAME) ] && rsync -a $(FINAL_TARGET) $(DIST)/$(MOZ_MACBUNDLE_NAME)/Contents/MacOS/extensions/$(XPI_EM_ID) || true
--- a/calendar/lightning/lightning-packager.mk
+++ b/calendar/lightning/lightning-packager.mk
@@ -1,80 +1,93 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+# NOTE: The packager is not only used in calendar/lightning but should be
+# general enough to be able to repackage other sub-extensions like
+# calendar/providers/gdata. This means no lightning-specific files, no version
+# numbers directly from lightning and be careful with relative paths.
+
ifdef UNIVERSAL_BINARY
UNIVERSAL_PATH=universal/
else
UNIVERSAL_PATH=
endif
_ABS_DIST := $(call core_abspath,$(DIST))
-ZIP_IN ?= $(_ABS_DIST)/$(UNIVERSAL_PATH)xpi-stage/$(XPI_NAME).xpi
+ZIP_IN ?= $(_ABS_DIST)/$(UNIVERSAL_PATH)xpi-stage/$(XPI_PKGNAME).xpi
# This variable is to allow the wget-en-US target to know which ftp server to download from
ifndef EN_US_BINARY_URL
EN_US_BINARY_URL = $(error You must set EN_US_BINARY_URL)
endif
# Target Directory used for the l10n files
L10N_TARGET = $(DIST)/$(UNIVERSAL_PATH)xpi-stage/$(XPI_NAME)-$(AB_CD)
$(DIST)/$(UNIVERSAL_PATH)xpi-stage:
mkdir -p $@
+# Lightning uses Thunderbird's build machinery, so we need to hack the binary
+# url to use Lightning's directories.
+wget-en-US: FINAL_BINARY_URL = $(subst thunderbird,calendar/lightning,$(EN_US_BINARY_URL))
wget-en-US: $(DIST)/$(UNIVERSAL_PATH)xpi-stage
ifndef WGET
$(error wget not installed)
endif
- (cd $(DIST)/xpi-stage && $(WGET) -nv -N $(EN_US_BINARY_URL)/$(XPI_NAME).xpi)
- @echo "Downloaded $(EN_US_BINARY_URL)/$(PACKAGE) to $(ZIP_IN)"
+ (cd $(DIST)/$(UNIVERSAL_PATH)xpi-stage && $(WGET) -nv -N $(FINAL_BINARY_URL)/$(XPI_PKGNAME).xpi)
+ @echo "Downloaded $(FINAL_BINARY_URL)/$(XPI_PKGNAME) to $(ZIP_IN)"
unpack: $(ZIP_IN)
# We're unpacking directly into FINAL_TARGET, this keeps code to do manual
# repacks cleaner.
if test -d $(DIST)/$(UNIVERSAL_PATH)xpi-stage/$(XPI_NAME); then \
$(RM) -r -v $(DIST)/$(UNIVERSAL_PATH)xpi-stage/$(XPI_NAME); \
fi
$(NSINSTALL) -D $(DIST)/$(UNIVERSAL_PATH)xpi-stage/$(XPI_NAME)
- cd $(DIST)/$(UNIVERSAL_PATH)/xpi-stage/$(XPI_NAME) && $(UNZIP) $(ZIP_IN)
+ cd $(DIST)/$(UNIVERSAL_PATH)xpi-stage/$(XPI_NAME) && $(UNZIP) $(ZIP_IN)
@echo done unpacking
-# Call this target to upload the localized lightning package.
-l10n-upload-%: AB_CD=$*
-l10n-upload-%:
- $(PYTHON) $(MOZILLA_SRCDIR)/build/upload.py --base-path $(DIST)/$(UNIVERSAL_PATH)xpi-stage/ "$(L10N_TARGET).xpi"
+
+# Nothing to package for en-US, its just the usual english xpi
+langpack-en-US: ;
+
+# Skip those locales in Thunderbird but not in Lightning
+ALL_LOCALES = $(shell awk '{ if ($$2 == "" || $$2 == "$(SHORTOS)") { print $$1 } }' $(topsrcdir)/calendar/locales/all-locales)
+TB_ALL_LOCALES = $(shell awk '{ if ($$2 == "" || $$2 == "$(SHORTOS)") { print $$1 } }' $(topsrcdir)/mail/locales/all-locales)
+TB_SKIP_LOCALES = $(filter-out $(ALL_LOCALES),$(TB_ALL_LOCALES))
+$(addprefix langpack-,$(TB_SKIP_LOCALES)) $(addprefix upload-,$(TB_SKIP_LOCALES)):
+ @echo "Skipping $@ as it is not in Lightning's all-locales"
-# Call this target to trigger repackaging lightning for a specific language
-# Usage: make AB_CD=<language> repack-l10n
-repack-l10n: L10N_XPI_NAME=$(subst -en-US,,$(XPI_NAME)-$(AB_CD))
-repack-l10n: recreate-platformini repack-clobber libs-$(AB_CD) repack-process-extrafiles
- @echo "Finished repackaging $(XPI_NAME) locale for Language $(AB_CD)"
+# Calling these targets with prerequisites causes the libs and subsequent
+# targets to be switched in order due to some make voodoo. Therefore we call
+# the targets explicitly, which seems to work better.
+langpack-%: L10N_XPI_NAME=$(XPI_NAME)-$*
+langpack-%: L10N_XPI_PKGNAME=$(XPI_NAME)-$(PACKAGE_VERSION).$*.$(MOZ_PKG_PLATFORM)
+langpack-%: AB_CD=$*
+langpack-%:
+ $(MAKE) L10N_XPI_NAME=$(L10N_XPI_NAME) L10N_XPI_PKGNAME=$(L10N_XPI_PKGNAME) AB_CD=$(AB_CD) \
+ recreate-platformini repack-clobber repack-process-extrafiles libs-$(AB_CD)
+ @echo "Done packaging $(L10N_XPI_PKGNAME).xpi"
-# This target should not be called directly
-repack-clobber-all:
- @echo "Repackaging $(XPI_NAME) locale for Language $(AB_CD)"
+clobber-%: AB_CD=$*
+clobber-%:
+ $(RM) -r $(L10N_TARGET)
+
+repackage-zip-%:
+ @echo "Already repackaged zip for $* in langpack step"
+
+repack-clobber:
+ @echo "Repackaging $(XPI_PKGNAME) locale for Language $(AB_CD)"
$(RM) -rf $(L10N_TARGET)
cp -R $(DIST)/$(UNIVERSAL_PATH)xpi-stage/$(XPI_NAME) $(L10N_TARGET)
-
-# This target should not be called directly
-repack-clobber: repack-clobber-all
grep -v 'locale \w\+ en-US' $(L10N_TARGET)/chrome.manifest > $(L10N_TARGET)/chrome.manifest~ && \
mv $(L10N_TARGET)/chrome.manifest~ $(L10N_TARGET)/chrome.manifest
-ifeq ($(MOZ_CHROME_FILE_FORMAT),flat)
- $(RM) -rf $(L10N_TARGET)/chrome/lightning-en-US/
- $(RM) -rf $(L10N_TARGET)/chrome/calendar-en-US/
-else ifeq ($(MOZ_CHROME_FILE_FORMAT),jar)
- $(RM) -rf $(L10N_TARGET)/chrome/lightning-en-US.jar
- $(RM) -rf $(L10N_TARGET)/chrome/calendar-en-US.jar
-else
- @echo "ERROR: Unhandled chrome file format: $(MOZ_CHROME_FILE_FORMAT)"
- @exit 1
-endif
+ find $(call core_abspath,$(L10N_TARGET)) -name '*en-US*' -print0 | xargs -0 rm -rf
ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
SHORTOS = osx
else
# For now, osx is the only special case. Therefore, we can just fallback to
# detecting linux which should be the second argument.
SHORTOS = linux
endif
@@ -89,54 +102,47 @@ repack-l10n-all: repack-clobber-all $(ad
# Helper target to align names better to targets from other locale Makefiles
repack-l10n-%:
$(MAKE) AB_CD=$* repack-l10n
# Actual locale packaging targets. If L10N_XPI_NAME is set, then use it.
# Otherwise keep the original XPI_NAME
# Overriding the final target is a bit of a hack for universal builds
# so that we can ensure we get the right xpi that gets repacked.
-# The ../ is added to dist because calendar/lightning/locales is at a different level
-# to this makefile.
libs-%: FINAL_XPI_NAME=$(if $(L10N_XPI_NAME),$(L10N_XPI_NAME),$(XPI_NAME))
+libs-%: FINAL_XPI_PKGNAME=$(if $(L10N_XPI_PKGNAME),$(L10N_XPI_PKGNAME),$(XPI_PKGNAME))
libs-%:
- $(MAKE) -C locales libs AB_CD=$* FINAL_TARGET=$(_ABS_DIST)/$(UNIVERSAL_PATH)xpi-stage/$(FINAL_XPI_NAME) XPI_NAME=$(FINAL_XPI_NAME) XPI_PKGNAME=$(FINAL_XPI_NAME) USE_EXTENSION_MANIFEST=1
- $(MAKE) -C ../locales libs AB_CD=$* FINAL_TARGET=$(_ABS_DIST)/$(UNIVERSAL_PATH)xpi-stage/$(FINAL_XPI_NAME) XPI_NAME=$(FINAL_XPI_NAME) XPI_PKGNAME=$(FINAL_XPI_NAME) USE_EXTENSION_MANIFEST=1
+ $(MAKE) -C locales libs AB_CD=$* FINAL_TARGET=$(_ABS_DIST)/$(UNIVERSAL_PATH)xpi-stage/$(FINAL_XPI_NAME) \
+ XPI_NAME=$(FINAL_XPI_NAME) XPI_PKGNAME=$(FINAL_XPI_PKGNAME) USE_EXTENSION_MANIFEST=1
-# For localized xpis, the install.rdf and lightning-l10n.js need to be
-# reprocessed with some defines from the locale.
+# For localized xpis, the install.rdf need to be reprocessed with some defines
+# from the locale.
repack-process-extrafiles: LOCALE_BASEDIR=$(call EXPAND_LOCALE_SRCDIR,calendar/locales)
repack-process-extrafiles:
$(PYTHON) $(MOZILLA_SRCDIR)/config/Preprocessor.py $(XULAPP_DEFINES) $(DEFINES) $(ACDEFINES) $(XULPPFLAGS) -I $(LOCALE_BASEDIR)/defines.inc $(srcdir)/install.rdf > $(DIST)/$(UNIVERSAL_PATH)xpi-stage/$(L10N_XPI_NAME)/install.rdf
- $(PYTHON) $(MOZILLA_SRCDIR)/config/Preprocessor.py $(PREF_PPFLAGS) $(DEFINES) $(ACDEFINES) $(XULPPFLAGS) $(LOCALE_BASEDIR)/lightning-l10n.js > $(DIST)/$(UNIVERSAL_PATH)xpi-stage/$(L10N_XPI_NAME)/$(PREF_DIR)/lightning-l10n.js
-# When repackaging lightning from the builder, platform.ini is not yet created.i
+# When repackaging Lightning from the builder, platform.ini is not yet created.
# Recreate it from the application.ini bundled with the downloaded xpi.
+print_ltnconfig = $(shell $(PYTHON) $(MOZILLA_SRCDIR)/config/printconfigsetting.py $(DIST)/$(UNIVERSAL_PATH)xpi-stage/$(XPI_NAME)/application.ini $1 $2)
+
$(LIBXUL_DIST)/bin/platform.ini:
echo "[Build]" >> $(LIBXUL_DIST)/bin/platform.ini
-
- echo -n "Milestone=" >> $(LIBXUL_DIST)/bin/platform.ini
- $(PYTHON) $(MOZILLA_SRCDIR)/config/printconfigsetting.py $(DIST)/$(UNIVERSAL_PATH)xpi-stage/$(XPI_NAME)/application.ini Gecko MaxVersion >> $(LIBXUL_DIST)/bin/platform.ini
-
- echo -n "SourceStamp=" >> $(LIBXUL_DIST)/bin/platform.ini
- $(PYTHON) $(MOZILLA_SRCDIR)/config/printconfigsetting.py $(DIST)/$(UNIVERSAL_PATH)xpi-stage/$(XPI_NAME)/application.ini Build SourceStamp >> $(LIBXUL_DIST)/bin/platform.ini
-
- echo -n "SourceRepository=" >> $(LIBXUL_DIST)/bin/platform.ini
- $(PYTHON) $(MOZILLA_SRCDIR)/config/printconfigsetting.py $(DIST)/$(UNIVERSAL_PATH)xpi-stage/$(XPI_NAME)/application.ini Build SourceRepository >> $(LIBXUL_DIST)/bin/platform.ini
-
- echo -n "BuildID=" >> $(LIBXUL_DIST)/bin/platform.ini
- $(PYTHON) $(MOZILLA_SRCDIR)/config/printconfigsetting.py $(DIST)/$(UNIVERSAL_PATH)xpi-stage/$(XPI_NAME)/application.ini App BuildID >> $(LIBXUL_DIST)/bin/platform.ini
+ echo "Milestone=$(call print_ltnconfig,Gecko,MaxVersion)" >> $(LIBXUL_DIST)/bin/platform.ini
+ echo "SourceStamp=$(call print_ltnconfig,Build,SourceStamp)" >> $(LIBXUL_DIST)/bin/platform.ini
+ echo "SourceRepository=$(call print_ltnconfig,Build,SourceRepository)" >> $(LIBXUL_DIST)/bin/platform.ini
+ echo "BuildID=$(call print_ltnconfig,App,BuildID)" >> $(LIBXUL_DIST)/bin/platform.ini
recreate-platformini: $(LIBXUL_DIST)/bin/platform.ini
stage_upload:
$(NSINSTALL) -D $(DIST)/$(MOZ_PKG_PLATFORM)
- $(INSTALL) $(IFLAGS1) $(DIST)/$(UNIVERSAL_PATH)/xpi-stage/$(XPI_PKGNAME).xpi $(DIST)/$(MOZ_PKG_PLATFORM)
- $(INSTALL) $(IFLAGS1) $(DIST)/xpi-stage/$(GDATA_XPI_PKGNAME).xpi $(DIST)/$(MOZ_PKG_PLATFORM)
+ $(INSTALL) $(IFLAGS1) $(DIST)/$(UNIVERSAL_PATH)xpi-stage/$(XPI_PKGNAME).xpi $(DIST)/$(MOZ_PKG_PLATFORM)
# Lightning uses Thunderbird's build machinery, so we need to hack the post
-# upload command to use Lightning's directories.
-upload: POST_UPLOAD_CMD := $(subst thunderbird,calendar/lightning,$(POST_UPLOAD_CMD))
-upload: stage_upload
+# upload command to use Lightning's directories. We also need some hackery to
+# be able to ignore locales that are in Thunderbird's all-locales but not in
+# ours.
+upload: upload-$(AB_CD)
+upload-%: POST_UPLOAD_CMD := $(subst thunderbird,calendar/lightning,$(POST_UPLOAD_CMD))
+upload-%: stage_upload
POST_UPLOAD_CMD="$(POST_UPLOAD_CMD)" \
$(PYTHON) $(MOZILLA_DIR)/build/upload.py --base-path $(DIST) \
- $(DIST)/$(MOZ_PKG_PLATFORM)/$(XPI_PKGNAME).xpi \
- $(DIST)/$(MOZ_PKG_PLATFORM)/$(GDATA_XPI_PKGNAME).xpi
+ "$(DIST)/$(MOZ_PKG_PLATFORM)/$(XPI_PKGNAME).xpi"
--- a/calendar/lightning/lightning-symbols.mk
+++ b/calendar/lightning/lightning-symbols.mk
@@ -5,18 +5,16 @@
###################################
# Warning this code is copied
# from mozilla-central/Makefile.in
# and needs to be kept in sync.
###################################
SYMBOL_INDEX_NAME = \
$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)-$(OS_TARGET)-$(BUILDID)$(EXTRA_BUILDID)-symbols.txt
-include $(MOZILLA_SRCDIR)/toolkit/mozapps/installer/package-name.mk
-
ifeq ($(OS_ARCH),WINNT)
# we want to copy PDB files on Windows
MAKE_SYM_STORE_ARGS := -c --vcs-info
ifdef PDBSTR_PATH
MAKE_SYM_STORE_ARGS += -i
endif
DUMP_SYMS_BIN ?= $(MOZILLA_SRCDIR)/toolkit/crashreporter/tools/win32/dump_syms_vc$(_MSC_VER).exe
# PDB files don't get moved to dist, so we need to scan the whole objdir
--- a/calendar/lightning/locales/moz.build
+++ b/calendar/lightning/locales/moz.build
@@ -1,4 +1,8 @@
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+DIRS += [
+ '../../locales',
+]
--- a/calendar/lightning/moz.build
+++ b/calendar/lightning/moz.build
@@ -1,16 +1,15 @@
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
DIRS += [
'../libical',
- '../locales',
'../base',
'../providers',
'../import-export',
'../itip',
'components',
'locales',
]
--- a/calendar/providers/gdata/Makefile.in
+++ b/calendar/providers/gdata/Makefile.in
@@ -16,23 +16,23 @@ export USE_EXTENSION_MANIFEST = 1
export XPI_NAME = gdata-provider
DIST_FILES = install.rdf
XPI_PKGNAME = gdata-provider-$(GDATA_VERSION).$(AB_CD).$(MOZ_PKG_PLATFORM)
CALENDAR_VERSION := $(shell cat $(topsrcdir)/calendar/sunbird/config/version.txt)
THUNDERBIRD_VERSION := $(shell cat $(topsrcdir)/mail/config/version.txt)
SEAMONKEY_VERSION := $(shell cat $(topsrcdir)/suite/config/version.txt)
GDATA_VERSION = $(shell $(PYTHON) $(srcdir)/makeversion.py $(CALENDAR_VERSION))
+PACKAGE_VERSION := $(GDATA_VERSION)
DEFINES += -DAB_CD=$(AB_CD) \
-DCALENDAR_VERSION=$(CALENDAR_VERSION) \
-DSEAMONKEY_VERSION=$(SEAMONKEY_VERSION) \
-DTHUNDERBIRD_VERSION=$(THUNDERBIRD_VERSION) \
-DCOMM_BUILD=$(COMM_BUILD) \
-DGDATA_VERSION=$(GDATA_VERSION) \
$(NULL)
PREF_JS_EXPORTS = $(srcdir)/defaults/preferences.js
-libs-%:
- $(MAKE) -C locales libs AB_CD=$* XPI_NAME=$(XPI_NAME) USE_EXTENSION_MANIFEST=1
include $(topsrcdir)/config/rules.mk
+include $(srcdir)/../../lightning/lightning-packager.mk
--- a/mail/locales/Makefile.in
+++ b/mail/locales/Makefile.in
@@ -123,23 +123,16 @@ clobber-zip:
$(RM) -rf $(STAGEDIST)/searchplugins \
$(STAGEDIST)/dictionaries \
$(STAGEDIST)/hyphenation/$(AB_CD) \
$(STAGEDIST)/isp/$(AB_CD) \
$(STAGEDIST)/chrome/$(AB_CD)
langpack: langpack-$(AB_CD)
-# This is a generic target that will make a langpack, repack ZIP (+tarball)
-# builds, and repack and installer if applicable. It is called from the
-# tinderbox scripts. Alter it with caution.
-
-installers-%: clobber-% langpack-% repackage-win32-installer-% repackage-zip-%
- @echo "repackaging done"
-
ifdef MOZ_UPDATER
libs:: $(call MERGE_FILE,updater/updater.ini) $(call mkdir_deps,$(DIST)/bin)
ifeq ($(OS_ARCH),WINNT)
cat $< $(srcdir)/../installer/windows/nsis/updater_append.ini | \
sed -e "s/^InfoText=/Info=/" -e "s/^TitleText=/Title=/" | \
sed -e "s/%MOZ_APP_DISPLAYNAME%/$(MOZ_APP_DISPLAYNAME)/" > \
$(FINAL_TARGET)/updater.ini
else
@@ -196,8 +189,38 @@ endif
chmod -vR 775 $(UPLOAD_DIR)
merge-%:
ifdef LOCALE_MERGEDIR
$(RM) -rf $(LOCALE_MERGEDIR)
MACOSX_DEPLOYMENT_TARGET= compare-locales -m $(LOCALE_MERGEDIR) $(srcdir)/l10n.ini $(L10NBASEDIR) $*
endif
@echo
+
+ifdef MOZ_CALENDAR
+LIGHTNING_PATH=$(DEPTH)/calendar/lightning
+GDATA_PATH=$(DEPTH)/calendar/providers/gdata
+
+# Define hooks for forwarding targets
+INSTALLERS_TARGETS += calendar-clobber-% calendar-langpack-% calendar-repackage-zip-%
+FORWARD_TARGETS=wget-en-US unpack clobber-% langpack-% repackage-zip-%
+
+# Add calendar targets to the non-pattern rules
+wget-en-US: calendar-wget-en-US
+unpack: calendar-unpack
+upload: calendar-upload
+
+# And finally, define the calendar targets
+$(addprefix calendar-,$(FORWARD_TARGETS)):
+ $(MAKE) -C $(LIGHTNING_PATH) $(subst calendar-,,$@)
+ $(MAKE) -C $(GDATA_PATH) $(subst calendar-,,$@)
+
+calendar-upload:
+ $(MAKE) -C $(LIGHTNING_PATH) upload AB_CD=$(AB_CD)
+ $(MAKE) -C $(GDATA_PATH) upload AB_CD=$(AB_CD)
+endif
+
+# This is a generic target that will make a langpack, repack ZIP (+tarball)
+# builds, and repack and installer if applicable. It is called from the
+# tinderbox scripts. Alter it with caution.
+INSTALLERS_TARGETS += clobber-% langpack-% repackage-win32-installer-% repackage-zip-%
+installers-%: $(INSTALLERS_TARGETS)
+ @echo "repackaging done"