зеркало из https://github.com/mozilla/pjs.git
247 строки
8.9 KiB
Makefile
247 строки
8.9 KiB
Makefile
# ***** 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`
|
|
ABS_TOPSRCDIR=$(shell cd $(topsrcdir); pwd)
|
|
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_NAME=$(MOZ_APP_NAME) \
|
|
-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)
|
|
|
|
NO_PKG_FILES = \
|
|
$(MOZ_APP_NAME)-config \
|
|
$(MOZ_APP_NAME)-bin.elf \
|
|
xulrunner-config \
|
|
$(MOZ_APP_NAME)-bin$(BIN_SUFFIX) \
|
|
nspr-config \
|
|
regchrome* \
|
|
regxpcom* \
|
|
xpcshell* \
|
|
xpidl* \
|
|
xpt_dump* \
|
|
xpt_link* \
|
|
bloaturls.txt \
|
|
nsinstall \
|
|
*Test* \
|
|
*test* \
|
|
BadPlugin* \
|
|
GoodPlugin* \
|
|
ReadNTLM* \
|
|
ShowSSEConfig* \
|
|
SimpleTypeLib* \
|
|
WriteArgument* \
|
|
grabpage* \
|
|
js.exe \
|
|
js \
|
|
nsIFileEnumerator* \
|
|
proxy-create-threadsafety* \
|
|
rdfcat* \
|
|
rdfpoll* \
|
|
$(NULL)
|
|
|
|
ifndef SYSTEM_LIBXUL
|
|
NO_PKG_FILES += xulrunner
|
|
endif
|
|
|
|
# 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
|
|
|
|
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
|
|
|
|
libs::
|
|
find $(DIST)/bin/chrome -type f -name *.dtd -exec sed -i '/<!--.*-->/d' {} \;
|
|
find $(DIST)/bin/chrome -type f -name *.dtd -exec sed -i '/<!--/,/-->/d' {} \;
|
|
find $(DIST)/bin/chrome -type f -name *.properties -exec sed -i '/^#/d' {} \;
|
|
|
|
include $(topsrcdir)/toolkit/mozapps/installer/packager.mk
|
|
|
|
DEBDESTDIR=debian/$(MOZ_APP_NAME)
|
|
|
|
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)
|
|
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.preinst \
|
|
debian/fennec.prerm \
|
|
debian/fennec.postinst \
|
|
$(NULL)
|
|
|
|
|
|
$(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
|
|
|
|
$(MOZILLA_VERSION).$(MOZ_APP_NAME).conf: $(topsrcdir)/config/milestone.txt Makefile
|
|
printf "[%s]\nGRE_PATH=%s\nxulrunner=true\nabi=%s" \
|
|
$(MOZILLA_VERSION) $(installdir)/xulrunner $(TARGET_XPCOM_ABI)> $@
|
|
|
|
# to register xulrunner per-user, override this with $HOME/.gre.d
|
|
regdir = /etc/gre.d
|
|
|
|
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 \
|
|
$(MOZILLA_VERSION).$(MOZ_APP_NAME).conf
|
|
rm -rf $(DEBDESTDIR)/$(installdir)/*
|
|
$(NSINSTALL) -D $(DEBDESTDIR)/$(installdir)
|
|
cp -pRL $(DIST)/$(MOZ_APP_NAME)/* $(DEBDESTDIR)/$(installdir)
|
|
$(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
|
|
$(NSINSTALL) -D $(DEBDESTDIR)$(regdir)
|
|
$(SYSINSTALL) $(MOZILLA_VERSION).$(MOZ_APP_NAME).conf $(DEBDESTDIR)$(regdir)/
|
|
dh_link; fakeroot dh_fixperms; fakeroot dh_installdeb; dh_shlibdeps; fakeroot dh_gencontrol; fakeroot dh_md5sums; dh_builddeb
|
|
echo $(DEB_PKG_NAME) > $(DIST)/deb_name.txt
|
|
|
|
installer: deb
|
|
@echo Installer DEB created!
|
|
|
|
# relative to $(DIST)
|
|
UPLOAD_EXTRA_FILES += ../mobile/$(DEB_PKG_NAME)
|
|
endif
|
|
|
|
ifeq ($(OS_ARCH),WINCE)
|
|
|
|
VSINSTALLDIR ?= $(error VSINSTALLDIR not set, must be set to the Visual Studio install directory)
|
|
|
|
UNPACKAGE = $(LIBXUL_DIST)/xulrunner*$(PKG_SUFFIX)
|
|
|
|
cab: stage-package package-xulrunner
|
|
cd $(DIST) && $(PYTHON) $(ABS_TOPSRCDIR)/build/package/wince/make_wince_cab.py $(CABARGS) "$(VSINSTALLDIR)/SmartDevices/SDK/SDKTools/cabwiz.exe" "$(MOZ_PKG_DIR)" "$(MOZ_APP_DISPLAYNAME)" "$(PKG_PATH)$(PKG_BASENAME).cab" && echo "Installer $(PKG_PATH)$(PKG_BASENAME).cab created!"
|
|
|
|
installer: 7zip-installer zip
|
|
|
|
zip:
|
|
cd $(DIST) && $(ZIP) -r9D $(PACKAGE) $(MOZ_PKG_DIR)
|
|
|
|
7zip-installer: stage-package package-xulrunner
|
|
$(NSINSTALL) -D $(DIST)/$(PKG_PATH)
|
|
cd $(DIST) && $(PYTHON) $(ABS_TOPSRCDIR)/build/package/wince/make_wince_cab.py -setupdll -s "$(VSINSTALLDIR)/SmartDevices/SDK/SDKTools/cabwiz.exe" "$(MOZ_PKG_DIR)" "$(MOZ_APP_DISPLAYNAME)" "$(MOZ_PKG_DIR)/setup.cab"
|
|
$(NSINSTALL) $(DIST)/$(MOZ_PKG_DIR)/setup.ini $(DIST)
|
|
ifdef LIBXUL_SDK
|
|
mv $(DIST)/$(MOZ_GRE_PKG_DIR)/uninstall.exe $(DIST)/$(MOZ_PKG_DIR)/
|
|
endif
|
|
cd $(DIST) && \
|
|
7z a $(PKG_PATH)$(PKG_BASENAME).7z $(MOZ_PKG_DIR) setup.ini \
|
|
-x!$(MOZ_GRE_PKG_DIR)/xulrunner-stub-installer.sfx \
|
|
-x!$(MOZ_PKG_DIR)/setup.ini && \
|
|
cat $(MOZ_GRE_PKG_DIR)/xulrunner-stub-installer.sfx \
|
|
$(PKG_PATH)$(PKG_BASENAME).7z>$(PKG_PATH)$(PKG_BASENAME).exe && \
|
|
rm $(PKG_PATH)$(PKG_BASENAME).7z && \
|
|
rm setup.ini
|
|
|
|
endif
|