1 # Makefile for zlib, derived from Makefile.dj2.
   2 # Modified for mingw32 by C. Spieler, 6/16/98.
   3 # Updated for zlib 1.2.x by Christian Spieler and Cosmin Truta, Mar-2003.
   4 # Last updated: Mar 2012.
   5 # Tested under Cygwin and MinGW.
   6 
   7 # Copyright (C) 1995-2003 Jean-loup Gailly.
   8 # For conditions of distribution and use, see copyright notice in zlib.h
   9 
  10 # To compile, or to compile and test, type from the top level zlib directory:
  11 #
  12 #   make -fwin32/Makefile.gcc;  make test testdll -fwin32/Makefile.gcc
  13 #
  14 # To use the asm code, type:
  15 #   cp contrib/asm?86/match.S ./match.S
  16 #   make LOC=-DASMV OBJA=match.o -fwin32/Makefile.gcc
  17 #
  18 # To install libz.a, zconf.h and zlib.h in the system directories, type:
  19 #
  20 #   make install -fwin32/Makefile.gcc
  21 #
  22 # BINARY_PATH, INCLUDE_PATH and LIBRARY_PATH must be set.
  23 #
  24 # To install the shared lib, append SHARED_MODE=1 to the make command :
  25 #
  26 #   make install -fwin32/Makefile.gcc SHARED_MODE=1
  27 
  28 # Note:
  29 # If the platform is *not* MinGW (e.g. it is Cygwin or UWIN),
  30 # the DLL name should be changed from "zlib1.dll".
  31 
  32 STATICLIB = libz.a
  33 SHAREDLIB = zlib1.dll
  34 IMPLIB    = libz.dll.a
  35 
  36 #
  37 # Set to 1 if shared object needs to be installed
  38 #
  39 SHARED_MODE=0
  40 
  41 #LOC = -DASMV
  42 #LOC = -DDEBUG -g
  43 
  44 PREFIX =
  45 CC = $(PREFIX)gcc
  46 CFLAGS = $(LOC) -O3 -Wall
  47 
  48 AS = $(CC)
  49 ASFLAGS = $(LOC) -Wall
  50 
  51 LD = $(CC)
  52 LDFLAGS = $(LOC)
  53 
  54 AR = $(PREFIX)ar
  55 ARFLAGS = rcs
  56 
  57 RC = $(PREFIX)windres
  58 RCFLAGS = --define GCC_WINDRES
  59 
  60 STRIP = $(PREFIX)strip
  61 
  62 CP = cp -fp
  63 # If GNU install is available, replace $(CP) with install.
  64 INSTALL = $(CP)
  65 RM = rm -f
  66 
  67 prefix ?= /usr/local
  68 exec_prefix = $(prefix)
  69 
  70 OBJS = adler32.o compress.o crc32.o deflate.o gzclose.o gzlib.o gzread.o \
  71        gzwrite.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o
  72 OBJA =
  73 
  74 all: $(STATICLIB) $(SHAREDLIB) $(IMPLIB) example.exe minigzip.exe example_d.exe minigzip_d.exe
  75 
  76 test: example.exe minigzip.exe
  77         ./example
  78         echo hello world | ./minigzip | ./minigzip -d
  79 
  80 testdll: example_d.exe minigzip_d.exe
  81         ./example_d
  82         echo hello world | ./minigzip_d | ./minigzip_d -d
  83 
  84 .c.o:
  85         $(CC) $(CFLAGS) -c -o $@ $<
  86 
  87 .S.o:
  88         $(AS) $(ASFLAGS) -c -o $@ $<
  89 
  90 $(STATICLIB): $(OBJS) $(OBJA)
  91         $(AR) $(ARFLAGS) $@ $(OBJS) $(OBJA)
  92 
  93 $(IMPLIB): $(SHAREDLIB)
  94 
  95 $(SHAREDLIB): win32/zlib.def $(OBJS) $(OBJA) zlibrc.o
  96         $(CC) -shared -Wl,--out-implib,$(IMPLIB) $(LDFLAGS) \
  97         -o $@ win32/zlib.def $(OBJS) $(OBJA) zlibrc.o
  98         $(STRIP) $@
  99 
 100 example.exe: example.o $(STATICLIB)
 101         $(LD) $(LDFLAGS) -o $@ example.o $(STATICLIB)
 102         $(STRIP) $@
 103 
 104 minigzip.exe: minigzip.o $(STATICLIB)
 105         $(LD) $(LDFLAGS) -o $@ minigzip.o $(STATICLIB)
 106         $(STRIP) $@
 107 
 108 example_d.exe: example.o $(IMPLIB)
 109         $(LD) $(LDFLAGS) -o $@ example.o $(IMPLIB)
 110         $(STRIP) $@
 111 
 112 minigzip_d.exe: minigzip.o $(IMPLIB)
 113         $(LD) $(LDFLAGS) -o $@ minigzip.o $(IMPLIB)
 114         $(STRIP) $@
 115 
 116 example.o: test/example.c zlib.h zconf.h
 117         $(CC) $(CFLAGS) -I. -c -o $@ test/example.c
 118 
 119 minigzip.o: test/minigzip.c zlib.h zconf.h
 120         $(CC) $(CFLAGS) -I. -c -o $@ test/minigzip.c
 121 
 122 zlibrc.o: win32/zlib1.rc
 123         $(RC) $(RCFLAGS) -o $@ win32/zlib1.rc
 124 
 125 .PHONY: install uninstall clean
 126 
 127 install: zlib.h zconf.h $(STATICLIB) $(IMPLIB)
 128         @if test -z "$(DESTDIR)$(INCLUDE_PATH)" -o -z "$(DESTDIR)$(LIBRARY_PATH)" -o -z "$(DESTDIR)$(BINARY_PATH)"; then \
 129                 echo INCLUDE_PATH, LIBRARY_PATH, and BINARY_PATH must be specified; \
 130                 exit 1; \
 131         fi
 132         -@mkdir -p '$(DESTDIR)$(INCLUDE_PATH)'
 133         -@mkdir -p '$(DESTDIR)$(LIBRARY_PATH)' '$(DESTDIR)$(LIBRARY_PATH)'/pkgconfig
 134         -if [ "$(SHARED_MODE)" = "1" ]; then \
 135                 mkdir -p '$(DESTDIR)$(BINARY_PATH)'; \
 136                 $(INSTALL) $(SHAREDLIB) '$(DESTDIR)$(BINARY_PATH)'; \
 137                 $(INSTALL) $(IMPLIB) '$(DESTDIR)$(LIBRARY_PATH)'; \
 138         fi
 139         -$(INSTALL) zlib.h '$(DESTDIR)$(INCLUDE_PATH)'
 140         -$(INSTALL) zconf.h '$(DESTDIR)$(INCLUDE_PATH)'
 141         -$(INSTALL) $(STATICLIB) '$(DESTDIR)$(LIBRARY_PATH)'
 142         sed \
 143                 -e 's|@prefix@|${prefix}|g' \
 144                 -e 's|@exec_prefix@|${exec_prefix}|g' \
 145                 -e 's|@libdir@|$(LIBRARY_PATH)|g' \
 146                 -e 's|@sharedlibdir@|$(LIBRARY_PATH)|g' \
 147                 -e 's|@includedir@|$(INCLUDE_PATH)|g' \
 148                 -e 's|@VERSION@|'`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' zlib.h`'|g' \
 149                 zlib.pc.in > '$(DESTDIR)$(LIBRARY_PATH)'/pkgconfig/zlib.pc
 150 
 151 uninstall:
 152         -if [ "$(SHARED_MODE)" = "1" ]; then \
 153                 $(RM) '$(DESTDIR)$(BINARY_PATH)'/$(SHAREDLIB); \
 154                 $(RM) '$(DESTDIR)$(LIBRARY_PATH)'/$(IMPLIB); \
 155         fi
 156         -$(RM) '$(DESTDIR)$(INCLUDE_PATH)'/zlib.h
 157         -$(RM) '$(DESTDIR)$(INCLUDE_PATH)'/zconf.h
 158         -$(RM) '$(DESTDIR)$(LIBRARY_PATH)'/$(STATICLIB)
 159 
 160 clean:
 161         -$(RM) $(STATICLIB)
 162         -$(RM) $(SHAREDLIB)
 163         -$(RM) $(IMPLIB)
 164         -$(RM) *.o
 165         -$(RM) *.exe
 166         -$(RM) foo.gz
 167 
 168 adler32.o: zlib.h zconf.h
 169 compress.o: zlib.h zconf.h
 170 crc32.o: crc32.h zlib.h zconf.h
 171 deflate.o: deflate.h zutil.h zlib.h zconf.h
 172 gzclose.o: zlib.h zconf.h gzguts.h
 173 gzlib.o: zlib.h zconf.h gzguts.h
 174 gzread.o: zlib.h zconf.h gzguts.h
 175 gzwrite.o: zlib.h zconf.h gzguts.h
 176 inffast.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
 177 inflate.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
 178 infback.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
 179 inftrees.o: zutil.h zlib.h zconf.h inftrees.h
 180 trees.o: deflate.h zutil.h zlib.h zconf.h trees.h
 181 uncompr.o: zlib.h zconf.h
 182 zutil.o: zutil.h zlib.h zconf.h