Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. !==========================================================================
  2. ! MMS description file for bzip2 support in UnZip 6              2008-02-16
  3. !==========================================================================
  4. !
  5. ! To build the LIBBZ2_NS library, edit the USER CUSTOMIZATION
  6. ! lines below to taste, then do
  7. !       mms
  8. ! or
  9. !       mmk
  10. ! if you use Matt's Make (free MMS-compatible make utility).
  11. !
  12. ! In all other cases where you want to explicitly specify a makefile target,
  13. ! you have to specify your compiling environment, too. These are:
  14. !
  15. !       $ MMS/MACRO=(__ALPHA__=1)               ! Alpha AXP, (DEC C)
  16. !       $ MMS/MACRO=(__IA64__=1)                ! IA64, (DEC C)
  17. !       $ MMS/MACRO=(__DECC__=1)                ! VAX, using DEC C
  18. !       $ MMS/MACRO=(__FORCE_VAXC__=1)          ! VAX, prefering VAXC over DECC
  19. !       $ MMS/MACRO=(__VAXC__=1)                ! VAX, where VAXC is default
  20. !       $ MMS/MACRO=(__GNUC__=1)                ! VAX, using GNU C
  21. !
  22.  
  23. ! To delete all .OBJ, .OLB, .EXE and .HLP files,
  24. !       mms clean
  25.  
  26. ## The "DO_THE_BUILD" target does no longer work with current
  27. ## releases of the MMS tool, sigh.
  28. #DO_THE_BUILD :
  29. #       @ decc = f$search("SYS$SYSTEM:DECC$COMPILER.EXE").nes.""
  30. #       @ axp = (f$getsyi("HW_MODEL") .ge. 1024) .and. -
  31. #          (f$getsyi("HW_MODEL") .lt. 4096)
  32. #       @ i64 = f$getsyi("HW_MODEL") .ge. 4096
  33. #       @ macro = "/MACRO=("
  34. #.IFDEF CCOPTS
  35. #       @ macro = macro + """CCOPTS=$(CCOPTS)"","
  36. #.ENDIF
  37. #       @ if decc then macro = macro + "__DECC__=1,"
  38. #       @ if axp then macro = macro + "__ALPHA__=1,"
  39. #       @ if i64 then macro = macro + "__IA64__=1,"
  40. #       @ if .not.(axp .or. i64 .or. decc) then macro = macro + "__VAXC__=1,"
  41. #       @ macro = f$extract(0,f$length(macro)-1,macro)+ ")"
  42. #       $(MMS)$(MMSQUALIFIERS)'macro' DEFAULT
  43.  
  44. # Define MMK architecture macros when using MMS.
  45.  
  46. .IFDEF __MMK__                  # __MMK__
  47. .ELSE                           # __MMK__
  48. ALPHA_X_ALPHA = 1
  49. IA64_X_IA64 = 1
  50. VAX_X_VAX = 1
  51. .IFDEF $(MMS$ARCH_NAME)_X_ALPHA     # $(MMS$ARCH_NAME)_X_ALPHA
  52. __ALPHA__ = 1
  53. .ENDIF                              # $(MMS$ARCH_NAME)_X_ALPHA
  54. .IFDEF $(MMS$ARCH_NAME)_X_IA64      # $(MMS$ARCH_NAME)_X_IA64
  55. __IA64__ = 1
  56. .ENDIF                              # $(MMS$ARCH_NAME)_X_IA64
  57. .IFDEF $(MMS$ARCH_NAME)_X_VAX       # $(MMS$ARCH_NAME)_X_VAX
  58. __VAX__ = 1
  59. .ENDIF                              # $(MMS$ARCH_NAME)_X_VAX
  60. .ENDIF                          # __MMK__
  61.  
  62. .IFDEF __ALPHA__                # __ALPHA__
  63. DEST = ALPHA
  64. #E = .AXP_EXE
  65. #O = .AXP_OBJ
  66. #A = .AXP_OLB
  67. .ELSE                           # __ALPHA__
  68. .IFDEF __IA64__                     # __IA64__
  69. DEST = IA64
  70. #E = .I64_EXE
  71. #O = .I64_OBJ
  72. #A = .I64_OLB
  73. .ELSE                               # __IA64__
  74. .IFDEF __DECC__                         # __DECC__
  75. DEST = VAX
  76. #E = .VAX_DECC_EXE
  77. #O = .VAX_DECC_OBJ
  78. #A = .VAX_DECC_OLB
  79. .ENDIF                                  # __DECC__
  80. .IFDEF __FORCE_VAXC__                   # __FORCE_VAXC__
  81. __VAXC__ = 1
  82. .ENDIF                                  # __FORCE_VAXC__
  83. .IFDEF __VAXC__                         # __VAXC__
  84. DEST = VAXV
  85. #E = .VAX_VAXC_EXE
  86. #O = .VAX_VAXC_OBJ
  87. #A = .VAX_VAXC_OLB
  88. .ENDIF                                  # __VAXC__
  89. .IFDEF __GNUC__                         # __GNUC__
  90. DEST = VAXG
  91. #E = .VAX_GNUC_EXE
  92. #O = .VAX_GNUC_OBJ
  93. #A = .VAX_GNUC_OLB
  94. .ENDIF                                  # __GNUC__
  95. .ENDIF                              # __IA64__
  96. .ENDIF                          # __ALPHA__
  97. .IFDEF O                        # O
  98. .ELSE                           # O
  99. !If EXE and OBJ extensions aren't defined, define them
  100. E = .EXE
  101. O = .OBJ
  102. A = .OLB
  103. .ENDIF                          # O
  104.  
  105. .IFDEF SRCDIR
  106. .ELSE
  107. SRCDIR = []
  108. .ENDIF
  109. .IFDEF DSTDIR                   # DSTDIR
  110. .ELSE                           # DSTDIR
  111. .IFDEF DEST                       # DEST
  112. DSTDIR = [.$(DEST)]
  113. .ELSE                             # DEST
  114. DSTDIR = []
  115. .ENDIF                            # DEST
  116. .ENDIF                          # DSTDIR
  117.  
  118. !!!!!!!!!!!!!!!!!!!!!!!!!!! USER CUSTOMIZATION !!!!!!!!!!!!!!!!!!!!!!!!!!!!
  119. ! add any common optional preprocessor flags (macros) here
  120. ! (do not forget a trailing comma!!):
  121. COMMON_DEFS =
  122. !!!!!!!!!!!!!!!!!!!!!!!! END OF USER CUSTOMIZATION !!!!!!!!!!!!!!!!!!!!!!!!
  123.  
  124. .IFDEF __GNUC__
  125. CC = gcc
  126. LIBS = ,GNU_CC:[000000]GCCLIB.OLB/LIB
  127. .ELSE
  128. CC = cc
  129. LIBS =
  130. .ENDIF
  131.  
  132. CFLAGS = /NOLIST
  133.  
  134. OPTFILE = sys$disk:[.vms]vaxcshr.opt
  135.  
  136. .IFDEF __ALPHA__                # __ALPHA__
  137. CC_OPTIONS = /STANDARD=RELAX/PREFIX=ALL/ANSI/NAMES=(AS_IS)
  138. CC_DEFS =
  139. .ELSE                           # __ALPHA__
  140. .IFDEF __IA64__                     # __IA64__
  141. CC_OPTIONS = /STANDARD=RELAX/PREFIX=ALL/ANSI/NAMES=(AS_IS)
  142. CC_DEFS =
  143. .ELSE                               # __IA64__
  144. .IFDEF __DECC__                         # __DECC__
  145. CC_OPTIONS = /DECC/STANDARD=RELAX/PREFIX=ALL/NAMES=(AS_IS)
  146. CC_DEFS =
  147. .ELSE                                   # __DECC__
  148. .IFDEF __FORCE_VAXC__                       # __FORCE_VAXC__
  149. !Select VAXC on systems where DEC C exists
  150. CC_OPTIONS = /VAXC
  151. .ELSE                                       # __FORCE_VAXC__
  152. !No flag allowed/needed on a pure VAXC system
  153. CC_OPTIONS =
  154. .ENDIF                                      # __FORCE_VAXC__
  155. CC_DEFS =
  156. .ENDIF                                  # __DECC__
  157. .ENDIF                              # __IA64__
  158. .ENDIF                          # __ALPHA__
  159.  
  160. !
  161. ! The .FIRST target is needed only if we're serious about building,
  162. ! and then, only if BZIP2 support was requested.
  163. !
  164. .IFDEF MMSTARGETS               # MMSTARGETS
  165. .FIRST
  166.         @ write sys$output "   Destination: $(DSTDIR)"
  167.         @ write sys$output ""
  168.         if ("$(DEST)" .nes. "") then -
  169.          if (f$search("$(DEST).DIR;1") .eqs. "") then -
  170.           create /directory $(DSTDIR)
  171. .ENDIF                          # MMSTARGETS
  172. CC_DEFS2 =
  173. CFLAGS_INCL = /INCLUDE = []
  174.  
  175. .IFDEF __DEBUG__
  176. CDEB = /DEBUG/NOOPTIMIZE
  177. .ELSE
  178. CDEB =
  179. .ENDIF
  180.  
  181. CFLAGS_ALL  = $(CC_OPTIONS) $(CFLAGS) $(CDEB) $(CFLAGS_INCL) -
  182.               /def=($(CC_DEFS) $(COMMON_DEFS) BZ_NO_STDIO, VMS) -
  183.               $(CCOPTS)
  184.  
  185.  
  186. OBJBZ2LIB = \
  187.  $(DSTDIR)blocksort$(O), \
  188.  $(DSTDIR)huffman$(O), \
  189.  $(DSTDIR)crctable$(O), \
  190.  $(DSTDIR)randtable$(O), \
  191.  $(DSTDIR)compress$(O), \
  192.  $(DSTDIR)decompress$(O), \
  193.  $(DSTDIR)bzlib$(O)
  194.  
  195. OLBBZ2 = $(DSTDIR)LIBBZ2_NS$(A)
  196.  
  197. BZIP2_H = $(SRCDIR)bzlib.h $(SRCDIR)bzlib_private.h
  198.  
  199. !!!!!!!!!!!!!!!!!!! override default rules: !!!!!!!!!!!!!!!!!!!
  200. .suffixes :
  201. .suffixes : .ANL $(E) $(A) .MLB .HLB .TLB .FLB $(O) -
  202.             .FORM .BLI .B32 .C .c .COB -
  203.             .FOR .BAS .B16 .PLI .PEN .PAS .MAC .MAR .M64 .CLD .MSG .COR .DBL -
  204.             .RPG .SCN .IFDL .RBA .RC .RCO .RFO .RPA .SC .SCO .SFO .SPA .SPL -
  205.             .SQLADA .SQLMOD .RGK .RGC .MEM .RNO .HLP .RNH .L32 .REQ .R32 -
  206.             .L16 .R16 .TXT .H .FRM .MMS .DDL .COM .DAT .OPT .CDO .SDML .ADF -
  207.             .GDF .LDF .MDF .RDF .TDF
  208.  
  209. $(O)$(A) :
  210.         If "''F$Search("$(MMS$TARGET)")'" .EQS. "" Then $(LIBR)/Create $(MMS$TARGET)
  211.         $(LIBR)$(LIBRFLAGS) $(MMS$TARGET) $(MMS$SOURCE)
  212.  
  213. .c$(O) :
  214.         $(CC) $(CFLAGS_ALL) /OBJ=$(MMS$TARGET) $(MMS$SOURCE)
  215.  
  216. !!!!!!!!!!!!!!!!!! here starts the bzip2 specific part !!!!!!!!!!!
  217.  
  218. DEFAULT default :       CHK_DESTDIR $(OLBBZ2)
  219.         @       !       Do nothing.
  220.  
  221. CLEAN.COM clean.com :
  222.         @ open/write tmp $(MMS$TARGET)
  223.         @ write tmp "$!"
  224.         @ write tmp "$! Clean.com --    procedure to delete files. It always returns success"
  225.         @ write tmp "$!                 status despite any error or warnings. Also it extracts"
  226.         @ write tmp "$!                 filename from MMS ""module=file"" format."
  227.         @ write tmp "$!"
  228.         @ write tmp "$ on control_y then goto ctly"
  229.         @ write tmp "$ if p1.eqs."""" then exit 1"
  230.         @ write tmp "$ i = -1"
  231.         @ write tmp "$scan_list:"
  232.         @ write tmp "$  i = i+1"
  233.         @ write tmp "$  item = f$elem(i,"","",p1)"
  234.         @ write tmp "$  if item.eqs."""" then goto scan_list"
  235.         @ write tmp "$  if item.eqs."","" then goto done                ! End of list"
  236.         @ write tmp "$  item = f$edit(item,""trim"")            ! Clean of blanks"
  237.         @ write tmp "$  wild = f$elem(1,""="",item)"
  238.         @ write tmp "$  show sym wild"
  239.         @ write tmp "$  if wild.eqs.""="" then wild = f$elem(0,""="",item)"
  240.         @ write tmp "$  vers = f$parse(wild,,,""version"",""syntax_only"")"
  241.         @ write tmp "$  if vers.eqs."";"" then wild = wild - "";"" + "";*"""
  242.         @ write tmp "$scan:"
  243.         @ write tmp "$          f = f$search(wild)"
  244.         @ write tmp "$          if f.eqs."""" then goto scan_list"
  245.         @ write tmp "$          on error then goto err"
  246.         @ write tmp "$          on warning then goto warn"
  247.         @ write tmp "$          delete/log 'f'"
  248.         @ write tmp "$warn:"
  249.         @ write tmp "$err:"
  250.         @ write tmp "$          goto scan"
  251.         @ write tmp "$done:"
  252.         @ write tmp "$ctly:"
  253.         @ write tmp "$  exit 1"
  254.         @ close tmp
  255.  
  256. CLEAN clean : clean.com
  257.         @clean "$(OBJBZ2LIB)"
  258.         @clean "$(OLBBZ2)"
  259.         @- delete/noconfirm/nolog clean.com;*
  260.         @- if ("$(DEST).dir" .nes. "") then -
  261.            if (f$search("$(DEST).dir") .nes. "") then -
  262.             set protect=w:d $(DEST).dir;*
  263.         @- if ("$(DEST).dir" .nes. "") then -
  264.            if (f$search("$(DEST).dir") .nes. "") then -
  265.             delete/noconfirm $(DEST).dir;*
  266.  
  267. CHK_DESTDIR chk_destdir :
  268.         @ If ("$(DEST)" .NES. "") Then -
  269.            If "''F$Search("$(DEST).DIR;1")'" .EQS. "" Then -
  270.             Create /directory $(DSTDIR)
  271.  
  272. $(OLBBZ2)       : $(OBJBZ2LIB)
  273.         If "''F$Search("$(MMS$TARGET)")'" .EQS. "" Then $(LIBR)/Create $(MMS$TARGET)
  274.         $(LIBR)$(LIBRFLAGS) $(MMS$TARGET) $(MMS$CHANGED_LIST)
  275.         @ write sys$output "$(MMS$TARGET) updated."
  276.  
  277. $(OBJBZ2LIB)    : $(BZIP2_H)
  278.  
  279. $(DSTDIR)blocksort$(O)  : $(SRCDIR)blocksort.c
  280. $(DSTDIR)huffman$(O)    : $(SRCDIR)huffman.c
  281. $(DSTDIR)crctable$(O)   : $(SRCDIR)crctable.c
  282. $(DSTDIR)randtable$(O)  : $(SRCDIR)randtable.c
  283. $(DSTDIR)compress$(O)   : $(SRCDIR)compress.c
  284. $(DSTDIR)decompress$(O) : $(SRCDIR)decompress.c
  285. $(DSTDIR)bzlib$(O)      : $(SRCDIR)bzlib.c
  286.