releases-comm-central/im/build.mk

137 строки
4.8 KiB
Makefile

# 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/.
ifndef COMM_BUILD
ifndef MOZILLA_DIR
MOZILLA_DIR = $(topsrcdir)
endif
# included to get $(BUILDID), which needs $(MOZILLA_DIR)
include $(topsrcdir)/toolkit/mozapps/installer/package-name.mk
BUILD_YEAR := $(shell echo $(BUILDID) | cut -c 1-4)
BUILD_MONTH := $(shell echo $(BUILDID) | cut -c 5-6)
BUILD_DAY := $(shell echo $(BUILDID) | cut -c 7-8)
BUILD_HOUR := $(shell echo $(BUILDID) | cut -c 9-10)
ifndef PKG_SUFFIX
ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
PKG_SUFFIX = .dmg
else
ifeq ($(OS_ARCH),WINNT)
PKG_SUFFIX = .zip
else
ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2)
PKG_SUFFIX = .tar.bz2
else
PKG_SUFFIX = .tar.gz
endif
endif
endif
endif # PKG_SUFFIX
PACKAGE = $(PKG_BASENAME)$(PKG_SUFFIX)
ifeq ($(OS_TARGET), WINNT)
INSTALLER_PACKAGE = $(PKG_INST_BASENAME).exe
endif
UPLOAD_FILES = $(wildcard $(foreach file,\
$(foreach AB_CD,$(AB_CD) $(SHIPPED_LOCALES),\
$(PACKAGE) $(INSTALLER_PACKAGE))\
$(PKG_BASENAME).txt $(PKG_UPDATE_PATH)*.mar,\
$(DIST)/$(file)))
PREVIOUS_MAR_DIR := $(DIST)/$(PKG_UPDATE_PATH)previous
MAR_FILE_DEST = $(PREVIOUS_MAR_DIR)/$(buildid)/$(notdir $(MAR_FILE_SRC))
PATCH_FILE := $(DIST)/$(PKG_UPDATE_PATH)patch_list
FORCE_UPDATE := components/components.list|Contents/MacOS/components/components.list
#Example of environment variables to set before using make distribution:
#Convenience variables:
# SSH_SERVER=ftp.instantbird.org
# SSH_USERNAME=buildbot
# UPLOAD_PATH=/www/anonymous/nightly/$(BUILD_YEAR)/$(BUILD_MONTH)/$(BUILD_YEAR)-$(BUILD_MONTH)-$(BUILD_DAY)-$(BUILD_HOUR)-$(MOZ_APP_NAME)
#Required to upload files:
# UPLOAD_CMD=scp $(UPLOAD_FILES) $(SSH_USERNAME)@$(SSH_SERVER):$(UPLOAD_PATH)/
# The UPLOAD_FILES variable is set by the build system to the (space separated)
# list of local files that should be uploaded.
#Optional:
# PRE_UPLOAD_CMD=ssh $(SSH_USERNAME)@$(SSH_SERVER) mkdir -p $(UPLOAD_PATH)
# POST_UPLOAD_CMD=ssh $(SSH_USERNAME)@$(SSH_SERVER) register_builds.php $(UPLOAD_PATH) $(MOZ_PKG_PLATFORM)
# LIST_PREVIOUS_MAR_CMD=ssh $(SSH_USERNAME)@$(SSH_SERVER) previous_builds.php $(MOZ_PKG_PLATFORM)
# This command should return a list of mar files.
# Each line should use this format: <buildid>:<lang>:<path>/<filename>.mar
# DOWNLOAD_MAR_CMD=scp $(SSH_USERNAME)@$(SSH_SERVER):/www/anonymous/$(MAR_FILE_SRC) $(MAR_FILE_DEST)
# The MAR_FILE_SRC variable is set by the build system to a value returned by
# the LIST_PREVIOUS_MAR_CMD command (format: <path>/<filename>.mar).
# The MAR_FILE_DEST variable is set by the build system and indicates where
# the file should be put on the local system.
#If there's a symbol server:
# SYMBOL_SERVER_HOST=symbols.instantbird.org
# SYMBOL_SERVER_PATH=/www/instantbird/socorro/symbols
# SYMBOL_SERVER_PORT=22
# SYMBOL_SERVER_USER=buildbot
distribution:
@$(MAKE) MAKE_SYM_STORE_PATH=$(MAKE_SYM_STORE_PATH) SYM_STORE_SOURCE_DIRS='$(topsrcdir)/mozilla/extensions/purple $(topsrcdir)/mozilla $(topsrcdir)' buildsymbols
@$(MAKE) -C im/installer libs installer
ifdef ENABLE_TESTS
$(MAKE) xpcshell-tests
endif
ifdef MOZ_UPDATE_PACKAGING
$(MAKE) -C tools/update-packaging full-update PKG_INST_PATH=
endif
ifdef L10NBASEDIR
$(foreach locale,$(SHIPPED_LOCALES),$(MAKE) -C im/locales/ repack-$(locale) LOCALE_MERGEDIR=mergedir MOZ_MAKE_COMPLETE_MAR=$(MOZ_UPDATE_PACKAGING) ;)
endif
ifdef MOZ_UPDATE_PACKAGING
ifdef LIST_PREVIOUS_MAR_CMD
rm -rf $(PREVIOUS_MAR_DIR) $(PATCH_FILE)
mkdir $(PREVIOUS_MAR_DIR)
touch $(PATCH_FILE)
$(foreach marline,$(shell $(LIST_PREVIOUS_MAR_CMD)),\
$(foreach MAR_FILE_SRC,$(shell echo $(marline) |cut -d : -f 3),\
$(foreach AB_CD,$(filter $(shell echo $(marline) |cut -d : -f 2),$(AB_CD) $(SHIPPED_LOCALES)),\
$(foreach buildid,$(shell echo $(marline) |cut -d : -f 1),\
mkdir -p $(PREVIOUS_MAR_DIR)/$(buildid) ; \
$(DOWNLOAD_MAR_CMD) ; \
echo "$(MAR_FILE_DEST),$(DIST)/$(COMPLETE_MAR),$(DIST)/$(PKG_UPDATE_PATH)$(PKG_UPDATE_BASENAME).partial.from-$(buildid).mar,$(FORCE_UPDATE)" >> $(PATCH_FILE) ;))))
PATH="$(realpath $(LIBXUL_DIST)/host/bin):$(PATH)" $(PYTHON) $(topsrcdir)/tools/update-packaging/make_incremental_updates.py -f $(PATCH_FILE)
endif
endif
ifdef SYMBOL_SERVER_HOST
@$(MAKE) uploadsymbols
endif
ifdef UPLOAD_CMD
$(MAKE) upload
endif
installer:
@$(MAKE) -C im/installer installer
SHIPPED_LOCALES_FILE = $(topsrcdir)/im/locales/shipped-locales
SHIPPED_LOCALES := $(shell if test -f $(SHIPPED_LOCALES_FILE); then cat $(SHIPPED_LOCALES_FILE); fi)
package:
@$(MAKE) -C im/installer
install::
@$(MAKE) -C im/installer install
upload:
ifdef UPLOAD_CMD
$(PRE_UPLOAD_CMD)
$(UPLOAD_CMD)
$(POST_UPLOAD_CMD)
endif
ib::
@$(MAKE) -C chat export libs
@$(MAKE) -C im libs
endif # COMM_BUILD