# Makefile for zlib
# Copyright (C) 1995-1996 Jean-loup Gailly.
# For conditions of distribution and use, see copyright notice in zlib.h 

# %ExternalCopyright%

# To compile and test, type:
#   ./configure; make test
# The call of configure is optional if you don't have special requirements

# To install /usr/local/lib/libz.* and /usr/local/include/zlib.h, type:
#    make install
# To install in $HOME instead of /usr/local, use:
#    make install prefix=$HOME

ARFLAGS = rc
ifeq ($(findstring ose,$(TARGET)),ose)
  TYPE_FLAGS =
else
  TYPE_FLAGS = -O3
endif
CFLAGS = @CFLAGS@ @DEFS@ @EMU_THR_DEFS@ $(TYPE_FLAGS)
#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
#CFLAGS=-g -DDEBUG
#CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
#           -Wstrict-prototypes -Wmissing-prototypes

VER=1.0.4

O = adler32.o compress.o crc32.o uncompr.o deflate.o trees.o \
       zutil.o inflate.o inftrees.o inffast.o
OBJS = $(O:%=$(OBJDIR)/%)


#### Begin OTP targets

include $(ERL_TOP)/make/target.mk

# On windows we need a separate zlib during debug build
ifeq ($(TARGET),win32)

ifeq ($(TYPE),debug)
CFLAGS = $(subst -O2, -g, @CFLAGS@ @DEFS@ @DEBUG_FLAGS@)
endif # debug

else  # win32

ifeq ($(TYPE),gcov)
CFLAGS = $(subst -O2, -g, -O0 -fprofile-arcs -ftest-coverage @CFLAGS@ @DEFS@ @DEBUG_FLAGS@)
TYPE_FLAGS=
else  # gcov
# On other platforms we use no special debug version of zlib
endif # gcov

endif # win32

OBJDIR= $(ERL_TOP)/erts/emulator/zlib/obj/$(TARGET)/$(TYPE)

include $(ERL_TOP)/make/$(TARGET)/otp.mk

ifeq ($(TARGET), win32)
LIBRARY=$(OBJDIR)/z.lib
else
LIBRARY=$(OBJDIR)/libz.a
endif

all: $(LIBRARY)

# ----------------------------------------------------
# Release Target
# ---------------------------------------------------- 
include $(ERL_TOP)/make/otp_release_targets.mk

release_spec: opt

tests release_tests:

docs release_docs release_docs_spec:

clean:
	rm -f $(OBJS) $(OBJDIR)/libz.a

#### end OTP targets

ifeq ($(TARGET), win32)
$(LIBRARY): $(OBJS)
	$(AR) -out:$@ $(OBJS)
else
$(LIBRARY): $(OBJS)
	$(AR) $(ARFLAGS) $@ $(OBJS)
	-@ ($(RANLIB) $@ || true) 2>/dev/null
endif

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

# DO NOT DELETE THIS LINE -- make depend depends on it.

adler32.o: zlib.h zconf.h
compress.o: zlib.h zconf.h
crc32.o: zlib.h zconf.h
deflate.o: deflate.h zutil.h zlib.h zconf.h
example.o: zlib.h zconf.h
gzio.o: zutil.h zlib.h zconf.h
infblock.o: infblock.h inftrees.h infcodes.h infutil.h zutil.h zlib.h zconf.h
infcodes.o: zutil.h zlib.h zconf.h
infcodes.o: inftrees.h infblock.h infcodes.h infutil.h inffast.h
inffast.o: zutil.h zlib.h zconf.h inftrees.h
inffast.o: infblock.h infcodes.h infutil.h inffast.h
inflate.o: zutil.h zlib.h zconf.h infblock.h
inftrees.o: zutil.h zlib.h zconf.h inftrees.h
infutil.o: zutil.h zlib.h zconf.h infblock.h inftrees.h infcodes.h infutil.h
minigzip.o:  zlib.h zconf.h 
trees.o: deflate.h zutil.h zlib.h zconf.h 
uncompr.o: zlib.h zconf.h
zutil.o: zutil.h zlib.h zconf.h