makefile.dj2
上传用户:andy_li
上传日期:2007-01-06
资源大小:1019k
文件大小:7k
源码类别:

压缩解压

开发平台:

MultiPlatform

  1. # Makefile for Info-ZIP's UnZip, UnZipSFX and fUnZip using djgpp v2.01, by
  2. # Frank Donahoe.                                 Last updated:  30 Sept 97
  3. # This Makefile is specifically tailored for GNU make and GNU C and
  4. # may not work with a generic Unix-compatible make utility.  The latest
  5. # make version is 3.75.  Thanks to Eli Zaretskii for generously responding
  6. # to questions with advice on the changes needed to make install work under
  7. # the new version.
  8. # Features used:
  9. # - pattern rules (%.o : %.c, etc.)
  10. # - GNU-specific conditionals and functions  (ifeq, $(patsubst,,),...)
  11. #
  12. # The stand-alone executable requires DPMI services to run.  If running
  13. # in a DOS window under Windows 3.1 or later, the dpmi server is auto-
  14. # matically present.  Under DOS, if a DPMI server is not loaded, the
  15. # program will look for "cwsdpmi.exe."  If found, it will be loaded for
  16. # the duration of the program.
  17. #
  18. # cwsdpmi is a "free" dpmi server written by Charles W. Sandmann
  19. # (sandman@clio.rice.edu).  It may be found, among other sites, on SimTel
  20. # Net at the URL:
  21. #
  22. #   ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2misc/csdpmi?[b,s].zip
  23. #
  24. # and on its mirrors worldwide.  The latest version as of this writing is 3.
  25. # Archives with the b postscript contain the binaries.  An alternate server
  26. # is found, l.c., in the archive pmode??[b,s].zip.  The latest (960908) is
  27. # v1.1.
  28. # Separators colon and <sp> are used in Unix, semi-colon and <sp> in DOS.
  29. VPATH=. msdos
  30. ifdef NOASM
  31. USE_ASMCRC=
  32. else
  33. USE_ASMCRC=1
  34. endif
  35. .PHONY : clean install uninstall
  36. # UnZip flags
  37. # LOCAL_UNZIP may be set in AUTOEXEC.BAT or defined in djgpp.env [make].
  38. # See, for example, DOSWILD, in the file INSTALL.
  39. # [make]
  40. # LOCAL_UNZIP=-DDOSWILD
  41. # BUTT=-m486
  42. # BUTT may also be defined to specify the target system.  At present, -m386
  43. # and -m486 are the only supported options.  Either will produce code that
  44. # will run on the other microprocessor, though possibly not so fast.
  45. # In any case, omitting BUTT will result in a slightly smaller executable.
  46. LOC=-DDOS -DUSE_VFAT $(ASMFLG) $(LOCAL_UNZIP)
  47. CC=gcc
  48. LD=$(CC)
  49. CPPFLAGS=-I. $(LOC)
  50. ASFLAGS=$(CPPFLAGS)
  51. CFLAGS=-Wall -O2 $(BUTT) $(CPPFLAGS)
  52. # See INSTALL for discussion of SFX_EXDIR.
  53. # EXDIR=-DSFX_EXDIR
  54. FUN_FLAGS=$(CFLAGS) -DFUNZIP
  55. # Include OFP for a modest decrease in size of unzipsfx.exe.
  56. OFP=-fomit-frame-pointer
  57. SFX_FLAGS=-Wall -O2 $(CPPFLAGS) -DSFX $(EXDIR) $(OFP)
  58. LDFLAGS=-s
  59. # general-purpose stuff
  60. # If cp.exe is not found change to CP=copy /Y    .
  61. CP = cp -fp
  62. # If install.exe is not found change to INSTALL=$(CP)   .  To prevent a
  63. # conflict with any of the many different "install's" that might be found
  64. # in the path, GNU install will be called as `ginstall'.  This also bypasses
  65. # a stub bug that cropped up with the install from fil316b.zip.
  66. INSTALL=ginstall
  67. # The default value of RM is "rm -f"  .  If rm.exe is not found, uncomment
  68. # the following:
  69. # RM=del
  70. # If "djp.exe," which is Laszlo Molnar's executable file packer, is in the
  71. # path, uncomment the three lines found far below containing $(DJP).  The
  72. # executable files will be converted to self-extracting compressed files.
  73. # Look for "djp.exe" in the directory v2misc in the archive mlp???b.zip.
  74. # Do not add the option -s to DJP without making the required changes to
  75. # the targets zipinfo$E and unzipsfx$E.
  76. DJP = djp -q
  77. E = .exe
  78. O = .o
  79. M=msdos
  80. # defaults for crc32 stuff and system dependent headers
  81. ifdef USE_ASMCRC
  82. ASMFLG = -DASM_CRC
  83. CRC32 = crc_gcc
  84. else
  85. ASMFLG =
  86. CRC32 = crc32
  87. endif
  88. # object files
  89. OBJS1 = unzip$O $(CRC32)$O crctab$O crypt$O envargs$O explode$O
  90. OBJS2 = extract$O fileio$O globals$O inflate$O list$O match$O
  91. OBJS3 = process$O ttyio$O unreduce$O unshrink$O zipinfo$O
  92. OBJS = $(OBJS1) $(OBJS2) $(OBJS3) $M$O
  93. OBJX = unzipsfx$O $(CRC32)$O crctab_$O crypt_$O extract_$O fileio_$O 
  94. globals_$O inflate_$O match_$O process_$O ttyio_$O $M_$O
  95. OBJF = funzip$O $(CRC32)$O crypt-$O globals-$O inflate-$O ttyio-$O
  96. OBJECTS_ALL = $(sort $(OBJS) $(OBJX) $(OBJF) crc32$O crc_gcc$O)
  97. # Common header files included by all C sources:
  98. UNZIP_H = unzip.h unzpriv.h globals.h msdos/doscfg.h
  99. # executable files
  100. UNZIPS = unzip$E zipinfo$E funzip$E unzipsfx$E
  101. # pattern rules to compile the sources:
  102. %$O : %.c
  103. $(CC) $(CFLAGS) -c $< -o $@
  104. %-$O: %.c
  105. $(CC) $(FUN_FLAGS) -c $< -o $@
  106. %_$O: %.c
  107. $(CC) $(SFX_FLAGS) -c $< -o $@
  108. %sfx$O: %.c
  109. $(CC) $(SFX_FLAGS) -c $< -o $@
  110. all: unzips
  111. unzips: unzip$E zipinfo$E funzip$E unzipsfx$E
  112. unzip$E: $(OBJS)
  113. $(LD) $(LDFLAGS) $(OBJS) -o $@
  114. # $(DJP) $@
  115. zipinfo$E: unzip$E
  116. stubify -g $@
  117. stubedit $@ runfile=unzip argv0=zipinfo
  118. funzip$E: $(OBJF)
  119. $(LD) $(LDFLAGS) $(OBJF) -o $@
  120. # $(DJP) $@
  121. unzipsfx$E: $(OBJX)
  122. $(LD) $(LDFLAGS) $(OBJX) -o $@
  123. # $(DJP) -s $@
  124. # explicit compilation instructions:
  125. crc_gcc$O: crc_i386.S # 32bit, GNU AS
  126. $(CC) $(ASFLAGS) -x assembler-with-cpp -c -o $@ crc_i386.S
  127. # BIN_PATH may be defined in djgpp.env [make] or defined below.  If the
  128. # installation is to the directory containing gcc.exe etc. place the
  129. # following in djgpp.env:
  130. # [make]
  131. # BIN_PATH=%>;BIN_PATH%%DJDIR%bin
  132. # Even if so placed, it can be over-ridden here by, say:
  133. # BIN_PATH=c:usrbin
  134. install:
  135. -@if not exist $(BIN_PATH)nul mkdir $(BIN_PATH)
  136. command.com /c for %f in ($(UNZIPS)) do $(INSTALL) %f $(BIN_PATH) > NUL
  137. uninstall:
  138. command.com /c for %f in ($(UNZIPS)) do $(RM) $(BIN_PATH)%f > NUL
  139. clean:
  140. ifeq ($(firstword $(RM)), del)
  141. $(RM) *$O
  142. $(RM) *.~
  143. $(RM) *.exe
  144. else
  145. $(RM) $(OBJECTS_ALL) *.~ *.exe
  146. endif
  147. # Source dependencies:
  148. crc_gcc$O:      crc_i386.S
  149. crc32$O:        crc32.c $(UNZIP_H) zip.h
  150. crctab$O:       crctab.c $(UNZIP_H) zip.h
  151. crypt$O:        crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
  152. crypt-$O:       crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
  153. envargs$O:      envargs.c $(UNZIP_H)
  154. explode$O:      explode.c $(UNZIP_H)
  155. extract$O:      extract.c $(UNZIP_H) crypt.h
  156. extract_$O:     extract.c $(UNZIP_H) crypt.h
  157. fileio$O:       fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h
  158. funzip$O:       funzip.c $(UNZIP_H) crypt.h ttyio.h tables.h
  159. globals$O:      globals.c $(UNZIP_H)
  160. globals-$O:     globals.c $(UNZIP_H)
  161. inflate$O:      inflate.c inflate.h $(UNZIP_H)
  162. inflate-$O:     inflate.c inflate.h $(UNZIP_H) crypt.h
  163. list$O:         list.c $(UNZIP_H)
  164. match$O:        match.c $(UNZIP_H)
  165. msdos$O:        msdos/msdos.c $(UNZIP_H)
  166. msdos_$O:       msdos/msdos.c $(UNZIP_H)
  167. process$O:      process.c $(UNZIP_H)
  168. process_$O:     process.c $(UNZIP_H)
  169. ttyio$O:        ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
  170. ttyio-$O:       ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
  171. unreduce$O:     unreduce.c $(UNZIP_H)
  172. unshrink$O:     unshrink.c $(UNZIP_H)
  173. unzip$O:        unzip.c $(UNZIP_H) crypt.h version.h consts.h
  174. unzipsfx$O:     unzip.c $(UNZIP_H) crypt.h version.h consts.h
  175. zipinfo$O:      zipinfo.c $(UNZIP_H)