From 7f588e0e4c8bcc651396e9334f8fe76ff3adabaa Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Fri, 10 May 2002 00:29:32 +0000 Subject: [PATCH] Makefile work: Add working 16-bit DOS variants (Borland C++ 3.1, MSC 7), remove a file that seems to be beyond rescue, update the README file to be a bit more informative. --- Mkfiles/Makefile.bc2 | 242 --------------------------------------------------- Mkfiles/Makefile.bc3 | 196 +++++++++++++++++++++++++++++++++++++++++ Mkfiles/Makefile.ms7 | 149 +++++++++++++++++++++++++++++++ Mkfiles/README | 29 +++++- 4 files changed, 373 insertions(+), 243 deletions(-) delete mode 100644 Mkfiles/Makefile.bc2 create mode 100644 Mkfiles/Makefile.bc3 create mode 100644 Mkfiles/Makefile.ms7 diff --git a/Mkfiles/Makefile.bc2 b/Mkfiles/Makefile.bc2 deleted file mode 100644 index f45457e..0000000 --- a/Mkfiles/Makefile.bc2 +++ /dev/null @@ -1,242 +0,0 @@ -# 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 seperate 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) $(OBJD)outrdf2.$(OBJ) \ - $(OBJD)outieee.$(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 version.h insnsi.h assemble.h insns.h - $(NASM_ASM) - -$(OBJD)float.$(OBJ): float.c nasm.h version.h insnsi.h - $(NASM_ASM) - -$(OBJD)labels.$(OBJ): labels.c nasm.h version.h insnsi.h nasmlib.h - $(NASM_ASM) - -$(OBJD)listing.$(OBJ): listing.c nasm.h version.h insnsi.h nasmlib.h listing.h - $(NASM_ASM) - -$(OBJD)eval.$(OBJ): eval.c nasm.h version.h insnsi.h nasmlib.h eval.h - $(NASM_ASM) - -$(OBJD)nasm.$(OBJ): nasm.c nasm.h version.h insnsi.h nasmlib.h parser.h assemble.h labels.h \ - listing.h outform.h - $(NASM_ASM) - -$(OBJD)nasmlib.$(OBJ): nasmlib.c nasm.h version.h insnsi.h nasmlib.h names.c insnsn.c - $(NASM_ASM) - -$(OBJD)parser.$(OBJ): parser.c nasm.h version.h insnsi.h nasmlib.h parser.h float.h names.c insnsn.c - $(NASM_ASM) - -$(OBJD)preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h version.h insnsi.h nasmlib.h - $(NASM_ASM) - -$(OBJD)insnsa.$(OBJ): insnsa.c nasm.h version.h insnsi.h insns.h - $(NASM_ASM) - -################################################################ -# Dependencies for all of NDISASM's obj files - -$(OBJD)disasm.$(OBJ): disasm.c nasm.h version.h insnsi.h disasm.h sync.h insns.h names.c insnsn.c - $(DASM_ASM) - -$(OBJD)ndisasm.$(OBJ): ndisasm.c nasm.h version.h insnsi.h sync.h disasm.h - $(DASM_ASM) - -$(OBJD)sync.$(OBJ): sync.c sync.h - $(DASM_ASM) - -$(OBJD)insnsd.$(OBJ): insnsd.c nasm.h version.h insnsi.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 version.h insnsi.h nasmlib.h - $(CC) $(DCCFLAGS) -o$(OBJD)nasmlibd.obj nasmlib.c - -################################################################ -# Dependencies for all of the output format's OBJ files - -$(OBJD)outas86.$(OBJ): output/outas86.c nasm.h version.h insnsi.h nasmlib.h - $(NASM_ASM) - -$(OBJD)outaout.$(OBJ): output/outaout.c nasm.h version.h insnsi.h nasmlib.h - $(NASM_ASM) - -$(OBJD)outbin.$(OBJ): output/outbin.c nasm.h version.h insnsi.h nasmlib.h - $(NASM_ASM) - -$(OBJD)outcoff.$(OBJ): output/outcoff.c nasm.h version.h insnsi.h nasmlib.h - $(NASM_ASM) - -$(OBJD)outdbg.$(OBJ): output/outdbg.c nasm.h version.h insnsi.h nasmlib.h - $(NASM_ASM) - -$(OBJD)outelf.$(OBJ): output/outelf.c nasm.h version.h insnsi.h nasmlib.h - $(NASM_ASM) - -$(OBJD)outobj.$(OBJ): output/outobj.c nasm.h version.h insnsi.h nasmlib.h - $(NASM_ASM) - -$(OBJD)outrdf2.$(OBJ): output/outrdf2.c nasm.h version.h insnsi.h nasmlib.h - $(NASM_ASM) - -$(OBJD)outieee.$(OBJ): output/outieee.c nasm.h version.h insnsi.h nasmlib.h - $(NASM_ASM) - -$(OBJD)outform.$(OBJ): outform.c outform.h nasm.h version.h insnsi.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 --01/27/97 diff --git a/Mkfiles/Makefile.bc3 b/Mkfiles/Makefile.bc3 new file mode 100644 index 0000000..b7f4932 --- /dev/null +++ b/Mkfiles/Makefile.bc3 @@ -0,0 +1,196 @@ +# 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. +# +# 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. +# +# This Makefile was updated with NASM 0.98.31, and could compile that +# version correctly using Borland C++ 3.1 under DOS. +# + +CC = bcc #compiler +#compiler flags +CCFLAGS = -d -c -O1 -mh -DOF_ONLY -DOF_BIN -DOF_OBJ -DOF_WIN32 -DOF_AS86 + # -d = merge dupicate strings + # -c = compile only + # -O1 = optimise for size + # -mh = model huge + # -n = put the OBJ files in the diectory given. + +LINKFLAGS = -d -mh + +LIBS = #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 +LIB = lib #LIB file extension + +# Compilation command line +NASM_ASM=$(CC) $(CCFLAGS) -o$*.$(OBJ) $*.c + +################################################################ +#The OBJ files that NASM is dependent on + +NASMOBJS = nasm.$(OBJ) nasmlib.$(OBJ) float.$(OBJ) \ + insnsa.$(OBJ) assemble.$(OBJ) labels.$(OBJ) \ + parser.$(OBJ) outform.$(OBJ) preproc.$(OBJ) \ + listing.$(OBJ) eval.$(OBJ) + +################################################################ +#The OBJ files that NDISASM is dependent on + +NDISASMOBJS = ndisasm.$(OBJ) disasm.$(OBJ) sync.$(OBJ) \ + nasmlib.$(OBJ) insnsd.$(OBJ) + +################################################################ +# The OBJ file for the output formats we want to compile in. +# It doesn't make sense for 16-bit MS-DOS to include all formats. + +OUTOBJ= output\\outbin.$(OBJ) output\\outaout.$(OBJ) output\\outcoff.$(OBJ) \ + output\\outelf.$(OBJ) output\\outobj.$(OBJ) output\\outas86.$(OBJ) \ + output\\outrdf.$(OBJ) output\\outdbg.$(OBJ) output\\outrdf2.$(OBJ) \ + output\\outieee.$(OBJ) + + +################################################################ +# Build everything + +all : nasm$(EXE) ndisasm$(EXE) + +################################################################ +# NASM, NDISASM link. The &&!...! construct in Borland Make +# creates a temporary file and inserts its name on the command +# line. It works around the DOS 127-character command line +# limit. + +nasm$(EXE): $(NASMOBJS) output\\out.lib + $(CC) $(LINKFLAGS) -onasm$(EXE) @&&! +$(NASMOBJS) +output\\out.lib +! + +ndisasm$(EXE): $(NDISASMOBJS) + $(CC) $(LINKFLAGS) -ondisasm$(EXE) @&&! +$(NDISASMOBJS) +! + +################################################################ +# Dependencies for all of NASM's obj files + +assemble.$(OBJ): assemble.c nasm.h version.h insnsi.h assemble.h insns.h + $(NASM_ASM) + +float.$(OBJ): float.c nasm.h version.h insnsi.h + $(NASM_ASM) + +labels.$(OBJ): labels.c nasm.h version.h insnsi.h nasmlib.h + $(NASM_ASM) + +listing.$(OBJ): listing.c nasm.h version.h insnsi.h nasmlib.h listing.h + $(NASM_ASM) + +eval.$(OBJ): eval.c nasm.h version.h insnsi.h nasmlib.h eval.h + $(NASM_ASM) + +nasm.$(OBJ): nasm.c nasm.h version.h insnsi.h nasmlib.h parser.h assemble.h labels.h \ + listing.h outform.h + $(NASM_ASM) + +nasmlib.$(OBJ): nasmlib.c nasm.h version.h insnsi.h nasmlib.h names.c insnsn.c + $(NASM_ASM) + +parser.$(OBJ): parser.c nasm.h version.h insnsi.h nasmlib.h parser.h float.h names.c insnsn.c + $(NASM_ASM) + +preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h version.h insnsi.h nasmlib.h + $(NASM_ASM) + +insnsa.$(OBJ): insnsa.c nasm.h version.h insnsi.h insns.h + $(NASM_ASM) + +################################################################ +# Dependencies for all of NDISASM's obj files + +disasm.$(OBJ): disasm.c nasm.h version.h insnsi.h disasm.h sync.h insns.h names.c insnsn.c + $(NASM_ASM) + +ndisasm.$(OBJ): ndisasm.c nasm.h version.h insnsi.h sync.h disasm.h + $(NASM_ASM) + +sync.$(OBJ): sync.c sync.h + $(NASM_ASM) + +insnsd.$(OBJ): insnsd.c nasm.h version.h insnsi.h insns.h + $(NASM_ASM) + +################################################################ +# Build the output formats as a library +# The & ... $? construct tells Borland Make to repeat for all +# out of date dependencies +output\\out.$(LIB): $(OUTOBJ) + -del output\\out.$(LIB) + for %a in (output\\*.obj) do tlib /C output\\out.$(LIB) +%a + +################################################################ +# Dependencies for all of the output format's OBJ files + +output\\outas86.$(OBJ): output\\outas86.c nasm.h version.h insnsi.h nasmlib.h + $(NASM_ASM) + +output\\outaout.$(OBJ): output\\outaout.c nasm.h version.h insnsi.h nasmlib.h + $(NASM_ASM) + +output\\outbin.$(OBJ): output\\outbin.c nasm.h version.h insnsi.h nasmlib.h + $(NASM_ASM) + +output\\outcoff.$(OBJ): output\\outcoff.c nasm.h version.h insnsi.h nasmlib.h + $(NASM_ASM) + +output\\outdbg.$(OBJ): output\\outdbg.c nasm.h version.h insnsi.h nasmlib.h + $(NASM_ASM) + +output\\outelf.$(OBJ): output\\outelf.c nasm.h version.h insnsi.h nasmlib.h + $(NASM_ASM) + +output\\outobj.$(OBJ): output\\outobj.c nasm.h version.h insnsi.h nasmlib.h + $(NASM_ASM) + +output\\outrdf.$(OBJ): output\\outrdf.c nasm.h version.h insnsi.h nasmlib.h + $(NASM_ASM) + +output\\outrdf2.$(OBJ): output\\outrdf2.c nasm.h version.h insnsi.h nasmlib.h + $(NASM_ASM) + +output\\outieee.$(OBJ): output\\outieee.c nasm.h version.h insnsi.h nasmlib.h + $(NASM_ASM) + +outform.$(OBJ): outform.c outform.h nasm.h version.h insnsi.h + $(NASM_ASM) + +################################################################ +# A quick way to delete the OBJ files as well as the binaries. + +clean : + -del *.$(OBJ) + -del output\\*.$(OBJ) + -del output\\out.$(LIB) + -del nasm$(EXE) + -del ndisasm$(EXE) diff --git a/Mkfiles/Makefile.ms7 b/Mkfiles/Makefile.ms7 new file mode 100644 index 0000000..edb2570 --- /dev/null +++ b/Mkfiles/Makefile.ms7 @@ -0,0 +1,149 @@ +# 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...) + +# update: MSC 5.1 will not compile 'nasmlib.c' (arg lists don't match) +# MSC 6.00A will not compile 'insnsa.c' (qcl is required) +# MSC 7.00 will compile all +# +# GNU software compiled by DJGPP is also required: +# +# grep 2.4 +# perl 5.6.1 +# +# Source and DOS/Windows binaries may be downloaded from: +# +# ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/ +# +# Compilation has been tested under Windows 98 & Windows 2000 +# MSC 7.00 & DJGPP applications require a DPMI interface, which is +# a part of MSC 7.00 under DOS. It is also a part of Windows. +# +# +# For a 16-bit compiler, we don't need all the formats +# +CONFIG = -DOF_ONLY -DOF_BIN -DOF_OBJ -DOF_WIN32 -DOF_AS86 + +#CC = cl /c /O /AL /Gt +# Compile for a 286, ain't nobody using an 8086 anymore +CC = cl /c /Oz /AL /Gt256 /G2 /I.. # MSC 7.00 + +#QCL = qcl /c /AL /Gt +QCL = $(CC) # MSC 7.00 + +LINK = link +LINKFLAGS = /F4000 /Fm +LIBRARIES = +EXE = .exe# +OBJ = obj# + +.c.$(OBJ): + $(CC) $(CONFIG) /Fo$@ $*.c + +NASMOBJS1 = nasm.$(OBJ) nasmlib.$(OBJ) float.$(OBJ) insnsa.$(OBJ) \ + assemble.$(OBJ) labels.$(OBJ) parser.$(OBJ) outform.$(OBJ) +NASMOBJS2 = output\outbin.$(OBJ) output\outaout.$(OBJ) output\outcoff.$(OBJ) +NASMOBJS3 = output\outelf.$(OBJ) output\outobj.$(OBJ) output\outas86.$(OBJ) +NASMOBJS4 = output\outrdf.$(OBJ) output\outrdf2.$(OBJ) output\outieee.$(OBJ) +NASMOBJS5 = output\outdbg.$(OBJ) 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... +LINKOBJS = a*.obj e*.obj f*.obj insnsa.obj l*.obj na*.obj o*.obj p*.obj +nasm$(EXE): $(NASMOBJS) + echo $(NASMOBJS1) + >foo + echo $(NASMOBJS2) + >>foo + echo $(NASMOBJS3) + >>foo + echo $(NASMOBJS4) + >>foo + echo $(NASMOBJS5) >> foo + $(LINK) /st:4096 @foo,nasm; + +ndisasm$(EXE): $(NDISASMOBJS) + $(LINK) $(NDISASMOBJS), ndisasm; + +output\nasm.h: nasm.h + copy nasm.h output + +output\insnsi.h: insnsi.h + copy insnsi.h output + +output\nasmlib.h: nasmlib.h + copy nasmlib.h output + +output\outform.h: outform.h + copy outform.h output + + +assemble.$(OBJ): assemble.c nasm.h insnsi.h assemble.h insns.h +disasm.$(OBJ): disasm.c nasm.h insnsi.h disasm.h sync.h insns.h names.c insnsn.c +eval.$(OBJ): eval.c eval.h nasm.h insnsi.h nasmlib.h +float.$(OBJ): float.c nasm.h insnsi.h +labels.$(OBJ): labels.c nasm.h insnsi.h nasmlib.h +listing.$(OBJ): listing.c nasm.h insnsi.h nasmlib.h listing.h +nasm.$(OBJ): nasm.c nasm.h insnsi.h nasmlib.h parser.h assemble.h labels.h \ + listing.h outform.h +nasmlib.$(OBJ): nasmlib.c nasm.h insnsi.h nasmlib.h names.c insnsn.c +ndisasm.$(OBJ): ndisasm.c nasm.h insnsi.h sync.h disasm.h +outform.$(OBJ): outform.c outform.h nasm.h insnsi.h +output\outas86.$(OBJ): output\outas86.c output\nasm.h output\insnsi.h output\nasmlib.h output\outform.h +output\outaout.$(OBJ): output\outaout.c output\nasm.h output\insnsi.h output\nasmlib.h output\outform.h +output\outbin.$(OBJ): output\outbin.c output\nasm.h output\insnsi.h output\nasmlib.h output\outform.h +output\outcoff.$(OBJ): output\outcoff.c output\nasm.h output\insnsi.h output\nasmlib.h output\outform.h +output\outdbg.$(OBJ): output\outdbg.c output\nasm.h output\insnsi.h output\nasmlib.h output\outform.h +output\outelf.$(OBJ): output\outelf.c output\nasm.h output\insnsi.h output\nasmlib.h output\outform.h +output\outobj.$(OBJ): output\outobj.c output\nasm.h output\insnsi.h output\nasmlib.h output\outform.h +output\outrdf.$(OBJ): output\outrdf.c output\nasm.h output\insnsi.h output\nasmlib.h output\outform.h +output\outrdf2.$(OBJ): output\outrdf2.c output\nasm.h output\insnsi.h output\nasmlib.h output\outform.h +output\outieee.$(OBJ): output\outieee.c output\nasm.h output\insnsi.h output\nasmlib.h output\outform.h +parser.$(OBJ): parser.c nasm.h insnsi.h nasmlib.h parser.h float.h names.c insnsn.c +preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h insnsi.h nasmlib.h +sync.$(OBJ): sync.c sync.h + + +insnsa.c insnsd.c insnsi.h insnsn.c: insns16.dat insns.pl + perl insns.pl insns16.dat + +insns16.dat: insns.dat + grep -v WILLAMETTE insns.dat | grep -v KATMAI | grep -v SSE | \ + grep -v MMX | grep -v 3DNOW | grep -v UNDOC >insns16.dat + +# 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 insnsi.h insns.h + $(QCL) insnsa.c + +insnsd.$(OBJ): insnsd.c nasm.h insnsi.h insns.h + $(QCL) insnsd.c + +tidy: + del output\*.h + del *.$(OBJ) + del output\*.$(OBJ) + +clean : tidy + del nasm$(EXE) + del ndisasm$(EXE) + +spotless: clean + del insns16.dat + del insnsa.c + del insnsd.c + del insnsi.h + del insnsn.c + diff --git a/Mkfiles/README b/Mkfiles/README index 7e68499..1507b22 100644 --- a/Mkfiles/README +++ b/Mkfiles/README @@ -1,4 +1,31 @@ These are pre-created Makefiles for various platforms, use them if GNU autoconf/automake packages are not supported on your system. -Copy appropriate Makefile to ../Makefile and run make. +Copy appropriate Makefile to ../Makefile, look at it to see if there +are any edits that need to be made, and run make. + +Some of these Makefiles have been contributed by end users, and the +NASM team has no way of knowing if they work correctly or not. For +that reason, there are sometimes multiple Makefiles for the same +platform. Look at the comments at the beginning to help select a +Makefile for your particular system. + + +The Makefiles are: + + Filename Target Compiler Notes + --------------------------------------------------------------------------- + Makefile.b32 Win32 Borland C++ + Makefile.bc3 16-bit DOS Borland C++ working as of NASM 0.98.31 + Makefile.bor 16-bit DOS Turbo C probably obsolete + Makefile.dj 32-bit DOS DJGPP + Makefile.djo 32-bit DOS DJGPP "Opus Make" version + Makefile.dl 32-bit DOS cc386 cc386 by David Lindauer + Makefile.dos 16-bit DOS MSC 5 probably obsolete + Makefile.ms7 16-bit DOS MSC 7 working as of NASM 0.98.31 + Makefile.os2 OS/2 Warp Borland C++ + Makefile.sc 32-bit DOS Symantec C++ 7 + Makefile.scw Win32 Symantec C++ 7 + Makefile.unx Unix cc use if "configure" fails + Makefile.vc Win32 MS Visual C++ + Makefile.wcw Win32 Watcom C -- 2.7.4