Makefile
上传用户:andy_li
上传日期:2007-01-06
资源大小:1019k
文件大小:8k
源码类别:

压缩解压

开发平台:

MultiPlatform

  1. #==============================================================================
  2. # Makefile for UnZip, UnZipSFX and fUnZip:  Atari           ("real" makes only)
  3. # Version:  5.32                                                 5 October 1997
  4. #==============================================================================
  5. # INSTRUCTIONS (such as they are):
  6. #
  7. # "make" -- makes UnZip on a generic Atari
  8. #
  9. # CF are flags for the C compiler.  LF are flags for the loader.  LF2 are more
  10. # flags for the loader, if they need to be at the end of the line instead of at
  11. # the beginning (for example, some libraries).  FL and FL2 are the corre-
  12. # sponding flags for fUnZip.  LOCAL_UNZIP is an environment variable that can
  13. # be used to add default C flags to your compile without editing the Makefile
  14. # (e.g., -DDEBUG_STRUC, or -FPi87 on PCs using Microsoft C).
  15. #
  16. # Be sure to test your new UnZip (and UnZipSFX and fUnZip); successful compila-
  17. # tion does not always imply a working program.
  18. #####################
  19. # MACRO DEFINITIONS #
  20. #####################
  21. # Defaults most systems use (use LOCAL_UNZIP in environment to add flags,
  22. # such as -DDOSWILD).
  23. # UnZip flags
  24. CC = gcc# try using "gcc" target rather than changing this (if you do,
  25. LD = $(CC)# you MUST change LD, too--else "unresolved symbol:  ___main")
  26. LOC = $(LOCAL_UNZIP)
  27. CF = $(CFLAGS) $(LOC)
  28. LF = -o unzip$E
  29. LF2 = -s
  30. # UnZipSFX flags
  31. SL = -o unzipsfx$E
  32. SL2 = $(LF2)
  33. # fUnZip flags
  34. FL = -o funzip$E
  35. FL2 = $(LF2)
  36. # general-purpose stuff
  37. CP = ln -s
  38. LN = ln
  39. RM = rm -f
  40. CHMOD = chmod
  41. STRIP = strip
  42. E = .ttp
  43. O = .o
  44. M = atari
  45. SHELL = /bin/sh
  46. # object files
  47. OBJS1 = unzip$O crc32$O crctab$O crypt$O envargs$O explode$O
  48. OBJS2 = extract$O fileio$O globals$O inflate$O list$O match$O
  49. OBJS3 = process$O ttyio$O unreduce$O unshrink$O zipinfo$O
  50. OBJS = $(OBJS1) $(OBJS2) $(OBJS3) $M$O
  51. LOBJS = $(OBJS)
  52. OBJSDLL = $(OBJS) api$O
  53. OBJX = unzipsfx$O crc32$O crctab$O crypt$O extract_$O fileio$O globals$O 
  54. inflate$O match$O process_$O ttyio$O $M_$O
  55. LOBJX = $(OBJX)
  56. OBJF = funzip$O crc32$O crypt_$O globals_$O inflate_$O ttyio_$O
  57. #OBJS_OS2 = $(OBJS1:.o=.obj) $(OBJS2:.o=.obj) os2.obj
  58. #OBJF_OS2 = $(OBJF:.o=.obj)
  59. UNZIP_H = unzip.h unzpriv.h globals.h
  60. # installation
  61. INSTALL = cp# probably can change this to 'install' if you have it
  62. # on some systems, manext=l and MANDIR=/usr/man/man$(manext) may be appropriate
  63. manext = 1
  64. prefix = /usr/local
  65. BINDIR = $(prefix)/bin# where to install executables
  66. MANDIR = $(prefix)/man/man$(manext)# where to install man pages
  67. INSTALLEDBIN = $(BINDIR)/funzip$E $(BINDIR)/zipinfo$E $(BINDIR)/unzipsfx$E 
  68. $(BINDIR)/unzip$E
  69. INSTALLEDMAN = $(MANDIR)/unzip.$(manext) $(MANDIR)/funzip.$(manext) 
  70. $(MANDIR)/unzipsfx.$(manext) $(MANDIR)/zipinfo.$(manext)
  71. #
  72. UNZIPS = unzip$E funzip$E unzipsfx$E
  73. # this is a little ugly...well, no, it's a lot ugly:
  74. MANS = unix/unzip.1 unix/unzipsfx.1 unix/zipinfo.1 unix/funzip.1
  75. DOCS = unzip.doc unzipsfx.doc zipinfo.doc funzip.doc
  76. ###############################################
  77. # BASIC COMPILE INSTRUCTIONS AND DEPENDENCIES #
  78. ###############################################
  79. # this is for GNU make; comment out and notify zip-bugs if it causes errors
  80. .SUFFIXES: .c .o .obj
  81. # yes, we should be able to use the $O macro to combine these two, but it
  82. # fails on some brain-damaged makes (e.g., AIX's)...no big deal
  83. .c.o:
  84. $(CC) -c $(CF) $*.c
  85. .c.obj:
  86. $(CC) -c $(CF) $*.c
  87. ####################
  88. # DEFAULT HANDLING #
  89. ####################
  90. all: unzips
  91. unzips: $(UNZIPS)
  92. docs: $(DOCS)
  93. unzipsman: unzips docs
  94. unzipsdocs: unzips docs
  95. unzip$E: $(OBJS)
  96. $(LD) $(LF) $(LOBJS) $(LF2)
  97. unzipsfx$E: $(OBJX)
  98. $(LD) $(SL) $(LOBJX) $(SL2)
  99. funzip$E: $(OBJF)
  100. $(LD) $(FL) $(OBJF) $(FL2)
  101. crc32$O: crc32.c $(UNZIP_H) zip.h
  102. crctab$O: crctab.c $(UNZIP_H) zip.h
  103. crypt$O: crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
  104. envargs$O: envargs.c $(UNZIP_H)
  105. explode$O: explode.c $(UNZIP_H)
  106. extract$O: extract.c $(UNZIP_H) crypt.h
  107. fileio$O: fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h
  108. funzip$O: funzip.c $(UNZIP_H) crypt.h ttyio.h tables.h
  109. globals$O: globals.c $(UNZIP_H)
  110. inflate$O: inflate.c inflate.h $(UNZIP_H)
  111. list$O: list.c $(UNZIP_H)
  112. match$O: match.c $(UNZIP_H)
  113. process$O: process.c $(UNZIP_H)
  114. ttyio$O: ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
  115. unreduce$O: unreduce.c $(UNZIP_H)
  116. unshrink$O: unshrink.c $(UNZIP_H)
  117. unzip$O: unzip.c $(UNZIP_H) crypt.h version.h consts.h
  118. zipinfo$O: zipinfo.c $(UNZIP_H)
  119. crypt_$O: crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h # funzip only
  120. $(CP) crypt.c crypt_.c
  121. $(CC) -c $(CF) -DFUNZIP crypt_.c
  122. $(RM) crypt_.c
  123. extract_$O: extract.c $(UNZIP_H) crypt.h # unzipsfx only
  124. $(CP) extract.c extract_.c
  125. $(CC) -c $(CF) -DSFX extract_.c
  126. $(RM) extract_.c
  127. globals_$O: globals.c $(UNZIP_H) # funzip only
  128. $(CP) globals.c globals_.c
  129. $(CC) -c $(CF) -DFUNZIP globals_.c
  130. $(RM) globals_.c
  131. inflate_$O: inflate.c inflate.h $(UNZIP_H) crypt.h # funzip only
  132. $(CP) inflate.c inflate_.c
  133. $(CC) -c $(CF) -DFUNZIP inflate_.c
  134. $(RM) inflate_.c
  135. ttyio_$O: ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h # funzip only
  136. $(CP) ttyio.c ttyio_.c
  137. $(CC) -c $(CF) -DFUNZIP ttyio_.c
  138. $(RM) ttyio_.c
  139. process_$O: process.c $(UNZIP_H) # unzipsfx only
  140. $(CP) process.c process_.c
  141. $(CC) -c $(CF) -DSFX process_.c
  142. $(RM) process_.c
  143. atari_$O: atari.c $(UNZIP_H)
  144. $(CP) atari.c atari_.c
  145. $(CC) -c $(CF) -DSFX atari_.c
  146. $(RM) atari_.c
  147. unzipsfx$O: unzip.c $(UNZIP_H) crypt.h version.h consts.h # unzipsfx only
  148. $(CP) unzip.c unzipsfx.c
  149. $(CC) -c $(CF) -DSFX unzipsfx.c
  150. $(RM) unzipsfx.c
  151. # this really only works for Unix targets, unless specify E and O on cmd line
  152. clean:
  153. @echo ""
  154. @echo '         This is a Unix-specific target.  (Just so you know.)'
  155. @echo ""
  156. rm -f $(OBJS) api$O apihelp$O unzipstb$O $(OBJF) $(OBJX) $(UNZIPS)
  157. install: $(UNZIPS) $(MANS)
  158. $(INSTALL) $(UNZIPS) $(BINDIR)
  159. $(RM) $(BINDIR)/zipinfo$E
  160. $(LN) $(BINDIR)/unzip$E $(BINDIR)/zipinfo$E
  161. $(INSTALL) unix/unzip.1 $(MANDIR)/unzip.$(manext)
  162. $(INSTALL) unix/unzipsfx.1 $(MANDIR)/unzipsfx.$(manext)
  163. $(INSTALL) unix/zipinfo.1 $(MANDIR)/zipinfo.$(manext)
  164. $(INSTALL) unix/funzip.1 $(MANDIR)/funzip.$(manext)
  165. $(CHMOD) 755  $(INSTALLEDBIN)
  166. $(CHMOD) 644  $(INSTALLEDMAN)
  167. # alternatively, could use zip method:  -cd $(BINDIR); rm -f $(UNZIPS)  [etc.]
  168. uninstall:
  169. rm -f $(INSTALLEDBIN) $(INSTALLEDMAN)
  170. TESTZIP = testmake.zip # the test zipfile
  171. # test some basic features of the build
  172. test: check
  173. check: unzips
  174. @echo '  This is a Unix-specific target.  (Just so you know.)'
  175. if test ! -f $(TESTZIP); then 
  176. echo "  error:  can't find test file $(TESTZIP)"; exit 1; fi
  177. #
  178. echo "  testing extraction"
  179. ./unzip -b $(TESTZIP) testmake.zipinfo
  180. if test $? ; then 
  181.     echo "  error:  file extraction from $(TESTZIP) failed"; exit 1; fi
  182. #
  183. echo '  testing zipinfo (unzip -Z)'
  184. ./unzip -Z $(TESTZIP) > testmake.unzip-Z
  185. if diff testmake.unzip-Z testmake.zipinfo; then ;; else 
  186.     echo '  error:  zipinfo output doesn't match stored version'; fi
  187. $(RM) testmake.unzip-Z testmake.zipinfo
  188. #
  189. echo '  testing unzip -d exdir option'
  190. ./unzip -b $(TESTZIP) -d testun
  191. cat testun/notes
  192. #
  193. echo '  testing unzip -o and funzip (ignore funzip warning)'
  194. ./unzip -boq $(TESTZIP) notes -d testun
  195. ./funzip < $(TESTZIP) > testun/notes2
  196. if diff testun/notes testun/notes2; then ;; else 
  197.     echo 'error:  funzip output disagrees with unzip'; fi
  198. #
  199. echo '  testing unzipsfx (self-extractor)'
  200. cat unzipsfx $(TESTZIP) > testsfx
  201. $(CHMOD) 0700 testsfx
  202. ./testsfx -b notes
  203. if diff notes testun/notes; then ;; else 
  204.     echo '  error:  unzipsfx file disagrees with unzip'; fi
  205. $(RM) testsfx notes testun/notes testun/notes2
  206. rmdir testun
  207. #
  208. echo '  testing complete.'
  209. ################################
  210. # INDIVIDUAL MACHINE MAKERULES #
  211. ################################
  212. # these are left over for backward compatibility/convenience
  213. generic: unzips
  214. atari: unzips