Home | History | Annotate | Line # | Download | only in win32
      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