mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-25 03:05:34 +00:00
29d969922a
Shipping smaller installers is a win, and we already do this on Fennec. (The only files that get modified currently are .properties files, which have their comment lines stripped.) We don't minify JS files at the moment due to needing to have a larger conversation around debuggability of JS, and because the setup for minifying needs more love for non-Android platforms. Just doing this, however, wins about 400k of on-disk space and ~100k installer size, so it seems like a reasonable first step.
191 lines
4.8 KiB
Makefile
191 lines
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/.
|
|
|
|
STANDALONE_MAKEFILE := 1
|
|
DIST_SUBDIR := browser
|
|
|
|
include $(topsrcdir)/config/rules.mk
|
|
|
|
MOZ_PKG_REMOVALS = $(srcdir)/removed-files.in
|
|
|
|
MOZ_PKG_MANIFEST = $(srcdir)/package-manifest.in
|
|
MOZ_PKG_DUPEFLAGS = -f $(srcdir)/allowed-dupes.mn
|
|
|
|
DEFINES += -DPKG_LOCALE_MANIFEST=$(topobjdir)/browser/installer/locale-manifest.in
|
|
MOZ_CHROME_LOCALE_ENTRIES=@RESPATH@/browser/chrome/ @RESPATH@/chrome/
|
|
|
|
# Some files have been already bundled with xulrunner
|
|
ifndef MOZ_MULET
|
|
MOZ_PKG_FATAL_WARNINGS = 1
|
|
else
|
|
DEFINES += -DMOZ_MULET
|
|
endif
|
|
|
|
# When packaging an artifact build not all xpt files expected by the
|
|
# packager will be present.
|
|
ifdef MOZ_ARTIFACT_BUILDS
|
|
MOZ_PKG_FATAL_WARNINGS =
|
|
endif
|
|
|
|
DEFINES += -DMOZ_APP_NAME=$(MOZ_APP_NAME) -DPREF_DIR=$(PREF_DIR)
|
|
|
|
ifdef MOZ_DEBUG
|
|
DEFINES += -DMOZ_DEBUG=1
|
|
endif
|
|
|
|
ifneq (,$(filter gtk%,$(MOZ_WIDGET_TOOLKIT)))
|
|
DEFINES += -DMOZ_GTK=1
|
|
ifeq ($(MOZ_WIDGET_TOOLKIT),gtk3)
|
|
DEFINES += -DMOZ_GTK3=1
|
|
endif
|
|
endif
|
|
|
|
ifdef MOZ_SYSTEM_NSPR
|
|
DEFINES += -DMOZ_SYSTEM_NSPR=1
|
|
endif
|
|
|
|
ifdef MOZ_SYSTEM_NSS
|
|
DEFINES += -DMOZ_SYSTEM_NSS=1
|
|
endif
|
|
|
|
ifdef NSS_DISABLE_DBM
|
|
DEFINES += -DNSS_DISABLE_DBM=1
|
|
endif
|
|
|
|
ifdef MOZ_ARTIFACT_BUILDS
|
|
DEFINES += -DMOZ_ARTIFACT_BUILDS=1
|
|
endif
|
|
|
|
DEFINES += -DJAREXT=
|
|
|
|
ifdef MOZ_ANGLE_RENDERER
|
|
DEFINES += -DMOZ_ANGLE_RENDERER=$(MOZ_ANGLE_RENDERER)
|
|
ifdef MOZ_D3DCOMPILER_VISTA_DLL
|
|
DEFINES += -DMOZ_D3DCOMPILER_VISTA_DLL=$(MOZ_D3DCOMPILER_VISTA_DLL)
|
|
endif
|
|
endif
|
|
|
|
ifdef MOZ_ENABLE_SKIA_PDF
|
|
DEFINES += -DMOZ_ENABLE_SKIA_PDF=$(MOZ_ENABLE_SKIA_PDF)
|
|
endif
|
|
|
|
DEFINES += -DMOZ_CHILD_PROCESS_NAME=$(MOZ_CHILD_PROCESS_NAME)
|
|
|
|
# Set MSVC dlls version to package, if any.
|
|
ifdef MOZ_NO_DEBUG_RTL
|
|
ifdef WIN32_REDIST_DIR
|
|
ifndef MOZ_ARTIFACT_BUILDS
|
|
DEFINES += -DMOZ_PACKAGE_MSVC_DLLS=1
|
|
DEFINES += -DMSVC_C_RUNTIME_DLL=$(MSVC_C_RUNTIME_DLL)
|
|
DEFINES += -DMSVC_CXX_RUNTIME_DLL=$(MSVC_CXX_RUNTIME_DLL)
|
|
endif
|
|
ifdef WIN_UCRT_REDIST_DIR
|
|
DEFINES += -DMOZ_PACKAGE_WIN_UCRT_DLLS=1
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter WINNT Darwin Android,$(OS_TARGET)))
|
|
DEFINES += -DMOZ_SHARED_MOZGLUE=1
|
|
endif
|
|
|
|
ifdef NECKO_WIFI
|
|
DEFINES += -DNECKO_WIFI
|
|
endif
|
|
|
|
ifdef MAKENSISU
|
|
DEFINES += -DHAVE_MAKENSISU=1
|
|
endif
|
|
|
|
ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
|
|
MOZ_PKG_MAC_DSSTORE=$(topsrcdir)/$(MOZ_BRANDING_DIRECTORY)/dsstore
|
|
MOZ_PKG_MAC_BACKGROUND=$(topsrcdir)/$(MOZ_BRANDING_DIRECTORY)/background.png
|
|
MOZ_PKG_MAC_ICON=$(topsrcdir)/$(MOZ_BRANDING_DIRECTORY)/disk.icns
|
|
MOZ_PKG_MAC_EXTRA=--symlink '/Applications:/ '
|
|
endif
|
|
|
|
# The packager minifies two different types of files: non-JS (mostly property
|
|
# files for l10n), and JS. Setting MOZ_PACKAGER_MINIFY only minifies the
|
|
# former. We don't yet minify JS, due to concerns about debuggability.
|
|
#
|
|
# Also, the JS minification setup really only works correctly on Android:
|
|
# we need extra setup to use the newly-built shell for Linux and Windows,
|
|
# and Mac requires some extra care due to cross-compilation.
|
|
MOZ_PACKAGER_MINIFY=1
|
|
|
|
include $(topsrcdir)/toolkit/mozapps/installer/signing.mk
|
|
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)'
|
|
|
|
ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
|
|
RESPATH = $(_APPNAME)/Contents/Resources
|
|
else
|
|
RESPATH = $(BINPATH)
|
|
endif
|
|
DEFINES += -DRESPATH='$(RESPATH)'
|
|
|
|
LPROJ_ROOT = $(firstword $(subst -, ,$(AB_CD)))
|
|
ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
|
|
ifeq (zh-TW,$(AB_CD))
|
|
LPROJ_ROOT := $(subst -,_,$(AB_CD))
|
|
endif
|
|
endif
|
|
DEFINES += -DLPROJ_ROOT=$(LPROJ_ROOT)
|
|
|
|
ifdef MOZ_SYSTEM_ICU
|
|
DEFINES += -DMOZ_SYSTEM_ICU
|
|
endif
|
|
ifdef CLANG_CXX
|
|
DEFINES += -DCLANG_CXX
|
|
endif
|
|
ifdef CLANG_CL
|
|
DEFINES += -DCLANG_CL
|
|
endif
|
|
|
|
ifdef LLVM_SYMBOLIZER
|
|
DEFINES += -DLLVM_SYMBOLIZER=$(notdir $(LLVM_SYMBOLIZER))
|
|
endif
|
|
ifdef MOZ_CLANG_RT_ASAN_LIB_PATH
|
|
DEFINES += -DMOZ_CLANG_RT_ASAN_LIB=$(notdir $(MOZ_CLANG_RT_ASAN_LIB_PATH))
|
|
endif
|
|
ifdef WIN_DIA_SDK_BIN_DIR
|
|
DEFINES += -DWIN_DIA_SDK_BIN_DIR=1
|
|
endif
|
|
|
|
# Builds using the hybrid FasterMake/RecursiveMake backend will
|
|
# fail to produce a langpack. See bug 1255096.
|
|
libs::
|
|
ifeq (,$(filter FasterMake+RecursiveMake,$(BUILD_BACKENDS)))
|
|
$(MAKE) -C $(DEPTH)/browser/locales langpack
|
|
endif
|
|
|
|
ifeq (WINNT,$(OS_ARCH))
|
|
PKGCOMP_FIND_OPTS =
|
|
else
|
|
PKGCOMP_FIND_OPTS = -L
|
|
endif
|
|
ifeq (Darwin, $(OS_ARCH))
|
|
FINDPATH = $(_APPNAME)/Contents/MacOS
|
|
else
|
|
FINDPATH=bin
|
|
endif
|
|
|
|
package-compare::
|
|
cd $(DIST); find $(PKGCOMP_FIND_OPTS) '$(FINDPATH)' -type f | sort > bin-list.txt
|
|
$(call py_action,preprocessor,$(DEFINES) $(ACDEFINES) $(MOZ_PKG_MANIFEST)) | grep '^$(BINPATH)' | sed -e 's/^\///' | sort > $(DIST)/pack-list.txt
|
|
-diff -u $(DIST)/pack-list.txt $(DIST)/bin-list.txt
|
|
rm -f $(DIST)/pack-list.txt $(DIST)/bin-list.txt
|
|
|
|
ifdef ENABLE_MARIONETTE
|
|
DEFINES += -DENABLE_MARIONETTE=1
|
|
endif
|