makefile.gcc 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. # Makefile for Zip, ZipCloak, ZipNote and ZipSplit for port of gcc producing
  2. # native Win32-Intel binaries. Derived from makefile.w32.
  3. # Currently supported implementations: Cygwin and MinGW.
  4. # Authors: Cosmin Truta, Christian Spieler, and possibly others.
  5. # Last updated: 2008-Jun-22.
  6. #
  7. # To use, do "make -f win32/makefile.gcc".
  8. # Optional nonstandard preprocessor flags (as -DMEDIUM_MEM or -DNO_ASM)
  9. # should be added to the environment via "set LOCAL_ZIP=-DFOO" or added
  10. # to the declaration of LOC here:
  11. LOC = $(LOCAL_ZIP)
  12. # ------------ GNU C ------------
  13. CC=gcc
  14. CFLAGS=-O2 -Wall -DWIN32 -DFORCE_WIN32_OVER_UNIX
  15. ifndef USEZLIB
  16. CCFLAGS=$(CFLAGS) $(LOC)
  17. else
  18. CCFLAGS=$(CFLAGS) -DUSE_ZLIB $(LOC)
  19. endif
  20. UTILFLAGS=$(CCFLAGS) -DUTIL -o$@
  21. #AS=as
  22. AS=$(CC)
  23. ifndef USEZLIB
  24. ASDEFS=
  25. else
  26. ASDEFS=-DUSE_ZLIB
  27. endif
  28. ASFLAGS=-c $(ASDEFS) $(LOC)
  29. RC=windres
  30. LD=$(CC)
  31. LDFLAGS=-o$@ -s
  32. ifndef USEZLIB
  33. LIBS=-luser32 -ladvapi32
  34. else
  35. LIBS=-L. -lz -luser32 -ladvapi32
  36. endif
  37. OSDEP_H = win32/osdep.h
  38. ZIPUP_H = win32/zipup.h
  39. # variables
  40. ifndef USEZLIB
  41. CRCA_O = crc_i386.o
  42. CRCAUO = crci386_.o
  43. OBJA = match.o $(CRCA_O)
  44. else
  45. CRCA_O =
  46. CRCAUO =
  47. OBJA =
  48. endif
  49. #use second definition for linking against libz
  50. OBJZ1 = zip.o crypt.o ttyio.o zipfile.o zipup.o fileio.o util.o \
  51. crc32.o globals.o
  52. OBJZ2 = deflate.o trees.o $(OBJA)
  53. OBJZS = win32.o win32zip.o win32i64.o nt.o
  54. OBJZ = $(OBJZ1) $(OBJZ2) $(OBJZS)
  55. OBJU1 = zipfile_.o fileio_.o util_.o crc32_.o $(CRCAUO) globals.o
  56. OBJUS = win32_.o win32i64.o
  57. OBJU = $(OBJU1) $(OBJUS)
  58. OBJN = zipnote.o $(OBJU)
  59. OBJS = zipsplit.o $(OBJU)
  60. OBJC1 = zipcloak.o crypt_.o ttyio.o
  61. OBJC = $(OBJC1) $(OBJU)
  62. ZIP_H = zip.h ziperr.h tailor.h $(OSDEP_H)
  63. ZIPS = zip.exe zipnote.exe zipsplit.exe zipcloak.exe
  64. # rules
  65. .SUFFIXES: .c .o
  66. .c.o:
  67. $(CC) -c $(CCFLAGS) -I. -o$@ $<
  68. # targets
  69. zips: $(ZIPS)
  70. zip.o: zip.c $(ZIP_H) revision.h crc32.h crypt.h ttyio.h
  71. zipfile.o: zipfile.c $(ZIP_H) crc32.h
  72. zipup.o: zipup.c $(ZIP_H) revision.h crc32.h crypt.h $(ZIPUP_H)
  73. fileio.o: fileio.c $(ZIP_H) crc32.h
  74. util.o: util.c $(ZIP_H)
  75. globals.o: globals.c $(ZIP_H)
  76. deflate.o: deflate.c $(ZIP_H)
  77. trees.o: trees.c $(ZIP_H)
  78. crc32.o: crc32.c $(ZIP_H) crc32.h
  79. crypt.o: crypt.c $(ZIP_H) crypt.h crc32.h ttyio.h
  80. ttyio.o: ttyio.c $(ZIP_H) crypt.h ttyio.h
  81. win32zip.o: win32/win32zip.c $(ZIP_H) win32/win32zip.h win32/nt.h
  82. $(CC) -c $(CCFLAGS) -I. win32/win32zip.c
  83. win32.o: win32/win32.c $(ZIP_H) win32/win32zip.h
  84. $(CC) -c $(CCFLAGS) -I. win32/win32.c
  85. win32i64.o: win32/win32i64.c $(ZIP_H)
  86. $(CC) -c $(CCFLAGS) -I. win32/win32i64.c
  87. nt.o: win32/nt.c $(ZIP_H) win32/nt.h
  88. $(CC) -c $(CCFLAGS) -I. win32/nt.c
  89. zipcloak.o: zipcloak.c $(ZIP_H) revision.h crc32.h crypt.h ttyio.h
  90. zipnote.o: zipnote.c $(ZIP_H) revision.h
  91. zipsplit.o: zipsplit.c $(ZIP_H) revision.h
  92. zipfile_.o: zipfile.c $(ZIP_H) crc32.h
  93. $(CC) -c $(UTILFLAGS) zipfile.c
  94. fileio_.o: fileio.c $(ZIP_H) crc32.h
  95. $(CC) -c $(UTILFLAGS) fileio.c
  96. util_.o: util.c $(ZIP_H)
  97. $(CC) -c $(UTILFLAGS) util.c
  98. crc32_.o: crc32.c $(ZIP_H) crc32.h
  99. $(CC) -c $(UTILFLAGS) crc32.c
  100. crypt_.o: crypt.c $(ZIP_H) crypt.h crc32.h ttyio.h
  101. $(CC) -c $(UTILFLAGS) crypt.c
  102. win32_.o: win32/win32.c $(ZIP_H) win32/win32zip.h
  103. $(CC) -c $(UTILFLAGS) -I. win32/win32.c
  104. match.o: match.S
  105. $(AS) $(ASFLAGS) match.S
  106. crc_i386.o: crc_i386.S
  107. $(AS) $(ASFLAGS) crc_i386.S
  108. crci386_.o: crc_i386.S
  109. $(AS) $(ASFLAGS) -DUTIL -o$@ crc_i386.S
  110. ziprc.o: win32/zip.rc revision.h
  111. - $(RC) -o $@ win32/zip.rc
  112. zip.exe: $(OBJZ) ziprc.o
  113. $(LD) $(LDFLAGS) $(OBJZ) ziprc.o $(LIBS)
  114. zipcloak.exe: $(OBJC)
  115. $(LD) $(LDFLAGS) $(OBJC) $(LIBS)
  116. zipnote.exe: $(OBJN)
  117. $(LD) $(LDFLAGS) $(OBJN)
  118. zipsplit.exe: $(OBJS)
  119. $(LD) $(LDFLAGS) $(OBJS)
  120. clean:
  121. rm -f *.o $(ZIPS)