2008-04-18 06:41:49 -07:00
# ***** 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>
2009-09-11 17:34:26 -07:00
# Ben Combee <bcombee@mozilla.com>
2008-04-18 06:41:49 -07:00
#
# 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@
i n c l u d e $( DEPTH ) / c o n f i g / a u t o c o n f . m k
2010-10-19 20:33:01 -07:00
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" ) "
2010-10-19 15:28:10 -07:00
2010-10-19 20:33:01 -07:00
DEB_PKG_VERSION = $( shell echo $( MOZ_APP_VERSION) | $( PERL) -pe 's/pre/~$(GRE_BUILDID)/; s/^([0-9.]+)([a-z][0-9]+)/$$1~$$2/' )
2008-07-25 16:07:50 -07:00
2010-10-19 20:33:01 -07:00
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
2010-10-19 15:28:10 -07:00
DEFINES += \
2010-10-19 20:33:01 -07:00
-DGRE_MILESTONE= $( GRE_MILESTONE) \
-DGRE_BUILDID= $( GRE_BUILDID) \
-Dinstalldir= $( installdir) \
2010-10-19 15:28:10 -07:00
-DMOZ_APP_NAME= $( MOZ_APP_NAME) \
2010-10-19 20:33:01 -07:00
-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) \
2008-04-18 06:41:49 -07:00
$( NULL)
2010-10-19 20:33:01 -07:00
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* \
2010-11-12 18:51:32 -08:00
dictionaries* \
2010-10-19 20:33:01 -07:00
$( NULL)
2010-10-19 15:28:10 -07:00
2010-10-19 20:33:01 -07:00
i f n d e f S Y S T E M _ L I B X U L
NO_PKG_FILES += xulrunner
e n d i f
2010-10-19 15:28:10 -07:00
2010-10-19 20:33:01 -07:00
# overwrite mobile-l10n.js with a matchOS=true one for multi-locale builds
i f e q ( $( AB_CD ) , m u l t i )
PREF_JS_EXPORTS = $( srcdir) /mobile-l10n.js
2010-10-19 15:28:10 -07:00
e n d i f
2008-04-18 06:41:49 -07:00
2010-10-19 20:33:01 -07:00
i n c l u d e $( topsrcdir ) / c o n f i g / r u l e s . m k
2008-04-18 06:41:49 -07:00
i f n e q ( , $( filter mac cocoa ,$ ( MOZ_WIDGET_TOOLKIT ) ) )
_BINPATH = /$( _APPNAME) /Contents/Resources
e n d i f
2009-09-02 18:53:12 -07:00
i f n e q ( , $( filter mac cocoa ,$ ( MOZ_WIDGET_TOOLKIT ) ) )
2010-02-10 11:58:37 -08:00
PACKAGE_XULRUNNER =
UNPACKAGE =
2009-09-02 18:53:12 -07:00
e l s e
2009-04-08 12:45:14 -07:00
PACKAGE_XULRUNNER = package-xulrunner
2009-08-13 10:45:53 -07:00
UNPACKAGE = $( LIBXUL_DIST) /xulrunner*$( PKG_SUFFIX)
2009-09-02 18:53:12 -07:00
e n d i f
2009-04-08 12:45:14 -07:00
2010-10-31 21:52:18 -07:00
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' { } \;
2008-04-18 06:41:49 -07:00
i n c l u d e $( topsrcdir ) / t o o l k i t / m o z a p p s / i n s t a l l e r / p a c k a g e r . m k
2008-05-01 11:24:04 -07:00
2010-10-19 20:33:01 -07:00
DEBDESTDIR = debian/$( MOZ_APP_NAME)
2010-03-06 18:31:54 -08:00
i f d e f L I B X U L _ S D K
MOZ_GRE_PKG_DIR = $( MOZ_PKG_DIR) /xulrunner
e l s e
MOZ_GRE_PKG_DIR = $( MOZ_PKG_DIR)
e n d i f
2009-04-08 12:45:14 -07:00
package-xulrunner :
2010-01-29 08:15:37 -08:00
i f d e f L I B X U L _ S D K
2009-04-08 12:45:14 -07:00
i f n d e f S Y S T E M _ L I B X U L
@echo "Packaging xulrunner..."
2009-08-13 10:45:53 -07:00
@rm -rf $( LIBXUL_DIST) /xulrunner*
2009-04-08 12:45:14 -07:00
@$( 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."
2009-08-13 10:45:53 -07:00
@cd $( DIST) /$( MOZ_PKG_DIR) ; $( UNMAKE_PACKAGE)
2010-02-10 11:58:37 -08:00
@echo "Removing unpackaged files... (the ones xulrunner/installer keeps)"
@cd $( DIST) /$( MOZ_PKG_DIR) /xulrunner; rm -rf $( NO_PKG_FILES)
2009-04-08 12:45:14 -07:00
e l s e
@echo "Using system xulrunner..."
e n d i f
2010-01-29 08:15:37 -08:00
e n d i f
2009-04-08 12:45:14 -07:00
2008-05-01 11:24:04 -07:00
i f e q ( $( OS_TARGET ) , L i n u x )
2010-01-06 10:37:59 -08:00
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
2010-02-10 11:58:37 -08:00
$(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
2010-01-06 10:37:59 -08:00
deb : $( PP_DEB_FILES ) $( DIST ) /branding /$( MOZ_APP_NAME ) _scalable .png \
$( DIST) /branding/$( MOZ_APP_NAME) _26x26.png \
2010-02-10 11:58:37 -08:00
$( DIST) /branding/$( MOZ_APP_NAME) _40x40.png \
$( MOZILLA_VERSION) .$( MOZ_APP_NAME) .conf
2009-10-27 12:07:11 -07:00
rm -rf $( DEBDESTDIR) /$( installdir) /*
$( NSINSTALL) -D $( DEBDESTDIR) /$( installdir)
2009-12-10 11:39:09 -08:00
cp -pRL $( DIST) /$( MOZ_APP_NAME) /* $( DEBDESTDIR) /$( installdir)
2008-05-01 12:54:04 -07:00
$( NSINSTALL) debian/$( MOZ_APP_NAME) .desktop $( DEBDESTDIR) /usr/share/applications/hildon/
2008-05-01 11:24:04 -07:00
$( 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
2008-09-04 07:28:00 -07:00
$( NSINSTALL) -D $( DEBDESTDIR) /usr/share/icons/hicolor/scalable/hildon/
2009-10-27 22:43:32 -07:00
cp $( DIST) /branding/$( MOZ_APP_NAME) _scalable.png $( DEBDESTDIR) /usr/share/icons/hicolor/scalable/hildon/$( MOZ_APP_NAME) .png
2009-09-11 17:34:26 -07:00
$( NSINSTALL) -D $( DEBDESTDIR) /usr/share/icons/hicolor/26x26/hildon/
2009-10-27 22:43:32 -07:00
cp $( DIST) /branding/$( MOZ_APP_NAME) _26x26.png $( DEBDESTDIR) /usr/share/icons/hicolor/26x26/hildon/$( MOZ_APP_NAME) .png
2009-09-11 17:34:26 -07:00
$( NSINSTALL) -D $( DEBDESTDIR) /usr/share/icons/hicolor/40x40/hildon/
2009-10-27 22:43:32 -07:00
cp $( DIST) /branding/$( MOZ_APP_NAME) _40x40.png $( DEBDESTDIR) /usr/share/icons/hicolor/40x40/hildon/$( MOZ_APP_NAME) .png
2010-02-10 11:58:37 -08:00
$( NSINSTALL) -D $( DEBDESTDIR) $( regdir)
$( SYSINSTALL) $( MOZILLA_VERSION) .$( MOZ_APP_NAME) .conf $( DEBDESTDIR) $( regdir) /
2008-08-28 08:50:32 -07:00
dh_link; fakeroot dh_fixperms; fakeroot dh_installdeb; dh_shlibdeps; fakeroot dh_gencontrol; fakeroot dh_md5sums; dh_builddeb
2010-02-23 12:59:16 -08:00
echo $( DEB_PKG_NAME) > $( DIST) /deb_name.txt
2009-04-07 20:29:11 -07:00
installer : deb
@echo Installer DEB created!
2010-10-08 10:54:00 -07:00
# relative to $(DIST)
UPLOAD_EXTRA_FILES += ../mobile/$( DEB_PKG_NAME)
2008-05-01 11:24:04 -07:00
e n d i f
2009-12-11 17:03:19 -08:00
i f e q ( $( OS_ARCH ) , W I N C E )
2009-04-07 20:29:11 -07:00
VSINSTALLDIR ?= $( error VSINSTALLDIR not set, must be set to the Visual Studio install directory)
2009-04-08 12:45:14 -07:00
UNPACKAGE = $( LIBXUL_DIST) /xulrunner*$( PKG_SUFFIX)
2009-04-09 18:42:28 -07:00
2010-02-09 09:46:29 -08:00
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
2009-04-07 20:29:11 -07:00
$( NSINSTALL) -D $( DIST) /$( PKG_PATH)
2010-02-09 09:46:29 -08:00
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 "
2009-12-05 16:22:26 -08:00
$( NSINSTALL) $( DIST) /$( MOZ_PKG_DIR) /setup.ini $( DIST)
2010-03-06 18:31:54 -08:00
i f d e f L I B X U L _ S D K
mv $( DIST) /$( MOZ_GRE_PKG_DIR) /uninstall.exe $( DIST) /$( MOZ_PKG_DIR) /
e n d i f
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
2009-04-07 20:29:11 -07:00
e n d i f