home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 9 Archive / 09-Archive.zip / unzip540.zip / win32 / Makefile.gcc < prev    next >
Makefile  |  1998-04-28  |  6KB  |  218 lines

  1. # Makefile for UnZip, fUnZip and UnZipSFX for native Win32-Intel ports of gcc.
  2. # Currently supported implementations: Cygnus/Win32 and MinGW32.
  3. #
  4. # First version: Cosmin Truta <cosmint@cs.ubbcluj.ro>, Dec 1997.
  5. # Last revision: Christian Spieler, 29-Apr-1998
  6. #
  7. # To use, do "make -f win32/makefile.gcc".
  8.  
  9.  
  10. ### Optional section
  11.  
  12. # Optional nonstandard preprocessor flags (as -DUSE_ZLIB or -DUSE_SMITH_CODE)
  13. # should be added to the environment via "set LOCAL_UNZIP=-DFOO" or added
  14. # to the declaration of LOCFLAGS here:
  15. LOCFLAGS = $(LOCAL_UNZIP)
  16.  
  17.  
  18. ### Compiler-specific section
  19.  
  20. # ------------ GNU C ------------
  21. CC = gcc
  22.  
  23. #AS = as
  24. AS = $(CC)
  25.  
  26. #LD = ld
  27. LD = $(CC)
  28.  
  29. # Quiet
  30. CC_QUIET_OPT =
  31. AS_QUIET_OPT = $(CC_QUIET_OPT)
  32. LD_QUIET_OPT = $(CC_QUIET_OPT)
  33.  
  34. # Warnings
  35. CC_WARN_OPT = -Wall
  36. AS_WARN_OPT = $(CC_WARN_OPT)
  37. LD_WARN_OPT =
  38.  
  39. # Debug version
  40. CC_DEBUG_OPT = -g
  41. AS_DEBUG_OPT = $(CC_DEBUG_OPT)
  42. LD_DEBUG_OPT = $(CC_DEBUG_OPT)
  43.  
  44. # Release version
  45. CC_RELEASE_OPT =
  46. AS_RELEASE_OPT =
  47. LD_RELEASE_OPT = -s
  48.  
  49. # Smallest code
  50. CC_SIZE_OPT = -O1
  51.  
  52. # Fastest code
  53. CC_SPEED_OPT = -O2
  54.  
  55. # Output object file name
  56. CC_OUT_OPT = -o
  57.  
  58. # Other specific options
  59. CC_SPECIFIC_OPT = -c -DASM_CRC -DWIN32
  60. AS_SPECIFIC_OPT = -c
  61. LD_SPECIFIC_OPT = -o $@
  62.  
  63. # Libraries for the debug & release version
  64. LD_RELEASE_LIBS = -luser32 -ladvapi32
  65. LD_DEBUG_LIBS = $(LD_RELEASE_LIBS)
  66.  
  67.  
  68. ### System-specific section
  69.  
  70. # Suffixes
  71. OBJ = .o
  72. EXE = .exe
  73.  
  74. .SUFFIXES: .c .S $(OBJ) $(EXE)
  75.  
  76. # Commands
  77. RM = rm -f
  78.  
  79.  
  80. ### General section
  81.  
  82. CFLAGS  = $(CC_SPECIFIC_OPT) $(CC_QUIET_OPT) $(CC_WARN_OPT) $(LOCFLAGS) \
  83.  $(CC_OUT_OPT) $@
  84. ASFLAGS = $(AS_SPECIFIC_OPT) $(AS_QUIET_OPT) $(AS_WARN_OPT) $(LOCFLAGS)
  85. LDFLAGS = $(LD_SPECIFIC_OPT) $(LD_QUIET_OPT) $(LD_WARN_OPT)
  86.  
  87. # To build with debug info, use 'make DEBUG=1'.
  88. ifdef DEBUG
  89. CVER     = $(CC_DEBUG_OPT)
  90. ASVER    = $(AS_DEBUG_OPT)
  91. LDVER    = $(LD_DEBUG_OPT)
  92. GENFLAGS =
  93. FFLAGS   = -DFUNZIP
  94. SFXFLAGS = -DSFX
  95. LDLIBS   = $(LD_DEBUG_LIBS)
  96. else
  97. CVER     = $(CC_RELEASE_OPT)
  98. ASVER    = $(AS_RELEASE_OPT)
  99. LDVER    = $(LD_RELEASE_OPT)
  100. GENFLAGS = $(CC_SPEED_OPT)
  101. FFLAGS   = $(CC_SPEED_OPT) -DFUNZIP
  102. SFXFLAGS = $(CC_SIZE_OPT) -DSFX
  103. LDLIBS   = $(LD_RELEASE_LIBS)
  104. endif
  105.  
  106. # Object files
  107. OBJA  = crc_i386$(OBJ)
  108. OBJS1 = unzip$(OBJ) crc32$(OBJ) crctab$(OBJ) crypt$(OBJ) envargs$(OBJ)
  109. OBJS2 = explode$(OBJ) extract$(OBJ) fileio$(OBJ) globals$(OBJ) inflate$(OBJ)
  110. OBJS3 = list$(OBJ) match$(OBJ) process$(OBJ) ttyio$(OBJ) unreduce$(OBJ)
  111. OBJS4 = unshrink$(OBJ) zipinfo$(OBJ) win32$(OBJ) nt$(OBJ)
  112. OBJS  = $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(OBJA)
  113. OBJX1 = unzipsfx$(OBJ) crc32$(OBJ) crctab$(OBJ) crypt$(OBJ) extractx$(OBJ)
  114. OBJX2 = fileiox$(OBJ) globalsx$(OBJ) inflatex$(OBJ) matchx$(OBJ) processx$(OBJ)
  115. OBJX3 = ttyiox$(OBJ) win32x$(OBJ) nt$(OBJ)
  116. OBJX  = $(OBJX1) $(OBJX2) $(OBJX3) $(OBJA)
  117. OBJF1 = funzip$(OBJ) crc32$(OBJ) cryptf$(OBJ) globalsf$(OBJ) inflatef$(OBJ)
  118. OBJF2 = ttyiof$(OBJ) win32f$(OBJ)
  119. OBJF  = $(OBJF1) $(OBJF2) $(OBJA)
  120.  
  121. UNZIP_H = unzip.h unzpriv.h globals.h win32/w32cfg.h
  122.  
  123.  
  124. # Default target is all the executables
  125. unzips: unzip$(EXE) funzip$(EXE) unzipsfx$(EXE)
  126.  
  127. unzip$(EXE): $(OBJS)
  128.     $(LD) $(LDFLAGS) $(LDVER) $(OBJS) $(LDLIBS)
  129.  
  130. unzipsfx$(EXE): $(OBJX)
  131.     $(LD) $(LDFLAGS) $(LDVER) $(OBJX) $(LDLIBS)
  132.  
  133. funzip$(EXE): $(OBJF)
  134.     $(LD) $(LDFLAGS) $(LDVER) $(OBJF) $(LDLIBS)
  135.  
  136.  
  137. # How to compile sources
  138. .c$(OBJ):
  139.     $(CC) $(CFLAGS) $(CVER) $(GENFLAGS) $<
  140. .S$(OBJ):
  141.     $(AS) $(ASFLAGS) $(ASVER) $(GENFLAGS) $<
  142.  
  143. # Dependencies
  144. crc32$(OBJ):    crc32.c $(UNZIP_H) zip.h
  145. crctab$(OBJ):   crctab.c $(UNZIP_H) zip.h
  146. crypt$(OBJ):    crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
  147. envargs$(OBJ):  envargs.c $(UNZIP_H)
  148. explode$(OBJ):  explode.c $(UNZIP_H)
  149. extract$(OBJ):  extract.c $(UNZIP_H) crypt.h
  150. fileio$(OBJ):   fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h
  151. funzip$(OBJ):   funzip.c $(UNZIP_H) crypt.h ttyio.h tables.h
  152. globals$(OBJ):  globals.c $(UNZIP_H)
  153. inflate$(OBJ):  inflate.c inflate.h $(UNZIP_H)
  154. list$(OBJ):     list.c $(UNZIP_H)
  155. match$(OBJ):    match.c $(UNZIP_H)
  156. process$(OBJ):  process.c $(UNZIP_H)
  157. ttyio$(OBJ):    ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
  158. unreduce$(OBJ): unreduce.c $(UNZIP_H)
  159. unshrink$(OBJ): unshrink.c $(UNZIP_H)
  160. unzip$(OBJ):    unzip.c $(UNZIP_H) crypt.h version.h consts.h
  161. zipinfo$(OBJ):  zipinfo.c $(UNZIP_H)
  162. crc_i386$(OBJ): crc_i386.S
  163.  
  164. win32$(OBJ): win32/win32.c $(UNZIP_H) win32/nt.h
  165.     $(CC) $(CFLAGS) $(CVER) $(GENFLAGS) -I. win32/win32.c
  166.  
  167. nt$(OBJ): win32/nt.c win32/nt.h
  168.     $(CC) $(CFLAGS) $(CVER) $(GENFLAGS) -I. win32/nt.c
  169.  
  170. win32x$(OBJ): win32/win32.c $(UNZIP_H) win32/nt.h        # unzipsfx only
  171.     $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) -I. win32/win32.c
  172.  
  173. ntx$(OBJ): win32/nt.c win32/nt.h                # unzipsfx only
  174.     $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) -I. win32/nt.c
  175.  
  176. win32f$(OBJ): win32/win32.c $(UNZIP_H) win32/nt.h        # funzip only
  177.     $(CC) $(CFLAGS) $(CVER) $(FFLAGS) -I. win32/win32.c
  178.  
  179. cryptf$(OBJ): crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h        # funzip only
  180.     $(CC) $(CFLAGS) $(CVER) $(FFLAGS) crypt.c
  181.  
  182. extractx$(OBJ): extract.c $(UNZIP_H) crypt.h            # unzipsfx only
  183.     $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) extract.c
  184.  
  185. fileiox$(OBJ):   fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h    # unzipsfx only
  186.     $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) fileio.c
  187.  
  188. globalsx$(OBJ): globals.c $(UNZIP_H)                # unzipsfx only
  189.     $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) globals.c
  190.  
  191. globalsf$(OBJ): globals.c $(UNZIP_H)                # funzip only
  192.     $(CC) $(CFLAGS) $(CVER) $(FFLAGS) globals.c
  193.  
  194. inflatex$(OBJ): inflate.c inflate.h $(UNZIP_H) crypt.h        # unzipsfx only
  195.     $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) inflate.c
  196.  
  197. inflatef$(OBJ): inflate.c inflate.h $(UNZIP_H) crypt.h        # funzip only
  198.     $(CC) $(CFLAGS) $(CVER) $(FFLAGS) inflate.c
  199.  
  200. matchx$(OBJ): match.c $(UNZIP_H)                # unzipsfx only
  201.     $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) match.c
  202.  
  203. processx$(OBJ): process.c $(UNZIP_H)                # unzipsfx only
  204.     $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) process.c
  205.  
  206. ttyiox$(OBJ): ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h        # unzipsfx only
  207.     $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) ttyio.c
  208.  
  209. ttyiof$(OBJ): ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h        # funzip only
  210.     $(CC) $(CFLAGS) $(CVER) $(FFLAGS) ttyio.c
  211.  
  212. unzipsfx$(OBJ): unzip.c $(UNZIP_H) crypt.h version.h consts.h    # unzipsfx only
  213.     $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) unzip.c
  214.  
  215. clean:
  216.     $(RM) *$(OBJ)
  217.     $(RM) *$(EXE)
  218.