diff options
author | H. Peter Anvin <hpa@zytor.com> | 2002-04-30 20:54:58 +0000 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2002-04-30 20:54:58 +0000 |
commit | ce14ce6fc4bf6a8a73bd7061177f8dfa696b37db (patch) | |
tree | f44620fa214c3d1c4ec5eed664fd538e24832f26 /Mkfiles | |
parent | 900fa5b26b8f1374416d6dfbdacfed65f10ae5eb (diff) | |
download | nasm-ce14ce6fc4bf6a8a73bd7061177f8dfa696b37db.tar.gz nasm-ce14ce6fc4bf6a8a73bd7061177f8dfa696b37db.tar.bz2 nasm-ce14ce6fc4bf6a8a73bd7061177f8dfa696b37db.zip |
NASM 0.98p3.2
Diffstat (limited to 'Mkfiles')
-rw-r--r-- | Mkfiles/Makefile.bc2 | 238 | ||||
-rw-r--r-- | Mkfiles/Makefile.bor | 82 | ||||
-rw-r--r-- | Mkfiles/Makefile.dj | 81 | ||||
-rw-r--r-- | Mkfiles/Makefile.dos | 78 | ||||
-rw-r--r-- | Mkfiles/Makefile.lcc | 110 | ||||
-rw-r--r-- | Mkfiles/Makefile.sc | 114 | ||||
-rw-r--r-- | Mkfiles/Makefile.scw | 114 | ||||
-rw-r--r-- | Mkfiles/Makefile.unx | 97 | ||||
-rw-r--r-- | Mkfiles/Makefile.vc | 77 | ||||
-rw-r--r-- | Mkfiles/Makefile.wc | 119 | ||||
-rw-r--r-- | Mkfiles/Makefile.wcw | 119 |
11 files changed, 1229 insertions, 0 deletions
diff --git a/Mkfiles/Makefile.bc2 b/Mkfiles/Makefile.bc2 new file mode 100644 index 0000000..92ec9d2 --- /dev/null +++ b/Mkfiles/Makefile.bc2 @@ -0,0 +1,238 @@ +# Makefile for the Netwide Assembler under 16-bit DOS (aimed at Borland C) +# +# The Netwide Assembler is copyright (C) 1996 Simon Tatham and +# Julian Hall. All rights reserved. The software is +# redistributable under the licence given in the file "Licence" +# distributed in the NASM archive. +# +# This makefile is made for compile NASM and NDISASM on a 16 bit dos +# compiler like Microsoft C, or Borland C. This should work on all +# verioson of Turbo C++ and Borland C++ from version 3.0 and upwords. +# I'm not fully sure how it will handel on Microsoft C, but all the +# switches are documented, and it shouldn't be a problem to change it +# over. +# +# It does show a few of my preferances, like putting the OBJ files +# in a seperat directory, but if you just set OBJD to '.', it will +# drop them all in the current directory (though you still need to +# make the directory it's self). +# +# Most everything is remarked, and explaned in full, it should be +# easy to convert it to another compiler. I tried to make the devision +# of information logical, and easy to follow. +# +# BEFORE YOU USE THIS MAKE FILE!!! +# +# Make sure the line below is set to the propper location of your standard +# Libaries, if not you'll get some errors. Make sure to keep the trailing +# backslash, as it's needed, and remeber to use \\ not \ as that will cause +# some errors. +# +# Also inportant, if you get a DGROUP error when you compile NASM, remove +# or comment out the 'NASMSize=l' line, and uncoment (remove the #) from the +# NASMSize=h line. Then run 'make Clean' to delete the object files. Then run +# make again to re-build NASM as huge. +# +# History: +# 06/13/97: * Added the EXED varable for the location to put the EXE files. +# * Because different versions of Borland and Turbo C have +# different GROUPings for the DGROUP, some version, when you +# compile NASM, you will get a DGROUP overflow error, making it +# so NASM has to be compiled as huge. As this isn't a constant +# through systems (and apperently some version of Borland, +# compileing as huge causes some errors) the NASMSize verable +# has been added to spicify what size of code you want to +# compile as and defaults to large. +# 06/16/97: * Added 'merge dupicate strings' to the options for compiles. + +NASMSize=l #Compile Nasm as Large +#NASMSize=h #Compile Nasm as Huge + +LIB =c:\\tc\\lib\\ #location standard libaries + +OBJD=obj\\ #directory to put OBJ files in +EXED=.\ #directory to put the EXE files. +CC = tcc #compiler +LINK = tlink #linker +CCFLAGS = /d /c /O /A /m$(NASMSize) /n$(OBJD) #compiler flags for NASM + #/d=merge dupicate strings + #/c=compile only + #/O=Optimise jumps + #/A=ANSI standard C + #/m$(NASMSize>=the model to use + #/n$(OBJD)= put the OBJ files in the diectory given. + +DCCFLAGS = /d /c /O /A /mh /n$(OBJD) #compiler flags for NDISASM + #/d=merge dupicate strings + #/c=compile only + #/O=Optimise jumps + #/A=ANSI standard C + #/mh=Model huge + #/n$(OBJD)= put the OBJ files in the diectory given. + #NOTE: Huge model is used, and the array in insnsd.c is large enough to + #over size the d-group in large mode. + +LINKFLAGS = /c /x #linker flags + #/c=case segnificance on symboles + #/x=No map file at all + +LIBRARIES = #any libaries to add, out side of the standard libary +EXE = .exe #executable file extention (keep the . as the start) +OBJ = obj #OBJ file extention + +NASM_ASM=$(CC) $(CCFLAGS) $&.c #Command line for NASM +DASM_ASM=$(CC) $(DCCFLAGS) $&.c #command line for NDISASM + +# NOTE: $& is used to create the file name, as it only gives the name it's +# self, where as using $* would have give the full path of the file it +# want's done. This becomes a problem if the OBJ files are in a seperate +# directory, becuse it will then try to find the source file in the OBJ +# dir. + +################################################################ +#The OBJ files that NASM is dependent on + +NASMOBJS = $(OBJD)nasm.$(OBJ) $(OBJD)nasmlib.$(OBJ) $(OBJD)float.$(OBJ) \ + $(OBJD)insnsa.$(OBJ) $(OBJD)assemble.$(OBJ) $(OBJD)labels.$(OBJ) \ + $(OBJD)parser.$(OBJ) $(OBJD)outform.$(OBJ) $(OBJD)preproc.$(OBJ) \ + $(OBJD)listing.$(OBJ) $(OBJD)eval.$(OBJ) + +################################################################ +#The OBJ files that NDISASM is dependent on + +NDISASMOBJS = $(OBJD)ndisasm.$(OBJ) $(OBJD)disasm.$(OBJ) $(OBJD)sync.$(OBJ) \ + $(OBJD)nasmlibd.$(OBJ) $(OBJD)insnsd.$(OBJ) + +################################################################ +#The OBJ file for the output formats. + +OUTOBJ= $(OBJD)outbin.$(OBJ) $(OBJD)outaout.$(OBJ) $(OBJD)outcoff.$(OBJ) \ + $(OBJD)outelf.$(OBJ) $(OBJD)outobj.$(OBJ) $(OBJD)outas86.$(OBJ) \ + $(OBJD)outrdf.$(OBJ) $(OBJD)outdbg.$(OBJ) + + +################################################################ +# Build everything + +all : nasm$(EXE) ndisasm$(EXE) + +################################################################ +#NASM, NDISASM compile, I hope it's self explanitorie + +nasm$(EXE): $(NASMOBJS) $(OUTOBJ) + $(LINK) $(LINKFLAGS) @&&^ #command for the linker + $(LIB)c0$(NASMSize).obj $(NASMOBJS) $(OUTOBJ) #OBJ file list + $(EXED)nasm$(EXE) #EXE file name +# No need of a map file + $(LIB)c$(NASMSize).lib $(LIBRARIES) #Libaries needed +^ + +ndisasm$(EXE): $(NDISASMOBJS) + $(LINK) $(LINKFLAGS) @&&^ #command for the linker + $(LIB)c0h.obj $(NDISASMOBJS) #OBJ file list + $(EXED)ndisasm$(EXE) #EXE file name +# No need of a map file + $(LIB)ch.lib $(LIBRARIES) #Libaries needed +^ + +################################################################ +# Dependencies for all of NASM's obj files + +$(OBJD)assemble.$(OBJ): assemble.c nasm.h assemble.h insns.h + $(NASM_ASM) + +$(OBJD)float.$(OBJ): float.c nasm.h + $(NASM_ASM) + +$(OBJD)labels.$(OBJ): labels.c nasm.h nasmlib.h + $(NASM_ASM) + +$(OBJD)listing.$(OBJ): listing.c nasm.h nasmlib.h listing.h + $(NASM_ASM) + +$(OBJD)eval.$(OBJ): eval.c nasm.h nasmlib.h eval.h + $(NASM_ASM) + +$(OBJD)nasm.$(OBJ): nasm.c nasm.h nasmlib.h parser.h assemble.h labels.h \ + listing.h outform.h + $(NASM_ASM) + +$(OBJD)nasmlib.$(OBJ): nasmlib.c nasm.h nasmlib.h + $(NASM_ASM) + +$(OBJD)parser.$(OBJ): parser.c nasm.h nasmlib.h parser.h float.h names.c + $(NASM_ASM) + +$(OBJD)preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h nasmlib.h + $(NASM_ASM) + +$(OBJD)insnsa.$(OBJ): insnsa.c nasm.h insns.h + $(NASM_ASM) + +################################################################ +# Dependencies for all of NDISASM's obj files + +$(OBJD)disasm.$(OBJ): disasm.c nasm.h disasm.h sync.h insns.h names.c + $(DASM_ASM) + +$(OBJD)ndisasm.$(OBJ): ndisasm.c nasm.h sync.h disasm.h + $(DASM_ASM) + +$(OBJD)sync.$(OBJ): sync.c sync.h + $(DASM_ASM) + +$(OBJD)insnsd.$(OBJ): insnsd.c nasm.h insns.h + $(DASM_ASM) + +# This is a kludge from the word go, as we can't use the nasmlib.obj compiled +# for NASM, as it's could be the wrong model size, so we have to compile it +# again as huge to make sure. +# +# So as not to overwrite the nasmlib.obj for NASM (if it did, that +# could cause all kinds of problems) it compiles it into nasmlibd.obj. +# +# the -o... switch tells it the name to compile the obj file to, right here +# $(OBJD)nasmlibd.obj + +$(OBJD)nasmlibd.$(OBJ): nasmlib.c nasm.h nasmlib.h + $(CC) $(DCCFLAGS) -o$(OBJD)nasmlibd.obj nasmlib.c + +################################################################ +# Dependencies for all of the output format's OBJ files + +$(OBJD)outas86.$(OBJ): outas86.c nasm.h nasmlib.h + $(NASM_ASM) + +$(OBJD)outaout.$(OBJ): outaout.c nasm.h nasmlib.h + $(NASM_ASM) + +$(OBJD)outbin.$(OBJ): outbin.c nasm.h nasmlib.h + $(NASM_ASM) + +$(OBJD)outcoff.$(OBJ): outcoff.c nasm.h nasmlib.h + $(NASM_ASM) + +$(OBJD)outdbg.$(OBJ): outdbg.c nasm.h nasmlib.h + $(NASM_ASM) + +$(OBJD)outelf.$(OBJ): outelf.c nasm.h nasmlib.h + $(NASM_ASM) + +$(OBJD)outobj.$(OBJ): outobj.c nasm.h nasmlib.h + $(NASM_ASM) + +$(OBJD)outrdf.$(OBJ): outrdf.c nasm.h nasmlib.h + $(NASM_ASM) + +$(OBJD)outform.$(OBJ): outform.c outform.h nasm.h + $(NASM_ASM) + +################################################################ +# A quick way to delete the OBJ files as well as the binaries. + +clean : + del $(OBJD)*.obj + del nasm$(EXE) + del ndisasm$(EXE) + +# Makefile created by Fox Cutter <lmb@comtch.iea.com> --01/27/97 diff --git a/Mkfiles/Makefile.bor b/Mkfiles/Makefile.bor new file mode 100644 index 0000000..90e96fb --- /dev/null +++ b/Mkfiles/Makefile.bor @@ -0,0 +1,82 @@ +# Makefile for the Netwide Assembler under 16-bit DOS +# +# The Netwide Assembler is copyright (C) 1996 Simon Tatham and +# Julian Hall. All rights reserved. The software is +# redistributable under the licence given in the file "Licence" +# distributed in the NASM archive. +# +# This Makefile is designed to build NASM using a 16-bit DOS C +# compiler such as Borland C, and has been tested with Borland C 2.3 +# and Borland Make. + +# CC = cl +# CCFLAGS = /c /O /AL +# LINK = cl +CC = bcc +CCFLAGS = -c -O -ml -A +LINK = tlink /c /Lc:\bc\lib +LINKFLAGS = +LIBRARIES = +EXE = .exe# +OBJ = obj# + +.c.$(OBJ): + $(CC) $(CCFLAGS) $*.c + +NASMOBJS1 = nasm.$(OBJ) nasmlib.$(OBJ) float.$(OBJ) insnsa.$(OBJ) +NASMOBJS2 = assemble.$(OBJ) labels.$(OBJ) parser.$(OBJ) outform.$(OBJ) +NASMOBJS3 = outbin.$(OBJ) outaout.$(OBJ) outcoff.$(OBJ) outelf.$(OBJ) +NASMOBJS4 = outobj.$(OBJ) outas86.$(OBJ) outdbg.$(OBJ) outrdf.$(OBJ) +NASMOBJS5 = preproc.$(OBJ) listing.$(OBJ) eval.$(OBJ) + +NASMOBJS = $(NASMOBJS1) $(NASMOBJS2) $(NASMOBJS3) $(NASMOBJS4) $(NASMOBJS5) + +NDISASMOBJS = ndisasm.$(OBJ) disasm.$(OBJ) sync.$(OBJ) nasmlib.$(OBJ) \ + insnsd.$(OBJ) + +all : nasm$(EXE) ndisasm$(EXE) + +# We have to have a horrible kludge here to get round the 128 character +# limit, as usual... +nasm$(EXE): $(NASMOBJS) +# $(LINK) /Fenasm.exe a*.obj f*.obj insnsa.obj l*.obj na*.obj o*.obj p*.obj + echo c0l.obj $(NASMOBJS1) +> nasmobjs.tmp + echo $(NASMOBJS2) +>> nasmobjs.tmp + echo $(NASMOBJS3) +>> nasmobjs.tmp + echo $(NASMOBJS4) +>> nasmobjs.tmp + echo $(NASMOBJS5),nasm.exe,,cl.lib, >> nasmobjs.tmp + $(LINK) /Tde @nasmobjs.tmp + +ndisasm$(EXE): $(NDISASMOBJS) +# $(LINK) /Fendisasm.exe $(NDISASMOBJS) + $(LINK) /Tde $(NDISASMOBJS),ndisasm.exe,,cl.lib, + +assemble.$(OBJ): assemble.c nasm.h assemble.h insns.h +disasm.$(OBJ): disasm.c nasm.h disasm.h sync.h insns.h names.c +eval.$(OBJ): eval.c nasm.h nasmlib.h eval.h +float.$(OBJ): float.c nasm.h +insnsa.$(OBJ): insnsa.c nasm.h insns.h +insnsd.$(OBJ): insnsd.c nasm.h insns.h +labels.$(OBJ): labels.c nasm.h nasmlib.h +listing.$(OBJ): listing.c nasm.h nasmlib.h listing.h +nasm.$(OBJ): nasm.c nasm.h nasmlib.h parser.h assemble.h labels.h \ + listing.h outform.h +nasmlib.$(OBJ): nasmlib.c nasm.h nasmlib.h +ndisasm.$(OBJ): ndisasm.c nasm.h sync.h disasm.h +outas86.$(OBJ): outas86.c nasm.h nasmlib.h +outaout.$(OBJ): outaout.c nasm.h nasmlib.h +outbin.$(OBJ): outbin.c nasm.h nasmlib.h +outcoff.$(OBJ): outcoff.c nasm.h nasmlib.h +outdbg.$(OBJ): outdbg.c nasm.h nasmlib.h +outelf.$(OBJ): outelf.c nasm.h nasmlib.h +outobj.$(OBJ): outobj.c nasm.h nasmlib.h +outrdf.$(OBJ): outrdf.c nasm.h nasmlib.h +outform.$(OBJ): outform.c outform.h nasm.h +parser.$(OBJ): parser.c nasm.h nasmlib.h parser.h float.h names.c +preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h nasmlib.h +sync.$(OBJ): sync.c sync.h + +clean : + del *.obj + del nasm$(EXE) + del ndisasm$(EXE) diff --git a/Mkfiles/Makefile.dj b/Mkfiles/Makefile.dj new file mode 100644 index 0000000..6d932f3 --- /dev/null +++ b/Mkfiles/Makefile.dj @@ -0,0 +1,81 @@ +# host: dos +# target: dos 32bit +# Makefile for the Netwide Assembler +# +# The Netwide Assembler is copyright (C) 1996 Simon Tatham and +# Julian Hall. All rights reserved. The software is +# redistributable under the licence given in the file "Licence" +# distributed in the NASM archive. + +# makefile designed for djgpp 2.xx +# djgpp is GNU C compiler ported by mighty DJ Delorie +# www.delorie.com and any simtel mirror + +# You may need to adjust these values. + +CC = gcc +CFLAGS = -O2 -I. + +# You _shouldn't_ need to adjust anything below this line. + +.c.o: + $(CC) -c $(CFLAGS) $*.c + +NASM = nasm.o nasmlib.o float.o insnsa.o assemble.o labels.o \ + parser.o outform.o outbin.o outaout.o outcoff.o outelf.o \ + outobj.o outas86.o outrdf.o outdbg.o preproc.o listing.o \ + eval.o + +NDISASM = ndisasm.o disasm.o sync.o nasmlib.o insnsd.o + +all: nasm.exe ndisasm.exe + +nasm.exe: $(NASM) + $(CC) -o $@ $(NASM) + +ndisasm.exe: $(NDISASM) + $(CC) -o $@ $(NDISASM) + +assemble.o: assemble.c nasm.h nasmlib.h assemble.h insns.h +disasm.o: disasm.c nasm.h disasm.h sync.h insns.h names.c +eval.o: eval.c eval.h nasm.h nasmlib.h +float.o: float.c nasm.h +insnsa.o: insnsa.c nasm.h insns.h +insnsd.o: insnsd.c nasm.h insns.h +labels.o: labels.c nasm.h nasmlib.h +listing.o: listing.c nasm.h nasmlib.h listing.h +nasm.o: nasm.c nasm.h nasmlib.h preproc.h parser.h assemble.h labels.h \ + outform.h listing.h +nasmlib.o: nasmlib.c nasm.h nasmlib.h +ndisasm.o: ndisasm.c nasm.h nasmlib.h sync.h disasm.h +outaout.o: outaout.c nasm.h nasmlib.h outform.h +outas86.o: outas86.c nasm.h nasmlib.h outform.h +outbin.o: outbin.c nasm.h nasmlib.h outform.h +outcoff.o: outcoff.c nasm.h nasmlib.h outform.h +outdbg.o: outdbg.c nasm.h nasmlib.h outform.h +outelf.o: outelf.c nasm.h nasmlib.h outform.h +outform.o: outform.c outform.h nasm.h +outobj.o: outobj.c nasm.h nasmlib.h outform.h +outrdf.o: outrdf.c nasm.h nasmlib.h outform.h +parser.o: parser.c nasm.h nasmlib.h parser.h float.h names.c +preproc.o: preproc.c nasm.h nasmlib.h macros.c +sync.o: sync.c sync.h + +# These two source files are automagically generated from a single +# instruction-table file by a Perl script. They're distributed, +# though, so it isn't necessary to have Perl just to recompile NASM +# from the distribution. + +insnsa.c insnsd.c: insns.dat insns.pl + perl insns.pl insns.dat + +# This source file is generated from the standard macros file +# `standard.mac' by another Perl script. Again, it's part of the +# standard distribution. + +macros.c: standard.mac macros.pl + perl macros.pl standard.mac + +clean: + rm -f *.o nasm ndisasm + diff --git a/Mkfiles/Makefile.dos b/Mkfiles/Makefile.dos new file mode 100644 index 0000000..94403fc --- /dev/null +++ b/Mkfiles/Makefile.dos @@ -0,0 +1,78 @@ +# Makefile for the Netwide Assembler under 16-bit DOS +# +# The Netwide Assembler is copyright (C) 1996 Simon Tatham and +# Julian Hall. All rights reserved. The software is +# redistributable under the licence given in the file "Licence" +# distributed in the NASM archive. +# +# This Makefile is designed to build NASM using a 16-bit DOS C +# compiler such as Microsoft C, provided you have a compatible MAKE. +# It's been tested with Microsoft C 5.x plus Borland Make. (Yes, I +# know it's silly, but...) + +CC = cl /c /O /AL /Gt +QCL = qcl /c /AL /Gt +LINK = cl +LINKFLAGS = +LIBRARIES = +EXE = .exe# +OBJ = obj# + +.c.$(OBJ): + $(CC) $*.c + +NASMOBJS = nasm.$(OBJ) nasmlib.$(OBJ) float.$(OBJ) insnsa.$(OBJ) \ + assemble.$(OBJ) labels.$(OBJ) parser.$(OBJ) outform.$(OBJ) \ + outbin.$(OBJ) outaout.$(OBJ) outcoff.$(OBJ) outelf.$(OBJ) \ + outobj.$(OBJ) outas86.$(OBJ) outrdf.$(OBJ) outdbg.$(OBJ) \ + preproc.$(OBJ) listing.$(OBJ) eval.$(OBJ) + +NDISASMOBJS = ndisasm.$(OBJ) disasm.$(OBJ) sync.$(OBJ) nasmlib.$(OBJ) \ + insnsd.$(OBJ) + +all : nasm$(EXE) ndisasm$(EXE) + +# We have to have a horrible kludge here to get round the 128 character +# limit, as usual... +LINKOBJS = a*.obj e*.obj f*.obj insnsa.obj l*.obj na*.obj o*.obj p*.obj +nasm$(EXE): $(NASMOBJS) + cl /Fenasm.exe /F 4000 $(LINKOBJS) + +ndisasm$(EXE): $(NDISASMOBJS) + cl /Fendisasm.exe $(NDISASMOBJS) + +assemble.$(OBJ): assemble.c nasm.h assemble.h insns.h +disasm.$(OBJ): disasm.c nasm.h disasm.h sync.h insns.h names.c +eval.$(OBJ): eval.c eval.h nasm.h nasmlib.h +float.$(OBJ): float.c nasm.h +labels.$(OBJ): labels.c nasm.h nasmlib.h +listing.$(OBJ): listing.c nasm.h nasmlib.h listing.h +nasm.$(OBJ): nasm.c nasm.h nasmlib.h parser.h assemble.h labels.h \ + listing.h outform.h +nasmlib.$(OBJ): nasmlib.c nasm.h nasmlib.h +ndisasm.$(OBJ): ndisasm.c nasm.h sync.h disasm.h +outas86.$(OBJ): outas86.c nasm.h nasmlib.h +outaout.$(OBJ): outaout.c nasm.h nasmlib.h +outbin.$(OBJ): outbin.c nasm.h nasmlib.h +outcoff.$(OBJ): outcoff.c nasm.h nasmlib.h +outdbg.$(OBJ): outdbg.c nasm.h nasmlib.h +outelf.$(OBJ): outelf.c nasm.h nasmlib.h +outobj.$(OBJ): outobj.c nasm.h nasmlib.h +outrdf.$(OBJ): outrdf.c nasm.h nasmlib.h +outform.$(OBJ): outform.c outform.h nasm.h +parser.$(OBJ): parser.c nasm.h nasmlib.h parser.h float.h names.c +preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h nasmlib.h +sync.$(OBJ): sync.c sync.h + +# Another grotty hack: QC is less likely to run out of memory than +# CL proper; and we don't need any optimisation in these modules +# since they're just data. +insnsa.$(OBJ): insnsa.c nasm.h insns.h + $(QCL) insnsa.c +insnsd.$(OBJ): insnsd.c nasm.h insns.h + $(QCL) insnsd.c + +clean : + del *.obj + del nasm$(EXE) + del ndisasm$(EXE) diff --git a/Mkfiles/Makefile.lcc b/Mkfiles/Makefile.lcc new file mode 100644 index 0000000..1f6fdcb --- /dev/null +++ b/Mkfiles/Makefile.lcc @@ -0,0 +1,110 @@ +# host: windows nt/95 +# target: windows nt/95 +# Makefile for the Netwide Assembler +# +# The Netwide Assembler is copyright (C) 1996 Simon Tatham and +# Julian Hall. All rights reserved. The software is +# redistributable under the licence given in the file "Licence" +# distributed in the NASM archive. + +# makefile designed for lcc-win32 +# lcc-win32 is lcc (c compiler coded by guys from princeton uni) +# ported to win32 by jacob navia +# available at http://www.remcomp.com/lcc-win32/ + +CFLAGS = -c -O -g2 +CC = lcc.exe $(CFLAGS) +LFLAGS = -subsystem console -s +LD = lcclnk.exe $(LFLAGS) +OBJ = obj + +.c.${OBJ}: + $(CC) -o $@ $*.c + +NASM = nasm.${OBJ} nasmlib.${OBJ} float.${OBJ} insnsa.${OBJ} assemble.${OBJ} labels.${OBJ} \ + parser.${OBJ} outform.${OBJ} outbin.${OBJ} outaout.${OBJ} outcoff.${OBJ} outelf.${OBJ} \ + outobj.${OBJ} outas86.${OBJ} outrdf.${OBJ} outdbg.${OBJ} preproc.${OBJ} listing.${OBJ} \ + eval.${OBJ} + +NDISASM = ndisasm.${OBJ} disasm.${OBJ} sync.${OBJ} nasmlib.${OBJ} insnsd.${OBJ} + +all: nasm ndisasm + +# linker response files +# that may take long, too much spawning command.com :) +NASM.LNK: makefile.lcc + echo nasm.$(OBJ) > NASM.LNK + echo nasmlib.$(OBJ) >> NASM.LNK + echo eval.$(OBJ) >> NASM.LNK + echo float.$(OBJ) >> NASM.LNK + echo insnsa.$(OBJ) >> NASM.LNK + echo assemble.$(OBJ) >> NASM.LNK + echo labels.$(OBJ) >> NASM.LNK + echo listing.$(OBJ) >> NASM.LNK + echo parser.$(OBJ) >> NASM.LNK + echo preproc.$(OBJ) >> NASM.LNK + echo outform.$(OBJ) >> NASM.LNK + echo outbin.$(OBJ) >> NASM.LNK + echo outaout.$(OBJ) >> NASM.LNK + echo outcoff.$(OBJ) >> NASM.LNK + echo outelf.$(OBJ) >> NASM.LNK + echo outobj.$(OBJ) >> NASM.LNK + echo outas86.$(OBJ) >> NASM.LNK + echo outrdf.$(OBJ) >> NASM.LNK + echo outdbg.$(OBJ) >> NASM.LNK + +NDISASM.LNK: makefile.lcc + echo ndisasm.$(OBJ) > NDISASM.LNK + echo disasm.$(OBJ) >> NDISASM.LNK + echo sync.$(OBJ) >> NDISASM.LNK + echo nasmlib.$(OBJ) >> NDISASM.LNK + echo insnsd.$(OBJ) >> NDISASM.LNK + +nasm: $(NASM) nasm.lnk + $(LD) -o nasm.exe @nasm.lnk + +ndisasm: $(NDISASM) ndisasm.lnk + $(LD) -o ndisasm.exe @ndisasm.lnk + +assemble.${OBJ}: assemble.c nasm.h nasmlib.h assemble.h insns.h +disasm.${OBJ}: disasm.c nasm.h disasm.h sync.h insns.h names.c +eval.${OBJ}: eval.c eval.h nasm.h nasmlib.h +float.${OBJ}: float.c nasm.h +insnsa.${OBJ}: insnsa.c nasm.h insns.h +insnsd.${OBJ}: insnsd.c nasm.h insns.h +labels.${OBJ}: labels.c nasm.h nasmlib.h +listing.${OBJ}: listing.c nasm.h nasmlib.h listing.h +nasm.${OBJ}: nasm.c nasm.h nasmlib.h preproc.h parser.h assemble.h labels.h \ + outform.h listing.h +nasmlib.${OBJ}: nasmlib.c nasm.h nasmlib.h +ndisasm.${OBJ}: ndisasm.c nasm.h nasmlib.h sync.h disasm.h +outaout.${OBJ}: outaout.c nasm.h nasmlib.h outform.h +outas86.${OBJ}: outas86.c nasm.h nasmlib.h outform.h +outbin.${OBJ}: outbin.c nasm.h nasmlib.h outform.h +outcoff.${OBJ}: outcoff.c nasm.h nasmlib.h outform.h +outdbg.${OBJ}: outdbg.c nasm.h nasmlib.h outform.h +outelf.${OBJ}: outelf.c nasm.h nasmlib.h outform.h +outform.${OBJ}: outform.c outform.h nasm.h +outobj.${OBJ}: outobj.c nasm.h nasmlib.h outform.h +outrdf.${OBJ}: outrdf.c nasm.h nasmlib.h outform.h +parser.${OBJ}: parser.c nasm.h nasmlib.h parser.h float.h names.c +preproc.${OBJ}: preproc.c nasm.h nasmlib.h macros.c +sync.${OBJ}: sync.c sync.h + +# These two source files are automagically generated from a single +# instruction-table file by a Perl script. They're distributed, +# though, so it isn't necessary to have Perl just to recompile NASM +# from the distribution. + +insnsa.c insnsd.c: insns.dat insns.pl + perl insns.pl insns.dat + +# This source file is generated from the standard macros file +# `standard.mac' by another Perl script. Again, it's part of the +# standard distribution. + +macros.c: standard.mac macros.pl + perl macros.pl standard.mac + +clean: + rm -f *.${OBJ} nasm.exe ndisasm.exe diff --git a/Mkfiles/Makefile.sc b/Mkfiles/Makefile.sc new file mode 100644 index 0000000..b5d0e35 --- /dev/null +++ b/Mkfiles/Makefile.sc @@ -0,0 +1,114 @@ +# Makefile for the Netwide Assembler under 32-bit DOS(tm) +# +# The Netwide Assembler is copyright (C) 1996 Simon Tatham and +# Julian Hall. All rights reserved. The software is +# redistributable under the licence given in the file "Licence" +# distributed in the NASM archive. +# +# This Makefile is designed to build NASM using the 32-bit WIN32 C +# compiler Symantec(tm) C++ 7.5, provided you have a MAKE-utility +# that's compatible to SMAKE. + +CC = sc +CCFLAGS = -c -a1 -mx -Nc -w2 -w7 -o+time -5 +# -5 optimize for pentium (tm) +# -c compile only +# -o-all no optimizations (to avoid problems in disasm.c) +# -o+time optimize for speed +# -o+space optimize for size +# -A1 byte alignment for structures +# -mn compile for Win32 executable +# -mx compile for DOS386 (DOSX) executable +# -Nc create COMDAT records +# -w2 possible unattended assignment: off +# -w7 for loops with empty instruction-body + +LINK = link +LINKFLAGS = /noi /exet:DOSX +# /noignorecase all symbols are case-sensitive +# /exet:NT Exetype: NT (Win32) +# /exet:DOSX Exetype: DOSX (DOS32) +# /su:console Subsystem: Console (Console-App) + +LIBRARIES = +EXE = .exe +OBJ = obj + +.c.$(OBJ): + $(CC) $(CCFLAGS) $*.c + + +# +# modules needed for different programs +# + +NASMOBJS = nasm.$(OBJ) nasmlib.$(OBJ) float.$(OBJ) insnsa.$(OBJ) \ + assemble.$(OBJ) labels.$(OBJ) parser.$(OBJ) outform.$(OBJ) \ + outbin.$(OBJ) outaout.$(OBJ) outcoff.$(OBJ) outelf.$(OBJ) \ + outobj.$(OBJ) outas86.$(OBJ) outrdf.$(OBJ) outdbg.$(OBJ) \ + preproc.$(OBJ) listing.$(OBJ) eval.$(OBJ) + +NDISASMOBJS = ndisasm.$(OBJ) disasm.$(OBJ) sync.$(OBJ) nasmlib.$(OBJ) \ + insnsd.$(OBJ) + + +# +# programs to create +# + +all : nasm$(EXE) ndisasm$(EXE) + + +# +# We have to have a horrible kludge here to get round the 128 character +# limit, as usual... we'll simply use LNK-files :) +# +nasm$(EXE): $(NASMOBJS) + $(LINK) $(LINKFLAGS) @<< +cx.obj $(NASMOBJS) +nasm.exe +<< + +ndisasm$(EXE): $(NDISASMOBJS) + $(LINK) $(LINKFLAGS) @<< +cx.obj $(NDISASMOBJS) +ndisasm.exe +<< + + + +# +# modules for programs +# + +disasm.$(OBJ): disasm.c nasm.h disasm.h sync.h insns.h names.c +assemble.$(OBJ): assemble.c nasm.h assemble.h insns.h +eval.$(OBJ): eval.c nasm.h nasmlib.h eval.h +float.$(OBJ): float.c nasm.h +labels.$(OBJ): labels.c nasm.h nasmlib.h +listing.$(OBJ): listing.c nasm.h nasmlib.h listing.h +nasm.$(OBJ): nasm.c nasm.h nasmlib.h parser.h assemble.h labels.h \ + listing.h outform.h +nasmlib.$(OBJ): nasmlib.c nasm.h nasmlib.h +ndisasm.$(OBJ): ndisasm.c nasm.h sync.h disasm.h +outas86.$(OBJ): outas86.c nasm.h nasmlib.h +outaout.$(OBJ): outaout.c nasm.h nasmlib.h +outbin.$(OBJ): outbin.c nasm.h nasmlib.h +outcoff.$(OBJ): outcoff.c nasm.h nasmlib.h +outdbg.$(OBJ): outdbg.c nasm.h nasmlib.h +outelf.$(OBJ): outelf.c nasm.h nasmlib.h +outobj.$(OBJ): outobj.c nasm.h nasmlib.h +outrdf.$(OBJ): outrdf.c nasm.h nasmlib.h +outform.$(OBJ): outform.c outform.h nasm.h +parser.$(OBJ): parser.c nasm.h nasmlib.h parser.h float.h names.c +preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h nasmlib.h +sync.$(OBJ): sync.c sync.h +insnsa.$(OBJ): insnsa.c nasm.h insns.h +insnsd.$(OBJ): insnsd.c nasm.h insns.h + + + +clean : + del *.obj + del nasm$(EXE) + del ndisasm$(EXE) diff --git a/Mkfiles/Makefile.scw b/Mkfiles/Makefile.scw new file mode 100644 index 0000000..6953b46 --- /dev/null +++ b/Mkfiles/Makefile.scw @@ -0,0 +1,114 @@ +# Makefile for the Netwide Assembler under 32-bit Windows(tm) +# +# The Netwide Assembler is copyright (C) 1996 Simon Tatham and +# Julian Hall. All rights reserved. The software is +# redistributable under the licence given in the file "Licence" +# distributed in the NASM archive. +# +# This Makefile is designed to build NASM using the 32-bit WIN32 C +# compiler Symantec(tm) C++ 7.5, provided you have a MAKE-utility +# that's compatible to SMAKE. + +CC = sc +CCFLAGS = -c -a1 -mn -Nc -w2 -w7 -o+time -5 +# -5 optimize for pentium (tm) +# -c compile only +# -o-all no optimizations (to avoid problems in disasm.c) +# -o+time optimize for speed +# -o+space optimize for size +# -A1 byte alignment for structures +# -mn compile for Win32 executable +# -mx compile for DOS386 (DOSX) executable +# -Nc create COMDAT records +# -w2 possible unattended assignment: off +# -w7 for loops with empty instruction-body + +LINK = link +LINKFLAGS = /noi /exet:NT /su:console +# /noignorecase all symbols are case-sensitive +# /exet:NT Exetype: NT (Win32) +# /exet:DOSX Exetype: DOSX (DOS32) +# /su:console Subsystem: Console (Console-App) + +LIBRARIES = +EXE = .exe +OBJ = obj + +.c.$(OBJ): + $(CC) $(CCFLAGS) $*.c + + +# +# modules needed for different programs +# + +NASMOBJS = nasm.$(OBJ) nasmlib.$(OBJ) float.$(OBJ) insnsa.$(OBJ) \ + assemble.$(OBJ) labels.$(OBJ) parser.$(OBJ) outform.$(OBJ) \ + outbin.$(OBJ) outaout.$(OBJ) outcoff.$(OBJ) outelf.$(OBJ) \ + outobj.$(OBJ) outas86.$(OBJ) outrdf.$(OBJ) outdbg.$(OBJ) \ + preproc.$(OBJ) listing.$(OBJ) eval.$(OBJ) + +NDISASMOBJS = ndisasm.$(OBJ) disasm.$(OBJ) sync.$(OBJ) nasmlib.$(OBJ) \ + insnsd.$(OBJ) + + +# +# programs to create +# + +all : nasmw$(EXE) ndisasmw$(EXE) + + +# +# We have to have a horrible kludge here to get round the 128 character +# limit, as usual... we'll simply use LNK-files :) +# +nasmw$(EXE): $(NASMOBJS) + $(LINK) $(LINKFLAGS) @<< +$(NASMOBJS) +nasmw.exe; +<< + +ndisasmw$(EXE): $(NDISASMOBJS) + $(LINK) $(LINKFLAGS) @<< +$(NDISASMOBJS) +ndisasmw.exe; +<< + + + +# +# modules for programs +# + +disasm.$(OBJ): disasm.c nasm.h disasm.h sync.h insns.h names.c +assemble.$(OBJ): assemble.c nasm.h assemble.h insns.h +eval.$(OBJ): eval.c nasm.h nasmlib.h eval.h +float.$(OBJ): float.c nasm.h +labels.$(OBJ): labels.c nasm.h nasmlib.h +listing.$(OBJ): listing.c nasm.h nasmlib.h listing.h +nasm.$(OBJ): nasm.c nasm.h nasmlib.h parser.h assemble.h labels.h \ + listing.h outform.h +nasmlib.$(OBJ): nasmlib.c nasm.h nasmlib.h +ndisasm.$(OBJ): ndisasm.c nasm.h sync.h disasm.h +outas86.$(OBJ): outas86.c nasm.h nasmlib.h +outaout.$(OBJ): outaout.c nasm.h nasmlib.h +outbin.$(OBJ): outbin.c nasm.h nasmlib.h +outcoff.$(OBJ): outcoff.c nasm.h nasmlib.h +outdbg.$(OBJ): outdbg.c nasm.h nasmlib.h +outelf.$(OBJ): outelf.c nasm.h nasmlib.h +outobj.$(OBJ): outobj.c nasm.h nasmlib.h +outrdf.$(OBJ): outrdf.c nasm.h nasmlib.h +outform.$(OBJ): outform.c outform.h nasm.h +parser.$(OBJ): parser.c nasm.h nasmlib.h parser.h float.h names.c +preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h nasmlib.h +sync.$(OBJ): sync.c sync.h +insnsa.$(OBJ): insnsa.c nasm.h insns.h +insnsd.$(OBJ): insnsd.c nasm.h insns.h + + + +clean : + del *.obj + del nasmw$(EXE) + del ndisasmw$(EXE) diff --git a/Mkfiles/Makefile.unx b/Mkfiles/Makefile.unx new file mode 100644 index 0000000..f74d544 --- /dev/null +++ b/Mkfiles/Makefile.unx @@ -0,0 +1,97 @@ +# Unix fall-back makefile for the Netwide Assembler. For use if +# `configure' fails to generate a workable Makefile. +# +# The Netwide Assembler is copyright (C) 1996 Simon Tatham and +# Julian Hall. All rights reserved. The software is +# redistributable under the licence given in the file "Licence" +# distributed in the NASM archive. + +# You may need to adjust these values. + +prefix = /usr/local +CC = cc +CFLAGS = -O -I. + +# You _shouldn't_ need to adjust anything below this line. + +exec_prefix = ${prefix} +bindir = ${exec_prefix}/bin +mandir = ${prefix}/man + +INSTALL = install -c +INSTALL_PROGRAM = ${INSTALL} +INSTALL_DATA = ${INSTALL} -m 644 + +.c.o: + $(CC) -c $(CFLAGS) $*.c + +NASM = nasm.o nasmlib.o float.o insnsa.o assemble.o labels.o \ + parser.o outform.o outbin.o outaout.o outcoff.o outelf.o \ + outobj.o outas86.o outrdf.o outdbg.o preproc.o listing.o \ + eval.o + +NDISASM = ndisasm.o disasm.o sync.o nasmlib.o insnsd.o + +all: nasm ndisasm + +nasm: $(NASM) + $(CC) -o nasm $(NASM) + +ndisasm: $(NDISASM) + $(CC) -o ndisasm $(NDISASM) + +assemble.o: assemble.c nasm.h nasmlib.h assemble.h insns.h +disasm.o: disasm.c nasm.h disasm.h sync.h insns.h names.c +eval.o: eval.c eval.h nasm.h nasmlib.h +float.o: float.c nasm.h +insnsa.o: insnsa.c nasm.h insns.h +insnsd.o: insnsd.c nasm.h insns.h +labels.o: labels.c nasm.h nasmlib.h +listing.o: listing.c nasm.h nasmlib.h listing.h +nasm.o: nasm.c nasm.h nasmlib.h preproc.h parser.h assemble.h labels.h \ + outform.h listing.h +nasmlib.o: nasmlib.c nasm.h nasmlib.h +ndisasm.o: ndisasm.c nasm.h nasmlib.h sync.h disasm.h +outaout.o: outaout.c nasm.h nasmlib.h outform.h +outas86.o: outas86.c nasm.h nasmlib.h outform.h +outbin.o: outbin.c nasm.h nasmlib.h outform.h +outcoff.o: outcoff.c nasm.h nasmlib.h outform.h +outdbg.o: outdbg.c nasm.h nasmlib.h outform.h +outelf.o: outelf.c nasm.h nasmlib.h outform.h +outform.o: outform.c outform.h nasm.h +outobj.o: outobj.c nasm.h nasmlib.h outform.h +outrdf.o: outrdf.c nasm.h nasmlib.h outform.h +parser.o: parser.c nasm.h nasmlib.h parser.h float.h names.c +preproc.o: preproc.c nasm.h nasmlib.h macros.c +sync.o: sync.c sync.h + +# These two source files are automagically generated from a single +# instruction-table file by a Perl script. They're distributed, +# though, so it isn't necessary to have Perl just to recompile NASM +# from the distribution. + +insnsa.c insnsd.c: insns.dat insns.pl + perl insns.pl insns.dat + +# This source file is generated from the standard macros file +# `standard.mac' by another Perl script. Again, it's part of the +# standard distribution. + +macros.c: standard.mac macros.pl + perl macros.pl standard.mac + +install: nasm ndisasm + $(INSTALL_PROGRAM) nasm $(bindir)/nasm + $(INSTALL_PROGRAM) ndisasm $(bindir)/ndisasm + $(INSTALL_DATA) nasm.1 $(mandir)/man1/nasm.1 + $(INSTALL_DATA) ndisasm.1 $(mandir)/man1/ndisasm.1 + +clean: + rm -f *.o nasm ndisasm + $(MAKE) -C rdoff clean + +rdf: + $(MAKE) -C rdoff + +rdf_install install_rdf: + $(MAKE) -C rdoff install diff --git a/Mkfiles/Makefile.vc b/Mkfiles/Makefile.vc new file mode 100644 index 0000000..80beba4 --- /dev/null +++ b/Mkfiles/Makefile.vc @@ -0,0 +1,77 @@ +# Makefile for the Netwide Assembler under Win32 +# +# The Netwide Assembler is copyright (C) 1996 Simon Tatham and +# Julian Hall. All rights reserved. The software is +# redistributable under the licence given in the file "Licence" +# distributed in the NASM archive. +# +# This Makefile is designed to build NASM as a Win32 command- +# line executable. It's been tested with Visual C++ 1.10. + +CC = cl /c /O +QCL = cl /c +LINK = cl +LINKFLAGS = +LIBRARIES = +EXE = .exe# +OBJ = obj# +SUFFIX = w# # by default, this makefile produces nasmw.exe and ndisasmw.exe + +.c.$(OBJ): + $(CC) $*.c + +NASMOBJS = nasm.$(OBJ) nasmlib.$(OBJ) float.$(OBJ) insnsa.$(OBJ) \ + assemble.$(OBJ) labels.$(OBJ) parser.$(OBJ) outform.$(OBJ) \ + outbin.$(OBJ) outaout.$(OBJ) outcoff.$(OBJ) outelf.$(OBJ) \ + outobj.$(OBJ) outas86.$(OBJ) outrdf.$(OBJ) outdbg.$(OBJ) \ + preproc.$(OBJ) listing.$(OBJ) eval.$(OBJ) + +NDISASMOBJS = ndisasm.$(OBJ) disasm.$(OBJ) sync.$(OBJ) nasmlib.$(OBJ) \ + insnsd.$(OBJ) + +all : nasm$(SUFFIX)$(EXE) ndisasm$(SUFFIX)$(EXE) + +# We have to have a horrible kludge here to get round the 128 character +# limit, as usual... +LINKOBJS = a*.obj e*.obj f*.obj insnsa.obj l*.obj na*.obj o*.obj p*.obj +nasm$(SUFFIX)$(EXE): $(NASMOBJS) + cl /Fenasm$(SUFFIX).exe $(LINKOBJS) + +ndisasm$(SUFFIX)$(EXE): $(NDISASMOBJS) + cl /Fendisasm$(SUFFIX).exe $(NDISASMOBJS) + +assemble.$(OBJ): assemble.c nasm.h assemble.h insns.h +disasm.$(OBJ): disasm.c nasm.h disasm.h sync.h insns.h names.c +eval.$(OBJ): eval.c nasm.h nasmlib.h eval.h +float.$(OBJ): float.c nasm.h +labels.$(OBJ): labels.c nasm.h nasmlib.h +listing.$(OBJ): listing.c nasm.h nasmlib.h listing.h +nasm.$(OBJ): nasm.c nasm.h nasmlib.h parser.h assemble.h labels.h \ + listing.h outform.h +nasmlib.$(OBJ): nasmlib.c nasm.h nasmlib.h +ndisasm.$(OBJ): ndisasm.c nasm.h sync.h disasm.h +outas86.$(OBJ): outas86.c nasm.h nasmlib.h +outaout.$(OBJ): outaout.c nasm.h nasmlib.h +outbin.$(OBJ): outbin.c nasm.h nasmlib.h +outcoff.$(OBJ): outcoff.c nasm.h nasmlib.h +outdbg.$(OBJ): outdbg.c nasm.h nasmlib.h +outelf.$(OBJ): outelf.c nasm.h nasmlib.h +outobj.$(OBJ): outobj.c nasm.h nasmlib.h +outrdf.$(OBJ): outrdf.c nasm.h nasmlib.h +outform.$(OBJ): outform.c outform.h nasm.h +parser.$(OBJ): parser.c nasm.h nasmlib.h parser.h float.h names.c +preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h nasmlib.h +sync.$(OBJ): sync.c sync.h + +# Another grotty hack: QC is less likely to run out of memory than +# CL proper; and we don't need any optimisation in these modules +# since they're just data. +insnsa.$(OBJ): insnsa.c nasm.h insns.h + $(QCL) insnsa.c +insnsd.$(OBJ): insnsd.c nasm.h insns.h + $(QCL) insnsd.c + +clean : + del *.obj + del nasm$(SUFFIX)$(EXE) + del ndisasm$(SUFFIX)$(EXE) diff --git a/Mkfiles/Makefile.wc b/Mkfiles/Makefile.wc new file mode 100644 index 0000000..6f0d48a --- /dev/null +++ b/Mkfiles/Makefile.wc @@ -0,0 +1,119 @@ +# host: watcom c (dos, windows, os/2) +# target: dos 32bit +# Makefile for the Netwide Assembler +# +# The Netwide Assembler is copyright (C) 1996 Simon Tatham and +# Julian Hall. All rights reserved. The software is +# redistributable under the licence given in the file "Licence" +# distributed in the NASM archive. +# +# this makefile is designed for use with dos version of Watcom C 32 bit +# compiler, it generates dos 32 bit executable +# it has been tested with +# borland make.exe 4.0 +# microsoft nmake.exe 1.3 +# watcom wmake.exe /u 3.2 (remember about that /u option :) +# +# all this should compile under watcom c 9.5, 10.0, 10.5 and 10.6 +# i dont know about 11.0 because i didnt yet see it + +CFLAGS = -fpi -mf -3r -s -bt=dos -oilrt +# -fpi inline math + emulation +# -mf flat model (isnt it by default :) +# -3r 386 register calling (does everyone have pentium nowadays ?) +# -s no stack checking +# -bt=dos target system - dos +# -oilrt mega cool optimization :) + +CC = wcc386.exe $(CFLAGS) +# compiler +LFLAGS = SYSTEM dos4g +# linker flags +# target system - dos4gw +LD = wlink.exe $(LFLAGS) +# linker +OBJ = obj +# whatever + +.c.$(OBJ): + $(CC) $*.c + +NASMOBJS = nasm.$(OBJ) nasmlib.$(OBJ) float.$(OBJ) insnsa.$(OBJ) \ + assemble.$(OBJ) labels.$(OBJ) parser.$(OBJ) outform.$(OBJ) \ + outbin.$(OBJ) outaout.$(OBJ) outcoff.$(OBJ) outelf.$(OBJ) \ + outobj.$(OBJ) outas86.$(OBJ) outrdf.$(OBJ) outdbg.$(OBJ) \ + preproc.$(OBJ) listing.$(OBJ) eval.$(OBJ) + +NDISASMOBJS = ndisasm.$(OBJ) disasm.$(OBJ) sync.$(OBJ) nasmlib.$(OBJ) \ + insnsd.$(OBJ) + +all : nasm.exe ndisasm.exe + echo This is dummy command for dumb make + +nasm.exe: $(NASMOBJS) NASM.LNK + $(LD) @NASM.LNK + +ndisasm.exe: $(NDISASMOBJS) NDISASM.LNK + $(LD) @NDISASM.LNK + +# linker response files +# that may take long, too much spawning command.com :) +NASM.LNK: makefile.wc + echo N nasm.exe > NASM.LNK + echo F nasm.$(OBJ) >> NASM.LNK + echo F nasmlib.$(OBJ) >> NASM.LNK + echo F eval.$(OBJ) >> NASM.LNK + echo F float.$(OBJ) >> NASM.LNK + echo F insnsa.$(OBJ) >> NASM.LNK + echo F assemble.$(OBJ) >> NASM.LNK + echo F labels.$(OBJ) >> NASM.LNK + echo F listing.$(OBJ) >> NASM.LNK + echo F parser.$(OBJ) >> NASM.LNK + echo F preproc.$(OBJ) >> NASM.LNK + echo F outform.$(OBJ) >> NASM.LNK + echo F outbin.$(OBJ) >> NASM.LNK + echo F outaout.$(OBJ) >> NASM.LNK + echo F outcoff.$(OBJ) >> NASM.LNK + echo F outelf.$(OBJ) >> NASM.LNK + echo F outobj.$(OBJ) >> NASM.LNK + echo F outas86.$(OBJ) >> NASM.LNK + echo F outrdf.$(OBJ) >> NASM.LNK + echo F outdbg.$(OBJ) >> NASM.LNK + +NDISASM.LNK: makefile.wc + echo N ndisasm.exe > NDISASM.LNK + echo F ndisasm.$(OBJ) >> NDISASM.LNK + echo F disasm.$(OBJ) >> NDISASM.LNK + echo F sync.$(OBJ) >> NDISASM.LNK + echo F nasmlib.$(OBJ) >> NDISASM.LNK + echo F insnsd.$(OBJ) >> NDISASM.LNK + +assemble.$(OBJ): assemble.c nasm.h assemble.h insns.h +disasm.$(OBJ): disasm.c nasm.h disasm.h sync.h insns.h names.c +eval.$(OBJ): eval.c nasm.h nasmlib.h eval.h +float.$(OBJ): float.c nasm.h +insnsa.$(OBJ): insnsa.c nasm.h insns.h +insnsd.$(OBJ): insnsd.c nasm.h insns.h +labels.$(OBJ): labels.c nasm.h nasmlib.h +listing.$(OBJ): listing.c nasm.h nasmlib.h listing.h +nasm.$(OBJ): nasm.c nasm.h nasmlib.h parser.h assemble.h labels.h \ + listing.h outform.h +nasmlib.$(OBJ): nasmlib.c nasm.h nasmlib.h +ndisasm.$(OBJ): ndisasm.c nasm.h sync.h disasm.h +outas86.$(OBJ): outas86.c nasm.h nasmlib.h +outaout.$(OBJ): outaout.c nasm.h nasmlib.h +outbin.$(OBJ): outbin.c nasm.h nasmlib.h +outcoff.$(OBJ): outcoff.c nasm.h nasmlib.h +outelf.$(OBJ): outelf.c nasm.h nasmlib.h +outobj.$(OBJ): outobj.c nasm.h nasmlib.h +outform.$(OBJ): outform.c outform.h nasm.h +parser.$(OBJ): parser.c nasm.h nasmlib.h parser.h float.h names.c +preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h nasmlib.h +sync.$(OBJ): sync.c sync.h + +clean : + del *.obj + del *.lnk + del nasm.exe + del ndisasm.exe + diff --git a/Mkfiles/Makefile.wcw b/Mkfiles/Makefile.wcw new file mode 100644 index 0000000..d592c69 --- /dev/null +++ b/Mkfiles/Makefile.wcw @@ -0,0 +1,119 @@ +# host: watcom c (dos, windows, os/2) +# target: windows nt character mode executable +# Makefile for the Netwide Assembler +# +# The Netwide Assembler is copyright (C) 1996 Simon Tatham and +# Julian Hall. All rights reserved. The software is +# redistributable under the licence given in the file "Licence" +# distributed in the NASM archive. +# +# this makefile is designed for use with of Watcom C 32 bit compiler +# it generates win32 console (character mode) executable +# it has been tested with +# borland make.exe 4.0 +# microsoft nmake.exe 1.3 +# watcom wmake.exe /u 3.2 (remember about that /u option :) +# +# all this should compile under watcom c 9.5, 10.0, 10.5 and 10.6 +# i dont know about 11.0 because i didnt yet see it + +CFLAGS = -fpi -mf -3r -s -bt=dos -oilrt +# -fpi inline math + emulation +# -mf flat model (isnt it by default :) +# -3r 386 register calling (does everyone have pentium nowadays ?) +# -s no stack checking +# -bt=nt target system - windows nt +# -oilrt mega cool optimization :) + +CC = wcc386.exe $(CFLAGS) +# compiler +LFLAGS = SYSTEM nt +# linker flags +# target system nt - character mode +LD = wlink.exe $(LFLAGS) +# linker +OBJ = obj +# whatever + +.c.$(OBJ): + $(CC) $*.c + +NASMOBJS = nasm.$(OBJ) nasmlib.$(OBJ) float.$(OBJ) insnsa.$(OBJ) \ + assemble.$(OBJ) labels.$(OBJ) parser.$(OBJ) outform.$(OBJ) \ + outbin.$(OBJ) outaout.$(OBJ) outcoff.$(OBJ) outelf.$(OBJ) \ + outobj.$(OBJ) outas86.$(OBJ) outrdf.$(OBJ) outdbg.$(OBJ) \ + preproc.$(OBJ) listing.$(OBJ) eval.$(OBJ) + +NDISASMOBJS = ndisasm.$(OBJ) disasm.$(OBJ) sync.$(OBJ) nasmlib.$(OBJ) \ + insnsd.$(OBJ) + +all : nasm.exe ndisasm.exe + echo This is dummy command for dumb make + +nasm.exe: $(NASMOBJS) NASM.LNK + $(LD) @NASM.LNK + +ndisasm.exe: $(NDISASMOBJS) NDISASM.LNK + $(LD) @NDISASM.LNK + +# linker response files +# that may take long, too much spawning command.com :) +NASM.LNK: makefile.wcw + echo N nasm.exe > NASM.LNK + echo F nasm.$(OBJ) >> NASM.LNK + echo F nasmlib.$(OBJ) >> NASM.LNK + echo F eval.$(OBJ) >> NASM.LNK + echo F float.$(OBJ) >> NASM.LNK + echo F insnsa.$(OBJ) >> NASM.LNK + echo F assemble.$(OBJ) >> NASM.LNK + echo F labels.$(OBJ) >> NASM.LNK + echo F listing.$(OBJ) >> NASM.LNK + echo F parser.$(OBJ) >> NASM.LNK + echo F preproc.$(OBJ) >> NASM.LNK + echo F outform.$(OBJ) >> NASM.LNK + echo F outbin.$(OBJ) >> NASM.LNK + echo F outaout.$(OBJ) >> NASM.LNK + echo F outcoff.$(OBJ) >> NASM.LNK + echo F outelf.$(OBJ) >> NASM.LNK + echo F outobj.$(OBJ) >> NASM.LNK + echo F outas86.$(OBJ) >> NASM.LNK + echo F outrdf.$(OBJ) >> NASM.LNK + echo F outdbg.$(OBJ) >> NASM.LNK + +NDISASM.LNK: makefile.wcw + echo N ndisasm.exe > NDISASM.LNK + echo F ndisasm.$(OBJ) >> NDISASM.LNK + echo F disasm.$(OBJ) >> NDISASM.LNK + echo F sync.$(OBJ) >> NDISASM.LNK + echo F nasmlib.$(OBJ) >> NDISASM.LNK + echo F insnsd.$(OBJ) >> NDISASM.LNK + +assemble.$(OBJ): assemble.c nasm.h assemble.h insns.h +disasm.$(OBJ): disasm.c nasm.h disasm.h sync.h insns.h names.c +eval.$(OBJ): eval.c nasm.h nasmlib.h eval.h +float.$(OBJ): float.c nasm.h +insnsa.$(OBJ): insnsa.c nasm.h insns.h +insnsd.$(OBJ): insnsd.c nasm.h insns.h +labels.$(OBJ): labels.c nasm.h nasmlib.h +listing.$(OBJ): listing.c nasm.h nasmlib.h listing.h +nasm.$(OBJ): nasm.c nasm.h nasmlib.h parser.h assemble.h labels.h \ + listing.h outform.h +nasmlib.$(OBJ): nasmlib.c nasm.h nasmlib.h +ndisasm.$(OBJ): ndisasm.c nasm.h sync.h disasm.h +outas86.$(OBJ): outas86.c nasm.h nasmlib.h +outaout.$(OBJ): outaout.c nasm.h nasmlib.h +outbin.$(OBJ): outbin.c nasm.h nasmlib.h +outcoff.$(OBJ): outcoff.c nasm.h nasmlib.h +outelf.$(OBJ): outelf.c nasm.h nasmlib.h +outobj.$(OBJ): outobj.c nasm.h nasmlib.h +outform.$(OBJ): outform.c outform.h nasm.h +parser.$(OBJ): parser.c nasm.h nasmlib.h parser.h float.h names.c +preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h nasmlib.h +sync.$(OBJ): sync.c sync.h + +clean : + del *.obj + del *.lnk + del nasm.exe + del ndisasm.exe + |