0
0
mirror of https://github.com/netwide-assembler/nasm.git synced 2025-07-24 10:25:42 -04:00

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.
This commit is contained in:
H. Peter Anvin 2002-05-10 00:29:32 +00:00
parent 1c7da40456
commit 7f588e0e4c
4 changed files with 373 additions and 243 deletions

View File

@ -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 <lmb@comtch.iea.com> --01/27/97

196
Mkfiles/Makefile.bc3 Normal file
View File

@ -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)

149
Mkfiles/Makefile.ms7 Normal file
View File

@ -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

View File

@ -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