Add NSIS script to make a Windows installer
authorShao Miller <Shao.Miller@yrdsb.edu.on.ca>
Tue, 7 Apr 2009 02:07:37 +0000 (19:07 -0700)
committerH. Peter Anvin <hpa@zytor.com>
Tue, 7 Apr 2009 02:07:37 +0000 (19:07 -0700)
Here is an NSIS script for making a simple NASM package.  It creates a
NASM folder with some of the important binaries in it, as well as a
simple batch file to get a CLI with the NASM folder included in the
PATH.  Expects to be built from inside the bin/ directory.  Fairly
primitive.  Feedback welcome.  - Shao

nasm.nsis [new file with mode: 0644]

diff --git a/nasm.nsis b/nasm.nsis
new file mode 100644 (file)
index 0000000..89a7b67
--- /dev/null
+++ b/nasm.nsis
@@ -0,0 +1,104 @@
+#!Nsis Installer Command Script
+
+# Copyright (c) 2009, Shao Miller (shao.miller@yrdsb.edu.on.ca)
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above copyright
+#       notice, this list of conditions and the following disclaimer in the
+#       documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+!define PRODUCT_NAME "Netwide Assembler"
+!define PRODUCT_SHORT_NAME "nasm"
+!define VERSION "2.06rc7"
+!define PACKAGE_NAME "${PRODUCT_NAME} ${VERSION}"
+!define PACKAGE_SHORT_NAME "${PRODUCT_SHORT_NAME}-${VERSION}"
+
+Name "${PACKAGE_NAME}"
+OutFile "${PACKAGE_SHORT_NAME}-installer.exe"
+InstallDir "$PROGRAMFILES\NASM"
+InstallDirRegKey HKLM "SOFTWARE\${PACKAGE_SHORT_NAME}" "InstallDir"
+SetCompressor bzip2
+
+XPStyle on
+
+DirText "Please select the installation folder."
+Page directory
+
+ComponentText "Select which optional components you want to install."
+Page components
+
+ShowInstDetails hide
+ShowUninstDetails hide
+Page instfiles
+
+Section "${PACKAGE_NAME}"
+  SectionIn RO
+
+  SetOutPath "$INSTDIR\."
+  File "ldrdf.exe"
+  File "nasm.exe"
+#  File "nasmdoc.pdf"
+  File "ndisasm.exe"
+  File "rdf2bin.exe"
+#  File "rdf2com.exe"
+  File "rdf2ihx.exe"
+  File "rdfdump.exe"
+  File "rdflib.exe"
+  File "rdx.exe"
+  FileOpen $0 "nasmpath.bat" w
+  IfErrors skip
+  FileWrite $0 "@set path=%path%;$INSTDIR$\r$\n"
+  FileWrite $0 "@%comspec%"
+  FileClose $0
+  skip:
+SectionEnd
+
+Section "Start Menu Shortcuts"
+  CreateDirectory "$SMPROGRAMS\${PACKAGE_NAME}"
+  CreateShortCut "$SMPROGRAMS\${PACKAGE_NAME}\Uninstall ${PACKAGE_NAME}.lnk" "$INSTDIR\Uninstall ${PACKAGE_NAME}.exe" "" "$INSTDIR\Uninstall ${PACKAGE_NAME}.exe" 0
+  CreateShortCut "$SMPROGRAMS\${PACKAGE_NAME}\NASM.lnk" "$INSTDIR\nasmpath.bat" "" "$INSTDIR\nasmpath.bat" 0
+SectionEnd
+
+Section "Desktop Icons"
+  CreateShortCut "$DESKTOP\NASM.lnk" "$INSTDIR\nasmpath.bat" "" "$INSTDIR\nasmpath.bat" 0
+SectionEnd
+
+Section "Uninstall"
+  Delete /rebootok "$DESKTOP\NASM.lnk"
+  Delete /rebootok "$SMPROGRAMS\${PACKAGE_NAME}\NASM.lnk"
+  Delete /rebootok "$SMPROGRAMS\${PACKAGE_NAME}\Uninstall ${PACKAGE_NAME}.lnk"
+  RMDir "$SMPROGRAMS\${PACKAGE_NAME}"
+
+  Delete /rebootok "$INSTDIR\nasmpath.bat"
+  Delete /rebootok "$INSTDIR\rdx.exe"
+  Delete /rebootok "$INSTDIR\rdflib.exe"
+  Delete /rebootok "$INSTDIR\rdfdump.exe"
+  Delete /rebootok "$INSTDIR\rdf2ihx.exe"
+  Delete /rebootok "$INSTDIR\rdf2com.exe"
+  Delete /rebootok "$INSTDIR\rdf2bin.exe"
+  Delete /rebootok "$INSTDIR\ndisasm.exe"
+  Delete /rebootok "$INSTDIR\nasmdoc.pdf"
+  Delete /rebootok "$INSTDIR\nasm.exe"
+  Delete /rebootok "$INSTDIR\ldrdf.exe"
+  RMDir "$INSTDIR"
+SectionEnd
+
+Section -post
+  WriteUninstaller "$INSTDIR\Uninstall ${PACKAGE_NAME}.exe"
+SectionEnd
+