mobile/installer/Makefile.in
author Alex Pakhotkin <alexp@mozilla.com>
Tue, 17 Nov 2009 16:35:07 -0800
changeset 65814 0b2fce36e1ef1ff0840adf326599ac8baf7381a4
parent 65813 8af741558ebb992dcdd0b9cdbf554f94f018247d
child 65901 060c00af8353c26372b4dd7fe88c3abfd6b2508a
permissions -rw-r--r--
Bug 529420 - restore zip-file creation, r=crowder

# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is Mozilla.
#
# The Initial Developer of the Original Code is
# the Mozilla Foundation <http://www.mozilla.org/>.
# Portions created by the Initial Developer are Copyright (C) 2007
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#   Mark Finkle <mfinkle@mozilla.com>
#   Ben Combee <bcombee@mozilla.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****

DEPTH     = ../..
topsrcdir = @top_srcdir@
srcdir    = @srcdir@
VPATH     = @srcdir@

include $(DEPTH)/config/autoconf.mk

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=`cd $(DEPTH); pwd`
BASE64_ICON = dist/branding/fennec_maemo_icon26.txt

DEFINES += \
	-DGRE_MILESTONE=$(GRE_MILESTONE) \
	-DGRE_BUILDID=$(GRE_BUILDID) \
	-Dinstalldir=$(installdir) \
	-DMOZ_APP_NAME=$(MOZ_APP_NAME) \
	-DMOZ_APP_DISPLAYNAME=$(MOZ_APP_DISPLAYNAME) \
	-DMOZ_APP_VERSION=$(MOZ_APP_VERSION) \
	-DABS_OBJDIR=$(ABS_OBJDIR) \
	-DBASE64_ICON=$(BASE64_ICON) \
	$(NULL)

NO_PKG_FILES = \
	$(MOZ_APP_NAME)-config \
	$(MOZ_APP_NAME)-bin.elf \
	regchrome* \
	regxpcom* \
	xpcshell* \
	xpidl* \
	xpt_dump* \
	xpt_link* \
	bloaturls.txt \
	run-mozilla.sh \
	nsinstall \
	$(NULL)

ifndef SYSTEM_LIBXUL
NO_PKG_FILES += xulrunner
endif

include $(topsrcdir)/config/rules.mk

ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
_BINPATH = /$(_APPNAME)/Contents/Resources
endif

ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
PACKAGE_XULRUNNER = 
UNPACKAGE = 
else
PACKAGE_XULRUNNER = package-xulrunner
UNPACKAGE = $(LIBXUL_DIST)/xulrunner*$(PKG_SUFFIX)
endif

include $(topsrcdir)/toolkit/mozapps/installer/packager.mk

DEBDESTDIR=debian/$(MOZ_APP_NAME)

package-xulrunner:
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)
else
	@echo "Using system xulrunner..."
endif

ifeq ($(OS_TARGET),Linux)
debian/control: $(srcdir)/debian/control.in $(LIBXUL_DIST)/bin/platform.ini
	mkdir -p debian
	$(PYTHON) $(topsrcdir)/config/Preprocessor.py \
        $(AUTOMATION_PPARGS) $(DEFINES) $(ACDEFINES) $< > $@
	
debian/$(MOZ_APP_NAME).desktop: $(srcdir)/debian/$(MOZ_APP_NAME).desktop.in
	mkdir -p debian
	$(PYTHON) $(topsrcdir)/config/Preprocessor.py \
        $(AUTOMATION_PPARGS) $(DEFINES) $(ACDEFINES) $< > $@

debian/$(MOZ_APP_NAME).links: $(srcdir)/debian/$(MOZ_APP_NAME).links.in
	mkdir -p debian
	$(PYTHON) $(topsrcdir)/config/Preprocessor.py \
        $(AUTOMATION_PPARGS) $(DEFINES) $(ACDEFINES) $< > $@

debian/$(MOZ_APP_NAME).service: $(srcdir)/debian/$(MOZ_APP_NAME).service.in
	mkdir -p debian
	$(PYTHON) $(topsrcdir)/config/Preprocessor.py \
        $(AUTOMATION_PPARGS) $(DEFINES) $(ACDEFINES) $< > $@

deb: debian/control debian/$(MOZ_APP_NAME).service debian/$(MOZ_APP_NAME).links debian/$(MOZ_APP_NAME).desktop \
	$(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)
	bunzip2 -c $(DEPTH)/dist/$(PKG_BASENAME)$(PKG_SUFFIX) | $(UNPACK_TAR) -C $(DEBDESTDIR)/$(installdir)
	rm -rf $(DEBDESTDIR)/$(installdir)/$(MOZ_APP_NAME)/xulrunner	
	$(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
	dh_link; fakeroot dh_fixperms; fakeroot dh_installdeb; dh_shlibdeps; fakeroot dh_gencontrol; fakeroot dh_md5sums; dh_builddeb

installer: deb
	@echo Installer DEB created!

endif

ifdef MOZ_FASTSTART
CABARGS += -faststart
endif

ifeq ($(OS_TARGET),WINCE)

VSINSTALLDIR ?= $(error VSINSTALLDIR not set, must be set to the Visual Studio install directory)

UNPACKAGE = $(LIBXUL_DIST)/xulrunner*$(PKG_SUFFIX)

installer: stage-package package-xulrunner
	$(NSINSTALL) -D $(DIST)/$(PKG_PATH)
	$(NSINSTALL) $(srcdir)/../locales/$(AB_CD)/installer/setup.ini $(DIST)
	cd $(DIST) && mv $(MOZ_PKG_DIR)/xulrunner/uninstall.exe $(MOZ_PKG_DIR)/ && 7z a $(PKG_PATH)$(PKG_BASENAME).7z $(MOZ_PKG_DIR) setup.ini -x!$(MOZ_PKG_DIR)/xulrunner/xulrunner-stub-installer.sfx && cat $(MOZ_PKG_DIR)/xulrunner/xulrunner-stub-installer.sfx $(PKG_PATH)$(PKG_BASENAME).7z>$(PKG_PATH)$(PKG_BASENAME).exe && rm $(PKG_PATH)$(PKG_BASENAME).7z && rm setup.ini && $(ZIP) -r9D $(PACKAGE) $(MOZ_PKG_DIR)

endif

DEB_BUILD_ARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH)
# package name comes from mobile/installer/debian/changelog.in
DEB_PKG_NAME  = $(MOZ_PKG_APPNAME)_$(MOZ_APP_VERSION)_$(DEB_BUILD_ARCH).deb
# relative to $(DIST)
UPLOAD_EXTRA_FILES += ../mobile/$(DEB_PKG_NAME)