home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 9 Archive / 09-Archive.zip / unzip540.zip / msdos / makefile.bc < prev    next >
Makefile  |  1998-04-16  |  5KB  |  194 lines

  1. # Makefile for UnZip(SFX) and fUnZip for Borland C++ 2.x-4.x and Turbo C++ 1.0
  2. # Version: 5.20 and later        Alvin Koh, Jim Knoble, Christian Spieler, etc.
  3. #
  4. # Last revised:  16 Apr 98
  5. #
  6. # To compile with Turbo C++ 1.0, set the macro CC_REV to 1 at the command line
  7. # (make -fmsdos/makefile.bc -DCC_REV=1).
  8.  
  9.  
  10. #    GNU make doesn't like the return value from "rem"
  11. #STRIP=rem
  12. STRIP=echo  Ignore this line.
  13. #    If you don't have LZEXE or PKLITE, get one of them. Then define:
  14. #STRIP=lzexe
  15. #    or
  16. #STRIP=pklite
  17. #    This makes a big difference in .exe size (and possibly load time).
  18.  
  19.  
  20. #    Optional nonstandard preprocessor flags (as -DCHECK_EOF or -DDOS_WILD)
  21. #    should be added to the environment via "set LOCAL_UNZIP=-DFOO" or added
  22. #    to the declaration of LOC here:
  23. LOC = $(LOCAL_UNZIP)
  24.  
  25. # Type for CPU required: 0: 8086, 1: 80186, 2: 80286, 3: 80386, etc.
  26. CPU_TYP = 0
  27.  
  28. # (De)Select inclusion of optimized assembler CRC32 routine:
  29. USE_ASMCRC = 1
  30.  
  31. !if $(CC_REV) == 1
  32. # Turbo C++ 1.0
  33. CC = tcc
  34. !else
  35. # Borland C++ 2.0, 3.0, 3.1 ...
  36. ! if !$(CC_REV)
  37. CC_REV = 3
  38. ! endif
  39. CC = bcc
  40. !endif
  41.  
  42. AS = tasm
  43.  
  44. # "near data" model is sufficient for UnZip and ZipInfo, now that strings moved
  45. # switched to medium model; UnZip code has grown beyond the 64k limit.
  46. UNMODEL = m        # medium model for UnZip and ZipInfo
  47. ASUNMODEL=__MEDIUM__    # keep in sync with UNMODEL definition !!
  48.  
  49. FUMODEL = s        # always use small model for fUnZip
  50. ASFUMODEL=__SMALL__    # keep in sync with FUMODEL definition !!
  51.  
  52. !if $(USE_ASMCRC)
  53. ASMFLG = -DASM_CRC
  54. ASMOBJS = crc_i86.obj
  55. ASMOBJF = crc_i86_.obj
  56. !else
  57. ASMFLG =
  58. ASMOBJS =
  59. ASMOBJF =
  60. !endif
  61.  
  62.  
  63. # compiler flags
  64.  
  65. ASCPUFLAG = __$(CPU_TYP)86
  66. !if $(CPU_TYP) != 0
  67. CC_CPUFLG = -$(CPU_TYP)
  68. !endif
  69. ASFLAGS = -ml -m2 -w0 -D$(ASCPUFLAG) $(LOC)
  70. !if $(CC_REV) == 1
  71. # Bug: TC ++ 1.0 ignores "far" on "const" strings, so const is disabled!
  72. CCOPTIM = -O -G -Z -a -d -DZCONST
  73. LDFLAGS = -lxncd        # for tcc
  74. !else
  75. CCOPTIM = -O2
  76. LDFLAGS = -lxncd -l-P        # for bcc
  77. !endif
  78. CFLAGS  = $(CCOPTIM) $(CC_CPUFLG) -ff- -k- -P-.C -I. $(ASMFLG) $(LOC)
  79. UNFLAGS = -m$(UNMODEL) $(CFLAGS)
  80. FUFLAGS = -m$(FUMODEL) $(CFLAGS) -K -d
  81. SXFLAGS = -m$(UNMODEL) $(CFLAGS)
  82.  
  83. # implicit rules
  84.  
  85. .asm.obj:
  86.     $(AS) $(ASFLAGS) -D$(ASUNMODEL) $<
  87.  
  88. .c.obj:
  89.     $(CC) -c $(UNFLAGS) {$< }
  90.  
  91. # list macros
  92.  
  93. OBJU1 = unzip.obj crc32.obj crctab.obj crypt.obj envargs.obj explode.obj
  94. OBJU2 = extract.obj fileio.obj globals.obj inflate.obj list.obj match.obj
  95. OBJU3 = process.obj ttyio.obj unreduce.obj unshrink.obj zipinfo.obj
  96. OBJUS = msdos.obj $(ASMOBJS)
  97. OBJU  = $(OBJU1) $(OBJU2) $(OBJU3) $(OBJUS)
  98. OBJF  = funzip.obj crc32f.obj cryptf.obj globalsf.obj inflatef.obj \
  99.     ttyiof.obj $(ASMOBJF)
  100. OBJX1 = unzipsfx.obj crc32.obj crctab.obj crypt.obj extractx.obj fileio.obj
  101. OBJX2 = globals.obj inflate.obj match.obj processx.obj ttyio.obj
  102. OBJXS = msdosx.obj $(ASMOBJS)
  103. OBJX  = $(OBJX1) $(OBJX2) $(OBJXS)
  104.  
  105. UNZIP_H = unzip.h unzpriv.h globals.h msdos/doscfg.h
  106.  
  107. # explicit rules
  108.  
  109. all:    unzip.exe funzip.exe unzipsfx.exe
  110.  
  111. unzip.exe:      $(OBJU)
  112.     $(CC) -m$(UNMODEL) $(LDFLAGS) -eunzip.exe @&&|
  113. $(OBJU)
  114. |
  115.     $(STRIP) unzip.exe
  116.  
  117. funzip.exe:     $(OBJF)
  118.     $(CC) -m$(FUMODEL) $(LDFLAGS) -efunzip.exe @&&|
  119. $(OBJF)
  120. |
  121.     $(STRIP) funzip.exe
  122.  
  123. unzipsfx.exe:   $(OBJX)
  124.     $(CC) -m$(UNMODEL) $(LDFLAGS) -eunzipsfx.exe @&&|
  125. $(OBJX)
  126. |
  127.     $(STRIP) unzipsfx.exe
  128.  
  129. clean:
  130.     rem Ignore any errors in the following...
  131.     -del *.obj
  132.     -del unzip.exe
  133.     -del funzip.exe
  134.     -del unzipsfx.exe
  135.  
  136. # individual file dependencies
  137.  
  138. crc32.obj:      crc32.c $(UNZIP_H) zip.h
  139. crctab.obj:     crctab.c $(UNZIP_H) zip.h
  140. crypt.obj:      crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
  141. envargs.obj:    envargs.c $(UNZIP_H)
  142. explode.obj:    explode.c $(UNZIP_H)
  143. extract.obj:    extract.c $(UNZIP_H) crypt.h
  144. fileio.obj:     fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h
  145. globals.obj:    globals.c $(UNZIP_H)
  146. inflate.obj:    inflate.c inflate.h $(UNZIP_H)
  147. list.obj:       list.c $(UNZIP_H)
  148. match.obj:      match.c $(UNZIP_H)
  149. process.obj:    process.c $(UNZIP_H)
  150. ttyio.obj:      ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
  151. unreduce.obj:   unreduce.c $(UNZIP_H)
  152. unshrink.obj:   unshrink.c $(UNZIP_H)
  153. unzip.obj:      unzip.c $(UNZIP_H) crypt.h version.h consts.h
  154. zipinfo.obj:    zipinfo.c $(UNZIP_H)
  155.  
  156. crc_i86.obj:    msdos/crc_i86.asm
  157.     $(AS) $(ASFLAGS) -D$(ASUNMODEL) msdos\crc_i86.asm, $*.obj ;
  158.  
  159. crc_i86_.obj:   msdos/crc_i86.asm
  160.     $(AS) $(ASFLAGS) -D$(ASFUMODEL) msdos\crc_i86.asm, $*.obj ;
  161.  
  162. msdos.obj:      msdos/msdos.c $(UNZIP_H)
  163.     $(CC) -c $(UNFLAGS) msdos/msdos.c
  164.  
  165. funzip.obj:     funzip.c $(UNZIP_H) crypt.h ttyio.h tables.h
  166.     $(CC) -c $(FUFLAGS) funzip.c
  167.  
  168. crc32f.obj:     crc32.c $(UNZIP_H) zip.h
  169.     $(CC) -c $(FUFLAGS) -DFUNZIP -ocrc32f.obj crc32.c
  170.  
  171. cryptf.obj:     crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
  172.     $(CC) -c $(FUFLAGS) -DFUNZIP -ocryptf.obj crypt.c
  173.  
  174. globalsf.obj:   globals.c $(UNZIP_H)
  175.     $(CC) -c $(FUFLAGS) -DFUNZIP -oglobalsf.obj globals.c
  176.  
  177. inflatef.obj:   inflate.c inflate.h $(UNZIP_H) crypt.h
  178.     $(CC) -c $(FUFLAGS) -DFUNZIP -oinflatef.obj inflate.c
  179.  
  180. ttyiof.obj:     ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
  181.     $(CC) -c $(FUFLAGS) -DFUNZIP -ottyiof.obj ttyio.c
  182.  
  183. unzipsfx.obj:   unzip.c $(UNZIP_H) crypt.h version.h consts.h
  184.     $(CC) -c $(SXFLAGS) -DSFX -ounzipsfx.obj unzip.c
  185.  
  186. extractx.obj:   extract.c $(UNZIP_H) crypt.h
  187.     $(CC) -c $(SXFLAGS) -DSFX -oextractx.obj extract.c
  188.  
  189. processx.obj:   process.c $(UNZIP_H)
  190.     $(CC) -c $(SXFLAGS) -DSFX -oprocessx.obj process.c
  191.  
  192. msdosx.obj:     msdos/msdos.c $(UNZIP_H)
  193.     $(CC) -c $(SXFLAGS) -DSFX -omsdosx.obj msdos/msdos.c
  194.