Makefile.bc2
上传用户:yuppie_zhu
上传日期:2007-01-08
资源大小:535k
文件大小:9k
源码类别:

编译器/解释器

开发平台:

C/C++

  1. # Makefile for the Netwide Assembler under 16-bit DOS (aimed at Borland C)
  2. #
  3. # The Netwide Assembler is copyright (C) 1996 Simon Tatham and
  4. # Julian Hall. All rights reserved. The software is
  5. # redistributable under the licence given in the file "Licence"
  6. # distributed in the NASM archive.
  7. #
  8. # This makefile is made for compile NASM and NDISASM on a 16 bit dos
  9. # compiler like Microsoft C, or Borland C. This should work on all
  10. # verioson of Turbo C++ and Borland C++ from version 3.0 and upwords.
  11. # I'm not fully sure how it will handel on Microsoft C, but all the
  12. # switches are documented, and it shouldn't be a problem to change it
  13. # over.
  14. #
  15. # It does show a few of my preferances, like putting the OBJ files
  16. # in a seperate directory, but if you just set OBJD to '.', it will
  17. # drop them all in the current directory (though you still need to
  18. # make the directory it's self).
  19. #
  20. # Most everything is remarked, and explaned in full, it should be
  21. # easy to convert it to another compiler. I tried to make the devision
  22. # of information logical, and easy to follow.
  23. #
  24. # BEFORE YOU USE THIS MAKE FILE!!!
  25. #
  26. # Make sure the line below is set to the propper location of your standard
  27. # Libaries, if not you'll get some errors. Make sure to keep the trailing
  28. # backslash, as it's needed, and remeber to use \ not  as that will cause
  29. # some errors.
  30. #
  31. # Also inportant, if you get a DGROUP error when you compile NASM, remove
  32. # or comment out the 'NASMSize=l' line, and uncoment (remove the #) from the
  33. # NASMSize=h line. Then run 'make Clean' to delete the object files. Then run
  34. # make again to re-build NASM as huge.
  35. #
  36. # History:
  37. # 06/13/97: * Added the EXED varable for the location to put the EXE files.
  38. #           * Because different versions of Borland and Turbo C have
  39. #             different GROUPings for the DGROUP, some version, when you
  40. #             compile NASM, you will get a DGROUP overflow error, making it
  41. #             so NASM has to be compiled as huge. As this isn't a constant
  42. #             through systems (and apperently some version of Borland,
  43. #             compileing as huge causes some errors) the NASMSize verable
  44. #             has been added to spicify what size of code you want to
  45. #             compile as and defaults to large.
  46. # 06/16/97: * Added 'merge dupicate strings' to the options for compiles.
  47. NASMSize=l              #Compile Nasm as Large
  48. #NASMSize=h              #Compile Nasm as Huge
  49. LIB =c:\tc\lib\      #location standard libaries
  50. OBJD=obj\              #directory to put OBJ files in
  51. EXED=.                 #directory to put the EXE files.
  52. CC = tcc                #compiler
  53. LINK = tlink            #linker
  54. CCFLAGS = /d /c /O /A /m$(NASMSize) /n$(OBJD) #compiler flags for NASM
  55.   #/d=merge dupicate strings
  56.   #/c=compile only
  57.   #/O=Optimise jumps
  58.   #/A=ANSI standard C
  59.   #/m$(NASMSize>=the model to use
  60.   #/n$(OBJD)= put the OBJ files in the diectory given.
  61. DCCFLAGS = /d /c /O /A /mh /n$(OBJD) #compiler flags for NDISASM
  62.   #/d=merge dupicate strings
  63.   #/c=compile only
  64.   #/O=Optimise jumps
  65.   #/A=ANSI standard C
  66.   #/mh=Model huge
  67.   #/n$(OBJD)= put the OBJ files in the diectory given.
  68.   #NOTE: Huge model is used, and the array in insnsd.c is large enough to
  69.   #over size the d-group in large mode.
  70. LINKFLAGS = /c /x       #linker flags
  71.   #/c=case segnificance on symboles
  72.   #/x=No map file at all
  73. LIBRARIES =             #any libaries to add, out side of the standard libary
  74. EXE = .exe              #executable file extention (keep the . as the start)
  75. OBJ = obj               #OBJ file extention
  76. NASM_ASM=$(CC) $(CCFLAGS) $&.c         #Command line for NASM
  77. DASM_ASM=$(CC) $(DCCFLAGS) $&.c        #command line for NDISASM
  78. # NOTE: $& is used to create the file name, as it only gives the name it's
  79. # self, where as using $* would have give the full path of the file it
  80. # want's done. This becomes a problem if the OBJ files are in a seperate
  81. # directory, becuse it will then try to find the source file in the OBJ
  82. # dir.
  83. ################################################################
  84. #The OBJ files that NASM is dependent on
  85. NASMOBJS = $(OBJD)nasm.$(OBJ)   $(OBJD)nasmlib.$(OBJ)  $(OBJD)float.$(OBJ)  
  86.            $(OBJD)insnsa.$(OBJ) $(OBJD)assemble.$(OBJ) $(OBJD)labels.$(OBJ) 
  87.            $(OBJD)parser.$(OBJ) $(OBJD)outform.$(OBJ)  $(OBJD)preproc.$(OBJ) 
  88.    $(OBJD)listing.$(OBJ) $(OBJD)eval.$(OBJ)
  89. ################################################################
  90. #The OBJ files that NDISASM is dependent on
  91. NDISASMOBJS = $(OBJD)ndisasm.$(OBJ)  $(OBJD)disasm.$(OBJ) $(OBJD)sync.$(OBJ) 
  92.               $(OBJD)nasmlibd.$(OBJ) $(OBJD)insnsd.$(OBJ)
  93. ################################################################
  94. #The OBJ file for the output formats.
  95. OUTOBJ= $(OBJD)outbin.$(OBJ) $(OBJD)outaout.$(OBJ) $(OBJD)outcoff.$(OBJ) 
  96.         $(OBJD)outelf.$(OBJ) $(OBJD)outobj.$(OBJ)  $(OBJD)outas86.$(OBJ) 
  97.         $(OBJD)outrdf.$(OBJ) $(OBJD)outdbg.$(OBJ)  $(OBJD)outrdf2.$(OBJ) 
  98. $(OBJD)zoutieee.$(OBJ)
  99. ################################################################
  100. # Build everything
  101. all : nasm$(EXE) ndisasm$(EXE)
  102. ################################################################
  103. #NASM, NDISASM compile, I hope it's self explanitorie
  104. nasm$(EXE): $(NASMOBJS) $(OUTOBJ)
  105.           $(LINK) $(LINKFLAGS) @&&^                     #command for the linker
  106.           $(LIB)c0$(NASMSize).obj $(NASMOBJS) $(OUTOBJ) #OBJ file list
  107.           $(EXED)nasm$(EXE)                             #EXE file name
  108. # No need of a map file
  109.           $(LIB)c$(NASMSize).lib $(LIBRARIES)           #Libaries needed
  110. ^
  111. ndisasm$(EXE): $(NDISASMOBJS)
  112.         $(LINK) $(LINKFLAGS) @&&^              #command for the linker
  113.         $(LIB)c0h.obj $(NDISASMOBJS)           #OBJ file list
  114.         $(EXED)ndisasm$(EXE)                   #EXE file name
  115. # No need of a map file
  116.         $(LIB)ch.lib $(LIBRARIES)              #Libaries needed
  117. ^
  118. ################################################################
  119. # Dependencies for all of NASM's obj files
  120. $(OBJD)assemble.$(OBJ): assemble.c nasm.h insnsi.h assemble.h insns.h
  121.         $(NASM_ASM)
  122. $(OBJD)float.$(OBJ): float.c nasm.h insnsi.h
  123.         $(NASM_ASM)
  124. $(OBJD)labels.$(OBJ): labels.c nasm.h insnsi.h nasmlib.h
  125.         $(NASM_ASM)
  126. $(OBJD)listing.$(OBJ): listing.c nasm.h insnsi.h nasmlib.h listing.h
  127.         $(NASM_ASM)
  128. $(OBJD)eval.$(OBJ): eval.c nasm.h insnsi.h nasmlib.h eval.h
  129.         $(NASM_ASM)
  130. $(OBJD)nasm.$(OBJ): nasm.c nasm.h insnsi.h nasmlib.h parser.h assemble.h labels.h 
  131. listing.h outform.h
  132.         $(NASM_ASM)
  133. $(OBJD)nasmlib.$(OBJ): nasmlib.c nasm.h insnsi.h nasmlib.h names.c insnsn.c
  134.         $(NASM_ASM)
  135. $(OBJD)parser.$(OBJ): parser.c nasm.h insnsi.h nasmlib.h parser.h float.h names.c insnsn.c
  136.         $(NASM_ASM)
  137. $(OBJD)preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h insnsi.h nasmlib.h
  138. $(NASM_ASM)
  139. $(OBJD)insnsa.$(OBJ): insnsa.c nasm.h insnsi.h insns.h
  140.         $(NASM_ASM)
  141. ################################################################
  142. # Dependencies for all of NDISASM's obj files
  143. $(OBJD)disasm.$(OBJ): disasm.c nasm.h insnsi.h disasm.h sync.h insns.h names.c insnsn.c
  144.         $(DASM_ASM)
  145. $(OBJD)ndisasm.$(OBJ): ndisasm.c nasm.h insnsi.h sync.h disasm.h
  146.         $(DASM_ASM)
  147. $(OBJD)sync.$(OBJ): sync.c sync.h
  148.         $(DASM_ASM)
  149. $(OBJD)insnsd.$(OBJ): insnsd.c nasm.h insnsi.h insns.h
  150.         $(DASM_ASM)
  151. # This is a kludge from the word go, as we can't use the nasmlib.obj compiled
  152. # for NASM, as it's could be the wrong model size, so we have to compile it
  153. # again as huge to make sure.
  154. #
  155. # So as not to overwrite the nasmlib.obj for NASM (if it did, that
  156. # could cause all kinds of problems) it compiles it into nasmlibd.obj.
  157. #
  158. # the -o... switch tells it the name to compile the obj file to, right here
  159. # $(OBJD)nasmlibd.obj
  160. $(OBJD)nasmlibd.$(OBJ): nasmlib.c nasm.h insnsi.h nasmlib.h
  161.         $(CC) $(DCCFLAGS) -o$(OBJD)nasmlibd.obj nasmlib.c
  162. ################################################################
  163. # Dependencies for all of the output format's OBJ files
  164. $(OBJD)outas86.$(OBJ): outas86.c nasm.h insnsi.h nasmlib.h
  165.         $(NASM_ASM)
  166. $(OBJD)outaout.$(OBJ): outaout.c nasm.h insnsi.h nasmlib.h
  167.         $(NASM_ASM)
  168. $(OBJD)outbin.$(OBJ): outbin.c nasm.h insnsi.h nasmlib.h
  169.         $(NASM_ASM)
  170. $(OBJD)outcoff.$(OBJ): outcoff.c nasm.h insnsi.h nasmlib.h
  171.         $(NASM_ASM)
  172. $(OBJD)outdbg.$(OBJ): outdbg.c nasm.h insnsi.h nasmlib.h
  173.         $(NASM_ASM)
  174. $(OBJD)outelf.$(OBJ): outelf.c nasm.h insnsi.h nasmlib.h
  175.         $(NASM_ASM)
  176. $(OBJD)outobj.$(OBJ): outobj.c nasm.h insnsi.h nasmlib.h
  177.         $(NASM_ASM)
  178. $(OBJD)outrdf.$(OBJ): outrdf.c nasm.h insnsi.h nasmlib.h
  179.         $(NASM_ASM)
  180. $(OBJD)outrdf2.$(OBJ): outrdf2.c nasm.h insnsi.h nasmlib.h
  181.         $(NASM_ASM)
  182. $(OBJD)zoutieee.$(OBJ): zoutieee.c nasm.h insnsi.h nasmlib.h
  183.         $(NASM_ASM)
  184. $(OBJD)outform.$(OBJ): outform.c outform.h nasm.h insnsi.h
  185.         $(NASM_ASM)
  186. ################################################################
  187. # A quick way to delete the OBJ files as well as the binaries.
  188. clean :
  189.         del $(OBJD)*.obj
  190. del nasm$(EXE)
  191. del ndisasm$(EXE)
  192. # Makefile created by Fox Cutter <lmb@comtch.iea.com> --01/27/97