DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (c4a371f2ce99)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
# 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/.

# Calendar builders currently use STRIP_XPI to reduce the binary component in
# Lightning.

USE_EXTENSION_MANIFEST = 1
XPI_PKGNAME = lightning-$(LIGHTNING_VERSION).$(AB_CD).$(MOZ_PKG_PLATFORM)
XPI_VERSION = $(LIGHTNING_VERSION)

XPI_EM_ID = {e2fda1a4-762b-4020-b5ad-a41df1933103}

DIST_FILES = install.rdf app.ini

# Lighting version number
THUNDERBIRD_VERSION := $(shell cat $(topsrcdir)/mail/config/version.txt)
SEAMONKEY_VERSION := $(shell cat $(topsrcdir)/suite/config/version.txt)
LIGHTNING_VERSION := $(shell $(PYTHON) $(srcdir)/build/makeversion.py $(word 1,$(MOZ_PKG_VERSION) $(THUNDERBIRD_VERSION)))
GDATA_VERSION := $(shell $(PYTHON) $(topsrcdir)/calendar/providers/gdata/makeversion.py $(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)))
THUNDERBIRD_MAXVERSION := $(shell echo $(THUNDERBIRD_VERSION) | sed 's|\(^[0-9]*\)\.\([0-9]*\).*|\1|' ).*
endif

SEAMONKEY_MAXVERSION := $(SEAMONKEY_VERSION)
ifneq (a,$(findstring a,$(SEAMONKEY_VERSION)))
SEAMONKEY_MAXVERSION := $(shell echo $(SEAMONKEY_VERSION) | sed 's|\(^[0-9]*.[0-9]*\).*|\1|' ).*
endif

ifneq (,$(findstring a,$(LIGHTNING_VERSION)))
DEFINES += -DLIGHTNING_PRERELEASE_VERSION=1
endif

# Enable nightly updates on aurora and nightly channel
ifeq (nightly,$(subst aurora,nightly,$(MOZ_UPDATE_CHANNEL)))
DEFINES += -DLIGHTNING_UPDATE_LOCATION=https://calendar.mozilla.org/update.php
endif

# Gecko milestone
GRE_MILESTONE = $(shell $(PYTHON) $(MOZILLA_SRCDIR)/config/printconfigsetting.py $(LIBXUL_DIST)/bin/platform.ini Build Milestone)
ifdef GRE_MILESTONE
DEFINES += -DGRE_MILESTONE=$(GRE_MILESTONE)
endif

# comm-central source repo and stamp
SOURCE_STAMP ?= $(firstword $(shell hg -R $(topsrcdir) parent --template='{node|short}\n' 2>/dev/null))
ifdef SOURCE_STAMP
DEFINES += -DSOURCE_STAMP='$(SOURCE_STAMP)'
endif

SOURCE_REPO := $(shell hg -R $(topsrcdir) showconfig paths.default 2>/dev/null | sed -e 's/^ssh:/http:/')
ifdef SOURCE_REPO
DEFINES += -DSOURCE_REPO='$(SOURCE_REPO)'
endif

# Mozilla source repo and stamps
MOZ_SOURCE_STAMP = $(firstword $(shell hg -R $(MOZILLA_SRCDIR) parent --template='{node|short}\n' 2>/dev/null))
ifdef MOZ_SOURCE_STAMP
DEFINES += -DMOZ_SOURCE_STAMP='$(MOZ_SOURCE_STAMP)'
endif

MOZ_SOURCE_REPO := $(shell hg -R $(MOZILLA_SRCDIR) showconfig paths.default 2>/dev/null | sed -e 's/^ssh:/http:/')
ifdef MOZ_SOURCE_REPO
DEFINES += -DMOZ_SOURCE_REPO='$(MOZ_SOURCE_REPO)'
endif

ifdef NIGHTLY_BUILD
# On nightly builds, install as a global extension in
# dist/bin/extensions/
XPI_INSTALL_EXTENSION = $(XPI_EM_ID)
else
# For beta and release builds, install as a distribution extension in
# dist/bin/distribution/extensions/
INSTALL_EXTENSION_ID = $(XPI_EM_ID)
endif

DEFINES += -DTHUNDERBIRD_VERSION=$(THUNDERBIRD_VERSION) \
           -DTHUNDERBIRD_MAXVERSION=$(THUNDERBIRD_MAXVERSION) \
           -DAB_CD=$(AB_CD) \
           -DSEAMONKEY_VERSION=$(SEAMONKEY_VERSION) \
           -DSEAMONKEY_MAXVERSION=$(SEAMONKEY_MAXVERSION) \
           -DLIGHTNING_VERSION=$(LIGHTNING_VERSION) \
           -DTARGET_PLATFORM=$(OS_TARGET)_$(TARGET_XPCOM_ABI) \
           -DXPI_EM_ID="$(XPI_EM_ID)" \
           $(NULL)

GRE_BUILDID = $(shell $(PYTHON) $(MOZILLA_SRCDIR)/config/printconfigsetting.py $(LIBXUL_DIST)/bin/application.ini App BuildID)
DEFINES += -DGRE_BUILDID=$(GRE_BUILDID)

libs::
	$(NSINSTALL) -m 0644 $(srcdir)/../timezones/zones.json $(FINAL_TARGET)/timezones

include $(topsrcdir)/config/rules.mk
include $(srcdir)/lightning-packager.mk
include $(srcdir)/lightning-tests.mk

# For Lightning, we also need to preprocess the l10n prefs. Pull in the en-US
# copy if the files doesn't exist.
repack-process-extrafiles: lightning-extrafiles
lightning-extrafiles: LTN_ABCD_L10NJS=$(call EXPAND_LOCALE_SRCDIR,calendar/locales)/lightning-l10n.js
lightning-extrafiles: LTN_ANY_L10NJS=$(if $(wildcard $(LTN_ABCD_L10NJS)),$(LTN_ABCD_L10NJS),$(topsrcdir)/calendar/locales/en-US/lightning-l10n.js)
lightning-extrafiles:
	$(call py_action,preprocessor,$(PREF_PPFLAGS) $(DEFINES) $(ACDEFINES) $(XULPPFLAGS) $(LTN_ANY_L10NJS) -o $(DIST)/$(UNIVERSAL_PATH)xpi-stage/$(L10N_XPI_NAME)/$(PREF_DIR)/lightning-l10n.js)

ident:
	@printf 'comm_revision '
	@$(PYTHON) $(MOZILLA_SRCDIR)/config/printconfigsetting.py \
	    $(FINAL_TARGET)/app.ini App SourceStamp
	@printf 'moz_revision '
	@$(PYTHON) $(MOZILLA_SRCDIR)/config/printconfigsetting.py \
	    $(FINAL_TARGET)/app.ini Build SourceStamp
	@printf 'buildid '
	@$(PYTHON) $(MOZILLA_SRCDIR)/config/printconfigsetting.py \
	    $(FINAL_TARGET)/app.ini App BuildID