# Makefile for zlib.  Modified for djgpp v2.0 by F. J. Donahoe, 3/15/96.
# Copyright (C) 1995-1996 Jean-loup Gailly.
# For conditions of distribution and use, see copyright notice in zlib.h 

# To compile, or to compile and test, type:
# 
#   make -fmakefile.dj2;  make test -fmakefile.dj2
# 
# To install libz.a, zconf.h and zlib.h in the djgpp directories, type:
# 
#    make install -fmakefile.dj2
# 
# after first defining LIBRARY_PATH and INCLUDE_PATH in djgpp.env as
# in the sample below if the pattern of the DJGPP distribution is to
# be followed.  Remember that, while <sp>'es around <=> are ignored in
# makefiles, they are *not* in batch files or in djgpp.env.
# - - - - -
# [make]
# INCLUDE_PATH=%\>;INCLUDE_PATH%%\DJDIR%\include
# LIBRARY_PATH=%\>;LIBRARY_PATH%%\DJDIR%\lib
# BUTT=-m486
# - - - - -
# Alternately, these variables may be defined below, overriding the values
# in djgpp.env, as
INCLUDE_PATH=c:\usr\include

CC=gcc

#CFLAGS=-MMD -O
#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
#CFLAGS=-MMD -g -DDEBUG
CFLAGS=-MMD -O3 $(BUTT) -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
             -Wstrict-prototypes -Wmissing-prototypes

# If cp.exe is not found, replace with copy /Y .
CP=cp -f
# If install.exe is not found, replace with $(CP).
INSTALL=install
# The default value of RM is "rm -f."  If "rm.exe" is not found, uncomment:
# RM=del
LDLIBS=-L. -lz
LD=$(CC) -s -o
LDSHARED=$(CC)

VER=1.0.2
INCL=zlib.h zconf.h
LIBS=libz.a

AR=ar rcs

prefix=/usr/local
exec_prefix = $(prefix)

OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \
       zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o

TEST_OBJS = example.o minigzip.o

all: example.exe minigzip.exe

test: all
	./example
	echo hello world | .\minigzip | .\minigzip -d 

%.o : %.c
	$(CC) $(CFLAGS) -c $< -o $@

libz.a: $(OBJS)
	$(AR) $@ $(OBJS)

libz.so.$(VER): $(OBJS)
	$(LDSHARED) -o $@ $(OBJS)
	$(RM) libz.so; ln -s $@ libz.so

%.exe : %.o $(LIBS)
	$(LD) $@ $< $(LDLIBS)

# INCLUDE_PATH and LIBRARY_PATH were set for [make] in djgpp.env .

.PHONY : uninstall clean

install: $(INCL) $(LIBS)
	-@if not exist $(INCLUDE_PATH)\nul mkdir $(INCLUDE_PATH)
	-@if not exist $(LIBRARY_PATH)\nul mkdir $(LIBRARY_PATH)
	for %%f in ($(INCL)) do $(INSTALL) %%f $(INCLUDE_PATH)
	for %%p in ($(LIBS)) do $(INSTALL) %%p $(LIBRARY_PATH)

uninstall:
	for %%f in ($(INCL)) do $(RM) $(INCLUDE_PATH)\%%f
	for %%p in ($(LIBS)) do $(RM) $(LIBRARY_PATH)\%%p

clean:
	for %%p in (*.d *.o *.exe libz.a libz.so*) do $(RM) %%p

DEPS := $(wildcard *.d)
ifneq ($(DEPS),)
include $(DEPS)
endif
