Bug 1367847 Support makensis on MinGW Linux for Windows builds r=glandium

This involves a few changes:
- Remove the .exe from the makensis binaries. which.which will
  auto-add it so Windows will keep working - and with it
  present we were finding makensis.exe on Linux and trying to
  run it, which isn't going to work
- Doesn't bother checking if nsis is 32bit if we're running on
  Linux
- Add the -nocd option to nsis (on Linux) because it takes the
  current working directory from the target of a symlink rather
  than the symlink itself. See
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=704828

MozReview-Commit-ID: CVT8LwS1t8w

--HG--
extra : rebase_source : 2a62327326ba80dfd728048d19f0ff1c90100838
This commit is contained in:
Tom Ritter 2017-06-07 20:56:21 -05:00
parent 30fd17c6db
commit 64833e8aa1
2 changed files with 18 additions and 11 deletions

19
moz.configure Normal file → Executable file
View File

@ -319,10 +319,9 @@ def makensis_progs(target):
return
candidates = [
'makensis-3.01.exe',
'makensis-3.0b3.exe',
'makensis-3.0b1.exe',
'makensis.exe',
'makensis-3.01',
'makensis-3.0b3',
'makensis-3.0b1',
'makensis',
]
@ -360,8 +359,8 @@ def nsis_version(nsis):
return ver
# And that makensis is 32-bit.
@depends_if(nsis)
# And that makensis is 32-bit (but only on Windows).
@depends_if(nsis, when=depends(host)(lambda h: h.kernel == 'WINNT'))
@checking('for 32-bit NSIS')
def nsis_binary_type(nsis):
bin_type = windows_binary_type(nsis)
@ -370,6 +369,14 @@ def nsis_binary_type(nsis):
return 'yes'
# And any flags we have to give to makensis
@depends(host)
def nsis_flags(host):
if host.kernel != 'WINNT':
return '-nocd'
return ''
set_config('MAKENSISU_FLAGS', nsis_flags)
# Fallthrough to autoconf-based configure
include('build/moz.configure/old.configure')

10
toolkit/mozapps/installer/windows/nsis/makensis.mk Normal file → Executable file
View File

@ -44,9 +44,9 @@ $(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) && $(MAKENSISU) installer.nsi
cd $(CONFIG_DIR) && $(MAKENSISU) $(MAKENSISU_FLAGS) installer.nsi
ifdef MOZ_STUB_INSTALLER
cd $(CONFIG_DIR) && $(MAKENSISU) stub.nsi
cd $(CONFIG_DIR) && $(MAKENSISU) $(MAKENSISU_FLAGS) stub.nsi
ifdef MOZ_EXTERNAL_SIGNING_FORMAT
$(MOZ_SIGN_CMD) $(foreach f,$(MOZ_EXTERNAL_SIGNING_FORMAT),-f $(f)) $(CONFIG_DIR)/setup-stub.exe
endif
@ -59,7 +59,7 @@ endif
endif
# Support for building the uninstaller when repackaging locales
ifeq ($(CONFIG_DIR),l10ngen)
cd $(CONFIG_DIR) && $(MAKENSISU) uninstaller.nsi
cd $(CONFIG_DIR) && $(MAKENSISU) $(MAKENSISU_FLAGS) uninstaller.nsi
endif
ifdef MOZ_EXTERNAL_SIGNING_FORMAT
$(MOZ_SIGN_CMD) $(foreach f,$(MOZ_EXTERNAL_SIGNING_FORMAT),-f $(f)) "$@"
@ -88,13 +88,13 @@ endif
uninstaller::
$(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) && $(MAKENSISU) uninstaller.nsi
cd $(CONFIG_DIR) && $(MAKENSISU) $(MAKENSISU_FLAGS) uninstaller.nsi
$(NSINSTALL) -D $(DIST)/bin/uninstall
cp $(CONFIG_DIR)/helper.exe $(DIST)/bin/uninstall
ifdef MOZ_MAINTENANCE_SERVICE
maintenanceservice_installer::
cd $(CONFIG_DIR) && $(MAKENSISU) maintenanceservice_installer.nsi
cd $(CONFIG_DIR) && $(MAKENSISU) $(MAKENSISU_FLAGS) maintenanceservice_installer.nsi
$(NSINSTALL) -D $(DIST)/bin/
cp $(CONFIG_DIR)/maintenanceservice_installer.exe $(DIST)/bin
endif