From 813c5db69c26b8c404f03e413421e3bfafb31ff4 Mon Sep 17 00:00:00 2001 From: Dennis Schridde Date: Fri, 22 Jun 2007 16:01:46 +0000 Subject: [PATCH] - Merge my OpenAL installer NSIS script with Giels (Installed into INSTDIR instead of TEMP) - Simplify Windows NSIS Makefile. Since 2.25 -options are supported - Add updater rule to AutoMakefile - Remove unnecessary aclocal flags from icons/ git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1925 4a71c877-e1ca-e34f-864e-861f7616d084 --- icons/Makefile.am | 2 -- nsis/Makefile.am | 13 ++++++++--- nsis/Makefile.raw | 9 +------- nsis/warzone2100.nsi | 34 +++++++++++++--------------- nsis/warzone2100.update.nsi | 44 +++++++++++++++++++++++-------------- 5 files changed, 53 insertions(+), 49 deletions(-) diff --git a/icons/Makefile.am b/icons/Makefile.am index b761331c7..d610ba320 100644 --- a/icons/Makefile.am +++ b/icons/Makefile.am @@ -1,8 +1,6 @@ # Remove this line when Automake 1.10 becomes standard MKDIR_P=$(mkdir_p) -ACLOCAL_AMFLAGS = -I m4 - install-data-local: $(MKDIR_P) $(DESTDIR)$(icondir) $(MKDIR_P) $(DESTDIR)$(applicationdir) diff --git a/nsis/Makefile.am b/nsis/Makefile.am index 5273ccfbf..fbf924d7d 100644 --- a/nsis/Makefile.am +++ b/nsis/Makefile.am @@ -1,4 +1,5 @@ -INSTALLERFILE=warzone2100-$(VERSION).exe +INSTALLERFILE=$(PACKAGE)-$(VERSION).exe +UPDATERFILE=$(PACKAGE)-$(VERSION).update.exe CLEANFILES=$(INSTALLERFILE) @@ -6,5 +7,11 @@ if INSTALLER all: $(INSTALLERFILE) endif -$(INSTALLERFILE): warzone2100.nsi ../src/warzone2100.exe ../data/warzone.wz ../data/mp.wz ../data/grim.wz - $(MAKENSIS) -DVERSION="$(VERSION)" -DVERSIONNUM="$(INSTALLER_VERSION)" -DLIBDIR="$(INSTALLER_LIBDIR)" $< +data: + $(MAKE) -C ../data/ data + +$(INSTALLERFILE): warzone2100.nsi ../src/warzone2100.exe data + $(MAKENSIS) -DVERSION="$(VERSION)" -DVERSIONNUM="$(INSTALLER_VERSION)" -DEXTDIR="$(INSTALLER_EXTDIR)" $< + +$(UPDATERFILE): warzone2100.update.nsi + $(MAKENSIS) -DVERSION="$(VERSION)" -DVERSIONNUM="$(INSTALLER_VERSION)" -DEXTDIR="$(INSTALLER_EXTDIR)" $< diff --git a/nsis/Makefile.raw b/nsis/Makefile.raw index 4941fc6fd..a655daadf 100644 --- a/nsis/Makefile.raw +++ b/nsis/Makefile.raw @@ -10,15 +10,8 @@ all: $(SETUPFILE) endif endif -# This is necessary to make sure "/Dvar=val" is used on Windows systems and -Dvar="val" on GNU/Linux buildsystems. -# Which is a direct result from inconsistencies in commandline parsing between the Windows and GNU/Linux versions. -ifeq ($(strip $(PLATFORM)),windows) $(SETUPFILE): warzone2100.nsi ../src/warzone2100.exe ../data/warzone.wz ../data/mp.wz ../data/grim.wz - $(MAKENSIS) "/DVERSION=$(VERSION)" "/DVERSIONNUM=$(INSTALLER_VERSION)" "/DLIBDIR=$(DEVDIR)\lib" $< -else -$(SETUPFILE): warzone2100.nsi ../src/warzone2100.exe ../data/warzone.wz ../data/mp.wz ../data/grim.wz - $(MAKENSIS) -DVERSION="$(VERSION)" -DVERSIONNUM="$(INSTALLER_VERSION)" -DLIBDIR="$(DEVDIR)\lib" $< -endif + $(MAKENSIS) -DVERSION="$(VERSION)" -DVERSIONNUM="$(INSTALLER_VERSION)" -DEXTDIR="$(DEVDIR)\bin" $< clean: $(RM) $(SETUPFILE) diff --git a/nsis/warzone2100.nsi b/nsis/warzone2100.nsi index 121c1cb68..5e3337d0b 100755 --- a/nsis/warzone2100.nsi +++ b/nsis/warzone2100.nsi @@ -79,7 +79,7 @@ VIAddVersionKey "ProductVersion" "${VERSION}" !define MUI_FINISHPAGE_RUN_TEXT $(TEXT_RunWarzone) !define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink" !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED - !define MUI_FINISHPAGE_SHOWREADME $INSTDIR\Readme.txt + !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\Readme.txt" ;-------------------------------- ;Pages @@ -137,8 +137,8 @@ Section $(TEXT_SecBase) SecBase File "..\src\warzone2100.exe" ; Windows dbghelp library - File "${LIBDIR}\dbghelp.dll.license.txt" - File "${LIBDIR}\dbghelp.dll" + File "${EXTDIR}\dbghelp.dll.license.txt" + File "${EXTDIR}\dbghelp.dll" ; Data files File "..\data\mp.wz" @@ -179,22 +179,17 @@ Section $(TEXT_SecBase) SecBase SectionEnd + ; Installs OpenAL runtime libraries, using Creative's installer -; Found here: http://developer.creative.com/articles/article.asp?cat=1&sbcat=31&top=38&aid=46 Section $(TEXT_SecOpenAL) SecOpenAL - SetOutPath "$TEMP" + File "${EXTDIR}\oalinst.exe" - File "${LIBDIR}\oalinst.exe" - - ExecWait "$TEMP\oalinst.exe" - - Delete "$TEMP\oalinst.exe" - - SetOutPath "$INSTDIR" + ExecWait "$INSTDIR\oalinst.exe" SectionEnd + SectionGroup /e $(TEXT_SecMods) secMods Section $(TEXT_SecGrimMod) SecGrimMod @@ -236,7 +231,7 @@ FunctionEnd LangString DESC_SecBase ${LANG_ENGLISH} "Standard installation." LangString TEXT_SecOpenAL ${LANG_ENGLISH} "OpenAL libraries" - LangString DESC_SecOpenAL ${LANG_ENGLISH} "Required runtime libraries for OpenAL, an opensource/free Audio Library." + LangString DESC_SecOpenAL ${LANG_ENGLISH} "Runtime libraries for OpenAL, a free Audio interface. Implementation by Creative Labs." LangString TEXT_SecMods ${LANG_ENGLISH} "Mods" LangString DESC_SecMods ${LANG_ENGLISH} "Various mods." @@ -264,7 +259,7 @@ FunctionEnd LangString DESC_SecBase ${LANG_GERMAN} "Standardinstallation." LangString TEXT_SecOpenAL ${LANG_GERMAN} "OpenAL Bibliotheken" - LangString DESC_SecOpenAL ${LANG_GERMAN} "Benötigte Bibliotheken für OpenAL, eine opensource/freie Audio Bibliothek." + LangString DESC_SecOpenAL ${LANG_GERMAN} "Bibliotheken für OpenAL, ein freies Audio Interface. Implementation von Creative Labs." LangString TEXT_SecMods ${LANG_GERMAN} "Mods" LangString DESC_SecMods ${LANG_GERMAN} "Verschiedene Mods." @@ -301,6 +296,8 @@ Section "Uninstall" Delete "$INSTDIR\warzone2100.exe" + Delete "$INSTDIR\oalinst.exe" + Delete "$INSTDIR\dbghelp.dll.license.txt" Delete "$INSTDIR\dbghelp.dll" @@ -320,13 +317,12 @@ Section "Uninstall" RMDir "$INSTDIR\mods" RMDir "$INSTDIR" - !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP - - Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" - Delete "$SMPROGRAMS\$MUI_TEMP\Warzone 2100.lnk" - Delete "$SMPROGRAMS\$MUI_TEMP\Warzone 2100 - Grim's GFX.lnk" + Delete "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" + Delete "$SMPROGRAMS\$STARTMENU_FOLDER\Warzone 2100.lnk" + Delete "$SMPROGRAMS\$STARTMENU_FOLDER\Warzone 2100 - Grim's GFX.lnk" ;Delete empty start menu parent diretories + !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" startMenuDeleteLoop: diff --git a/nsis/warzone2100.update.nsi b/nsis/warzone2100.update.nsi index 6eaab9f12..dcce8653d 100644 --- a/nsis/warzone2100.update.nsi +++ b/nsis/warzone2100.update.nsi @@ -83,7 +83,7 @@ VIAddVersionKey "ProductVersion" "${VERSION}" !define MUI_FINISHPAGE_RUN_TEXT $(TEXT_RunWarzone) !define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink" !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED - !define MUI_FINISHPAGE_SHOWREADME $INSTDIR\Readme.txt + !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\Readme.txt" ;-------------------------------- ;Pages @@ -139,15 +139,9 @@ Section $(TEXT_SecBase) SecBase ; File "..\src\warzone2100.exe" !insertmacro VPatchFile "warzone2100.exe.vpatch" "$INSTDIR\warzone2100.exe" "$INSTDIR\warzone2100.exe.tmp" - ; Required runtime libs -; File "${LIBDIR}\OpenAL32.dll" -; File "${LIBDIR}\wrap_oal.dll" -; !insertmacro VPatchFile "openal32.dll.vpatch" "$INSTDIR\OpenAL32.dll" "$INSTDIR\OpenAL32.dll.tmp" -; !insertmacro VPatchFile "wrap_oal.dll.vpatch" "$INSTDIR\wrap_oal.dll" "$INSTDIR\wrap_oal.dll.tmp" - ; Windows dbghelp library - File "${LIBDIR}\dbghelp.dll.license.txt" - File "${LIBDIR}\dbghelp.dll" + File "${EXTDIR}\dbghelp.dll.license.txt" + File "${EXTDIR}\dbghelp.dll" ; !insertmacro VPatchFile "dbghelp.dll.license.txt.vpatch" "$INSTDIR\dbghelp.dll.license.txt" "$INSTDIR\dbghelp.dll.license.txt.tmp" ; !insertmacro VPatchFile "dbghelp.dll.vpatch" "$INSTDIR\dbghelp.dll" "$INSTDIR\dbghelp.dll.tmp" @@ -197,6 +191,16 @@ Section $(TEXT_SecBase) SecBase SectionEnd +; Installs OpenAL runtime libraries, using Creative's installer +Section $(TEXT_SecOpenAL) SecOpenAL + + File "${EXTDIR}\oalinst.exe" + + ExecWait "$INSTDIR\oalinst.exe" + +SectionEnd + + SectionGroup /e $(TEXT_SecMods) secMods Section $(TEXT_SecGrimMod) SecGrimMod @@ -204,7 +208,7 @@ Section $(TEXT_SecGrimMod) SecGrimMod SetOutPath "$INSTDIR\mods\global" ; File "..\data\grim.wz" - !insertmacro VPatchFile "grim.wz.vpatch" "$INSTDIR\grim.wz" "$INSTDIR\grim.wz.tmp" +; !insertmacro VPatchFile "grim.wz.vpatch" "$INSTDIR\grim.wz" "$INSTDIR\grim.wz.tmp" SetOutPath "$INSTDIR" @@ -238,6 +242,9 @@ FunctionEnd LangString TEXT_SecBase ${LANG_ENGLISH} "Standard installation" LangString DESC_SecBase ${LANG_ENGLISH} "Standard installation." + LangString TEXT_SecOpenAL ${LANG_ENGLISH} "OpenAL libraries" + LangString DESC_SecOpenAL ${LANG_ENGLISH} "Runtime libraries for OpenAL, a free Audio interface. Implementation by Creative Labs." + LangString TEXT_SecMods ${LANG_ENGLISH} "Mods" LangString DESC_SecMods ${LANG_ENGLISH} "Various mods." @@ -249,6 +256,9 @@ FunctionEnd LangString TEXT_SecBase ${LANG_GERMAN} "Standardinstallation" LangString DESC_SecBase ${LANG_GERMAN} "Standardinstallation." + LangString TEXT_SecOpenAL ${LANG_GERMAN} "OpenAL Bibliotheken" + LangString DESC_SecOpenAL ${LANG_GERMAN} "Bibliotheken für OpenAL, ein freies Audio Interface. Implementation von Creative Labs." + LangString TEXT_SecMods ${LANG_GERMAN} "Mods" LangString DESC_SecMods ${LANG_GERMAN} "Verschiedene Mods." @@ -266,6 +276,8 @@ FunctionEnd !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SecBase} $(DESC_SecBase) + !insertmacro MUI_DESCRIPTION_TEXT ${SecOpenAL} $(DESC_SecOpenAL) + !insertmacro MUI_DESCRIPTION_TEXT ${SecMods} $(DESC_SecMods) !insertmacro MUI_DESCRIPTION_TEXT ${SecGrimMod} $(DESC_SecGrimMod) !insertmacro MUI_FUNCTION_DESCRIPTION_END @@ -281,8 +293,7 @@ Section "Uninstall" Delete "$INSTDIR\warzone2100.exe" - Delete "$INSTDIR\OpenAL32.dll" - Delete "$INSTDIR\wrap_oal.dll" + Delete "$INSTDIR\oalinst.exe" Delete "$INSTDIR\dbghelp.dll.license.txt" Delete "$INSTDIR\dbghelp.dll" @@ -303,13 +314,12 @@ Section "Uninstall" RMDir "$INSTDIR\mods" RMDir "$INSTDIR" - !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP - - Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" - Delete "$SMPROGRAMS\$MUI_TEMP\Warzone 2100.lnk" - Delete "$SMPROGRAMS\$MUI_TEMP\Warzone 2100 - Grim's GFX.lnk" + Delete "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" + Delete "$SMPROGRAMS\$STARTMENU_FOLDER\Warzone 2100.lnk" + Delete "$SMPROGRAMS\$STARTMENU_FOLDER\Warzone 2100 - Grim's GFX.lnk" ;Delete empty start menu parent diretories + !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" startMenuDeleteLoop: