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

编译器/解释器

开发平台:

C/C++

  1. # Makefile for the Netwide Assembler under OS/2 (aimed at Borland C++ for OS/2)
  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 to compile NASMOS2 and NDISASM2
  9. # using Borland C++ for OS/2.
  10. #
  11. #-------------------------------------------------------------------
  12. #  Make Directives
  13. #-------------------------------------------------------------------
  14. .AUTODEPEND :
  15. .SUFFIXES : .rc .res .obj .c .cpp .asm .hlp .itl .ipf
  16. #-------------------------------------------------------------------
  17. #  Make Macros
  18. #-------------------------------------------------------------------
  19. LIBS       = c2 + os2
  20. # --------------------------------------------------------------------------
  21. #
  22. #       c  compile only
  23. #       v  include full sybolic debugging information
  24. #       b  force enums to be of type int
  25. #
  26. # --------------------------------------------------------------------------
  27. CCFLAGS = /c /v /b
  28. CC = bcc                #compiler
  29. LINK = tlink            #linker
  30. DCCFLAGS = /d /c /O /A  #compiler flags for NDISASM
  31.   #/d=merge dupicate strings
  32.   #/c=compile only
  33.   #/O=Optimise jumps
  34.   #/A=ANSI standard C
  35. LINKFLAGS = /c /x       #linker flags
  36.   #/c=case sIgnificance on symbols
  37.   #/x=No map file at all
  38. LIBRARIES =             #any libaries to add, out side of the standard libary
  39. EXE = .exe              #executable file extention (keep the . as the start)
  40. OBJ = obj               #OBJ file extention
  41. NASM_ASM=$(CC) $(CCFLAGS) $&.c         #Command line for NASM
  42. DASM_ASM=$(CC) $(DCCFLAGS) $&.c        #command line for NDISASM
  43. # NOTE: $& is used to create the file name, as it only gives the name it's
  44. # self, where as using $* would have give the full path of the file it
  45. # want's done. This becomes a problem if the OBJ files are in a seperate
  46. # directory, becuse it will then try to find the source file in the OBJ
  47. # dir.
  48. ################################################################
  49. #The OBJ files that NASM is dependent on
  50. NASMOBJS = $(OBJD)nasm.$(OBJ)   $(OBJD)nasmlib.$(OBJ)  $(OBJD)float.$(OBJ)  
  51.            $(OBJD)insnsa.$(OBJ) $(OBJD)assemble.$(OBJ) $(OBJD)labels.$(OBJ) 
  52.            $(OBJD)parser.$(OBJ) $(OBJD)outform.$(OBJ)  $(OBJD)preproc.$(OBJ) 
  53.    $(OBJD)listing.$(OBJ) $(OBJD)eval.$(OBJ) $(OBJD)outrdf2.$(OBJ) $(OBJD)zoutieee.$(OBJ) 
  54. ################################################################
  55. #The OBJ files that NDISASM is dependent on
  56. NDISASMOBJS = $(OBJD)ndisasm.$(OBJ)  $(OBJD)disasm.$(OBJ) $(OBJD)sync.$(OBJ) 
  57.               $(OBJD)nasmlibd.$(OBJ) $(OBJD)insnsd.$(OBJ)
  58. ################################################################
  59. #The OBJ file for the output formats.
  60. OUTOBJ= $(OBJD)outbin.$(OBJ) $(OBJD)outaout.$(OBJ) $(OBJD)outcoff.$(OBJ) 
  61.         $(OBJD)outelf.$(OBJ) $(OBJD)outobj.$(OBJ)  $(OBJD)outas86.$(OBJ) 
  62.         $(OBJD)outrdf.$(OBJ) $(OBJD)outdbg.$(OBJ)
  63. ################################################################
  64. # Build everything
  65. all : nasmos2$(EXE) ndisasm2$(EXE)
  66. ################################################################
  67. #NASM, NDISASM compile, I hope it's self explanitory
  68. nasmos2$(EXE): $(NASMOBJS) $(OUTOBJ)
  69.           $(LINK) $(LINKFLAGS) @&&!                     #command for the linker
  70.           C02 $(NASMOBJS) $(OUTOBJ) #OBJ file list
  71.           $(EXED)nasmos2$(EXE)                             #EXE file name
  72.           NASMOS2.MAP 
  73.           $(LIBS)           #Libaries needed
  74.           NASMOS2.DEF #Link Definition file
  75. !
  76. ndisasm2$(EXE): $(NDISASMOBJS)
  77.         $(LINK) $(LINKFLAGS) @&&!              #command for the linker
  78.         c02.obj $(NDISASMOBJS)           #OBJ file list
  79.         $(EXED)ndisasm2$(EXE)                   #EXE file name
  80.         NDISAMS2.MAP 
  81.         $(LIBS) $(LIBRARIES)              #Libaries needed
  82. !
  83. ################################################################
  84. # Dependencies for all of NASM's obj files
  85. $(OBJD)assemble.$(OBJ): assemble.c nasm.h assemble.h insns.h
  86.         $(NASM_ASM)
  87. $(OBJD)float.$(OBJ): float.c nasm.h
  88.         $(NASM_ASM)
  89. $(OBJD)labels.$(OBJ): labels.c nasm.h nasmlib.h
  90.         $(NASM_ASM)
  91. $(OBJD)listing.$(OBJ): listing.c nasm.h nasmlib.h listing.h
  92.         $(NASM_ASM)
  93. $(OBJD)eval.$(OBJ): eval.c nasm.h nasmlib.h eval.h
  94.         $(NASM_ASM)
  95. $(OBJD)nasm.$(OBJ): nasm.c nasm.h nasmlib.h parser.h assemble.h labels.h 
  96. listing.h outform.h
  97.         $(NASM_ASM)
  98. $(OBJD)nasmlib.$(OBJ): nasmlib.c nasm.h nasmlib.h names.c insnsn.c
  99.         $(NASM_ASM)
  100. $(OBJD)parser.$(OBJ): parser.c nasm.h nasmlib.h parser.h float.h names.c
  101.         $(NASM_ASM)
  102. $(OBJD)preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h nasmlib.h
  103. $(NASM_ASM)
  104. $(OBJD)insnsa.$(OBJ): insnsa.c nasm.h insns.h
  105.         $(NASM_ASM)
  106. ################################################################
  107. # Dependencies for all of NDISASM's obj files
  108. $(OBJD)disasm.$(OBJ): disasm.c nasm.h disasm.h sync.h insns.h names.c
  109.         $(DASM_ASM)
  110. $(OBJD)ndisasm.$(OBJ): ndisasm.c nasm.h sync.h disasm.h
  111.         $(DASM_ASM)
  112. $(OBJD)sync.$(OBJ): sync.c sync.h
  113.         $(DASM_ASM)
  114. $(OBJD)insnsd.$(OBJ): insnsd.c nasm.h insns.h
  115.         $(DASM_ASM)
  116. # This is a kludge from the word go, as we can't use the nasmlib.obj compiled
  117. # for NASM, as it's could be the wrong model size, so we have to compile it
  118. # again as huge to make sure.
  119. #
  120. # So as not to overwrite the nasmlib.obj for NASM (if it did, that
  121. # could cause all kinds of problems) it compiles it into nasmlibd.obj.
  122. #
  123. # the -o... switch tells it the name to compile the obj file to, right here
  124. # $(OBJD)nasmlibd.obj
  125. $(OBJD)nasmlibd.$(OBJ): nasmlib.c nasm.h nasmlib.h
  126.         $(CC) $(DCCFLAGS) -o$(OBJD)nasmlibd.obj nasmlib.c
  127. ################################################################
  128. # Dependencies for all of the output format's OBJ files
  129. $(OBJD)outas86.$(OBJ): outas86.c nasm.h nasmlib.h
  130.         $(NASM_ASM)
  131. $(OBJD)outaout.$(OBJ): outaout.c nasm.h nasmlib.h
  132.         $(NASM_ASM)
  133. $(OBJD)outbin.$(OBJ): outbin.c nasm.h nasmlib.h
  134.         $(NASM_ASM)
  135. $(OBJD)outcoff.$(OBJ): outcoff.c nasm.h nasmlib.h
  136.         $(NASM_ASM)
  137. $(OBJD)outdbg.$(OBJ): outdbg.c nasm.h nasmlib.h
  138.         $(NASM_ASM)
  139. $(OBJD)outelf.$(OBJ): outelf.c nasm.h nasmlib.h
  140.         $(NASM_ASM)
  141. $(OBJD)outobj.$(OBJ): outobj.c nasm.h nasmlib.h
  142.         $(NASM_ASM)
  143. $(OBJD)outrdf.$(OBJ): outrdf.c nasm.h nasmlib.h
  144.         $(NASM_ASM)
  145. $(OBJD)outform.$(OBJ): outform.c outform.h nasm.h
  146.         $(NASM_ASM)
  147. ################################################################
  148. # A quick way to delete the OBJ files as well as the binaries.
  149. clean :
  150.         del $(OBJD)*.obj
  151. del nasmos2$(EXE)
  152. del ndisasm2$(EXE)
  153. # Makefile created by Chuck Crayne <ccrayne@pacific.net> --05/4/99
  154. # Based on Makefile.bc2 by Fox Cutter <lmb@comtch.iea.com> --01/27/97