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