home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 9 Archive / 09-Archive.zip / zip21.zip / msdos / makefile.msc < prev    next >
Makefile  |  1996-04-01  |  5KB  |  192 lines

  1. # Makefile for Zip, ZipCloak, ZipNote and ZipSplit for
  2. # Microsoft C 5.1 and above.
  3.  
  4. # To use, do "make makefile.msc"
  5.  
  6. # Add -DSMALL_MEM or -DMEDIUM_MEM to the LOC macro if you wish to reduce
  7. # the memory requirements.
  8. # Add -DNO_ASM to CFLAGS and comment out the ASMOBJS definition if
  9. # you do not have masm.
  10.  
  11. # Optional nonstandard preprocessor flags (as -DMEDIUM_MEM or -DNO_ASM)
  12. # should be added to the environment via "set LOCAL_ZIP=-DFOO" or added
  13. # to the declaration of LOC here:
  14. LOC = -DDOS -DDYN_ALLOC -DNO_SECURE_TESTS $(LOCAL_ZIP)
  15.  
  16. # Zip requires compact or large memory model.
  17. # with 2.1, compact model exceeds 64k code segment; use large model
  18. ZIPMODEL=L    # large model for Zip and ZipUtils
  19.  
  20. # name of Flag to select memory model for assembler compiles, supported
  21. # values are __SMALL__ , __MEDIUM__ , __COMPACT__ , __LARGE__ :
  22. ASMODEL=__LARGE__        # keep in sync with ZIPMODEL definition !!
  23.  
  24. # Type for CPU required: 0: 8086, 1: 80186, 2: 80286, 3: 80386, etc.
  25. CPU_TYP = 0
  26.  
  27. # Uncomment the following macro to use the optimized assembler
  28. # routines in Zip:
  29. ASMOBJS = match.obj crc_i86.obj
  30.  
  31. ASCPUFLAG = __$(CPU_TYP)86
  32.  
  33. # ------------- Microsoft C 5.1, 6.0, 7.0 and VC++ Pro 1.0 -------------
  34. CC=cl
  35. MODEL=-A$(ZIPMODEL)
  36. FP=
  37. COMMON_CFLAGS=-nologo -I. $(MODEL) $(FP) -DMSC $(LOC) -W3 -G$(CPU_TYP)
  38. CFLAGS=$(COMMON_CFLAGS) -Ox
  39. SPECFLAGS=$(COMMON_CFLAGS) -Oaict -Gs
  40. # For MSC/C++ 7.0 and VC++ no special flags are needed:
  41. # SPECFLAGS=$(CFLAGS)
  42. UTILFLAGS=-DUTIL $(CFLAGS) -Fo
  43.  
  44. AS=masm
  45. ASFLAGS=-ml -t -D$(ASCPUFLAG) -D$(ASMODEL) $(LOC)
  46. #     For MSC 6.0, use:
  47. #AS=ml
  48. #ASFLAGS=-c -D$(ASCPUFLAG) -D$(ASMODEL) $(LOC)
  49. # Supress -DDYN_ALLOC in ASFLAGS if you have suppressed it in CFLAGS
  50.  
  51. LD=link
  52. LDFLAGS=/noi/farcall/packcode/e/st:0x1000/m
  53. #     If you use lzexe as recommended below, remove /e from LDFLAGS
  54.  
  55. # ------------- Common declarations:
  56. STRIP=rem
  57. #    If you don't have lzexe, get it (by ftp on oak.oakland.edu in
  58. #    /pub/msdos/execomp/lzexe91e.zip). Then define:
  59. #STRIP=lzexe
  60. #    Or if you've registered PKLITE, then define:
  61. #STRIP=pklite
  62. #    This makes a big difference in .exe size (and possibly load time)
  63.  
  64. # ------------- Used by install rule
  65. # set BIN to the directory you want to install the executables to
  66. BIN = c:\util
  67.  
  68. # variables
  69. OBJZ = zip.obj crypt.obj ttyio.obj zipfile.obj zipup.obj fileio.obj util.obj \
  70.     crc32.obj crctab.obj globals.obj
  71.  
  72. OBJI = deflate.obj trees.obj bits.obj $(ASMOBJS) msdos.obj
  73.  
  74. OBJU = zipfile_.obj fileio_.obj util_.obj globals.obj
  75. OBJN = zipnote.obj $(OBJU)
  76. OBJC = zipcloak.obj crctab.obj crypt_.obj ttyio.obj $(OBJU)
  77. OBJS = zipsplit.obj $(OBJU)
  78.  
  79. ZIP_H = zip.h ziperr.h tailor.h msdos/osdep.h
  80.  
  81. ZIPS = zip.exe zipnote.exe zipsplit.exe zipcloak.exe
  82.  
  83. zips:    $(ZIPS)
  84.  
  85. zip.obj:    zip.c $(ZIP_H) revision.h crypt.h ttyio.h
  86.     $(CC) -c $(CFLAGS) $*.c
  87.  
  88. # MSC 5.1 generates bad code on zipfile with -Ox
  89. zipfile.obj:    zipfile.c $(ZIP_H)
  90.     $(CC) -c $(SPECFLAGS) $*.c
  91.  
  92. zipup.obj:    zipup.c $(ZIP_H) revision.h crypt.h msdos/zipup.h
  93.     $(CC) -c $(CFLAGS) $*.c
  94.  
  95. fileio.obj:    fileio.c $(ZIP_H)
  96.     $(CC) -c $(CFLAGS) $*.c
  97.  
  98. util.obj:    util.c $(ZIP_H)
  99.     $(CC) -c $(CFLAGS) $*.c
  100.  
  101. globals.obj:    globals.c $(ZIP_H)
  102.     $(CC) -c $(CFLAGS) $*.c
  103.  
  104. deflate.obj:    deflate.c $(ZIP_H)
  105.     $(CC) -c $(CFLAGS) $*.c
  106.  
  107. trees.obj:    trees.c $(ZIP_H)
  108.     $(CC) -c $(CFLAGS) $*.c
  109.  
  110. bits.obj:    bits.c $(ZIP_H) crypt.h
  111.     $(CC) -c $(CFLAGS) $*.c
  112.  
  113. crc32.obj:    crc32.c $(ZIP_H)
  114.     $(CC) -c $(CFLAGS) $*.c
  115.  
  116. crctab.obj:    crctab.c $(ZIP_H)
  117.     $(CC) -c $(CFLAGS) $*.c
  118.  
  119. crypt.obj:    crypt.c $(ZIP_H) crypt.h ttyio.h
  120.     $(CC) -c $(CFLAGS) $*.c
  121.  
  122. ttyio.obj:    ttyio.c $(ZIP_H) crypt.h ttyio.h
  123.     $(CC) -c $(CFLAGS) $*.c
  124.  
  125. msdos.obj:    msdos/msdos.c $(ZIP_H)
  126.     $(CC) -c $(CFLAGS) msdos/$*.c
  127.  
  128. zipcloak.obj:    zipcloak.c $(ZIP_H) revision.h crypt.h ttyio.h
  129.     $(CC) -c $(CFLAGS) $*.c
  130.  
  131. zipnote.obj:    zipnote.c $(ZIP_H) revision.h
  132.     $(CC) -c $(CFLAGS) $*.c
  133.  
  134. # MSC 5.1 dies on zipsplit with -Ox
  135. zipsplit.obj:    zipsplit.c $(ZIP_H) revision.h
  136.     $(CC) -c $(SPECFLAGS) $*.c
  137.  
  138. # MSC 5.1 generates bad code on zipfile with -Ox
  139. zipfile_.obj:    zipfile.c $(ZIP_H)
  140.     $(CC) -c $(SPECFLAGS) -DUTIL -Fo$@ zipfile.c
  141.  
  142. fileio_.obj:    fileio.c $(ZIP_H)
  143.     $(CC) -c $(UTILFLAGS)$@ fileio.c
  144.  
  145. util_.obj:    util.c $(ZIP_H)
  146.     $(CC) -c $(UTILFLAGS)$@ util.c
  147.  
  148. crypt_.obj:    crypt.c $(ZIP_H) crypt.h ttyio.h
  149.     $(CC) -c $(UTILFLAGS)$@ crypt.c
  150.  
  151. crc_i86.obj:    msdos/crc_i86.asm
  152.     $(AS) $(ASFLAGS) msdos\crc_i86.asm ;
  153.  
  154. match.obj:    msdos/match.asm
  155.     $(AS) $(ASFLAGS) msdos\match.asm ;
  156.  
  157. # we must cut the command line to fit in the MS/DOS 128 byte limit:
  158. zip.exe: $(OBJZ) $(OBJI)
  159.     echo $(OBJZ)+ > zip.rsp
  160.     echo $(OBJI); >> zip.rsp
  161.     $(LD) $(LDFLAGS) @zip.rsp
  162.     del zip.rsp
  163.     $(STRIP) zip.exe
  164.  
  165. zipcloak.exe: $(OBJC)
  166.     echo $(OBJC); > zipc.rsp
  167.     $(LD) $(LDFLAGS) @zipc.rsp
  168.     del zipc.rsp
  169.     $(STRIP) zipcloak.exe
  170.  
  171. zipnote.exe: $(OBJN)
  172.     echo $(OBJN); > zipn.rsp
  173.     $(LD) $(LDFLAGS) @zipn.rsp
  174.     del zipn.rsp
  175.     $(STRIP) zipnote.exe
  176.  
  177. zipsplit.exe: $(OBJS)
  178.     echo $(OBJS); > zips.rsp
  179.     $(LD) $(LDFLAGS) @zips.rsp
  180.     del zips.rsp
  181.     $(STRIP) zipsplit.exe
  182.  
  183. # No `install' and `clean' target possible as long as MSC's old MAKE utility
  184. # is supported (MSC 5.1 Make always tries to update ALL targets. The result
  185. # is that install and clean are always executed, unless an error occured.)
  186. #install:    $(ZIPS)
  187. #    copy /b *.exe $(BIN)
  188. #
  189. #clean:
  190. #    del *.obj
  191. #    del *.exe
  192.