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

压缩解压

开发平台:

MultiPlatform

  1. # Makefile for UnZip, fUnZip and UnZipSFX
  2. # for emx 0.9c / gcc under MS-DOS. Derived from makefile.os2
  3. # By E-Yen Tan (with mods by Christian Spieler).
  4. # Last updated 23 September 1997 (Christian Spieler).
  5. #
  6. # This makefile should work fine with GNU make and hopefully some others.
  7. # Tested with GNU make 3.71 gnuish 16-bit and djgpp 32-bit versions.
  8. #ifdef NOASM
  9. #AS_FLAGS =
  10. #else
  11. AS_FLAGS = -DASM_CRC
  12. #endif
  13. CP=copy
  14. RM=del
  15. CC=gcc -O -I. -m486
  16. # Version 5.1 of the RSX extender provides long file name support under
  17. # Windows 95. If you don't have Windows 95 or use a version of RSX prior
  18. # to 5.1 (or simply don't want LFN support) remove -DUSE_VFAT from CFLAGS.
  19. # Note that if you have a version of RSX prior to 5.1, you can still compile
  20. # with USE_VFAT enabled and upgrade RSX.EXE at a later stage.
  21. #
  22. # If you enable USE_VFAT then long file names under plain DOS will simply be
  23. # truncated to 8.3 format without mapping. See doscfg.h for details.
  24. #
  25. CFLAGS=-Wall -DMSDOS $(AS_FLAGS) $(LOCAL_UNZIP) -DUSE_VFAT
  26. NFLAGS=
  27. DLLFLAG=
  28. AS=gcc
  29. ASFLAGS=-Di386
  30. LDFLAGS=-o ./
  31. LDFLAGS2=-Zsmall-conv -s
  32. OUT=-o
  33. OBJ=.o
  34. #ifdef NOASM
  35. #CRC32=crc32
  36. #CRC32F=crc32f
  37. #CRC32X=crc32_
  38. #else
  39. CRC32=crc_gcc
  40. CRC32F=crc_gcc
  41. CRC32X=crc_gcc
  42. #endif
  43. OBJUS=msdos.o
  44. OBJXS=msdos_.o
  45. OSDEP_H=msdos/doscfg.h
  46. # default settings for target dependent macros:
  47. DIRSEP = /
  48. AS_DIRSEP = /
  49. OBJU1 = unzip$(OBJ) $(CRC32)$(OBJ) crctab$(OBJ) crypt$(OBJ) envargs$(OBJ)
  50. OBJU2 = explode$(OBJ) extract$(OBJ) fileio$(OBJ) globals$(OBJ)
  51. OBJU3 = inflate$(OBJ) list$(OBJ) match$(OBJ) process$(OBJ) ttyio$(OBJ)
  52. OBJU4 = unreduce$(OBJ) unshrink$(OBJ) zipinfo$(OBJ)
  53. OBJU  = $(OBJU1) $(OBJU2) $(OBJU3) $(OBJU4) $(OBJUS)
  54. OBJX1 = unzipsf_$(OBJ) $(CRC32X)$(OBJ) crctab_$(OBJ) crypt_$(OBJ)
  55. OBJX2 = extract_$(OBJ) fileio_$(OBJ) globals_$(OBJ) inflate_$(OBJ)
  56. OBJX3 = match_$(OBJ) process_$(OBJ) ttyio_$(OBJ)
  57. OBJX  = $(OBJX1) $(OBJX2) $(OBJX3) $(OBJXS)
  58. OBJF  = funzip$(OBJ) $(CRC32F)$(OBJ) cryptf$(OBJ) inflatef$(OBJ) 
  59. globalsf$(OBJ) ttyiof$(OBJ)
  60. UNZIP_H = unzip.h unzpriv.h globals.h $(OSDEP_H)
  61. # rules
  62. .SUFFIXES: .c $(OBJ)
  63. .c$(OBJ):
  64. $(CC) -c $(CFLAGS) $(DLLFLAG) $(OUT)$@ $<
  65. # targets
  66. all: unzip.exe funzip.exe unzipsfx.exe
  67. # This next bit is nasty, but is needed to overcome the MS-DOS command
  68. # line limit as response files for emx's gcc seem to only work if each
  69. # file is on a different line. DJGPP doesn't do this (if you are at all
  70. # interested).
  71. unzip.exe: $(OBJU)
  72. @ echo off
  73. # -@ $(RM) unzip.rsp
  74. # @ for %f in ($(OBJU1)) do echo %f >> unzip.rsp
  75. # @ for %f in ($(OBJU2)) do echo %f >> unzip.rsp
  76. # @ for %f in ($(OBJU3)) do echo %f >> unzip.rsp
  77. # @ for %f in ($(OBJU4) $(OBJUS)) do echo %f >> unzip.rsp
  78. @ echo unzip.o > unzip.rsp
  79. @ echo $(CRC32)$(OBJ)  >> unzip.rsp
  80. @ echo crctab.o  >> unzip.rsp
  81. @ echo crypt.o  >> unzip.rsp
  82. @ echo envargs.o  >> unzip.rsp
  83. @ echo explode.o  >> unzip.rsp
  84. @ echo extract.o  >> unzip.rsp
  85. @ echo fileio.o  >> unzip.rsp
  86. @ echo globals.o  >> unzip.rsp
  87. @ echo inflate.o  >> unzip.rsp
  88. @ echo list.o  >> unzip.rsp
  89. @ echo match.o  >> unzip.rsp
  90. @ echo process.o  >> unzip.rsp
  91. @ echo ttyio.o  >> unzip.rsp
  92. @ echo unreduce.o  >> unzip.rsp
  93. @ echo unshrink.o  >> unzip.rsp
  94. @ echo zipinfo.o  >> unzip.rsp
  95. @ echo msdos.o  >> unzip.rsp
  96. $(CC) $(LDFLAGS)$@ $(DEF) @unzip.rsp $(LDFLAGS2)
  97. @ $(RM) unzip.rsp
  98. funzip.exe: $(OBJF)
  99. $(CC) $(LDFLAGS)$@ $(DEF) $(OBJF) $(LDFLAGS2)
  100. unzipsfx.exe: $(OBJX)
  101. @ echo off
  102. # -@ $(RM) unzipsfx.rsp
  103. # @ for %f in ($(OBJX1)) do echo %f >> unzipsfx.rsp
  104. # @ for %f in ($(OBJX2)) do echo %f >> unzipsfx.rsp
  105. # @ for %f in ($(OBJX3)) do echo %f >> unzipsfx.rsp
  106. # @ for %f in ($(OBJXS)) do echo %f >> unzipsfx.rsp
  107. @ echo unzipsf_.o > unzipsfx.rsp
  108. @ echo $(CRC32X)$(OBJ)  >> unzipsfx.rsp
  109. @ echo crctab_.o  >> unzipsfx.rsp
  110. @ echo crypt_.o  >> unzipsfx.rsp
  111. @ echo extract_.o  >> unzipsfx.rsp
  112. @ echo fileio_.o  >> unzipsfx.rsp
  113. @ echo globals_.o  >> unzipsfx.rsp
  114. @ echo inflate_.o  >> unzipsfx.rsp
  115. @ echo match_.o  >> unzipsfx.rsp
  116. @ echo process_.o  >> unzipsfx.rsp
  117. @ echo ttyio_.o  >> unzipsfx.rsp
  118. @ echo msdos_.o  >> unzipsfx.rsp
  119. $(CC) $(LDFLAGS)$@ $(DEF) @unzipsfx.rsp $(LDFLAGS2)
  120. @ $(RM) unzipsfx.rsp
  121. # dependencies
  122. apihelp$(OBJ): apihelp.c $(UNZIP_H) version.h
  123. crc32$(OBJ): crc32.c $(UNZIP_H) zip.h
  124. crctab$(OBJ): crctab.c $(UNZIP_H) zip.h
  125. envargs$(OBJ): envargs.c $(UNZIP_H)
  126. explode$(OBJ): explode.c $(UNZIP_H)
  127. extract$(OBJ): extract.c $(UNZIP_H) crypt.h
  128. fileio$(OBJ): fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h
  129. globals$(OBJ): globals.c $(UNZIP_H)
  130. inflate$(OBJ): inflate.c $(UNZIP_H)
  131. list$(OBJ): list.c $(UNZIP_H)
  132. match$(OBJ): match.c $(UNZIP_H)
  133. process$(OBJ): process.c $(UNZIP_H)
  134. ttyio$(OBJ): ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
  135. unreduce$(OBJ): unreduce.c $(UNZIP_H)
  136. unshrink$(OBJ): unshrink.c $(UNZIP_H)
  137. unzip$(OBJ): unzip.c $(UNZIP_H) crypt.h version.h consts.h
  138. api$(OBJ): api.c $(UNZIP_H) version.h
  139. zipinfo$(OBJ): zipinfo.c $(UNZIP_H)
  140. funzip$(OBJ): funzip.c $(UNZIP_H) crypt.h ttyio.h tables.h # funzip only
  141. $(CC) -c $(CFLAGS) $(OUT)$@ funzip.c
  142. msdos$(OBJ): msdos/msdos.c $(UNZIP_H) version.h # DOS only
  143. $(CC) -c $(CFLAGS) $(OUT)$@ msdos$(DIRSEP)msdos.c
  144. msdos_$(OBJ): msdos/msdos.c $(UNZIP_H) # DOS unzipsfx
  145. $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ msdos$(DIRSEP)msdos.c
  146. crc_gcc$(OBJ): crc_i386.S # 32bit, GNU AS
  147. $(AS) $(ASFLAGS) -x assembler-with-cpp -c -o $@ crc_i386.S
  148. # NFLAGS are solely used as work-around for optimization bug in IBM C++ Set
  149. crypt$(OBJ): crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
  150. $(CC) -c $(CFLAGS) $(DLLFLAG) $(NFLAGS) $(OUT)$@ crypt.c
  151. cryptf$(OBJ): crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h # funzip only
  152. $(CC) -c $(CFLAGS) $(NFLAGS) -DFUNZIP $(OUT)$@ crypt.c
  153. crc32f$(OBJ): crc32.c $(UNZIP_H) zip.h # funzip only
  154. $(CC) -c $(CFLAGS) -DFUNZIP $(OUT)$@ crc32.c
  155. globalsf$(OBJ): globals.c $(UNZIP_H) # funzip only
  156. $(CC) -c $(CFLAGS) -DFUNZIP $(OUT)$@ globals.c
  157. inflatef$(OBJ): inflate.c inflate.h $(UNZIP_H) crypt.h # funzip only
  158. $(CC) -c $(CFLAGS) -DFUNZIP $(OUT)$@ inflate.c
  159. ttyiof$(OBJ): ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h # funzip only
  160. $(CC) -c $(CFLAGS) $(NFLAGS) -DFUNZIP $(OUT)$@ ttyio.c
  161. crc32_$(OBJ): crc32.c $(UNZIP_H) zip.h # unzipsfx only
  162. $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ crc32.c
  163. crctab_$(OBJ): crctab.c $(UNZIP_H) zip.h # unzipsfx only
  164. $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ crctab.c
  165. crypt_$(OBJ): crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h # unzipsfx only
  166. $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ crypt.c
  167. extract_$(OBJ): extract.c $(UNZIP_H) crypt.h # unzipsfx only
  168. $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ extract.c
  169. fileio_$(OBJ): fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h # unzipsfx only
  170. $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ fileio.c
  171. globals_$(OBJ): globals.c $(UNZIP_H) # unzipsfx only
  172. $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ globals.c
  173. inflate_$(OBJ): inflate.c inflate.h $(UNZIP_H) crypt.h # unzipsfx only
  174. $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ inflate.c
  175. match_$(OBJ): match.c $(UNZIP_H) # unzipsfx only
  176. $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ match.c
  177. process_$(OBJ): process.c $(UNZIP_H) # unzipsfx only
  178. $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ process.c
  179. ttyio_$(OBJ): ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h # unzipsfx only
  180. $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ ttyio.c
  181. unzipsf_$(OBJ): unzip.c $(UNZIP_H) crypt.h version.h consts.h # unzipsfx only
  182. $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ unzip.c