# makefile for libpng modified from makefile.std

# Where the zlib library and include files are located
ZLIBLIB=/usr/lib
ZLIBINC=/usr/include

CC=gcc
CFLAGS=-I$(ZLIBINC) -O # -g -DPNG_DEBUG=1
LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm

RANLIB=echo
#RANLIB=ranlib

# where make install puts libpng.a and png.h
prefix=/usr

OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
	pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
	pngwtran.o pngmem.o pngerror.o pngpread.o

SHOBJS = $(OBJS:.o=.so)
SHLIB = libpng.so.2.1.0
SONAME = libpng.so.2

all: $(SHLIB) libpng.a pngtest

libpng.a: $(OBJS)
	ar rc $@  $(OBJS)
	$(RANLIB) $@

.SUFFIXES: .so

.c.so:
	$(CC) -fPIC $(CPOPTS) $(CFLAGS) $(DEFS) $(INCS) -c $*.c -o $*.so

$(SHLIB): $(SHOBJS)
	-rm $(SHLIB)
	$(CC) -shared -Wl,-soname,$(SONAME) -o $(SHLIB) $(SHOBJS) -lc
	ln -sf $(SHLIB) libpng.so

pngtest: pngtest.o libpng.a
	$(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)

test: pngtest
	./pngtest

install: libpng.a $(SHLIB)
	-@mkdir $(prefix)/include
	-@mkdir $(prefix)/lib
	cp png.h $(prefix)/include
	cp pngconf.h $(prefix)/include
	chmod 644 $(prefix)/include/png.h
	chmod 644 $(prefix)/include/pngconf.h
	install libpng.a $(prefix)/lib
	chmod 644 $(prefix)/lib/libpng.a
	install $(SHLIB) $(prefix)/lib
	-ln -sf $(SHLIB) $(prefix)/lib/libpng.so.2
	-ln -sf $(SHLIB) $(prefix)/lib/libpng.so
	install png.5 $(prefix)/man/man5
	install libpng.3 libpngpf.3 $(prefix)/man/man3

clean:
	rm -f *.o *.so libpng.* pngtest pngout.png

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

