nasm.nsi: add NASM Manual; automate version generation
authorH. Peter Anvin <hpa@zytor.com>
Tue, 7 Apr 2009 02:12:34 +0000 (19:12 -0700)
committerH. Peter Anvin <hpa@zytor.com>
Tue, 7 Apr 2009 02:12:34 +0000 (19:12 -0700)
Add the NASM Manual (as a PDF) to the Windows installer, and abstract
out the version number.

Makefile.in
nasm.nsi [new file with mode: 0644]
nasm.nsis [deleted file]
version.pl

index 0471aaf4c958301fe4b59ce0559f1396c1c90119..719d375ef731864ece22de5e1a1542e4ff34fc92 100644 (file)
@@ -111,6 +111,8 @@ version.sed: version version.pl
        $(PERL) $(srcdir)/version.pl sed < $(srcdir)/version > version.sed
 version.mak: version version.pl
        $(PERL) $(srcdir)/version.pl make < $(srcdir)/version > version.mak
+version.nsh: version version.pl
+       $(PERL) $(srcdir)/version.pl nsis < $(srcdir)/version > version.nsh
 
 # This source file is generated from the standard macros file
 # `standard.mac' by another Perl script. Again, it's part of the
@@ -158,7 +160,7 @@ pptok.ph: pptok.dat pptok.pl perllib/phash.ph
 PERLREQ = macros.c insnsb.c insnsa.c insnsd.c insnsi.h insnsn.c \
          regs.c regs.h regflags.c regdis.c regdis.h regvals.c \
          tokhash.c tokens.h pptok.h pptok.c pptok.ph \
-         version.h version.mac version.mak
+         version.h version.mac version.mak version.nsh
 perlreq: $(PERLREQ)
 
 install: nasm$(X) ndisasm$(X)
diff --git a/nasm.nsi b/nasm.nsi
new file mode 100644 (file)
index 0000000..5c33c98
--- /dev/null
+++ b/nasm.nsi
@@ -0,0 +1,106 @@
+#!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.
+
+!include "version.nsh"
+!define PRODUCT_NAME "Netwide Assembler"
+!define PRODUCT_SHORT_NAME "nasm"
+!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 "nasm.exe"
+  File "ndisasm.exe"
+  File "doc/nasmdoc.pdf"
+  File "rdoff/ldrdf.exe"
+  File "rdoff/rdf2bin.exe"
+  File "rdoff/rdf2com.exe"
+  File "rdoff/rdf2ihx.exe"
+  File "rdoff/rdfdump.exe"
+  File "rdoff/rdflib.exe"
+  File "rdoff/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 Shell.lnk" "$INSTDIR\nasmpath.bat" "" "$INSTDIR\nasmpath.bat" 0
+  CreateShortCut "$SMPROGRAMS\${PACKAGE_NAME}\NASM Manual.lnk" "$INSTDIR\nasmdoc.pdf" "" "$INSTDIR\nasmdoc.pdf" 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 Shell.lnk"
+  Delete /rebootok "$SMPROGRAMS\${PACKAGE_NAME}\NASM Manual.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
+
diff --git a/nasm.nsis b/nasm.nsis
deleted file mode 100644 (file)
index 89a7b67..0000000
--- a/nasm.nsis
+++ /dev/null
@@ -1,104 +0,0 @@
-#!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
-
index 82aa88322b686bacde3284556ea8d8512e076883..d9e9733024f249c2512a81749aead8e18c981920 100755 (executable)
@@ -135,6 +135,12 @@ if ( $what eq 'h' ) {
     printf "NASM_MINOR_VER=%d\n", $nmin;
     printf "NASM_SUBMINOR_VER=%d\n", $nsmin;
     printf "NASM_PATCHLEVEL_VER=%d\n", $nplvl;
+} elsif ( $what eq 'nsis' ) {
+    printf "!define VERSION \"%s\"\n", $line;
+    printf "!define MAJOR_VER %d\n", $nmin;
+    printf "!define MINOR_VER %d\n", $nmin;
+    printf "!define SUBMINOR_VER %d\n", $nsmin;
+    printf "!define PATCHLEVEL_VER %d\n", $nplvl;
 } elsif ( $what eq 'id' ) {
     print $nasm_id, "\n";       # Print ID in decimal
 } elsif ( $what eq 'xid' ) {