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