mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-14 15:37:55 +00:00
229 lines
7.9 KiB
Makefile
229 lines
7.9 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/.
|
|
|
|
DEPTH = ../../..
|
|
topsrcdir = @top_srcdir@
|
|
srcdir = @srcdir@
|
|
VPATH = @srcdir@
|
|
|
|
include $(DEPTH)/config/autoconf.mk
|
|
|
|
# overwrite mobile-l10n.js with a matchOS=true one for multi-locale builds
|
|
ifeq ($(AB_CD),multi)
|
|
PREF_JS_EXPORTS = $(srcdir)/mobile-l10n.js
|
|
endif
|
|
|
|
include $(topsrcdir)/config/rules.mk
|
|
|
|
MOZ_PKG_REMOVALS = $(srcdir)/removed-files.in
|
|
|
|
MOZ_PKG_MANIFEST_P = $(srcdir)/package-manifest.in
|
|
|
|
MOZ_NONLOCALIZED_PKG_LIST = \
|
|
xpcom \
|
|
browser \
|
|
mobile \
|
|
$(NULL)
|
|
|
|
MOZ_LOCALIZED_PKG_LIST = $(AB_CD) multilocale
|
|
|
|
DEFINES += \
|
|
-DAB_CD=$(AB_CD) \
|
|
-DMOZ_APP_NAME=$(MOZ_APP_NAME) \
|
|
-DPREF_DIR=$(PREF_DIR) \
|
|
$(NULL)
|
|
|
|
ifeq ($(MOZ_CHROME_FILE_FORMAT),jar)
|
|
JAREXT=.jar
|
|
else
|
|
JAREXT=
|
|
endif
|
|
DEFINES += -DJAREXT=$(JAREXT)
|
|
|
|
include $(topsrcdir)/ipc/app/defs.mk
|
|
DEFINES += -DMOZ_CHILD_PROCESS_NAME=$(MOZ_CHILD_PROCESS_NAME)
|
|
|
|
ifdef MOZ_PKG_MANIFEST_P
|
|
MOZ_PKG_MANIFEST = package-manifest
|
|
endif
|
|
|
|
MOZ_POST_STAGING_CMD = find chrome -type f -name *.properties -exec sed -i '/^\#/d' {} \;
|
|
|
|
include $(topsrcdir)/toolkit/mozapps/installer/packager.mk
|
|
|
|
ifeq (bundle, $(MOZ_FS_LAYOUT))
|
|
BINPATH = $(_BINPATH)
|
|
DEFINES += -DAPPNAME=$(_APPNAME)
|
|
else
|
|
# Every other platform just winds up in dist/bin
|
|
BINPATH = bin
|
|
endif
|
|
DEFINES += -DBINPATH=$(BINPATH)
|
|
|
|
ifdef MOZ_PKG_MANIFEST_P
|
|
$(MOZ_PKG_MANIFEST): $(MOZ_PKG_MANIFEST_P) FORCE
|
|
$(PYTHON) $(topsrcdir)/config/Preprocessor.py $(DEFINES) $(ACDEFINES) $< > $@
|
|
ifdef MOZ_CHROME_MULTILOCALE
|
|
printf "\n[multilocale]\n" >> $@
|
|
for LOCALE in en-US $(MOZ_CHROME_MULTILOCALE) ;\
|
|
do \
|
|
printf "$(BINPATH)/chrome/$$LOCALE$(JAREXT)\n" >> $@; \
|
|
printf "$(BINPATH)/chrome/$$LOCALE.manifest\n" >> $@; \
|
|
done
|
|
endif
|
|
|
|
GARBAGE += $(MOZ_PKG_MANIFEST)
|
|
endif
|
|
|
|
ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
|
|
PACKAGE_XULRUNNER =
|
|
UNPACKAGE =
|
|
else
|
|
PACKAGE_XULRUNNER = package-xulrunner
|
|
UNPACKAGE = $(LIBXUL_DIST)/xulrunner*$(PKG_SUFFIX)
|
|
endif
|
|
|
|
ifdef LIBXUL_SDK
|
|
MOZ_GRE_PKG_DIR=$(MOZ_PKG_DIR)/xulrunner
|
|
else
|
|
MOZ_GRE_PKG_DIR=$(MOZ_PKG_DIR)
|
|
endif
|
|
|
|
package-xulrunner:
|
|
ifdef LIBXUL_SDK
|
|
ifndef SYSTEM_LIBXUL
|
|
@echo "Packaging xulrunner..."
|
|
@rm -rf $(LIBXUL_DIST)/xulrunner*
|
|
@$(MAKE) -C $(LIBXUL_DIST)/.. package || echo "Perhaps you're trying to package a prebuilt SDK. See 'https://wiki.mozilla.org/Mobile/Build/Fennec#Build' for more information."
|
|
@cd $(DIST)/$(MOZ_PKG_DIR); $(UNMAKE_PACKAGE)
|
|
@echo "Removing unpackaged files... (the ones xulrunner/installer keeps)"
|
|
@cd $(DIST)/$(MOZ_PKG_DIR)/xulrunner; rm -rf $(NO_PKG_FILES)
|
|
else
|
|
@echo "Using system xulrunner..."
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(OS_TARGET),Linux)
|
|
GRE_MILESTONE = $(shell $(PYTHON) $(topsrcdir)/config/printconfigsetting.py $(LIBXUL_DIST)/bin/platform.ini Build Milestone)
|
|
GRE_BUILDID = $(shell $(PYTHON) $(topsrcdir)/config/printconfigsetting.py $(LIBXUL_DIST)/bin/platform.ini Build BuildID)
|
|
ABS_OBJDIR=$(call core_abspath,$(DEPTH))
|
|
ABS_TOPSRCDIR=$(call core_abspath,$(topsrcdir))
|
|
BASE64_ICON = dist/branding/fennec_maemo_icon26.txt
|
|
MOZ_DEB_TIMESTAMP = "$(shell date +"%a, %d %b %Y %T %z" )"
|
|
|
|
DEB_PKG_VERSION = $(shell echo $(MOZ_APP_VERSION) | $(PERL) -pe 's/pre/~$(GRE_BUILDID)/; s/^([0-9.]+)([a-z][0-9]+)/$$1~$$2/')
|
|
|
|
DEB_BUILD_ARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH)
|
|
# package name should match mobile/installer/debian/changelog.in
|
|
DEB_PKG_NAME = $(MOZ_PKG_APPNAME)_$(DEB_PKG_VERSION)_$(DEB_BUILD_ARCH).deb
|
|
|
|
DEFINES += \
|
|
-DGRE_MILESTONE=$(GRE_MILESTONE) \
|
|
-DGRE_BUILDID=$(GRE_BUILDID) \
|
|
-Dinstalldir=$(installdir) \
|
|
-DMOZ_APP_DISPLAYNAME="$(MOZ_APP_DISPLAYNAME)" \
|
|
-DMOZ_APP_VERSION=$(MOZ_APP_VERSION) \
|
|
-DABS_OBJDIR=$(ABS_OBJDIR) \
|
|
-DBASE64_ICON=$(BASE64_ICON) \
|
|
-DMOZ_DEB_TIMESTAMP=$(MOZ_DEB_TIMESTAMP) \
|
|
-DDEB_PKG_VERSION=$(DEB_PKG_VERSION) \
|
|
$(NULL)
|
|
|
|
DEBDESTDIR=debian/$(MOZ_APP_NAME)
|
|
|
|
PP_DEB_FILES = \
|
|
debian/control \
|
|
debian/changelog \
|
|
debian/$(MOZ_APP_NAME).desktop \
|
|
debian/$(MOZ_APP_NAME).links \
|
|
debian/$(MOZ_APP_NAME).service \
|
|
debian/compat \
|
|
debian/files \
|
|
debian/menu \
|
|
debian/fennec.postinst \
|
|
$(NULL)
|
|
|
|
ifeq ($(MOZ_PLATFORM_MAEMO),6)
|
|
PP_DEB_FILES += \
|
|
debian/fennec.aegis \
|
|
debian/backup \
|
|
debian/restore \
|
|
debian/fennec.conf \
|
|
debian/fennec-cud.sh \
|
|
debian/fennec-rfs.sh \
|
|
debian/fennec.policy \
|
|
$(NULL)
|
|
else
|
|
PP_DEB_FILES += \
|
|
debian/fennec.preinst \
|
|
debian/fennec.prerm \
|
|
$(NULL)
|
|
endif
|
|
|
|
$(PP_DEB_FILES):
|
|
@$(EXIT_ON_ERROR) \
|
|
for f in $(PP_DEB_FILES); do \
|
|
src=$(srcdir)/debian/`basename $$f`.in; \
|
|
echo $$src ">" $$f ;\
|
|
$(RM) -f $$f; \
|
|
mkdir -p debian; \
|
|
$(PYTHON) $(topsrcdir)/config/Preprocessor.py \
|
|
$(AUTOMATION_PPARGS) $(DEFINES) $(ACDEFINES) $$src > $$f; \
|
|
done
|
|
|
|
deb: $(PP_DEB_FILES) $(DIST)/branding/$(MOZ_APP_NAME)_scalable.png \
|
|
$(DIST)/branding/$(MOZ_APP_NAME)_26x26.png \
|
|
$(DIST)/branding/$(MOZ_APP_NAME)_40x40.png
|
|
rm -rf $(DEBDESTDIR)/$(installdir)/*
|
|
$(NSINSTALL) -D $(DEBDESTDIR)/$(installdir)
|
|
cp -pRL $(DIST)/$(MOZ_APP_NAME)/* $(DEBDESTDIR)/$(installdir)
|
|
ifeq ($(MOZ_PLATFORM_MAEMO),6)
|
|
$(NSINSTALL) debian/$(MOZ_APP_NAME).desktop $(DEBDESTDIR)/usr/share/applications/
|
|
$(NSINSTALL) -D $(DEBDESTDIR)/usr/share/dbus-1/services/
|
|
cp debian/$(MOZ_APP_NAME).service $(DEBDESTDIR)/usr/share/dbus-1/services/$(MOZ_APP_NAME).service
|
|
$(NSINSTALL) -D $(DEBDESTDIR)/usr/share/themes/blanco/meegotouch/icons/
|
|
cp $(DIST)/branding/$(MOZ_APP_NAME)_scalable.png $(DEBDESTDIR)/usr/share/themes/blanco/meegotouch/icons/icon-l-$(MOZ_APP_NAME).png
|
|
$(NSINSTALL) -D $(DEBDESTDIR)/usr/share/backup-framework/applications
|
|
$(NSINSTALL) -D $(DEBDESTDIR)/usr/share/$(MOZ_APP_NAME)
|
|
$(NSINSTALL) -D $(DEBDESTDIR)/etc/osso-cud-scripts
|
|
$(NSINSTALL) -D $(DEBDESTDIR)/etc/osso-rfs-scripts
|
|
$(NSINSTALL) -m 755 debian/backup $(DEBDESTDIR)/$(installdir)/share/$(MOZ_APP_NAME)/
|
|
$(NSINSTALL) -m 755 debian/restore $(DEBDESTDIR)/$(installdir)/share/$(MOZ_APP_NAME)/
|
|
cp debian/$(MOZ_APP_NAME).conf $(DEBDESTDIR)/usr/share/backup-framework/applications/$(MOZ_APP_NAME).conf
|
|
cp debian/$(MOZ_APP_NAME)-cud.sh $(DEBDESTDIR)/etc/osso-cud-scripts/$(MOZ_APP_NAME)-cud.sh
|
|
cp debian/$(MOZ_APP_NAME)-rfs.sh $(DEBDESTDIR)/etc/osso-rfs-scripts/$(MOZ_APP_NAME)-rfs.sh
|
|
$(NSINSTALL) -D $(DEBDESTDIR)/usr/share/policy/etc/syspart.conf.d
|
|
cp debian/$(MOZ_APP_NAME).policy $(DEBDESTDIR)/usr/share/policy/etc/syspart.conf.d/$(MOZ_APP_NAME).conf
|
|
else
|
|
$(NSINSTALL) debian/$(MOZ_APP_NAME).desktop $(DEBDESTDIR)/usr/share/applications/hildon/
|
|
$(NSINSTALL) -D $(DEBDESTDIR)/usr/share/dbus-1/services/
|
|
cp debian/$(MOZ_APP_NAME).service $(DEBDESTDIR)/usr/share/dbus-1/services/org.mozilla.$(MOZ_APP_NAME).service
|
|
$(NSINSTALL) -D $(DEBDESTDIR)/usr/share/icons/hicolor/scalable/hildon/
|
|
cp $(DIST)/branding/$(MOZ_APP_NAME)_scalable.png $(DEBDESTDIR)/usr/share/icons/hicolor/scalable/hildon/$(MOZ_APP_NAME).png
|
|
$(NSINSTALL) -D $(DEBDESTDIR)/usr/share/icons/hicolor/26x26/hildon/
|
|
cp $(DIST)/branding/$(MOZ_APP_NAME)_26x26.png $(DEBDESTDIR)/usr/share/icons/hicolor/26x26/hildon/$(MOZ_APP_NAME).png
|
|
$(NSINSTALL) -D $(DEBDESTDIR)/usr/share/icons/hicolor/40x40/hildon/
|
|
cp $(DIST)/branding/$(MOZ_APP_NAME)_40x40.png $(DEBDESTDIR)/usr/share/icons/hicolor/40x40/hildon/$(MOZ_APP_NAME).png
|
|
endif
|
|
fakeroot dh_link; fakeroot dh_fixperms; fakeroot dh_installdeb; fakeroot dh_shlibdeps; fakeroot dh_gencontrol; fakeroot dh_md5sums; fakeroot dh_builddeb;
|
|
|
|
# a defined CONTENTMANAGER implicitly means MOZ_PLATFORM_MAEMO is equals 6
|
|
# in case you use CONTENTMANGER you need to sign your package to gain tracker access.
|
|
ifeq ($(MOZ_PLATFORM_MAEMO),6)
|
|
if test -e "/usr/bin/aegis-deb-add"; then \
|
|
fakeroot aegis-deb-add -control $(DEBDESTDIR)/DEBIAN/control .. debian/fennec.aegis=_aegis; \
|
|
else \
|
|
echo aegis-builder not found, security signing failed!; \
|
|
fi
|
|
endif
|
|
|
|
echo $(DEB_PKG_NAME) > $(DIST)/deb_name.txt
|
|
|
|
installer: deb
|
|
@echo Installer DEB created!
|
|
|
|
# relative to $(DIST)
|
|
UPLOAD_EXTRA_FILES += ../mobile/$(DEB_PKG_NAME) deb_name.txt
|
|
endif
|