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

# To compile and test, type:
#    ./configure; make test
# The call of configure is optional if you don't have special requirements
# If you wish to build zlib as a shared library, use: ./configure -s

# To use the asm code, type:
#    cp contrib/asm?86/match.S ./match.S
#    make LOC=-DASMV OBJA=match.o

# 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

#CC=cc

CFLAGS=-D_MINIX=1 -D_POSIX_SOURCE=1
#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
#CFLAGS=-g -DDEBUG
#CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
#           -Wstrict-prototypes -Wmissing-prototypes

#LDFLAGS=-L. libz.a
#LDSHARED=cc
#CPP=cc -E

LIBS=$(ACKBASE)/libz.a
LIBRARIES=libz
#SHAREDLIB=libz.so
#SHAREDLIBV=libz.so.1.2.2
#SHAREDLIBM=libz.so.1

#AR=ar rc
#RANLIB=ranlib
#TAR=tar
#SHELL=/bin/sh
#EXE=

prefix =/usr/local
exec_prefix =${prefix}
libdir =${exec_prefix}/lib
includedir =${prefix}/include
mandir =/usr/local/man
man3dir = ${mandir}/man3

#OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \
#       zutil.o inflate.o infback.o inftrees.o inffast.o

#OBJA =
# to use the asm code: make OBJA=match.o

libz_OBJECTS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \
       zutil.o inflate.o infback.o inftrees.o inffast.o

# to use the asm code: add match.o to liz_OBJECTS

#TEST_OBJS = example.o minigzip.o

#all:: example$(EXE) minigzip$(EXE)

#check: test
#test: all
#	@LD_LIBRARY_PATH=.:$(LD_LIBRARY_PATH) ; export LD_LIBRARY_PATH; \
#	echo hello world | ./minigzip | ./minigzip -d || \
#	  echo '		*** minigzip test FAILED ***' ; \
#	if ./example; then \
#	  echo '		*** zlib test OK ***'; \
#	else \
#	  echo '		*** zlib test FAILED ***'; \
#	fi

#libz.a: $(OBJS) $(OBJA)
#	$(AR) $@ $(OBJS) $(OBJA)
#	-@ ($(RANLIB) $@ || true) >/dev/null 2>&1

#match.o: match.S
#	$(CPP) match.S > _match.s
#	$(CC) -c _match.s
#	mv _match.o match.o
#	rm -f _match.s

#$(SHAREDLIBV): $(OBJS)
#	$(LDSHARED) -o $@ $(OBJS)
#	rm -f $(SHAREDLIB) $(SHAREDLIBM)
#	ln -s $@ $(SHAREDLIB)
#	ln -s $@ $(SHAREDLIBM)

#example$(EXE): example.o $(LIBS)
#	$(CC) $(CFLAGS) -o $@ example.o $(LDFLAGS)

#minigzip$(EXE): minigzip.o $(LIBS)
#	$(CC) $(CFLAGS) -o $@ minigzip.o $(LDFLAGS)

install::
	-@if [ ! -d $(exec_prefix) ]; then mkdir -p $(exec_prefix); fi
	-@if [ ! -d $(includedir)  ]; then mkdir -p $(includedir); fi
	-@if [ ! -d $(libdir)      ]; then mkdir -p $(libdir); fi
	-@if [ ! -d $(man3dir)     ]; then mkdir -p $(man3dir); fi
	install -o bin zlib.h zconf.h $(includedir)
	chmod 644 $(includedir)/zlib.h $(includedir)/zconf.h
	install -o bin $(LIBS) $(libdir)
	cd $(libdir); chmod 755 $(LIBS)
	-@(cd $(libdir); $(RANLIB) libz.a || true) >/dev/null 2>&1
	cd $(libdir); if test -f $(SHAREDLIBV); then \
	  rm -f $(SHAREDLIB) $(SHAREDLIBM); \
	  ln -s $(SHAREDLIBV) $(SHAREDLIB); \
	  ln -s $(SHAREDLIBV) $(SHAREDLIBM); \
	  (ldconfig || true)  >/dev/null 2>&1; \
	fi
	install -o bin zlib.3 $(man3dir)
	chmod 644 $(man3dir)/zlib.3
# The ranlib in install is needed on NeXTSTEP which checks file times
# ldconfig is for Linux

#uninstall:
#	cd $(includedir); \
#	cd $(libdir); rm -f libz.a; \
#	if test -f $(SHAREDLIBV); then \
#	  rm -f $(SHAREDLIBV) $(SHAREDLIB) $(SHAREDLIBM); \
#	fi
#	cd $(man3dir); rm -f zlib.3

mostlyclean: clean
clean::
	rm -f *.o *~ example$(EXE) minigzip$(EXE) \
	   libz.* foo.gz so_locations \
	   _match.s maketree contrib/infback9/*.o

#maintainer-clean: distclean
#distclean: clean
#	cp -p Makefile.in Makefile
#	cp -p zconf.in.h zconf.h
#	rm -f .DS_Store

#tags:
#	etags *.[ch]
#
#depend:
#	makedepend -- $(CFLAGS) -- *.[ch]

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

#adler32.o: zlib.h zconf.h
#compress.o: zlib.h zconf.h
#crc32.o: crc32.h 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
#inffast.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
#inflate.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
#infback.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
#inftrees.o: zutil.h zlib.h zconf.h inftrees.h
#minigzip.o: zlib.h zconf.h
#trees.o: deflate.h zutil.h zlib.h zconf.h trees.h
#uncompr.o: zlib.h zconf.h
#zutil.o: zutil.h zlib.h zconf.h

include ../Makefile.inc

$(call ADDDEPENDENCIES,libz_OBJECTS,zlib.h zconf.h)
$(call ADDDEPENDENCIES,deflate.o gzio.o inffast.o inflate.o infback.o inftrees.o trees.o zutil.o,zutil.h)
$(call ADDDEPENDENCIES,deflate.o trees.o,deflate.h)
$(call ADDDEPENDENCIES,inffast.o inflate.o infback.o inftrees.o,inftrees.h)
$(call ADDDEPENDENCIES,inffast.o inflate.o infback.o,inflate.h inffast.h)
$(call ADDDEPENDENCIES,crc32.o,crc32.h)

