MAKEFILE
上传用户:hlzzc88
上传日期:2007-01-06
资源大小:220k
文件大小:3k
源码类别:

编译器/解释器

开发平台:

Others

  1. #  Example, run mk386.exe a.c
  2. #  this MAKEFILE. generate MK386.EXE program
  3. #
  4. .AUTODEPEND
  5. .SWAP
  6. # LINK     = # define LINK for COMPILE, ASSEMBLE & LINK
  7. # ASSEMBLE = # define ASSEMBLE for COMPILE & ASSEMBLE
  8. # COMPILE  = # define COMPILER for ONLY COMPILE
  9. !ifndef LINK
  10. !ifndef ASSEMBLE
  11. !ifndef COMPILE
  12. LINK       =
  13. !endif
  14. !endif
  15. !endif
  16. # DEBUG    = # define DEBUG for debug info and debug startup module
  17. # MAP      = # define MAP for generate .MAP file
  18. # NODEFLIB = # define NODEFLIB for NO link default .OBJ & .LIB
  19. # KEEP_SRC = # define KEEP_SRC for save generate .ASM & .OBJ files
  20. # KEEP_LST = # define KEEP_LST for save generate .LST files
  21.                                        ### name of .EXE file
  22. NAME = A
  23.                                        ### define tools
  24. CC  = CC386.EXE
  25. AS  = TASM.EXE
  26.                                        ### define options for CC
  27. CC_INC = /ID:BCCC386INCLUDE;
  28. CC_DEF = 
  29. CC_OPT = -i +e -A
  30. !ifdef KEEP_LST
  31. CC_OPT = $(CC_OPT) +l
  32. !endif
  33. CC = $(CC) $(CC_OPT) $(CC_DEF) $(CC_INC)
  34.                                        ### define options for AS
  35. AS_INC =  /iD:BCCC386INCLUDE
  36. AS_DEF = 
  37. !ifdef DEBUG
  38. AS_OPT = /t /m3 /ml /zi
  39. !else
  40. AS_OPT = /t /m3 /ml /zn
  41. !endif
  42. !ifdef KEEP_LST
  43. AS_OPT = $(AS_OPT) /la
  44. !endif
  45. AS = $(AS) $(AS_OPT) $(AS_DEF) $(AS_INC)
  46.                                        ### .LIB & output .OBJ path
  47. PATH_LIB = D:BCCC386LIB
  48. PATH_OBJ = .
  49.                                        ### default .OBJ & .LIB
  50. !ifdef NODEFLIB
  51. DEFAULT_OBJS =
  52. DEFAULT_LIBS =
  53. WLINK_OBJS   =
  54. WLINK_LIBS   =
  55. !else
  56. DEFAULT_LIBS = $(PATH_LIB)CLDOS.LIB
  57. WLINK_LIBS   = library $(DEFAULT_LIBS)
  58. !ifdef DEBUG
  59. DEFAULT_OBJS = $(PATH_LIB)C0DOSD.OBJ 
  60. !else
  61. DEFAULT_OBJS = $(PATH_LIB)C0DOS.OBJ 
  62. !endif
  63. WLINK_OBJS   = file $(DEFAULT_OBJS)
  64. !endif
  65.                                        ### define macro for KEEP_SRC
  66. !ifdef KEEP_SRC
  67. DEL_SRC = @rem
  68. !else
  69. DEL_SRC = -del
  70. !endif
  71.                                        ### define macro for KEEP_LST
  72. !ifdef KEEP_LST
  73. DEL_LST = @rem
  74. !else
  75. DEL_LST = -del
  76. !endif
  77.                                        ### define macro for MAP
  78. !ifdef MAP
  79. TLINK_OPT = /3/d/c/m/l/s
  80. WLINK_OPT = option map
  81. !else
  82. TLINK_OPT = /3/d/c/x
  83. WLINK_OPT = 
  84. !endif
  85.                                        ### define macro for DEBUG
  86. !ifdef DEBUG
  87. TLINK_DBG = /v
  88. WLINK_DBG = debug option symf
  89. !else
  90. TLINK_DBG = 
  91. WLINK_DBG = option quiet
  92. !endif
  93.                                        ### .ASM files
  94. ASMS = 
  95. A.ASM 
  96.                                        ### .OBJ files
  97. OBJS = $(DEFAULT_OBJS) 
  98. $(PATH_OBJ)A.OBJ 
  99.                                        ### .LIB files
  100. LIBS = $(DEFAULT_LIBS) 
  101.                                        ###  main make depend
  102. !ifdef LINK
  103. $(NAME).EXE : $(OBJS) $(LIBS) makefile.
  104.   TLINK.EXE @&&|
  105. $(TLINK_OPT) $(TLINK_DBG) $(OBJS), $(NAME), $(NAME), $(LIBS)
  106. |
  107.   $(DEL_SRC) $(PATH_OBJ)A.OBJ
  108. !else
  109. !ifdef ASSEMBLE
  110. assemble : $(OBJS) 
  111. !else
  112. !ifdef COMPILE
  113. compile : $(ASMS) 
  114. !endif
  115. !endif
  116. !endif
  117.                                        ### files depend
  118. $(PATH_OBJ)A.OBJ : A.ASM
  119.   $(AS) A.ASM,$(PATH_OBJ)A.OBJ,$(PATH_OBJ)A.LST,NUL
  120.   $(DEL_LST) $(PATH_OBJ)A.LST
  121.   $(DEL_SRC) A.ASM
  122. A.ASM : A.C
  123.   $(CC) A.C