diff options
Diffstat (limited to 'toolkit/mozapps/installer/windows/nsis/makensis.mk')
-rwxr-xr-x | toolkit/mozapps/installer/windows/nsis/makensis.mk | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/toolkit/mozapps/installer/windows/nsis/makensis.mk b/toolkit/mozapps/installer/windows/nsis/makensis.mk new file mode 100755 index 0000000000..52eae8c713 --- /dev/null +++ b/toolkit/mozapps/installer/windows/nsis/makensis.mk @@ -0,0 +1,132 @@ +# 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/. + +ifndef CONFIG_DIR +$(error CONFIG_DIR must be set before including makensis.mk) +endif + +ABS_CONFIG_DIR := $(abspath $(CONFIG_DIR)) + +SFX_MODULE ?= $(error SFX_MODULE is not defined) + +ifeq ($(CPU_ARCH), aarch64) +USE_UPX := +else +ifneq (,$(UPX)$(MOZ_AUTOMATION)) +USE_UPX := --use-upx +endif +endif + +TOOLKIT_NSIS_FILES = \ + common.nsh \ + locale.nlf \ + locale-fonts.nsh \ + locale-rtl.nlf \ + locales.nsi \ + overrides.nsh \ + setup.ico \ + $(NULL) + +CUSTOM_NSIS_PLUGINS = \ + AccessControl.dll \ + AppAssocReg.dll \ + ApplicationID.dll \ + BitsUtils.dll \ + CertCheck.dll \ + CityHash.dll \ + ExecInExplorer.dll \ + HttpPostFile.dll \ + InetBgDL.dll \ + InvokeShellVerb.dll \ + liteFirewallW.dll \ + nsJSON.dll \ + ServicesHelper.dll \ + ShellLink.dll \ + UAC.dll \ + WebBrowser.dll \ + $(NULL) + +CUSTOM_UI = \ + nsisui.exe \ + $(NULL) + +$(CONFIG_DIR)/setup.exe:: + $(INSTALL) $(addprefix $(MOZILLA_DIR)/toolkit/mozapps/installer/windows/nsis/,$(TOOLKIT_NSIS_FILES)) $(CONFIG_DIR) + $(INSTALL) $(addprefix $(MOZILLA_DIR)/other-licenses/nsis/Plugins/,$(CUSTOM_NSIS_PLUGINS)) $(CONFIG_DIR) + $(INSTALL) $(addprefix $(MOZILLA_DIR)/other-licenses/nsis/,$(CUSTOM_UI)) $(CONFIG_DIR) + cd $(CONFIG_DIR) && $(call WINEWRAP,$(MAKENSISU)) $(MAKENSISU_FLAGS) installer.nsi +ifdef MOZ_STUB_INSTALLER + cd $(CONFIG_DIR) && $(call WINEWRAP,$(MAKENSISU)) $(MAKENSISU_FLAGS) stub.nsi +endif + +ifdef ZIP_IN +installer:: $(CONFIG_DIR)/setup.exe $(ZIP_IN) + @echo 'Packaging $(WIN32_INSTALLER_OUT).' + $(NSINSTALL) -D '$(ABS_DIST)/$(PKG_INST_PATH)' + $(PYTHON3) $(MOZILLA_DIR)/mach repackage installer \ + -o '$(ABS_DIST)/$(PKG_INST_PATH)$(PKG_INST_BASENAME).exe' \ + --package-name '$(MOZ_PKG_DIR)' \ + --package '$(ZIP_IN)' \ + --tag $(topsrcdir)/$(MOZ_BUILD_APP)/installer/windows/app.tag \ + --setupexe $(CONFIG_DIR)/setup.exe \ + --sfx-stub $(SFX_MODULE) \ + $(USE_UPX) +ifdef MOZ_STUB_INSTALLER + $(PYTHON3) $(MOZILLA_DIR)/mach repackage installer \ + -o '$(ABS_DIST)/$(PKG_INST_PATH)$(PKG_STUB_BASENAME).exe' \ + --tag $(topsrcdir)/browser/installer/windows/stub.tag \ + --setupexe $(CONFIG_DIR)/setup-stub.exe \ + --sfx-stub $(SFX_MODULE) \ + $(USE_UPX) +endif +else +installer:: + $(error ZIP_IN must be set when building installer) +endif + +HELPER_DEPS = $(GLOBAL_DEPS) \ + $(addprefix $(srcdir)/,$(INSTALLER_FILES)) \ + $(addprefix $(topsrcdir)/$(MOZ_BRANDING_DIRECTORY)/,$(BRANDING_FILES)) \ + $(srcdir)/nsis/defines.nsi.in \ + $(topsrcdir)/toolkit/mozapps/installer/windows/nsis/preprocess-locale.py \ + $(addprefix $(MOZILLA_DIR)/toolkit/mozapps/installer/windows/nsis/,$(TOOLKIT_NSIS_FILES)) \ + $(addprefix $(MOZILLA_DIR)/other-licenses/nsis/Plugins/,$(CUSTOM_NSIS_PLUGINS)) + +# For building the uninstaller during the application build so it can be +# included for mar file generation. +$(CONFIG_DIR)/helper.exe: $(HELPER_DEPS) + $(RM) -r $(CONFIG_DIR) + $(MKDIR) $(CONFIG_DIR) + $(INSTALL) $(addprefix $(srcdir)/,$(INSTALLER_FILES)) $(CONFIG_DIR) + $(INSTALL) $(addprefix $(topsrcdir)/$(MOZ_BRANDING_DIRECTORY)/,$(BRANDING_FILES)) $(CONFIG_DIR) + $(call py_action,preprocessor,-Fsubstitution $(DEFINES) $(ACDEFINES) \ + $(srcdir)/nsis/defines.nsi.in -o $(CONFIG_DIR)/defines.nsi) + $(PYTHON3) $(topsrcdir)/toolkit/mozapps/installer/windows/nsis/preprocess-locale.py \ + --preprocess-locale $(topsrcdir) \ + $(PPL_LOCALE_ARGS) $(AB_CD) $(CONFIG_DIR) + $(INSTALL) $(addprefix $(MOZILLA_DIR)/toolkit/mozapps/installer/windows/nsis/,$(TOOLKIT_NSIS_FILES)) $(CONFIG_DIR) + $(INSTALL) $(addprefix $(MOZILLA_DIR)/other-licenses/nsis/Plugins/,$(CUSTOM_NSIS_PLUGINS)) $(CONFIG_DIR) + cd $(CONFIG_DIR) && $(call WINEWRAP,$(MAKENSISU)) $(MAKENSISU_FLAGS) uninstaller.nsi + +uninstaller:: $(CONFIG_DIR)/helper.exe + $(NSINSTALL) -D $(DIST)/bin/uninstall + cp $(CONFIG_DIR)/helper.exe $(DIST)/bin/uninstall + +ifdef MOZ_MAINTENANCE_SERVICE +maintenanceservice_installer:: + $(RM) -r $(CONFIG_DIR) + $(MKDIR) $(CONFIG_DIR) + $(INSTALL) $(addprefix $(srcdir)/,$(INSTALLER_FILES)) $(CONFIG_DIR) + $(INSTALL) $(addprefix $(topsrcdir)/$(MOZ_BRANDING_DIRECTORY)/,$(BRANDING_FILES)) $(CONFIG_DIR) + $(call py_action,preprocessor,-Fsubstitution $(DEFINES) $(ACDEFINES) \ + $(srcdir)/nsis/defines.nsi.in -o $(CONFIG_DIR)/defines.nsi) + $(PYTHON3) $(topsrcdir)/toolkit/mozapps/installer/windows/nsis/preprocess-locale.py \ + --preprocess-locale $(topsrcdir) \ + $(PPL_LOCALE_ARGS) $(AB_CD) $(CONFIG_DIR) + $(INSTALL) $(addprefix $(MOZILLA_DIR)/toolkit/mozapps/installer/windows/nsis/,$(TOOLKIT_NSIS_FILES)) $(CONFIG_DIR) + $(INSTALL) $(addprefix $(MOZILLA_DIR)/other-licenses/nsis/Plugins/,$(CUSTOM_NSIS_PLUGINS)) $(CONFIG_DIR) + cd $(CONFIG_DIR) && $(call WINEWRAP,$(MAKENSISU)) $(MAKENSISU_FLAGS) maintenanceservice_installer.nsi + $(NSINSTALL) -D $(DIST)/bin/ + cp $(CONFIG_DIR)/maintenanceservice_installer.exe $(DIST)/bin +endif |