# ---------------------------------------------------------------------- # 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 file builds NASM (w/ PMODE/W stub) using David Lindauer's CC386. # Hence, CC386 uses (an older) NASM to build NASM! ;-) # # http://ladsoft.tripod.com/cc386.htm # http://www.sac.sk ( look under /UTILPROG/ for CCDL???E.ZIP ) # # N.B. The old version of this makefile included w/ NASM 0.98.39 doesn't # seem to work (did it ever??). (This new version isn't perfect # because OUTPUT/* is always rebuilt, but I can't help it right now: # it's just too annoying to fix. At least it builds now). # # ============ # Tested on: # ============ # - Intel Pentium 166 w/ 32 MB RAM # - DR-DOS 7.03 Lite # - 7 MB RAM drive (you need at least 6,200k free space for NASM 0.98.39) # - CC386 3.17 (DOS version) w/ its own IMAKE # # Tested/modified by rugxulo@bellsouth.net :-) # Thursday, July 20, 2006 3:30pm # ---------------------------------------------------------------------- CC = cc386 /C+N /w-all LINK = valx -nci -le -stb:($(LADSOFT)\lib\pmodew.exe) #LINK = valx -nci -le -stb:($(LADSOFT)\lib\dos32a.exe) LINKFLAGS = LIBRARIES = OBJ = obj .c.obj: @$(CC) $* &nasm -fobj $&.ASM NDISASMOBJS = ndisasm.$(OBJ) disasm.$(OBJ) sync.$(OBJ) nasmlib.$(OBJ) \ insnsd.$(OBJ) NASMOBJS = nasm.$(OBJ) nasmlib.$(OBJ) eval.$(OBJ) float.$(OBJ) \ insnsa.$(OBJ) assemble.$(OBJ) labels.$(OBJ) parser.$(OBJ) \ outform.$(OBJ) preproc.$(OBJ) listing.$(OBJ) \ output\outbin.$(OBJ) \ output\outobj.$(OBJ) \ output\outieee.$(OBJ) \ output\outrdf.$(OBJ) \ output\outrdf2.$(OBJ) \ output\outdbg.$(OBJ) \ output\outcoff.$(OBJ) \ output\outelf.$(OBJ) \ output\outaout.$(OBJ) \ output\outas86.$(OBJ) all : ndisasm.exe nasm.exe nasm.exe: $(NASMOBJS) $(LINK) $(LADSOFT)\lib\c0dosw.obj @&&| $(NASMOBJS:output\=),nasm,nasm,$(LADSOFT)\lib\cldos.lib | ndisasm.exe: $(NDISASMOBJS) $(LINK) $(LADSOFT)\lib\c0dosw.obj @&&| $(NDISASMOBJS:.obj=),ndisasm,ndisasm,$(LADSOFT)\lib\cldos.lib | clean : for %a in (asm obj map err) do if exist *.%a del *.%a for %a in (asm obj map err) do if exist output\*.%a del output\*.%a cleanall : clean for %a in (nasm.exe ndisasm.exe) do if exist %a del %a #-- Magic hints to mkdep.pl --# # @object-ending: ".$(OBJ)" # @path-separator: "/" #-- Everything below is generated by mkdep.pl - do not edit --# assemble.$(OBJ): assemble.c preproc.h insns.h regs.h version.h nasmlib.h \ nasm.h regvals.c insnsi.h assemble.h disasm.$(OBJ): disasm.c insns.h sync.h regdis.c regs.h regs.c version.h \ nasm.h insnsn.c names.c insnsi.h disasm.h eval.$(OBJ): eval.c labels.h eval.h regs.h version.h nasmlib.h nasm.h float.$(OBJ): float.c regs.h version.h nasm.h insnsa.$(OBJ): insnsa.c insns.h regs.h version.h nasm.h insnsi.h insnsd.$(OBJ): insnsd.c insns.h regs.h version.h nasm.h insnsi.h insnsn.$(OBJ): insnsn.c labels.$(OBJ): labels.c regs.h version.h nasmlib.h nasm.h listing.$(OBJ): listing.c regs.h version.h nasmlib.h nasm.h listing.h macros.$(OBJ): macros.c names.$(OBJ): names.c regs.c insnsn.c nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h \ outform.h version.h nasmlib.h nasm.h assemble.h insnsi.h listing.h nasmlib.$(OBJ): nasmlib.c insns.h regs.h regs.c version.h nasmlib.h nasm.h \ insnsn.c names.c insnsi.h ndisasm.$(OBJ): ndisasm.c insns.h sync.h regs.h version.h nasmlib.h nasm.h \ insnsi.h disasm.h outform.$(OBJ): outform.c regs.h outform.h version.h nasm.h output/outaout.$(OBJ): output/outaout.c regs.h outform.h version.h nasmlib.h \ nasm.h output/outas86.$(OBJ): output/outas86.c regs.h outform.h version.h nasmlib.h \ nasm.h output/outbin.$(OBJ): output/outbin.c labels.h eval.h regs.h outform.h \ version.h nasmlib.h nasm.h output/outcoff.$(OBJ): output/outcoff.c regs.h outform.h version.h nasmlib.h \ nasm.h output/outdbg.$(OBJ): output/outdbg.c regs.h outform.h version.h nasmlib.h \ nasm.h output/outelf.$(OBJ): output/outelf.c regs.h outform.h version.h nasmlib.h \ nasm.h output/outieee.$(OBJ): output/outieee.c regs.h outform.h version.h nasmlib.h \ nasm.h output/outobj.$(OBJ): output/outobj.c regs.h outform.h version.h nasmlib.h \ nasm.h output/outrdf.$(OBJ): output/outrdf.c regs.h outform.h version.h nasmlib.h \ nasm.h output/outrdf2.$(OBJ): output/outrdf2.c rdoff/rdoff.h regs.h outform.h \ version.h nasmlib.h nasm.h parser.$(OBJ): parser.c insns.h parser.h float.h regs.h regflags.c version.h \ nasmlib.h nasm.h insnsi.h preproc.$(OBJ): preproc.c macros.c regs.h version.h nasmlib.h nasm.h regdis.$(OBJ): regdis.c regflags.$(OBJ): regflags.c regs.$(OBJ): regs.c regvals.$(OBJ): regvals.c sync.$(OBJ): sync.c sync.h