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 [moved from nasm.nsis with 85% similarity]
version.pl

index 0471aaf..719d375 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)
similarity index 85%
rename from nasm.nsis
rename to nasm.nsi
index 89a7b67..5c33c98 100644 (file)
--- a/nasm.nsis
+++ b/nasm.nsi
@@ -22,9 +22,9 @@
 # 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 VERSION "2.06rc7"
 !define PACKAGE_NAME "${PRODUCT_NAME} ${VERSION}"
 !define PACKAGE_SHORT_NAME "${PRODUCT_SHORT_NAME}-${VERSION}"
 
@@ -50,16 +50,16 @@ 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"
+  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"
@@ -71,7 +71,8 @@ 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
+  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"
@@ -80,7 +81,8 @@ SectionEnd
 
 Section "Uninstall"
   Delete /rebootok "$DESKTOP\NASM.lnk"
-  Delete /rebootok "$SMPROGRAMS\${PACKAGE_NAME}\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}"
 
index 82aa883..d9e9733 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' ) {