dslinux/lib/libpng/scripts SCOPTIONS.ppc descrip.mms libpng.icc makefile.acorn makefile.aix makefile.amiga makefile.atari makefile.bc32 makefile.bd32 makefile.beos makefile.bor makefile.cygwin makefile.dec makefile.dj2 makefile.gcc makefile.gcmmx makefile.hpgcc makefile.hpux makefile.ibmc makefile.intel makefile.knr makefile.linux makefile.macosx makefile.mips makefile.msc makefile.netbsd makefile.os2 makefile.sco makefile.sggcc makefile.sgi makefile.solaris makefile.std makefile.sunos makefile.tc3 makefile.vcawin32 makefile.vcwin32 makefile.watcom makevms.com pngdef.pas pngos2.def smakefile.ppc

pepsiman dslinux_pepsiman at user.in-berlin.de
Sat Nov 25 11:05:19 CET 2006


Update of /cvsroot/dslinux/dslinux/lib/libpng/scripts
In directory antilope:/tmp/cvs-serv15394/scripts

Added Files:
	SCOPTIONS.ppc descrip.mms libpng.icc makefile.acorn 
	makefile.aix makefile.amiga makefile.atari makefile.bc32 
	makefile.bd32 makefile.beos makefile.bor makefile.cygwin 
	makefile.dec makefile.dj2 makefile.gcc makefile.gcmmx 
	makefile.hpgcc makefile.hpux makefile.ibmc makefile.intel 
	makefile.knr makefile.linux makefile.macosx makefile.mips 
	makefile.msc makefile.netbsd makefile.os2 makefile.sco 
	makefile.sggcc makefile.sgi makefile.solaris makefile.std 
	makefile.sunos makefile.tc3 makefile.vcawin32 makefile.vcwin32 
	makefile.watcom makevms.com pngdef.pas pngos2.def 
	smakefile.ppc 
Log Message:
Merge libpng from uclinux_branch

--- NEW FILE: descrip.mms ---

cc_defs = /inc=$(ZLIBSRC)
c_deb = 

.ifdef __DECC__
pref = /prefix=all
.endif



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


CFLAGS= $(C_DEB) $(CC_DEFS) $(PREF)

all : pngtest.exe libpng.olb
		@ write sys$output " pngtest available"

libpng.olb : libpng.olb($(OBJS))
	@ write sys$output " Libpng available"


pngtest.exe : pngtest.obj libpng.olb
              link pngtest,libpng.olb/lib,$(ZLIBSRC)libz.olb/lib

test : pngtest.exe
   run pngtest

clean :
	delete *.obj;*,*.exe;*


# Other dependencies.
png.obj : png.h, pngconf.h
pngpread.obj : png.h, pngconf.h
pngset.obj : png.h, pngconf.h
pngget.obj : png.h, pngconf.h
pngread.obj : png.h, pngconf.h
pngrtran.obj : png.h, pngconf.h
pngrutil.obj : png.h, pngconf.h
pngerror.obj : png.h, pngconf.h
pngmem.obj : png.h, pngconf.h
pngrio.obj : png.h, pngconf.h
pngwio.obj : png.h, pngconf.h
pngtest.obj : png.h, pngconf.h
pngtrans.obj : png.h, pngconf.h
pngwrite.obj : png.h, pngconf.h
pngwtran.obj : png.h, pngconf.h
pngwutil.obj : png.h, pngconf.h


--- NEW FILE: makefile.sunos ---
# makefile for libpng
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
# For conditions of distribution and use, see copyright notice in png.h

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

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


WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow -Wconversion \
	-Wmissing-declarations -Wtraditional -Wcast-align \
	-Wstrict-prototypes -Wmissing-prototypes
CC=gcc
CFLAGS=-I$(ZLIBINC) -O # $(WARNMORE) -DPNG_DEBUG=5
LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm

RANLIB=ranlib
#RANLIB=echo

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

all: libpng.a pngtest

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

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

test: pngtest
	./pngtest

install: libpng.a
	- at mkdir $(prefix)/include
	- at 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
	cp libpng.a $(prefix)/lib
	chmod 644 $(prefix)/lib/libpng.a

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

DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
writelock:
	chmod a-w *.[ch35] $(DOCS) scripts/*

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

png.o: png.h pngconf.h
pngerror.o: png.h pngconf.h
pngrio.o: png.h pngconf.h
pngwio.o: png.h pngconf.h
pngmem.o: png.h pngconf.h
pngset.o: png.h pngconf.h
pngget.o: png.h pngconf.h
pngread.o: png.h pngconf.h
pngrtran.o: png.h pngconf.h
pngrutil.o: png.h pngconf.h
pngtest.o: png.h pngconf.h
pngtrans.o: png.h pngconf.h
pngwrite.o: png.h pngconf.h
pngwtran.o: png.h pngconf.h
pngwutil.o: png.h pngconf.h
pngpread.o: png.h pngconf.h


--- NEW FILE: makefile.watcom ---
# Makefile for libpng
# Watcom C/C++ 10.0 and later, 32-bit protected mode, flat memory model

# Copyright (C) 2000, Pawel Mrochen, based on makefile.msc which is
# copyright 1995 Guy Eric Schalnat, Group 42, Inc.
# For conditions of distribution and use, see copyright notice in png.h

# To use, do "wmake /f scripts\makefile.watcom"


# ---------------------- Watcom C/C++ 10.0 and later -----------------------

# Where the zlib library and include files are located
ZLIBLIB=..\zlib
ZLIBINC=..\zlib

# Target OS
OS=DOS
#OS=NT

# Target CPU
CPU=6		# Pentium Pro
#CPU=5		# Pentium

# Calling convention
CALLING=r	# registers
#CALLING=s	# stack

# Uncomment next to put error messages in a file
#ERRFILE=>>pngerrs

# --------------------------------------------------------------------------


CC=wcc386
CFLAGS=-$(CPU)$(CALLING) -fp$(CPU) -fpi87 -oneatx -mf -bt=$(OS) -i=$(ZLIBINC) -zq
LD=wcl386
LDFLAGS=-zq

O=.obj

OBJS1=png$(O) pngset$(O) pngget$(O) pngrutil$(O) pngtrans$(O) pngwutil$(O)
OBJS2=pngmem$(O) pngpread$(O) pngread$(O) pngerror$(O) pngwrite$(O)
OBJS3=pngrtran$(O) pngwtran$(O) pngrio$(O) pngwio$(O)


all: test

png$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngset$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngget$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngread$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngpread$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngrtran$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngrutil$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngerror$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngmem$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngrio$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngwio$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngtest$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngtrans$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngwrite$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngwtran$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngwutil$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

libpng.lib: $(OBJS1) $(OBJS2) $(OBJS3)
	wlib -b -c -n -q libpng.lib $(OBJS1)
	wlib -b -c -q libpng.lib $(OBJS2)
	wlib -b -c -q libpng.lib $(OBJS3)

pngtest.exe: pngtest.obj libpng.lib
	$(LD) $(LDFLAGS) pngtest.obj libpng.lib $(ZLIBLIB)\zlib.lib

test: pngtest.exe .symbolic
	pngtest.exe


# End of makefile for libpng

--- NEW FILE: SCOPTIONS.ppc ---
OPTIMIZE
OPTPEEP
OPTTIME
OPTSCHED
AUTOREGISTER
PARMS=REGISTERS
INCLUDEDIR=hlp:ppc/include

--- NEW FILE: makefile.knr ---
# makefile for libpng
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
# For conditions of distribution and use, see copyright notice in png.h

# This makefile requires the file ansi2knr.c, which you can get
# from the Ghostscript ftp site at ftp://ftp.cs.wisc.edu/ghost/
# If you have libjpeg, you probably already have ansi2knr.c in the jpeg
# source distribution.

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

CC=cc
CFLAGS=-I../zlib -O
LDFLAGS=-L. -L../zlib/ -lpng -lz -lm
# flags for ansi2knr
ANSI2KNRFLAGS=

RANLIB=ranlib
#RANLIB=echo

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

all: ansi2knr libpng.a pngtest

# general rule to allow ansi2knr to work
.c.o:
	./ansi2knr $*.c T$*.c
	$(CC) $(CFLAGS) -c T$*.c
	rm -f T$*.c $*.o
	mv T$*.o $*.o

ansi2knr: ansi2knr.c
	$(CC) $(CFLAGS) $(ANSI2KNRFLAGS) -o ansi2knr ansi2knr.c

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

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

test: pngtest
	./pngtest

install: libpng.a
	- at mkdir $(prefix)/include
	- at 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
	cp libpng.a $(prefix)/lib
	chmod 644 $(prefix)/lib/libpng.a

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

DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
writelock:
	chmod a-w *.[ch35] $(DOCS) scripts/*

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

png.o: png.h pngconf.h
pngerror.o: png.h pngconf.h
pngrio.o: png.h pngconf.h
pngwio.o: png.h pngconf.h
pngmem.o: png.h pngconf.h
pngset.o: png.h pngconf.h
pngget.o: png.h pngconf.h
pngread.o: png.h pngconf.h
pngpread.o: png.h pngconf.h
pngrtran.o: png.h pngconf.h
pngrutil.o: png.h pngconf.h
pngtest.o: png.h pngconf.h
pngtrans.o: png.h pngconf.h
pngwrite.o: png.h pngconf.h
pngwtran.o: png.h pngconf.h
pngwutil.o: png.h pngconf.h

--- NEW FILE: makefile.sggcc ---
# makefile for libpng, SGI IRIX with gcc
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
# For conditions of distribution and use, see copyright notice in png.h

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

# Where the zlib library and include files are located
ZLIBLIB=/usr/local/lib32
ZLIBINC=/usr/local/include
#ZLIBLIB=../zlib
#ZLIBINC=../zlib

# ABI can be blank to use default for your system, -32, -o32, -n32, or -64
# See "man abi".  zlib must be built with the same ABI.
ABI=

CC=gcc

WARNMORE= # -g -DPNG_DEBUG=5
CFLAGS=$(ABI) -I$(ZLIBINC) -O2 $(WARNMORE) -fPIC -mabi=n32
LDFLAGS=$(ABI) -L. -L$(ZLIBLIB) -lpng -lz -lm
LDSHARED=CC $(ABI) -shared

VER=1.0.12
# See "man dso" for info about shared objects
SONUM=2
LIBS=libpng.so.$(SONUM).$(VER)
SHAREDLIB=libpng.so
libdir=$(prefix)/lib32

RANLIB=echo
#RANLIB=ranlib

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

all: libpng.a $(SHAREDLIB).$(VER) pngtest

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

$(SHAREDLIB).$(VER): $(OBJS)
	$(LDSHARED) -o $@ $(OBJS)
	rm -f $(SHAREDLIB) $(SHAREDLIB).$(SONUM)
	ln -s $@ $(SHAREDLIB)
	ln -s $@ $(SHAREDLIB).$(SONUM)

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

test: pngtest
	./pngtest

install: libpng.a
	- at mkdir $(prefix)/include
	- at 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
	cp libpng.a $(prefix)/lib
	chmod 644 $(prefix)/lib/libpng.a
	cp $(SHAREDLIB).$(VER) $(libdir); chmod 755 $(SHAREDLIB).$(VER)
	(cd $(libdir); if test -f $(SHAREDLIB).$(VER); then \
	rm -f $(SHAREDLIB) $(SHAREDLIB).$(SONUM); \
	ln -s $(SHAREDLIB).$(VER) $(SHAREDLIB); \
	ln -s $(SHAREDLIB).$(VER) $(SHAREDLIB).$(SONUM); \
	(ldconfig || true)  >/dev/null 2>&1; \
	fi)

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

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

png.o: png.h pngconf.h
pngerror.o: png.h pngconf.h
pngrio.o: png.h pngconf.h
pngwio.o: png.h pngconf.h
pngmem.o: png.h pngconf.h
pngset.o: png.h pngconf.h
pngget.o: png.h pngconf.h
pngread.o: png.h pngconf.h
pngrtran.o: png.h pngconf.h
pngrutil.o: png.h pngconf.h
pngtest.o: png.h pngconf.h
pngtrans.o: png.h pngconf.h
pngwrite.o: png.h pngconf.h
pngwtran.o: png.h pngconf.h
pngwutil.o: png.h pngconf.h
pngpread.o: png.h pngconf.h


--- NEW FILE: makefile.gcmmx ---
# makefile for libpng on Linux ELF with gcc using MMX assembler code
# Copyright 1996-1997 Andreas Dilger
# Copyright 1998-2001 Greg Roelofs
# For conditions of distribution and use, see copyright notice in png.h

# CAUTION: Do not use this makefile with gcc versions 2.7.2.2 and earlier.

# NOTE:  When testing MMX performance on a multitasking system, make sure
#        there are no floating-point programs (e.g., SETI at Home) running in
#        the background!  Context switches between MMX and FPU are expensive.

CC=gcc

# where "make install" puts libpng.a, libpng.so*, png.h, and pngconf.h
prefix=/usr/local

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

ALIGN=
# for i386:
#ALIGN=-malign-loops=2 -malign-functions=2

WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
	-Wmissing-declarations -Wtraditional -Wcast-align \
	-Wstrict-prototypes -Wmissing-prototypes #-Wconversion

# for pgcc version 2.95.1, -O3 is buggy; don't use it.

### for generic gcc:
CFLAGS=-DPNG_USE_PNGGCCRD -I$(ZLIBINC) -Wall -O3 $(ALIGN) -funroll-loops \
	-fomit-frame-pointer  # $(WARNMORE) -g -DPNG_DEBUG=5
### for gcc 2.95.2 on 686:
#CFLAGS=-DPNG_USE_PNGGCCRD -I$(ZLIBINC) -Wall -O3 \
#	-mcpu=i686 -malign-double -ffast-math -fstrict-aliasing \
#	$(ALIGN) -funroll-loops -funroll-all-loops -fomit-frame-pointer 
### for gcc 2.7.2.3 on 486 and up:
#CFLAGS=-DPNG_USE_PNGGCCRD -I$(ZLIBINC) -Wall -O3 \
#	-m486 -malign-double -ffast-math \
#	$(ALIGN) -funroll-loops -funroll-all-loops -fomit-frame-pointer 

LDFLAGS=-L. -Wl,-rpath,. -L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) -lpng -lz -lm
LDFLAGS_A=-L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) libpng.a -lz -lm

RANLIB=ranlib
#RANLIB=echo

# read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
# have to change it.
PNGMAJ = 2
PNGMIN = 1.0.12
PNGVER = $(PNGMAJ).$(PNGMIN)

INCPATH=$(prefix)/include
LIBPATH=$(prefix)/lib

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 pnggccrd.o

OBJSDLL = $(OBJS:.o=.pic.o)

.SUFFIXES:      .c .o .pic.o

.c.pic.o:
	$(CC) -c $(CFLAGS) -fPIC -o $@ $*.c

all: libpng.a libpng.so pngtest pngtest-static

pnggccrd.o:	pnggccrd.c png.h pngconf.h
	@echo ""
	@echo '    You can ignore the single "control reaches end of non-void function"'
	@echo '    warning and multiple "<variable> defined but not used" warnings:'
	@echo ""
	$(CC) -c $(CFLAGS) -o $@ $*.c
	@echo ""

pnggccrd.pic.o:	pnggccrd.c png.h pngconf.h
	@echo ""
	@echo '    You can ignore the single "control reaches end of non-void function"'
	@echo '    warning and multiple "<variable> defined but not used" warnings:'
	@echo ""
	$(CC) -c $(CFLAGS) -fPIC -o $@ pnggccrd.c
	@echo ""

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

libpng.so: libpng.so.$(PNGMAJ)
	ln -sf libpng.so.$(PNGMAJ) libpng.so

libpng.so.$(PNGMAJ): libpng.so.$(PNGVER)
	ln -sf libpng.so.$(PNGVER) libpng.so.$(PNGMAJ)

libpng.so.$(PNGVER): $(OBJSDLL)
	$(CC) -shared -Wl,-soname,libpng.so.$(PNGMAJ) -o libpng.so.$(PNGVER) \
	 $(OBJSDLL) -L$(ZLIBLIB) -lz -lm -lc

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

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

test: pngtest pngtest-static
	@echo ""
	@echo "   Testing dynamically linked version:"
	@echo ""
	./pngtest
	@echo ""
	@echo "   Testing statically linked version:"
	@echo ""
	./pngtest-static

install: libpng.a libpng.so.$(PNGVER)
	- at if [ ! -d $(INCPATH)  ]; then mkdir $(INCPATH); fi
	- at if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
	cp png.h pngconf.h $(INCPATH)
	chmod 644 $(INCPATH)/png.h $(INCPATH)/pngconf.h
	cp libpng.a libpng.so.$(PNGVER) $(LIBPATH)
	chmod 755 $(LIBPATH)/libpng.so.$(PNGVER)
	-@/bin/rm -f $(LIBPATH)/libpng.so.$(PNGMAJ) $(LIBPATH)/libpng.so
	(cd $(LIBPATH); ln -sf libpng.so.$(PNGVER) libpng.so.$(PNGMAJ); \
	 ln -sf libpng.so.$(PNGMAJ) libpng.so)

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

DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
writelock:
	chmod a-w *.[ch35] $(DOCS) scripts/*

png.o png.pic.o:		png.h pngconf.h png.c
pngerror.o pngerror.pic.o:	png.h pngconf.h pngerror.c
pngrio.o pngrio.pic.o:		png.h pngconf.h pngrio.c
pngwio.o pngwio.pic.o:		png.h pngconf.h pngwio.c
pngmem.o pngmem.pic.o:		png.h pngconf.h pngmem.c
pngset.o pngset.pic.o:		png.h pngconf.h pngset.c
pngget.o pngget.pic.o:		png.h pngconf.h pngget.c
pngread.o pngread.pic.o:	png.h pngconf.h pngread.c
pngrtran.o pngrtran.pic.o:	png.h pngconf.h pngrtran.c
pngrutil.o pngrutil.pic.o:	png.h pngconf.h pngrutil.c
pngtrans.o pngtrans.pic.o:	png.h pngconf.h pngtrans.c
pngwrite.o pngwrite.pic.o:	png.h pngconf.h pngwrite.c
pngwtran.o pngwtran.pic.o:	png.h pngconf.h pngwtran.c
pngwutil.o pngwutil.pic.o:	png.h pngconf.h pngwutil.c
pngpread.o pngpread.pic.o:	png.h pngconf.h pngpread.c

pngtest.o:			png.h pngconf.h pngtest.c

--- NEW FILE: makefile.solaris ---
# makefile for libpng on Solaris 2.x with gcc
# Contributed by William L. Sebok, based on makefile.linux
# Copyright (C) 1998 Greg Roelofs
# Copyright (C) 1996, 1997 Andreas Dilger
# For conditions of distribution and use, see copyright notice in png.h

CC=gcc

# Where make install puts libpng.a, libpng.so*, and png.h
prefix=/usr/local

# Where the zlib library and include files are located
# Changing these to ../zlib poses a security risk.  If you want
# to have zlib in an adjacent directory, specify the full path instead of "..".
#ZLIBLIB=../zlib
#ZLIBINC=../zlib

ZLIBLIB=/usr/local/lib
ZLIBINC=/usr/local/include

WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
	-Wmissing-declarations -Wtraditional -Wcast-align \
	-Wstrict-prototypes -Wmissing-prototypes #-Wconversion
CFLAGS=-I$(ZLIBINC) -Wall -O3 \
	# $(WARNMORE) -g -DPNG_DEBUG=5
LDFLAGS=-L. -R. -L$(ZLIBLIB) -R$(ZLIBLIB) -lpng -lz -lm

#RANLIB=ranlib
RANLIB=echo

# read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
# have to change it.
PNGMAJ = 2
PNGMIN = 1.0.12
PNGVER = $(PNGMAJ).$(PNGMIN)

INCPATH=$(prefix)/include
LIBPATH=$(prefix)/lib

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

OBJSDLL = $(OBJS:.o=.pic.o)

.SUFFIXES:      .c .o .pic.o

.c.pic.o:
	$(CC) -c $(CFLAGS) -fPIC -o $@ $*.c

all: libpng.a libpng.so pngtest

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

libpng.so: libpng.so.$(PNGMAJ)
	ln -f -s libpng.so.$(PNGMAJ) libpng.so

libpng.so.$(PNGMAJ): libpng.so.$(PNGVER)
	ln -f -s libpng.so.$(PNGVER) libpng.so.$(PNGMAJ)

libpng.so.$(PNGVER): $(OBJSDLL)
	@case "`type ld`" in *ucb*) \
	echo; \
	echo '## WARNING:'; \
	echo '## The commands "CC" and "LD" must NOT refer to /usr/ucb/cc'; \
	echo '## and /usr/ucb/ld.  If they do, you need to adjust your PATH'; \
	echo '## environment variable to put /usr/ccs/bin ahead of /usr/ucb.'; \
	echo '## The environment variable LD_LIBRARY_PATH should not be set'; \
	echo '## at all.  If it is, things are likely to break because of'; \
	echo '## the libucb dependency that is created.'; \
	echo; \
	;; \
	esac
	$(LD) -G -L$(ZLIBLIB) -R$(ZLIBLIB) -h libpng.so.$(PNGMAJ) \
	 -o libpng.so.$(PNGVER) $(OBJSDLL) -lz

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

test: pngtest
	./pngtest

install: libpng.a libpng.so.$(PNGVER)
	- at mkdir $(INCPATH) $(LIBPATH)
	cp png.h pngconf.h $(INCPATH)
	chmod 644 $(INCPATH)/png.h $(INCPATH)/pngconf.h
	cp libpng.a libpng.so.$(PNGVER) $(LIBPATH)
	chmod 755 $(LIBPATH)/libpng.so.$(PNGVER)
	-@/bin/rm -f $(LIBPATH)/libpng.so.$(PNGMAJ) $(LIBPATH)/libpng.so
	(cd $(LIBPATH); ln -f -s libpng.so.$(PNGVER) libpng.so.$(PNGMAJ); \
	 ln -f -s libpng.so.$(PNGMAJ) libpng.so)

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

DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
writelock:
	chmod a-w *.[ch35] $(DOCS) scripts/*

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

png.o png.pic.o: png.h pngconf.h
pngerror.o pngerror.pic.o: png.h pngconf.h
pngrio.o pngrio.pic.o: png.h pngconf.h
pngwio.o pngwio.pic.o: png.h pngconf.h
pngmem.o pngmem.pic.o: png.h pngconf.h
pngset.o pngset.pic.o: png.h pngconf.h
pngget.o pngget.pic.o: png.h pngconf.h
pngread.o pngread.pic.o: png.h pngconf.h
pngrtran.o pngrtran.pic.o: png.h pngconf.h
pngrutil.o pngrutil.pic.o: png.h pngconf.h
pngtrans.o pngtrans.pic.o: png.h pngconf.h
pngwrite.o pngwrite.pic.o: png.h pngconf.h
pngwtran.o pngwtran.pic.o: png.h pngconf.h
pngwutil.o pngwutil.pic.o: png.h pngconf.h
pngpread.o pngpread.pic.o: png.h pngconf.h

pngtest.o: png.h pngconf.h

--- NEW FILE: makefile.vcawin32 ---
# makefile for libpng
# Copyright (C) 1998 Tim Wegner
# For conditions of distribution and use, see copyright notice in png.h
# Assumes that zlib.lib, zconf.h, and zlib.h have been copied to ..\zlib
# To use, do "nmake /f scripts\makefile.vcawin32"

# -------- Microsoft Visual C++ 5.0 and later, uses assembler code --------

# Caution: the assembler code was introduced at libpng version 1.0.4 and has
# not yet been thoroughly tested.

# If you don't want to use assembler code, use makefile.vcwin32 instead.

CFLAGS=-DPNG_USE_PNGVCRD -Ox -GA3s -nologo -W3 -I..\zlib

CC=cl
LD=link
LDFLAGS= 
O=.obj

#uncomment next to put error messages in a file
#ERRFILE= >> pngerrs

# variables
OBJS1 = png$(O) pngset$(O) pngget$(O) pngrutil$(O) pngtrans$(O) pngwutil$(O)
OBJS2 = pngmem$(O) pngpread$(O) pngread$(O) pngerror$(O) pngwrite$(O)
OBJS3 = pngrtran$(O) pngwtran$(O) pngrio$(O) pngwio$(O) pngvcrd$(O)

all: libpng.lib

png$(O): png.h pngconf.h
		  $(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngset$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngget$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngread$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngpread$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngrtran$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngrutil$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngvcrd$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngerror$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngmem$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngrio$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngwio$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngtest$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngtrans$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngwrite$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngwtran$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngwutil$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

libpng.lib: $(OBJS1) $(OBJS2) $(OBJS3)
	echo something to del > libpng.lib
	del libpng.lib
	lib /OUT:libpng.lib $(OBJS1) $(OBJS2) $(OBJS3)

pngtest.exe: pngtest.obj libpng.lib
	$(LD) $(LDFLAGS) pngtest.obj libpng.lib ..\zlib\zlib.lib /OUT:pngtest.exe /SUBSYSTEM:CONSOLE

test: pngtest.exe
	pngtest

# End of makefile for libpng


--- NEW FILE: makefile.sgi ---
# makefile for libpng (.a and .so), SGI IRIX with 'cc'
# Copyright (C) 2001 Glenn Randers-Pehrson
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
# For conditions of distribution and use, see copyright notice in png.h

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

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

CC=cc

# ABI can be blank to use default for your system, -32, -o32, -n32, or -64
# See "man abi".  zlib must be built with the same ABI.
ABI=

WARNMORE=-fullwarn
# Note: -KPIC is the default anyhow
#CFLAGS= $(ABI) -I$(ZLIBINC) -O $(WARNMORE) -KPIC -DPNG_USE_PNGGCCRD # -g -DPNG_DEBUG=5
CFLAGS=$(ABI) -I$(ZLIBINC) -O $(WARNMORE) -DPNG_USE_PNGGCCRD -DPNG_NO_ASSEMBLER_CODE
LDFLAGS=$(ABI) -L. -L$(ZLIBLIB) -lpng -lz -lm
LDSHARED=cc $(ABI) -shared

VER=1.0.12
# See "man dso" for info about shared objects
SONUM=2
SHAREDLIB=libpng.so
libdir=$(prefix)
#libdir=$(prefix)/lib32

RANLIB=echo
#RANLIB=ranlib

OBJS = pnggccrd.o 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

all: libpng.a pngtest shared

shared: $(SHAREDLIB).$(SONUM).$(VER)

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

$(SHAREDLIB).$(SONUM).$(VER): $(OBJS)
	$(LDSHARED) -o $@ $(OBJS)
	rm -f $(SHAREDLIB) $(SHAREDLIB).?
	ln -s $@ $(SHAREDLIB)
	ln -s $@ $(SHAREDLIB).$(SONUM)

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

test: pngtest
	./pngtest

install: libpng.a
	- at mkdir $(prefix)/include
	- at 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
	cp libpng.a $(prefix)/lib
	chmod 644 $(prefix)/lib/libpng.a

install-shared: $(SHAREDLIB).$(SONUM).$(VER)
	cp $(SHAREDLIB).$(SONUM).$(VER) $(libdir)
	chmod 755 $(SHAREDLIB).$(SONUM).$(VER)
	(cd $(libdir)
	rm -f $(SHAREDLIB) $(SHAREDLIB).$(SONUM)
	ln -s $(SHAREDLIB).$(SONUM).$(VER) $(SHAREDLIB).$(SONUM)
	ln -s $(SHAREDLIB).$(SONUM) $(SHAREDLIB))

clean:
	rm -f *.o libpng.a pngtest pngout.png $(SHAREDLIB).*

DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
writelock:
	chmod a-w *.[ch35] $(DOCS) scripts/*

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

png.o: png.h pngconf.h
pngerror.o: png.h pngconf.h
pngrio.o: png.h pngconf.h
pngwio.o: png.h pngconf.h
pngmem.o: png.h pngconf.h
pngset.o: png.h pngconf.h
pngget.o: png.h pngconf.h
pngread.o: png.h pngconf.h
pngrtran.o: png.h pngconf.h
pngrutil.o: png.h pngconf.h
pngtest.o: png.h pngconf.h
pngtrans.o: png.h pngconf.h
pngwrite.o: png.h pngconf.h
pngwtran.o: png.h pngconf.h
pngwutil.o: png.h pngconf.h
pngpread.o: png.h pngconf.h
pnggccrd.o: png.h pngconf.h


--- NEW FILE: pngos2.def ---
;----------------------------------------
; PNG.LIB module definition file for OS/2
;----------------------------------------

; Version 1.0.12

LIBRARY		PNG
DESCRIPTION	"PNG image compression library for OS/2"
CODE		PRELOAD MOVEABLE DISCARDABLE
DATA		PRELOAD MOVEABLE MULTIPLE

EXPORTS


  png_build_grayscale_palette
  png_check_sig
  png_chunk_error
  png_chunk_warning
  png_convert_from_struct_tm
  png_convert_from_time_t
  png_create_info_struct
  png_create_read_struct
  png_create_write_struct
  png_data_freer
  png_destroy_info_struct
  png_destroy_read_struct
  png_destroy_write_struct
  png_error
  png_free
  png_free_data
  png_get_IHDR
  png_get_PLTE
  png_get_bKGD
  png_get_bit_depth
  png_get_cHRM
  png_get_cHRM_fixed
  png_get_channels
  png_get_color_type
  png_get_compression_buffer_size
  png_get_compression_type
  png_get_copyright
  png_get_error_ptr
  png_get_filter_type
  png_get_gAMA
  png_get_gAMA_fixed
  png_get_hIST
  png_get_header_ver
  png_get_header_version
  png_get_iCCP
  png_get_image_height
  png_get_image_width
  png_get_interlace_type
  png_get_io_ptr
  png_get_libpng_ver
  png_get_oFFs
  png_get_pCAL
  png_get_pHYs
  png_get_pixel_aspect_ratio
  png_get_pixels_per_meter
  png_get_progressive_ptr
  png_get_rgb_to_gray_status
  png_get_rowbytes
  png_get_rows
  png_get_sBIT
  png_get_sCAL
  png_get_sPLT
  png_get_sRGB
  png_get_signature
  png_get_tIME
  png_get_tRNS
  png_get_text
  png_get_unknown_chunks
  png_get_user_chunk_ptr
  png_get_user_transform_ptr
  png_get_valid
  png_get_x_offset_microns
  png_get_x_offset_pixels
  png_get_x_pixels_per_meter
  png_get_y_offset_microns
  png_get_y_offset_pixels
  png_get_y_pixels_per_meter
  png_malloc
  png_memcpy_check
  png_memset_check
  png_permit_empty_plte
  png_process_data
  png_progressive_combine_row
  png_read_end
  png_read_image
  png_read_info
  png_read_init ; deprecated
  png_read_png
  png_read_row
  png_read_rows
  png_read_update_info
  png_reset_zstream
  png_set_IHDR
  png_set_PLTE
  png_set_bKGD
  png_set_background
  png_set_bgr
  png_set_cHRM
  png_set_cHRM_fixed
  png_set_compression_buffer_size
  png_set_compression_level
  png_set_compression_mem_level
  png_set_compression_method
  png_set_compression_strategy
  png_set_compression_window_bits
  png_set_crc_action
  png_set_dither
  png_set_error_fn
  png_set_expand
  png_set_filler
  png_set_filter
  png_set_filter_heuristics
  png_set_flush
  png_set_gAMA
  png_set_gAMA_fixed
  png_set_gamma
  png_set_gray_1_2_4_to_8
  png_set_gray_to_rgb
  png_set_hIST
  png_set_iCCP
  png_set_interlace_handling
  png_set_invert_alpha
  png_set_invert_mono
  png_set_keep_unknown_chunks
  png_set_oFFs
  png_set_pCAL
  png_set_pHYs
  png_set_packing
  png_set_packswap
  png_set_palette_to_rgb
  png_set_progressive_read_fn
  png_set_read_fn
  png_set_read_status_fn
  png_set_read_user_chunk_fn
  png_set_read_user_transform_fn
  png_set_rgb_to_gray
  png_set_rgb_to_gray_fixed
  png_set_rows
  png_set_sBIT
  png_set_sCAL
  png_set_sPLT
  png_set_sRGB
  png_set_sRGB_gAMA_and_cHRM
  png_set_shift
  png_set_sig_bytes
  png_set_strip_16
  png_set_strip_alpha
  png_set_swap
  png_set_swap_alpha
  png_set_tIME
  png_set_tRNS
  png_set_tRNS_to_alpha
  png_set_text
  png_set_unknown_chunk_location
  png_set_unknown_chunks
  png_set_user_transform_info
  png_set_write_fn
  png_set_write_status_fn
  png_set_write_user_transform_fn
  png_sig_cmp
  png_start_read_image
  png_warning
  png_write_chunk
  png_write_chunk_data
  png_write_chunk_end
  png_write_chunk_start
  png_write_end
  png_write_flush
  png_write_image
  png_write_info
  png_write_info_before_PLTE
  png_write_init ; deprecated
  png_write_png
  png_write_row
  png_write_rows
  png_read_init_2
  png_write_init_2
  png_access_version_number
  png_init_io
  png_convert_to_rfc1123
  png_set_invalid

;To be added at version 1.2.0
; png_permit_mng_features

;To be added at version 1.2.0
; png_mmx_support

; These are not present when libpng is compiled with PNG_NO_GLOBAL_ARRAYS
  png_libpng_ver
  png_pass_start
  png_pass_inc
  png_pass_ystart
  png_pass_yinc
  png_pass_mask
  png_pass_dsp_mask
; png_pass_width
; png_pass_height

; These are not present when libpng is compiled with PNG_NO_GLOBAL_ARRAYS
  png_IHDR
  png_IDAT
  png_IEND
  png_PLTE
  png_bKGD
  png_cHRM
  png_gAMA
  png_hIST
  png_iCCP
  png_iTXt
  png_oFFs
  png_pCAL
  png_pHYs
  png_sBIT
  png_sCAL
  png_sPLT
  png_sRGB
  png_tEXt
  png_tIME
  png_tRNS
  png_zTXt

--- NEW FILE: makefile.vcwin32 ---
# makefile for libpng
# Copyright (C) 1998 Tim Wegner
# For conditions of distribution and use, see copyright notice in png.h
# Assumes that zlib.lib, zconf.h, and zlib.h have been copied to ..\zlib
# To use, do "nmake /f scripts\makefile.vcwin32"

# -------- Microsoft Visual C++ 4.0 and later, no assembler code --------
# If you want to use assembler code, use makefile.vcawin32 instead.

CFLAGS= -Ox -GA3s -nologo -W3 -I..\zlib

CC=cl
LD=link
LDFLAGS= 
O=.obj

#uncomment next to put error messages in a file
#ERRFILE= >> pngerrs

# variables
OBJS1 = png$(O) pngset$(O) pngget$(O) pngrutil$(O) pngtrans$(O) pngwutil$(O)
OBJS2 = pngmem$(O) pngpread$(O) pngread$(O) pngerror$(O) pngwrite$(O)
OBJS3 = pngrtran$(O) pngwtran$(O) pngrio$(O) pngwio$(O)

all: libpng.lib

png$(O): png.h pngconf.h
		  $(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngset$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngget$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngread$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngpread$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngrtran$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngrutil$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngerror$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngmem$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngrio$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngwio$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngtest$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngtrans$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngwrite$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngwtran$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngwutil$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

libpng.lib: $(OBJS1) $(OBJS2) $(OBJS3)
	echo something to del > libpng.lib
	del libpng.lib
	lib /OUT:libpng.lib $(OBJS1) $(OBJS2) $(OBJS3)

pngtest.exe: pngtest.obj libpng.lib
	$(LD) $(LDFLAGS) pngtest.obj libpng.lib ..\zlib\zlib.lib /OUT:pngtest.exe /SUBSYSTEM:CONSOLE

test: pngtest.exe
	pngtest

# End of makefile for libpng


--- NEW FILE: makevms.com ---
$! make libpng under VMS
$!
$!
$! Check for MMK/MMS
$!
$! This procedure accepts one parameter (contrib), which causes it to build
$! the programs from the contrib directory instead of libpng.
$!
$ p1 = f$edit(p1,"UPCASE")
$ if p1 .eqs. "CONTRIB"
$ then
$   set def [.contrib.gregbook]
$   @makevms
$   set def [-.pngminus]
$   @makevms
$   set def [--]
$   exit
$ endif
$ Make = ""
$ If F$Search ("Sys$System:MMS.EXE") .nes. "" Then Make = "MMS"
$ If F$Type (MMK) .eqs. "STRING" Then Make = "MMK"
$!
$! Look for the compiler used
$!
$ zlibsrc = "[-.zlib]"
$ ccopt="/include=''zlibsrc'"
$ if f$getsyi("HW_MODEL").ge.1024
$ then
$  ccopt = "/prefix=all"+ccopt
$  comp  = "__decc__=1"
$  if f$trnlnm("SYS").eqs."" then define sys sys$library:
$ else
$  if f$search("SYS$SYSTEM:DECC$COMPILER.EXE").eqs.""
$   then
$    if f$trnlnm("SYS").eqs."" then define sys sys$library:
$    if f$search("SYS$SYSTEM:VAXC.EXE").eqs.""
$     then
$      comp  = "__gcc__=1"
$      CC :== GCC
$     else
$      comp = "__vaxc__=1"
$     endif
$   else
$    if f$trnlnm("SYS").eqs."" then define sys decc$library_include:
$    ccopt = "/decc/prefix=all"+ccopt
$    comp  = "__decc__=1"
$  endif
$ endif
$!
$! Build the thing plain or with mms/mmk
$!
$ write sys$output "Compiling Libpng sources ..."
$ if make.eqs.""
$  then
$   dele pngtest.obj;*
$   CALL MAKE png.OBJ "cc ''CCOPT' png" -
	png.c png.h pngconf.h
$   CALL MAKE pngpread.OBJ "cc ''CCOPT' pngpread" -
					 pngpread.c png.h pngconf.h
$   CALL MAKE pngset.OBJ "cc ''CCOPT' pngset" -
	pngset.c png.h pngconf.h
$   CALL MAKE pngget.OBJ "cc ''CCOPT' pngget" -
	pngget.c png.h pngconf.h
$   CALL MAKE pngread.OBJ "cc ''CCOPT' pngread" -
	pngread.c png.h pngconf.h
$   CALL MAKE pngpread.OBJ "cc ''CCOPT' pngpread" -
					 pngpread.c png.h pngconf.h
$   CALL MAKE pngrtran.OBJ "cc ''CCOPT' pngrtran" -
	pngrtran.c png.h pngconf.h
$   CALL MAKE pngrutil.OBJ "cc ''CCOPT' pngrutil" -
	pngrutil.c png.h pngconf.h
$   CALL MAKE pngerror.OBJ "cc ''CCOPT' pngerror" -
	pngerror.c png.h pngconf.h
$   CALL MAKE pngmem.OBJ "cc ''CCOPT' pngmem" -
	pngmem.c png.h pngconf.h
$   CALL MAKE pngrio.OBJ "cc ''CCOPT' pngrio" -
	pngrio.c png.h pngconf.h
$   CALL MAKE pngwio.OBJ "cc ''CCOPT' pngwio" -
	pngwio.c png.h pngconf.h
$   CALL MAKE pngtrans.OBJ "cc ''CCOPT' pngtrans" -
	pngtrans.c png.h pngconf.h
$   CALL MAKE pngwrite.OBJ "cc ''CCOPT' pngwrite" -
	pngwrite.c png.h pngconf.h
$   CALL MAKE pngwtran.OBJ "cc ''CCOPT' pngwtran" -
	pngwtran.c png.h pngconf.h
$   CALL MAKE pngwutil.OBJ "cc ''CCOPT' pngwutil" -
	pngwutil.c png.h pngconf.h
$   write sys$output "Building Libpng ..."
$   CALL MAKE libpng.OLB "lib/crea libpng.olb *.obj" *.OBJ
$   write sys$output "Building pngtest..."
$   CALL MAKE pngtest.OBJ "cc ''CCOPT' pngtest" -
	pngtest.c png.h pngconf.h
$   call make pngtest.exe -
	"LINK pngtest,libpng.olb/lib,''zlibsrc'libz.olb/lib" -
	pngtest.obj libpng.olb
$   write sys$output "Testing Libpng..."
$   run pngtest
$  else
$   if f$search("DESCRIP.MMS") .eqs. "" then copy/nolog [.SCRIPTS]DESCRIP.MMS []
$   'make'/macro=('comp',zlibsrc='zlibsrc')
$  endif
$ write sys$output "Libpng build completed"
$ exit
$!
$!
$MAKE: SUBROUTINE   !SUBROUTINE TO CHECK DEPENDENCIES
$ V = 'F$Verify(0)
$! P1 = What we are trying to make
$! P2 = Command to make it
$! P3 - P8  What it depends on
$
$ If F$Search(P1) .Eqs. "" Then Goto Makeit
$ Time = F$CvTime(F$File(P1,"RDT"))
$arg=3
$Loop:
$       Argument = P'arg
$       If Argument .Eqs. "" Then Goto Exit
$       El=0
$Loop2:
$       File = F$Element(El," ",Argument)
$       If File .Eqs. " " Then Goto Endl
$       AFile = ""
$Loop3:
$       OFile = AFile
$       AFile = F$Search(File)
$       If AFile .Eqs. "" .Or. AFile .Eqs. OFile Then Goto NextEl
$       If F$CvTime(F$File(AFile,"RDT")) .Ges. Time Then Goto Makeit
$       Goto Loop3
$NextEL:
$       El = El + 1
$       Goto Loop2
$EndL:
$ arg=arg+1
$ If arg .Le. 8 Then Goto Loop
$ Goto Exit
$
$Makeit:
$ VV=F$VERIFY(0)
$ write sys$output P2
$ 'P2
$ VV='F$Verify(VV)
$Exit:
$ If V Then Set Verify
$ENDSUBROUTINE

--- NEW FILE: makefile.amiga ---
# Commodore Amiga Makefile
# makefile for libpng and SAS C V6.5x compiler
# Copyright (C) 1995-2000 Wolf Faust
# For conditions of distribution and use, see copyright notice in png.h
#
# Note: Use #define PNG_READ_BIG_ENDIAN_SUPPORTED in pngconf.h
#
# Location/path of zlib include files
ZLIB=/zlib
#compiler
CC=sc
#compiler flags
# WARNING: a bug in V6.51 causes bad code with OPTGO
#          So use V6.55 or set NOOPTGO!!!!!!!!!
CFLAGS= NOSTKCHK PARMS=REG OPTIMIZE OPTGO OPTPEEP OPTINLOCAL OPTINL\
	OPTLOOP OPTRDEP=4 OPTDEP=4 OPTCOMP=4 INCLUDEDIR=$(ZLIB) \
	DEFINE=PNG_INTERNAL
#linker flags
LDFLAGS= SD ND BATCH
#link libs
LDLIBS= libpng.lib libgz.lib LIB:scm.lib LIB:sc.lib Lib:amiga.lib
# linker
LN= slink
# file deletion command
RM= delete quiet
# library (.lib) file creation command
AR= oml
# make directory command
MKDIR= makedir

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

all: libpng.lib pngtest

libpng.lib: $(OBJS)
-$(RM) libpng.lib
$(AR) libpng.lib r $(OBJS)

pngtest: pngtest.o libpng.lib
$(LN) <WITH <
$(LDFLAGS)
TO pngtest
FROM LIB:c.o pngtest.o
LIB $(LDLIBS)
<


--- NEW FILE: makefile.ibmc ---
# Makefile for libpng (static)
# IBM C version 3.x for Win32 and OS/2
# Copyright (C) 2000 Cosmin Truta
# For conditions of distribution and use, see copyright notice in png.h
# Notes:
#   Derived from makefile.std
#   All modules are compiled in C mode
#   Tested with IBM C 3.6.5 under Win32, expected to work under OS/2 too
#   Can be easily adapted for IBM VisualAge/C++ for AIX

# Location of the zlib library and include files
ZLIBINC = ../zlib
ZLIBLIB = ../zlib

# Compiler, linker, lib and other tools
CC = icc
LD = ilink
AR = ilib
RM = del

CFLAGS = -I$(ZLIBINC) -O2 -W3
LDFLAGS =

# File extensions
O=.obj
A=.lib
E=.exe

# Variables
OBJS = png$(O) pngerror$(O) pngget$(O) pngmem$(O) pngpread$(O) \
	pngread$(O) pngrio$(O) pngrtran$(O) pngrutil$(O) pngset$(O) \
	pngtrans$(O) pngwio$(O) pngwrite$(O) pngwtran$(O) pngwutil$(O)

LIBS = libpng$(A) $(ZLIBLIB)/zlib$(A)

# Targets
all: libpng$(A) pngtest$(E)

libpng$(A): $(OBJS)
	$(AR) -out:$@ $(OBJS)

test: pngtest$(E)
	pngtest$(E)

pngtest: pngtest$(E)

pngtest$(E): pngtest$(O) libpng$(A)
	$(LD) $(LDFLAGS) pngtest$(O) $(LIBS)

clean:
	$(RM) *$(O)
	$(RM) libpng$(A)
	$(RM) pngtest$(E)
	$(RM) pngout.png

png$(O): png.h pngconf.h
pngerror$(O): png.h pngconf.h
pngget$(O): png.h pngconf.h
pngmem$(O): png.h pngconf.h
pngpread$(O): png.h pngconf.h
pngread$(O): png.h pngconf.h
pngrio$(O): png.h pngconf.h
pngrtran$(O): png.h pngconf.h
pngrutil$(O): png.h pngconf.h
pngset$(O): png.h pngconf.h
pngtest$(O): png.h pngconf.h
pngtrans$(O): png.h pngconf.h
pngwio$(O): png.h pngconf.h
pngwrite$(O): png.h pngconf.h
pngwtran$(O): png.h pngconf.h
pngwutil$(O): png.h pngconf.h

--- NEW FILE: makefile.sco ---
# makefile for SCO OSr5  ELF and Unixware 7 with Native cc
# Contributed by Mike Hopkirk (hops at sco.com) modified from Makefile.lnx
#   force ELF build dynamic linking, SONAME setting in lib and RPATH in app
# Copyright (C) 1998 Greg Roelofs
# Copyright (C) 1996, 1997 Andreas Dilger
# For conditions of distribution and use, see copyright notice in png.h

CC=cc

# where make install puts libpng.a, libpng.so*, and png.h
prefix=/usr/local

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

CFLAGS= -dy -belf -I$(ZLIBINC) -O3
LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm

#RANLIB=ranlib
RANLIB=echo

# read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
# have to change it.
PNGMAJ = 2
PNGMIN = 1.0.12
PNGVER = $(PNGMAJ).$(PNGMIN)

INCPATH=$(prefix)/include
LIBPATH=$(prefix)/lib

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

OBJSDLL = $(OBJS:.o=.pic.o)

.SUFFIXES:      .c .o .pic.o

.c.pic.o:
	$(CC) -c $(CFLAGS) -KPIC -o $@ $*.c

all: libpng.a libpng.so pngtest

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

libpng.so: libpng.so.$(PNGMAJ)
	ln -f -s libpng.so.$(PNGMAJ) libpng.so

libpng.so.$(PNGMAJ): libpng.so.$(PNGVER)
	ln -f -s libpng.so.$(PNGVER) libpng.so.$(PNGMAJ)

libpng.so.$(PNGVER): $(OBJSDLL)
	$(CC) -G  -Wl,-h,libpng.so.$(PNGMAJ) -o libpng.so.$(PNGVER) \
	 $(OBJSDLL)

pngtest: pngtest.o libpng.so
	LD_RUN_PATH=.:$(ZLIBLIB) $(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)

test: pngtest
	./pngtest

install: libpng.a libpng.so.$(PNGVER)
	- at mkdir $(INCPATH) $(LIBPATH)
	cp png.h pngconf.h $(INCPATH)
	chmod 644 $(INCPATH)/png.h $(INCPATH)/pngconf.h
	cp libpng.a libpng.so.$(PNGVER) $(LIBPATH)
	chmod 755 $(LIBPATH)/libpng.so.$(PNGVER)
	-@/bin/rm -f $(LIBPATH)/libpng.so.$(PNGMAJ) $(LIBPATH)/libpng.so
	(cd $(LIBPATH); ln -f -s libpng.so.$(PNGVER) libpng.so.$(PNGMAJ); \
	 ln -f -s libpng.so.$(PNGMAJ) libpng.so)

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

DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
writelock:
	chmod a-w *.[ch35] $(DOCS) scripts/*

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

png.o png.pic.o: png.h pngconf.h
pngerror.o pngerror.pic.o: png.h pngconf.h
pngrio.o pngrio.pic.o: png.h pngconf.h
pngwio.o pngwio.pic.o: png.h pngconf.h
pngmem.o pngmem.pic.o: png.h pngconf.h
pngset.o pngset.pic.o: png.h pngconf.h
pngget.o pngget.pic.o: png.h pngconf.h
pngread.o pngread.pic.o: png.h pngconf.h
pngrtran.o pngrtran.pic.o: png.h pngconf.h
pngrutil.o pngrutil.pic.o: png.h pngconf.h
pngtrans.o pngtrans.pic.o: png.h pngconf.h
pngwrite.o pngwrite.pic.o: png.h pngconf.h
pngwtran.o pngwtran.pic.o: png.h pngconf.h
pngwutil.o pngwutil.pic.o: png.h pngconf.h
pngpread.o pngpread.pic.o: png.h pngconf.h

pngtest.o: png.h pngconf.h

--- NEW FILE: makefile.dj2 ---
# DJGPP (DOS gcc) makefile for libpng
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
# For conditions of distribution and use, see copyright notice in png.h

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

CC=gcc
CFLAGS=-I../zlib -O
LDFLAGS=-L. -L../zlib/ -lpng -lz -lm

RANLIB=ranlib

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

all: libpng.a pngtest

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

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

test: pngtest
	./pngtest
clean:
	rm -f *.o libpng.a pngtest pngout.png

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

png.o: png.h pngconf.h
pngerror.o: png.h pngconf.h
pngrio.o: png.h pngconf.h
pngwio.o: png.h pngconf.h
pngmem.o: png.h pngconf.h
pngset.o: png.h pngconf.h
pngget.o: png.h pngconf.h
pngread.o: png.h pngconf.h
pngpread.o: png.h pngconf.h
pngrtran.o: png.h pngconf.h
pngrutil.o: png.h pngconf.h
pngtest.o: png.h pngconf.h
pngtrans.o: png.h pngconf.h
pngwrite.o: png.h pngconf.h
pngwtran.o: png.h pngconf.h
pngwutil.o: png.h pngconf.h


--- NEW FILE: makefile.gcc ---
# makefile for libpng using gcc (generic, static library)
# Copyright (C) 2000 Cosmin Truta
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
# For conditions of distribution and use, see copyright notice in png.h

# Location of the zlib library and include files
ZLIBINC = ../zlib
ZLIBLIB = ../zlib

# Compiler, linker, lib and other tools
CC = gcc
LD = $(CC)
AR = ar rcs
RANLIB = ranlib
RM = rm -f

CDEBUG = -g -DPNG_DEBUG=5
LDDEBUG =
CRELEASE = -O2
LDRELEASE = -s
CFLAGS = -I$(ZLIBINC) -Wall $(CRELEASE)
LDFLAGS = -L. -L$(ZLIBLIB) -lpng -lz -lm $(LDRELEASE)

# File extensions
O=.o
A=.a
E=

# Variables
OBJS = png$(O) pngerror$(O) pngget$(O) pngmem$(O) pngpread$(O) \
	pngread$(O) pngrio$(O) pngrtran$(O) pngrutil$(O) pngset$(O) \
	pngtrans$(O) pngwio$(O) pngwrite$(O) pngwtran$(O) pngwutil$(O)

# Targets
all: libpng$(A) pngtest$(E)

libpng$(A): $(OBJS)
	$(AR) $@ $(OBJS)
	$(RANLIB) $@

test: pngtest$(E)
	./pngtest$(E)

pngtest$(E): pngtest$(O) libpng$(A)
	$(LD) -o $@ pngtest$(O) $(LDFLAGS)

clean:
	$(RM) *$(O) libpng$(A) pngtest$(E) pngout.png

png$(O): png.h pngconf.h
pngerror$(O): png.h pngconf.h
pngget$(O): png.h pngconf.h
pngmem$(O): png.h pngconf.h
pngpread$(O): png.h pngconf.h
pngread$(O): png.h pngconf.h
pngrio$(O): png.h pngconf.h
pngrtran$(O): png.h pngconf.h
pngrutil$(O): png.h pngconf.h
pngset$(O): png.h pngconf.h
pngtest$(O): png.h pngconf.h
pngtrans$(O): png.h pngconf.h
pngwio$(O): png.h pngconf.h
pngwrite$(O): png.h pngconf.h
pngwtran$(O): png.h pngconf.h
pngwutil$(O): png.h pngconf.h


--- NEW FILE: makefile.bc32 ---
# Makefile for libpng
# 32-bit Borland C++ (Note: All modules are compiled in C mode)
# To build the library, do:
#       "make -fmakefile.bc32"
#
# -------------------- 32-bit Borland C++ --------------------

### Absolutely necessary for this makefile to work
.AUTODEPEND

## Where zlib.h, zconf.h and zlib.lib are
ZLIB_DIR=..\zlib


## Compiler, linker and lib stuff
CC=bcc32
LD=bcc32
LIB=tlib

#TARGET_CPU=6
# 3 = 386, 4 = 486, 5 = Pentium etc.
!ifndef TARGET_CPU
TARGET_CPU=5
!endif

# Use this if you don't want Borland's fancy exception handling
NOEHLIB=noeh32.lib

!ifdef DEBUG
CDEBUG=-v
LDEBUG=-v
!else
CDEBUG=
LDEBUG=
!endif

# STACKOFLOW=1
!ifdef STACKOFLOW
CDEBUG=$(CDEBUG) -N
LDEBUG=$(LDEBUG) -N
!endif

# -X- turn on dependency generation in the object file
# -w  set all warnings on
# -O2 optimize for speed
# -Z  global optimization
CFLAGS=-O2 -Z -X- -w -I$(ZLIB_DIR) -$(TARGET_CPU) $(CDEBUG)

# -M  generate map file
LDFLAGS=-M -L$(ZLIB_DIR) $(LDEBUG)


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

LIBOBJS = \
	+png.obj \
	+pngerror.obj \
	+pngget.obj \
	+pngmem.obj \
	+pngpread.obj \
	+pngread.obj \
	+pngrio.obj \
	+pngrtran.obj \
	+pngrutil.obj \
	+pngset.obj \
	+pngtrans.obj \
	+pngwio.obj \
	+pngwrite.obj \
	+pngwtran.obj \
	+pngwutil.obj

LIBNAME=libpng.lib


## Implicit rules
# Braces let make "batch" calls to the compiler,
# 2 calls instead of 12; space is important.
.c.obj:
	$(CC) $(CFLAGS) -c {$*.c }

.c.exe:
	$(CC) $(CFLAGS) $(LDFLAGS) $*.c $(LIBNAME) zlib.lib $(NOEHLIB)

.obj.exe:
	$(LD) $(LDFLAGS) $*.obj $(LIBNAME) zlib.lib $(NOEHLIB)


## Major targets
all: libpng pngtest

libpng: $(LIBNAME)

pngtest: pngtest.exe

test: pngtest.exe
	pngtest


## Minor Targets

png.obj: png.c
pngerror.obj: pngerror.c
pngget.obj: pngget.c
pngmem.obj: pngmem.c
pngpread.obj: pngpread.c
pngread.obj: pngread.c
pngrio.obj: pngrio.c
pngrtran.obj: pngrtran.c
pngrutil.obj: pngrutil.c
pngset.obj: pngset.c
pngtrans.obj: pngtrans.c
pngwio.obj: pngwio.c
pngwrite.obj: pngwrite.c
pngwtran.obj: pngwtran.c
pngwutil.obj: pngwutil.c


$(LIBNAME): $(OBJS)
	-del $(LIBNAME)
	$(LIB) $(LIBNAME) @&&|
$(LIBOBJS), libpng
|


# Clean up anything else you want
clean:
	-del *.obj
	-del *.exe
	-del *.lib
	-del *.lst
	-del *.map
	-del *.tds


# End of makefile for libpng

--- NEW FILE: makefile.netbsd ---
# makefile for libpng for NetBSD for the standard
# make obj && make depend && make && make test
# make includes && make install
# Copyright (C) 2001 Patrick R.L. Welche
# For conditions of distribution and use, see copyright notice in png.h

LOCALBASE?=/usr/local
LIBDIR=	${LOCALBASE}/lib
MANDIR= ${LOCALBASE}/man
INCSDIR=${LOCALBASE}/include

LIB=png
SHLIB_MAJOR= 2
SHLIB_MINOR= 1.0.12
SRCS=	pnggccrd.c png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
	pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
	pngwtran.c pngmem.c pngerror.c pngpread.c
INCS=	png.h pngconf.h
MAN=	libpng.3 libpngpf.3 png.5

CPPFLAGS+=-I${.CURDIR} -DPNG_USE_PNGGCCRD

CPPFLAGS+=-DPNG_NO_ASSEMBLER_CODE
# something like this for mmx assembler, but it core dumps for me at the moment
# .if ${MACHINE_ARCH} == "i386"
#   MKLINT= no
# .else
#   CPPFLAGS+=-DPNG_NO_ASSEMBLER_CODE
# .endif

CLEANFILES+=pngtest.o pngtest

pngtest.o:	pngtest.c
	${CC} -c ${CPPFLAGS} ${CFLAGS} ${.ALLSRC} -o ${.TARGET}

pngtest:	pngtest.o libpng.a
	${CC} ${LDFLAGS} ${.ALLSRC} -o${.TARGET} -lz -lm

test:	pngtest
	cd ${.CURDIR} && ${.OBJDIR}/pngtest

.include <bsd.lib.mk>

--- NEW FILE: makefile.hpgcc ---
# makefile for libpng on HP-UX using GCC
# Copyright (C) 2001, Laurent faillie
# Copyright (C) 1998, 1999 Greg Roelofs
# Copyright (C) 1996, 1997 Andreas Dilger
# For conditions of distribution and use, see copyright notice in png.h

CC=gcc

# where "make install" puts libpng.a, libpng.so*, png.h and pngconf.h
prefix=/usr/local

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

ALIGN=
# for i386:
#ALIGN=-malign-loops=2 -malign-functions=2

WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
	-Wmissing-declarations -Wtraditional -Wcast-align \
	-Wstrict-prototypes -Wmissing-prototypes #-Wconversion

# for pgcc version 2.95.1, -O3 is buggy; don't use it.

CFLAGS=-I$(ZLIBINC) -Wall -O3 -funroll-loops \
	$(ALIGN) # $(WARNMORE) -g -DPNG_DEBUG=5
#LDFLAGS=-L. -Wl,-rpath,. -L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) -lpng -lz -lm
LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm

RANLIB=ranlib
#RANLIB=echo

# read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
# have to change it.
PNGMAJ = 2
PNGMIN = 1.0.12
PNGVER = $(PNGMAJ).$(PNGMIN)

INCPATH=$(prefix)/include
LIBPATH=$(prefix)/lib

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

OBJSDLL = $(OBJS:.o=.pic.o)

.SUFFIXES:      .c .o .pic.o

.c.pic.o:
	$(CC) -c $(CFLAGS) -fPIC -o $@ $*.c

all: libpng.a libpng.sl pngtest

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

libpng.sl: libpng.sl.$(PNGMAJ)
	ln -f -s libpng.sl.$(PNGMAJ) libpng.sl

libpng.sl.$(PNGMAJ): libpng.sl.$(PNGVER)
	ln -f -s libpng.sl.$(PNGVER) libpng.sl.$(PNGMAJ)

libpng.sl.$(PNGVER): $(OBJSDLL)
	$(LD) -b -L$(ZLIBLIB) +s +b $(ZLIBLIB) \
	+h libpng.sl.$(PNGMAJ) -o libpng.sl.$(PNGVER) $(OBJSDLL) -lz

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

test: pngtest
	./pngtest

install: libpng.a libpng.sl.$(PNGVER)
	- at if [ ! -d $(INCPATH)  ]; then mkdir $(INCPATH); fi
	- at if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
	cp png.h pngconf.h $(INCPATH)
	chmod 644 $(INCPATH)/png.h $(INCPATH)/pngconf.h
	cp libpng.a libpng.sl.$(PNGVER) $(LIBPATH)
	chmod 755 $(LIBPATH)/libpng.sl.$(PNGVER)
	-@/bin/rm -f $(LIBPATH)/libpng.sl.$(PNGMAJ) $(LIBPATH)/libpng.sl
	(cd $(LIBPATH); ln -sf libpng.sl.$(PNGVER) libpng.sl.$(PNGMAJ); \
	 ln -sf libpng.sl.$(PNGMAJ) libpng.sl)

clean:
	/bin/rm -f *.o libpng.a libpng.sl* pngtest pngout.png

DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
writelock:
	chmod a-w *.[ch35] $(DOCS) scripts/*

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

png.o png.pic.o: png.h pngconf.h
pngerror.o pngerror.pic.o: png.h pngconf.h
pngrio.o pngrio.pic.o: png.h pngconf.h
pngwio.o pngwio.pic.o: png.h pngconf.h
pngmem.o pngmem.pic.o: png.h pngconf.h
pngset.o pngset.pic.o: png.h pngconf.h
pngget.o pngget.pic.o: png.h pngconf.h
pngread.o pngread.pic.o: png.h pngconf.h
pngrtran.o pngrtran.pic.o: png.h pngconf.h
pngrutil.o pngrutil.pic.o: png.h pngconf.h
pngtrans.o pngtrans.pic.o: png.h pngconf.h
pngwrite.o pngwrite.pic.o: png.h pngconf.h
pngwtran.o pngwtran.pic.o: png.h pngconf.h
pngwutil.o pngwutil.pic.o: png.h pngconf.h
pngpread.o pngpread.pic.o: png.h pngconf.h

pngtest.o: png.h pngconf.h

--- NEW FILE: makefile.tc3 ---
# Makefile for libpng
# TurboC/C++ (Note: All modules are compiled in C mode)

# To use, do "make -fmakefile.tc3"

# ----- Turbo C 3.00 (can be modified to work with earlier versions) -----

MODEL=l
CFLAGS=-O2 -Z -m$(MODEL) -I..\zlib
#CFLAGS=-D_NO_PROTO -O2 -Z -m$(MODEL) -I..\zlib  # Turbo C older than 3.00
CC=tcc
LD=tcc
LIB=tlib
LDFLAGS=-m$(MODEL) -L..\zlib
O=.obj
E=.exe

# variables
OBJS1 = png$(O) pngset$(O) pngget$(O) pngrutil$(O) pngtrans$(O) pngwutil$(O)
OBJS2 = pngmem$(O) pngpread$(O) pngread$(O) pngerror$(O) pngwrite$(O)
OBJS3 = pngrtran$(O) pngwtran$(O) pngrio$(O) pngwio$(O)
OBJSL1 = +png$(O) +pngset$(O) +pngget$(O) +pngrutil$(O) +pngtrans$(O)
OBJSL2 = +pngwutil$(O) +pngmem$(O) +pngpread$(O) +pngread$(O) +pngerror$(O)
OBJSL3 = +pngwrite$(O) +pngrtran$(O) +pngwtran$(O) +pngrio$(O) +pngwio$(O)

all: libpng$(MODEL).lib pngtest$(E)

pngtest: pngtest$(E)

test: pngtest$(E)
	pngtest$(E)

png$(O): png.h pngconf.h
		  $(CC) -c $(CFLAGS) $*.c

pngset$(O): png.h pngconf.h
		  $(CC) -c $(CFLAGS) $*.c

pngget$(O): png.h pngconf.h
		  $(CC) -c $(CFLAGS) $*.c

pngread$(O): png.h pngconf.h
		  $(CC) -c $(CFLAGS) $*.c

pngpread$(O): png.h pngconf.h
		  $(CC) -c $(CFLAGS) $*.c

pngrtran$(O): png.h pngconf.h
		  $(CC) -c $(CFLAGS) $*.c

pngrutil$(O): png.h pngconf.h
		  $(CC) -c $(CFLAGS) $*.c

pngerror$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c

pngmem$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c

pngrio$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c

pngwio$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c

pngtest$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c

pngtrans$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c

pngwrite$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c

pngwtran$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c

pngwutil$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c

libpng$(MODEL).lib: $(OBJS1) $(OBJS2) $(OBJS3)
	$(LIB) libpng$(MODEL) +$(OBJSL1)
	$(LIB) libpng$(MODEL) +$(OBJSL2)
	$(LIB) libpng$(MODEL) +$(OBJSL3)

pngtest$(E): pngtest$(O) libpng$(MODEL).lib
	$(LD) $(LDFLAGS) pngtest.obj libpng$(MODEL).lib zlib_$(MODEL).lib

# End of makefile for libpng

--- NEW FILE: makefile.cygwin ---
# makefile for cygwin on x86
#   builds both dll (with import lib) and static lib versions
#   of the library, and builds two copies of pngtest: one
#   statically linked and one dynamically linked.
#
#   based on makefile for linux-elf w/mmx by:
# Copyright (C) 1998-2000 Greg Roelofs
# Copyright (C) 1996, 1997 Andreas Dilger
# For conditions of distribution and use, see copyright notice in png.h

# To enable assembler optimizations, add '-DPNG_USE_PNGGCCRD' to
# $CFLAGS, and include pnggccrd.o in $OBJS, below.

CC=gcc

# where "make install" puts libpng.a, libpng.so*, png.h, and pngconf.h
prefix=/usr

# Where the zlib library and include files are located
ZLIBLIB=${prefix}/lib
ZLIBINC=${prefix}/include
#ZLIBLIB=../zlib
#ZLIBINC=../zlib

ALIGN=
# for i386:
#ALIGN=-malign-loops=2 -malign-functions=2

WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
	-Wmissing-declarations -Wtraditional -Wcast-align \
	-Wstrict-prototypes -Wmissing-prototypes #-Wconversion

#CFLAGS=-DPNG_USE_PNGGCCRD -I$(ZLIBINC) -Wall -O3 $(ALIGN) -funroll-loops \
#        -fomit-frame-pointer  # $(WARNMORE) -g -DPNG_DEBUG=5
CFLAGS=-I$(ZLIBINC) -Wall -O3 $(ALIGN) -funroll-loops \
	-fomit-frame-pointer

# read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
# have to change it.
PNGMAJ = 2
#PNGDLL = $2# msvc
PNGDLL = 2# cygwin 1.0.12
PNGMIN = 1.0.12
PNGMIN_BASE = 1.0.12
PNGVER = $(PNGMAJ).$(PNGMIN)

SHAREDLIB=cygpng$(PNGDLL).dll
STATLIB=libpng.a
IMPLIB=libpng.dll.a
SHAREDDEF=libpng.def
LIBS=$(SHAREDLIB) $(STATLIB)
EXE=.exe

LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz
LDSHARED=gcc -shared -Wl,--enable-auto-image-base
LDEXTRA=-Wl,--out-implib=$(IMPLIB) $(SHAREDDEF)

RANLIB=ranlib
#RANLIB=echo

INCPATH=$(prefix)/include
LIBPATH=$(prefix)/lib
BINPATH=$(prefix)/bin
MANPATH=$(prefix)/man
MAN3PATH=$(MANPATH)/man3
DOCPATH=$(prefix)/doc/libpng-$(PNGMIN_BASE)

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 # pnggccrd.o

OBJSDLL = $(OBJS:.o=.pic.o)

.SUFFIXES:      .c .o .pic.o

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

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

all: all-static all-shared

static: all-static

shared: all-shared

all-static: $(STATLIB) pngtest-stat$(EXE)

all-shared: $(SHAREDLIB) pngtest$(EXE)

pnggccrd.o:	png.h pngconf.h
	@echo ""
	@echo '    You can ignore the single "control reaches end of non-void function"'
	@echo '    warning and multiple "<variable> defined but not used" warnings:'
	@echo ""
	$(CC) -c $(CFLAGS) -DPNG_STATIC -DZLIB_STATIC -o $@ $*.c

pnggccrd.pic.o:	png.h pngconf.h
	@echo ""
	@echo '    You can ignore the single "control reaches end of non-void function"'
	@echo '    warning and multiple "<variable> defined but not used" warnings:'
	@echo ""
	$(CC) -c $(CFLAGS) -DPNG_BUILD_DLL -o $@ pnggccrd.c

$(STATLIB): $(OBJS)
	ar rc $@ $(OBJS)
	$(RANLIB) $@

$(SHAREDDEF): projects/msvc/png32ms.def
	cat $< | sed -e '1{G;s/^\(.*\)\(\n\)/EXPORTS/;};2,/^EXPORTS/d' | \
	sed -e 's/\([^;]*\);/;/' > $@

$(SHAREDLIB): $(OBJSDLL) $(SHAREDDEF)
	$(LDSHARED) -o $@ $(LDEXTRA) $(OBJSDLL) -L. -L$(ZLIBLIB) -lz

pngtest$(EXE): pngtest.pic.o $(SHAREDLIB)
	$(CC) $(CFLAGS) $< $(LDFLAGS) -o $@

pngtest-stat$(EXE): pngtest.o $(STATLIB)
	$(CC) -static $(CFLAGS) $< $(LDFLAGS) -o $@

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

pngtest.o: pngtest.c
	$(CC) $(CFLAGS) -DPNG_STATIC -DZLIB_STATIC -c $< -o $@

test: test-static test-shared

test-static: pngtest-stat$(EXE)
	./pngtest-stat

test-shared: pngtest$(EXE)
	./pngtest

install: install-static install-shared

install-static: $(STATLIB) install-headers install-docs install-man
	- at if [ ! -d $(LIBPATH) ]; then mkdir -p $(LIBPATH); fi
	install -m 755 $(STATLIB) $(LIBPATH)

install-shared: $(SHAREDLIB) install-headers install-docs install-man
	- at if [ ! -d $(LIBPATH) ]; then mkdir -p $(LIBPATH); fi
	- at if [ ! -d $(BINPATH) ]; then mkdir -p $(BINPATH); fi
	install -m 755 $(IMPLIB) $(LIBPATH)
	install -s -m 755 $(SHAREDLIB) $(BINPATH)

install-headers:
	- at if [ ! -d $(INCPATH)  ]; then mkdir -p $(INCPATH); fi
	install -m 644 png.h pngconf.h $(INCPATH)

install-docs:
	- at if [ ! -d $(DOCPATH) ]; then mkdir -p $(DOCPATH); fi
	install -m 644 $(DOCS) $(DOCPATH)

install-man:
	- at if [ ! -d $(MAN3PATH) ]; then mkdir -p $(MAN3PATH); fi
	install -m 644 libpngpf.3 libpng.3 $(MAN3PATH)

clean:
	/bin/rm -f *.pic.o *.o $(STATLIB) $(IMPLIB) $(SHAREDLIB) \
	pngtest-stat$(EXE) pngtest$(EXE) pngout.png $(SHAREDDEF)

DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
writelock:
	chmod a-w *.[ch35] $(DOCS) scripts/*

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

png.o png.pic.o:		png.h pngconf.h png.c
pngerror.o pngerror.pic.o:	png.h pngconf.h pngerror.c
pngrio.o pngrio.pic.o:		png.h pngconf.h pngrio.c
pngwio.o pngwio.pic.o:		png.h pngconf.h pngwio.c
pngmem.o pngmem.pic.o:		png.h pngconf.h pngmem.c
pngset.o pngset.pic.o:		png.h pngconf.h pngset.c
pngget.o pngget.pic.o:		png.h pngconf.h pngget.c
pngread.o pngread.pic.o:	png.h pngconf.h pngread.c
pngrtran.o pngrtran.pic.o:	png.h pngconf.h pngrtran.c
pngrutil.o pngrutil.pic.o:	png.h pngconf.h pngrutil.c
pngtrans.o pngtrans.pic.o:	png.h pngconf.h pngtrans.c
pngwrite.o pngwrite.pic.o:	png.h pngconf.h pngwrite.c
pngwtran.o pngwtran.pic.o:	png.h pngconf.h pngwtran.c
pngwutil.o pngwutil.pic.o:	png.h pngconf.h pngwutil.c
pngpread.o pngpread.pic.o:	png.h pngconf.h pngpread.c

pngtest.o:			png.h pngconf.h pngtest.c
pngtest-stat.o:			png.h pngconf.h pngtest.c

--- NEW FILE: pngdef.pas ---
unit pngdef;

// Caution: this file has fallen out of date since version 1.0.5.  Write to
// png-implement at ccrc.wustl.edu or to randeg at alum.rpi.edu about bringing
// it up to date.

interface

const
  PNG_LIBPNG_VER_STRING = '1.0.12';
  PNG_LIBPNG_VER        =  10012;

type
  png_uint_32 = Cardinal;
  png_int_32  = Longint;
  png_uint_16 = Word;
  png_int_16  = Smallint;
  png_byte    = Byte;
  png_size_t  = png_uint_32;
  png_charpp  = ^png_charp;
  png_charp   = PChar;
  float       = single;
  int         = Integer;
  png_bytepp  = ^png_bytep;
  png_bytep   = ^png_byte;
  png_uint_16p = ^png_uint_16;
  png_uint_16pp = ^png_uint_16p;
  png_voidp    = pointer;
  time_t       = Longint;
  png_doublep  = ^png_double;
  png_double   = double;

  user_error_ptr  = Pointer;
  png_error_ptrp = ^png_error_ptr;
  png_error_ptr  = procedure(png_ptr: Pointer; msg: Pointer);
             stdcall;
  png_rw_ptrp = ^png_rw_ptr;
  png_rw_ptr = procedure(png_ptr: Pointer; data: Pointer;
                         length: png_size_t);
             stdcall;
  png_flush_ptrp = ^png_flush_ptr;
  png_flush_ptr = procedure(png_ptr: Pointer);
             stdcall;
  png_progressive_info_ptrp = ^png_progressive_info_ptr;
  png_progressive_info_ptr  = procedure(png_ptr: Pointer;
                                        info_ptr: Pointer);
             stdcall;
  png_progressive_end_ptrp  = ^png_progressive_end_ptr;
  png_progressive_end_ptr   = procedure(png_ptr: Pointer;
                                        info_ptr: Pointer);
             stdcall;
  png_progressive_row_ptrp  = ^png_progressive_row_ptr;
  png_progressive_row_ptr   = procedure(png_ptr: Pointer;
                                data: Pointer; length: png_uint_32;
                                count: int);
             stdcall;
  png_read_status_ptr = procedure(png_ptr: Pointer;
                          row_number: png_uint_32; pass: int);
             stdcall;
  png_write_status_ptr = procedure(png_ptr: Pointer;
                           row_number: png_uint_32; pass: int);
             stdcall;
  png_user_chunk_ptr = procedure(png_ptr: Pointer;
                             data: png_unknown_chunkp);
             stdcall;
  png_user_transform_ptr = procedure(png_ptr: Pointer;
                             row_info: Pointer; data: png_bytep);
             stdcall;

  png_colorpp = ^png_colorp;
  png_colorp = ^png_color;
  png_color = packed record
    red, green, blue: png_byte;
    end;

  png_color_16pp = ^png_color_16p;
  png_color_16p = ^png_color_16;
  png_color_16 = packed record
    index: png_byte;                 //used for palette files
    red, green, blue: png_uint_16;   //for use in red green blue files
    gray: png_uint_16;               //for use in grayscale files
    end;

  png_color_8pp = ^png_color_8p;
  png_color_8p = ^png_color_8;
  png_color_8 = packed record
    red, green, blue: png_byte;   //for use in red green blue files
    gray: png_byte;               //for use in grayscale files
    alpha: png_byte;              //for alpha channel files
    end;

  png_textpp = ^png_textp;
  png_textp = ^png_text;
  png_text = packed record
    compression: int;            //compression value
    key: png_charp;              //keyword, 1-79 character description of "text"
    text: png_charp;             //comment, may be empty ("")
    text_length: png_size_t;     //length of text field
    end;

  png_timepp = ^png_timep;
  png_timep = ^png_time;
  png_time = packed record
    year: png_uint_16;           //yyyy
    month: png_byte;             //1..12
    day: png_byte;               //1..31
    hour: png_byte;              //0..23
    minute: png_byte;            //0..59
    second: png_byte;            //0..60 (leap seconds)
    end;

  png_infopp = ^png_infop;
  png_infop = Pointer;

  png_row_infopp = ^png_row_infop;
  png_row_infop = ^png_row_info;
  png_row_info = packed record
    width: png_uint_32;          //width of row
    rowbytes: png_size_t;        //number of bytes in row
    color_type: png_byte;        //color type of row
    bit_depth: png_byte;         //bit depth of row
    channels: png_byte;          //number of channels (1, 2, 3, or 4)
    pixel_depth: png_byte;       //bits per pixel (depth * channels)
    end;

  png_structpp = ^png_structp;
  png_structp = Pointer;

const

// Supported compression types for text in PNG files (tEXt, and zTXt).
// The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed.

  PNG_TEXT_COMPRESSION_NONE_WR = -3;
  PNG_TEXT_COMPRESSION_zTXt_WR = -2;
  PNG_TEXT_COMPRESSION_NONE    = -1;
  PNG_TEXT_COMPRESSION_zTXt    = 0;

// These describe the color_type field in png_info.
// color type masks

  PNG_COLOR_MASK_PALETTE   = 1;
  PNG_COLOR_MASK_COLOR     = 2;
  PNG_COLOR_MASK_ALPHA     = 4;

// color types.  Note that not all combinations are legal

  PNG_COLOR_TYPE_GRAY       = 0;
  PNG_COLOR_TYPE_PALETTE    = PNG_COLOR_MASK_COLOR or
                              PNG_COLOR_MASK_PALETTE;
  PNG_COLOR_TYPE_RGB        = PNG_COLOR_MASK_COLOR;
  PNG_COLOR_TYPE_RGB_ALPHA  = PNG_COLOR_MASK_COLOR or
                              PNG_COLOR_MASK_ALPHA;
  PNG_COLOR_TYPE_GRAY_ALPHA = PNG_COLOR_MASK_ALPHA;

// This is for compression type. PNG 1.0 only defines the single type.

  PNG_COMPRESSION_TYPE_BASE    = 0;   // Deflate method 8, 32K window
  PNG_COMPRESSION_TYPE_DEFAULT = PNG_COMPRESSION_TYPE_BASE;

// This is for filter type. PNG 1.0 only defines the single type.

  PNG_FILTER_TYPE_BASE    = 0;       // Single row per-byte filtering
  PNG_FILTER_TYPE_DEFAULT = PNG_FILTER_TYPE_BASE;

// These are for the interlacing type.  These values should NOT be changed.

  PNG_INTERLACE_NONE  = 0;      // Non-interlaced image
  PNG_INTERLACE_ADAM7 = 1;      // Adam7 interlacing

// These are for the oFFs chunk.  These values should NOT be changed.

  PNG_OFFSET_PIXEL      = 0;    // Offset in pixels
  PNG_OFFSET_MICROMETER = 1;    // Offset in micrometers (1/10^6 meter)

// These are for the pCAL chunk.  These values should NOT be changed.

  PNG_EQUATION_LINEAR     = 0;  // Linear transformation
  PNG_EQUATION_BASE_E     = 1;  // Exponential base e transform
  PNG_EQUATION_ARBITRARY  = 2;  // Arbitrary base exponential transform
  PNG_EQUATION_HYPERBOLIC = 3;  // Hyperbolic sine transformation

// These are for the pHYs chunk.  These values should NOT be changed.

  PNG_RESOLUTION_UNKNOWN = 0;   // pixels/unknown unit (aspect ratio)
  PNG_RESOLUTION_METER   = 1;   // pixels/meter

// These are for the sRGB chunk.  These values should NOT be changed.
 PNG_sRGB_INTENT_PERCEPTUAL = 0;
 PNG_sRGB_INTENT_RELATIVE   = 1;
 PNG_sRGB_INTENT_SATURATION = 2;
 PNG_sRGB_INTENT_ABSOLUTE   = 3;

// Handle alpha and tRNS by replacing with a background color.
  PNG_BACKGROUND_GAMMA_UNKNOWN = 0;
  PNG_BACKGROUND_GAMMA_SCREEN  = 1;
  PNG_BACKGROUND_GAMMA_FILE    = 2;
  PNG_BACKGROUND_GAMMA_UNIQUE  = 3;

// Values for png_set_crc_action() to say how to handle CRC errors in
// ancillary and critical chunks, and whether to use the data contained
// therein.  Note that it is impossible to "discard" data in a critical
// chunk.  For versions prior to 0.90, the action was always error/quit,
// whereas in version 0.90 and later, the action for CRC errors in ancillary
// chunks is warn/discard.  These values should NOT be changed.

//      value                   action:critical     action:ancillary

  PNG_CRC_DEFAULT      = 0;  // error/quit          warn/discard data
  PNG_CRC_ERROR_QUIT   = 1;  // error/quit          error/quit
  PNG_CRC_WARN_DISCARD = 2;  // (INVALID)           warn/discard data
  PNG_CRC_WARN_USE     = 3;  // warn/use data       warn/use data
  PNG_CRC_QUIET_USE    = 4;  // quiet/use data      quiet/use data
  PNG_CRC_NO_CHANGE    = 5;  // use current value   use current value

// Flags for png_set_filter() to say which filters to use.  The flags
// are chosen so that they don't conflict with real filter types
// below, in case they are supplied instead of the #defined constants.
// These values should NOT be changed.

  PNG_NO_FILTERS   = $00;
  PNG_FILTER_NONE  = $08;
  PNG_FILTER_SUB   = $10;
  PNG_FILTER_UP    = $20;
  PNG_FILTER_AVG   = $40;
  PNG_FILTER_PAETH = $80;
  PNG_ALL_FILTERS  = PNG_FILTER_NONE or PNG_FILTER_SUB or
                     PNG_FILTER_UP   or PNG_FILTER_AVG or
                     PNG_FILTER_PAETH;

// Filter values (not flags) - used in pngwrite.c, pngwutil.c for now.
// These defines should NOT be changed.

  PNG_FILTER_VALUE_NONE  = 0;
  PNG_FILTER_VALUE_SUB   = 1;
  PNG_FILTER_VALUE_UP    = 2;
  PNG_FILTER_VALUE_AVG   = 3;
  PNG_FILTER_VALUE_PAETH = 4;

// Heuristic used for row filter selection.  These defines should NOT be
// changed.

  PNG_FILTER_HEURISTIC_DEFAULT    = 0;  // Currently "UNWEIGHTED"
  PNG_FILTER_HEURISTIC_UNWEIGHTED = 1;  // Used by libpng < 0.95
  PNG_FILTER_HEURISTIC_WEIGHTED   = 2;  // Experimental feature
  PNG_FILTER_HEURISTIC_LAST       = 3;  // Not a valid value

procedure png_build_grayscale_palette(bit_depth: int; palette: png_colorp);
             stdcall;
function png_check_sig(sig: png_bytep; num: int): int;
             stdcall;
procedure png_chunk_error(png_ptr: png_structp;
             const mess: png_charp);
             stdcall;
procedure png_chunk_warning(png_ptr: png_structp;
             const mess: png_charp);
             stdcall;
procedure png_convert_from_time_t(ptime: png_timep; ttime: time_t);
             stdcall;
function png_convert_to_rfc1123(png_ptr: png_structp; ptime: png_timep):
             png_charp;
             stdcall;
function png_create_info_struct(png_ptr: png_structp): png_infop;
             stdcall;
function png_create_read_struct(user_png_ver: png_charp;
             error_ptr: user_error_ptr; error_fn: png_error_ptr;
             warn_fn: png_error_ptr): png_structp;
             stdcall;
function png_get_copyright(png_ptr: png_structp): png_charp;
             stdcall;
function png_get_header_ver(png_ptr: png_structp): png_charp;
             stdcall;
function png_get_header_version(png_ptr: png_structp): png_charp;
             stdcall;
function png_get_libpng_ver(png_ptr: png_structp): png_charp;
             stdcall;
function png_create_write_struct(user_png_ver: png_charp;
             error_ptr: user_error_ptr; error_fn: png_error_ptr;
             warn_fn: png_error_ptr): png_structp;
             stdcall;
procedure png_destroy_info_struct(png_ptr: png_structp;
             info_ptr_ptr: png_infopp);
             stdcall;
procedure png_destroy_read_struct(png_ptr_ptr: png_structpp;
             info_ptr_ptr, end_info_ptr_ptr: png_infopp);
             stdcall;
procedure png_destroy_write_struct(png_ptr_ptr: png_structpp;
             info_ptr_ptr: png_infopp);
             stdcall;
function png_get_IHDR(png_ptr: png_structp; info_ptr: png_infop;
             var width, height: png_uint_32; var bit_depth,
             color_type, interlace_type, compression_type,
             filter_type: int): png_uint_32;
             stdcall;
function png_get_PLTE(png_ptr: png_structp; info_ptr: png_infop;
             var palette: png_colorp; var num_palette: int):
             png_uint_32;
             stdcall;
function png_get_bKGD(png_ptr: png_structp; info_ptr: png_infop;
             var background: png_color_16p): png_uint_32;
             stdcall;
function png_get_bit_depth(png_ptr: png_structp; info_ptr: png_infop):
             png_byte;
             stdcall;
function png_get_cHRM(png_ptr: png_structp; info_ptr: png_infop;
             var white_x, white_y, red_x, red_y, green_x, green_y,
             blue_x, blue_y: double): png_uint_32;
             stdcall;
function png_get_channels(png_ptr: png_structp; info_ptr: png_infop):
             png_byte;
             stdcall;
function png_get_color_type(png_ptr: png_structp; info_ptr: png_infop):
             png_byte;
             stdcall;
function png_get_compression_type(png_ptr: png_structp;
             info_ptr: png_infop): png_byte;
             stdcall;
function png_get_error_ptr(png_ptr: png_structp): png_voidp;
             stdcall;
function png_get_filter_type(png_ptr: png_structp; info_ptr: png_infop):
             png_byte;
             stdcall;
function png_get_gAMA(png_ptr: png_structp; info_ptr: png_infop;
             var file_gamma: double): png_uint_32;
             stdcall;
function png_get_hIST(png_ptr: png_structp; info_ptr: png_infop;
             var hist: png_uint_16p): png_uint_32;
             stdcall;
function png_get_image_height(png_ptr: png_structp; info_ptr: png_infop):
             png_uint_32;
             stdcall;
function png_get_image_width(png_ptr: png_structp; info_ptr: png_infop):
             png_uint_32;
             stdcall;
function png_get_interlace_type(png_ptr: png_structp;
             info_ptr: png_infop): png_byte;
             stdcall;
function png_get_io_ptr(png_ptr: png_structp): png_voidp;
             stdcall;
function png_get_oFFs(png_ptr: png_structp; info_ptr: png_infop;
             var offset_x, offset_y: png_uint_32;
             var unit_type: int): png_uint_32;
             stdcall;
function png_get_sCAL(png_ptr: png_structp; info_ptr: png_infop;
             var unit:int; var width: png_uint_32; height: png_uint_32):
             png_uint_32;
             stdcall
function png_get_pCAL(png_ptr: png_structp; info_ptr: png_infop;
             var purpose: png_charp; var X0, X1: png_int_32;
             var typ, nparams: int; var units: png_charp;
             var params: png_charpp): png_uint_32;
             stdcall;
function png_get_pHYs(png_ptr: png_structp; info_ptr: png_infop;
             var res_x, res_y: png_uint_32; var unit_type: int):
             png_uint_32;
             stdcall;
function png_get_pixel_aspect_ratio(png_ptr: png_structp;
             info_ptr: png_infop): float;
             stdcall;
function png_get_pixels_per_meter(png_ptr: png_structp;
             info_ptr: png_infop): png_uint_32;
             stdcall;
function png_get_progressive_ptr(png_ptr: png_structp): png_voidp;
             stdcall;
function png_get_rgb_to_gray_status(png_ptr: png_structp);
             stdcall;
function png_get_rowbytes(png_ptr: png_structp; info_ptr: png_infop):
             png_uint_32;
             stdcall;
function png_get_rows(png_ptr: png_structp; info_ptr: png_infop):
             png_bytepp;
             stdcall;
function png_get_sBIT(png_ptr: png_structp; info_ptr: png_infop;
             var sig_bits: png_color_8p): png_uint_32;
             stdcall;
function png_get_sRGB(png_ptr: png_structp; info_ptr: png_infop;
             var file_srgb_intent: int): png_uint_32;
             stdcall;
function png_get_signature(png_ptr: png_structp; info_ptr: png_infop):
             png_bytep;
             stdcall;
function png_get_tIME(png_ptr: png_structp; info_ptr: png_infop;
             var mod_time: png_timep): png_uint_32;
             stdcall;
function png_get_tRNS(png_ptr: png_structp; info_ptr: png_infop;
             var trans: png_bytep; var num_trans: int;
             var trans_values: png_color_16p): png_uint_32;
             stdcall;
function png_get_text(png_ptr: png_structp; info_ptr: png_infop;
             var text_ptr: png_textp; var num_text: int):
             png_uint_32;
             stdcall;
function png_get_user_chunk_ptr(png_ptr: png_structp):
             png_voidp;
             stdcall;
function png_get_valid(png_ptr: png_structp; info_ptr: png_infop;
             flag: png_uint_32): png_uint_32;
             stdcall;
function png_get_x_offset_microns(png_ptr: png_structp;
             info_ptr: png_infop): png_uint_32;
             stdcall;
function png_get_x_offset_pixels(png_ptr: png_structp;
             info_ptr: png_infop): png_uint_32;
             stdcall;
function png_get_x_pixels_per_meter(png_ptr: png_structp;
             info_ptr: png_infop): png_uint_32;
             stdcall;
function png_get_y_offset_microns(png_ptr: png_structp;
             info_ptr: png_infop): png_uint_32;
             stdcall;
function png_get_y_offset_pixels(png_ptr: png_structp;
             info_ptr: png_infop): png_uint_32;
             stdcall;
function png_get_y_pixels_per_meter(png_ptr: png_structp;
             info_ptr: png_infop): png_uint_32;
             stdcall;
procedure png_process_data(png_ptr: png_structp; info_ptr: png_infop;
             buffer: png_bytep; buffer_size: png_size_t);
             stdcall;
procedure png_progressive_combine_row(png_ptr: png_structp;
             old_row, new_row: png_bytep);
             stdcall;
procedure png_read_end(png_ptr: png_structp; info_ptr: png_infop);
              stdcall;
procedure png_read_image(png_ptr: png_structp; image: png_bytepp);
             stdcall;
procedure png_read_info(png_ptr: png_structp; info_ptr: png_infop);
             stdcall;
procedure png_read_row(png_ptr: png_structp; row, dsp_row: png_bytep);
             stdcall;
procedure png_read_rows(png_ptr: png_structp; row, display_row:
              png_bytepp; num_rows: png_uint_32);
             stdcall;
procedure png_read_update_info(png_ptr: png_structp; info_ptr: png_infop);
             stdcall;
procedure png_set_IHDR(png_ptr: png_structp; info_ptr: png_infop;
             width, height: png_uint_32; bit_depth, color_type,
             interlace_type, compression_type, filter_type: int);
             stdcall;
procedure png_set_PLTE(png_ptr: png_structp; info_ptr: png_infop;
             palette: png_colorp; num_palette: int);
             stdcall;
procedure png_set_bKGD(png_ptr: png_structp; info_ptr: png_infop;
             background: png_color_16p);
             stdcall;
procedure png_set_background(png_ptr: png_structp;
             background_color: png_color_16p;
             background_gamma_code, need_expand: int;
             background_gamma: double);
             stdcall;
procedure png_set_bgr(png_ptr: png_structp);
             stdcall;
procedure png_set_cHRM(png_ptr: png_structp; info_ptr: png_infop;
             white_x, white_y, red_x, red_y, green_x, green_y,
             blue_x, blue_y: double);
             stdcall;
procedure png_set_cHRM_fixed(png_ptr: png_structp; info_ptr: png_infop;
             white_x, white_y, red_x, red_y, green_x, green_y,
             blue_x, blue_y: png_fixed_point);
             stdcall;
procedure png_set_compression_level(png_ptr: png_structp; level: int);
             stdcall;
procedure png_set_compression_mem_level(png_ptr: png_structp;
             mem_level: int);
             stdcall;
procedure png_set_compression_method(png_ptr: png_structp; method: int);
             stdcall;
procedure png_set_compression_strategy(png_ptr: png_structp;
             strategy: int);
             stdcall;
procedure png_set_compression_window_bits(png_ptr: png_structp;
             window_bits: int);
             stdcall;
procedure png_set_crc_action(png_ptr: png_structp;
             crit_action, ancil_action: int);
             stdcall;
procedure png_set_dither(png_ptr: png_structp; plaette: png_colorp;
             num_palette, maximum_colors: int;
             histogram: png_uint_16p; full_dither: int);
             stdcall;
procedure png_set_error_fn(png_ptr: png_structp; error_ptr: png_voidp;
             error_fn, warning_fn: png_error_ptr);
             stdcall;
procedure png_set_expand(png_ptr: png_structp);
             stdcall;
procedure png_set_filler(png_ptr: png_structp; filler: png_uint_32;
             filler_loc: int);
             stdcall;
procedure png_set_filter(png_ptr: png_structp; method, filters: int);
             stdcall;
procedure png_set_filter_heuristics(png_ptr: png_structp;
             heuristic_method, num_weights: int;
             filter_weights, filter_costs: png_doublep);
             stdcall;
procedure png_set_flush(png_ptr: png_structp; nrows: int);
             stdcall;
procedure png_set_gAMA(png_ptr: png_structp; info_ptr: png_infop;
             file_gamma: double);
             stdcall;
procedure png_set_gAMA_fixed(png_ptr: png_structp; info_ptr: png_infop;
             file_gamma: png_fixed_point);
             stdcall;
procedure png_set_gamma(png_ptr: png_structp; screen_gamma,
             default_file_gamma: double);
             stdcall;
procedure png_set_gray_1_2_4_to_8(png_ptr: png_structp);
             stdcall;
procedure png_set_gray_to_rgb(png_ptr: png_structp);
             stdcall;
procedure png_set_hIST(png_ptr: png_structp; info_ptr: png_infop;
             hist: png_uint_16p);
             stdcall;
function png_set_interlace_handling(png_ptr: png_structp): int;
             stdcall;
procedure png_set_invalid(png_ptr: png_structp; info_ptr:png_infop;
             mask: int);
             stdcall;
procedure png_set_invert_alpha(png_ptr: png_structp);
             stdcall;
procedure png_set_invert_mono(png_ptr: png_structp);
             stdcall;
procedure png_set_oFFs(png_ptr: png_structp; info_ptr: png_infop;
             offset_x, offset_y: png_uint_32; unit_type: int);
             stdcall;
procedure png_set_palette_to_rgb(png_ptr: png_structp);
             stdcall;
procedure png_set_pCAL(png_ptr: png_structp; info_ptr: png_infop;
             purpose: png_charp; X0, X1: png_int_32;
             typ, nparams: int; units: png_charp;
             params: png_charpp);
             stdcall;
procedure png_set_pHYs(png_ptr: png_structp; info_ptr: png_infop;
             res_x, res_y: png_uint_32; unit_type: int);
             stdcall;
procedure png_set_packing(png_ptr: png_structp);
             stdcall;
procedure png_set_packswap(png_ptr: png_structp);
             stdcall;
procedure png_set_progressive_read_fn(png_ptr: png_structp;
             progressive_ptr: png_voidp;
             info_fn: png_progressive_info_ptr;
             row_fn: png_progressive_row_ptr;
             end_fn: png_progressive_end_ptr);
             stdcall;
procedure png_set_read_fn(png_ptr: png_structp;
             io_ptr: png_voidp; read_data_fn: png_rw_ptr);
             stdcall;
procedure png_set_read_status_fn(png_ptr: png_structp;
             read_row_fn: png_read_status_ptr);
             stdcall;
procedure png_set_read_user_chunk_fn(png_ptr: png_structp;
             read_user_chunk_fn: png_user_chunk_ptr);
             stdcall;
procedure png_set_read_user_transform_fn(png_ptr: png_structp;
             read_user_transform_fn: png_user_transform_ptr);
             stdcall;
procedure png_set_rgb_to_gray(png_ptr: png_structp; int: error_action;
             red_weight, green_weight: double);
             stdcall;
procedure png_set_rgb_to_gray_fixed(png_ptr: png_structp; int: error_action;
             red_weight, green_weight: png_fixed_point);
             stdcall;
procedure png_set_rows(png_ptr: png_structp; info_ptr: png_infop;
             row_pointers: png_bytepp);
             stdcall;
procedure png_set_sBIT(png_ptr: png_structp; info_ptr: png_infop;
             sig_bits: png_color_8p);
             stdcall;
procedure png_set_sRGB(png_ptr: png_structp; info_ptr: png_infop;
             intent: int);
             stdcall;
procedure png_set_sRGB_gAMA_and_cHRM(png_ptr: png_structp;
             info_ptr: png_infop; intent: int);
             stdcall;
procedure png_set_shift(png_ptr: png_structp; true_bits: png_color_8p);
             stdcall;
procedure png_set_sig_bytes(png_ptr: png_structp; num_bytes: int);
             stdcall;
procedure png_set_strip_16(png_ptr: png_structp);
             stdcall;
procedure png_set_strip_alpha(png_ptr: png_structp);
             stdcall;
procedure png_set_swap(png_ptr: png_structp);
             stdcall;
procedure png_set_swap_alpha(png_ptr: png_structp);
             stdcall;
procedure png_set_tIME(png_ptr: png_structp; info_ptr: png_infop;
             mod_time: png_timep);
             stdcall;
procedure png_set_tRNS(png_ptr: png_structp; info_ptr: png_infop;
             trans: png_bytep; num_trans: int;
             trans_values: png_color_16p);
             stdcall;
procedure png_set_tRNS_to_alpha(png_ptr: png_structp);
             stdcall;
procedure png_set_text(png_ptr: png_structp; info_ptr: png_infop;
             text_ptr: png_textp; num_text: int);
             stdcall;
procedure png_set_write_fn(png_ptr: png_structp;
             io_ptr: png_voidp; write_data_fn: png_rw_ptr;
             output_flush_fn: png_flush_ptr);
             stdcall;
procedure png_set_write_status_fn(png_ptr: png_structp;
             write_row_fn: png_write_status_ptr);
             stdcall;
procedure png_set_write_user_transform_fn(png_ptr: png_structp;
             write_user_transform_fn: png_user_transform_ptr);
             stdcall;
function png_sig_cmp(sig: png_bytep; start, num_to_check: png_size_t):
             int;
             stdcall;
procedure png_start_read_image(png_ptr: png_structp);
             stdcall;
procedure png_write_chunk(png_ptr: png_structp;
             chunk_name, data: png_bytep; length: png_size_t);
             stdcall;
procedure png_write_chunk_data(png_ptr: png_structp;
             data: png_bytep; length: png_size_t);
             stdcall;
procedure png_write_chunk_end(png_ptr: png_structp);
             stdcall;
procedure png_write_chunk_start(png_ptr: png_structp;
             chunk_name: png_bytep; length: png_uint_32);
             stdcall;
procedure png_write_end(png_ptr: png_structp; info_ptr: png_infop);
             stdcall;
procedure png_write_flush(png_ptr: png_structp);
             stdcall;
procedure png_write_image(png_ptr: png_structp; image: png_bytepp);
             stdcall;
procedure png_write_info(png_ptr: png_structp; info_ptr: png_infop);
             stdcall;
procedure png_write_info_before_PLTE(png_ptr: png_structp; info_ptr: png_infop);
             stdcall;
procedure png_write_row(png_ptr: png_structp; row: png_bytep);
             stdcall;
procedure png_write_rows(png_ptr: png_structp; row: png_bytepp;
             num_rows: png_uint_32);
             stdcall;
procedure png_get_iCCP(png_ptr: png_structp; info_ptr: png_infop;
             name: png_charpp; compression_type: int *; profile: png_charpp;
             proflen: png_int_32): png_bytep;
             stdcall;
procedure png_get_sPLT(png_ptr: png_structp;
             info_ptr: png_infop;  entries: png_spalette_pp): png_uint_32;
             stdcall;
procedure png_set_iCCP(png_ptr: png_structp; info_ptr: png_infop;
             name: png_charp; compression_type: int; profile: png_charp;
             proflen: int);
             stdcall;
procedure png_free_data(png_ptr: png_structp; info_ptr: png_infop; num: int);
             stdcall;
procedure png_set_sPLT(png_ptr: png_structp; info_ptr: png_infop;
             entries: png_spalette_p; nentries: int);
             stdcall;

implementation

const
  pngDLL = 'png32bd.dll';

procedure png_build_grayscale_palette; external pngDLL;
function png_check_sig; external pngDLL;
procedure png_chunk_error; external pngDLL;
procedure png_chunk_warning; external pngDLL;
procedure png_convert_from_time_t; external pngDLL;
function png_convert_to_rfc1123; external pngDLL;
function png_create_info_struct; external pngDLL;
function png_create_read_struct; external pngDLL;
function png_create_write_struct; external pngDLL;
procedure png_destroy_info_struct; external pngDLL;
procedure png_destroy_read_struct; external pngDLL;
procedure png_destroy_write_struct; external pngDLL;
function png_get_IHDR; external pngDLL;
function png_get_PLTE; external pngDLL;
function png_get_bKGD; external pngDLL;
function png_get_bit_depth; external pngDLL;
function png_get_cHRM; external pngDLL;
function png_get_channels; external pngDLL;
function png_get_color_type; external pngDLL;
function png_get_compression_type; external pngDLL;
function png_get_error_ptr; external pngDLL;
function png_get_filter_type; external pngDLL;
function png_get_gAMA; external pngDLL;
function png_get_hIST; external pngDLL;
function png_get_image_height; external pngDLL;
function png_get_image_width; external pngDLL;
function png_get_interlace_type; external pngDLL;
function png_get_io_ptr; external pngDLL;
function png_get_oFFs; external pngDLL;
function png_get_pCAL; external pngDLL;
function png_get_pHYs; external pngDLL;
function png_get_pixel_aspect_ratio; external pngDLL;
function png_get_pixels_per_meter; external pngDLL;
function png_get_progressive_ptr; external pngDLL;
function png_get_rowbytes; external pngDLL;
function png_get_rows; external pngDLL;
function png_get_sBIT; external pngDLL;
function png_get_sRGB; external pngDLL;
function png_get_signature; external pngDLL;
function png_get_tIME; external pngDLL;
function png_get_tRNS; external pngDLL;
function png_get_text; external pngDLL;
function png_get_user_chunk_ptr; external pngDLL;
function png_get_valid; external pngDLL;
function png_get_x_offset_microns; external pngDLL;
function png_get_x_offset_pixels; external pngDLL;
function png_get_x_pixels_per_meter; external pngDLL;
function png_get_y_offset_microns; external pngDLL;
function png_get_y_offset_pixels; external pngDLL;
function png_get_y_pixels_per_meter; external pngDLL;
procedure png_process_data; external pngDLL;
procedure png_progressive_combine_row; external pngDLL;
procedure png_read_end; external pngDLL;
procedure png_read_image; external pngDLL;
procedure png_read_info; external pngDLL;
procedure png_read_row; external pngDLL;
procedure png_read_rows; external pngDLL;
procedure png_read_update_info; external pngDLL;
procedure png_set_IHDR; external pngDLL;
procedure png_set_PLTE; external pngDLL;
procedure png_set_bKGD; external pngDLL;
procedure png_set_background; external pngDLL;
procedure png_set_bgr; external pngDLL;
procedure png_set_cHRM; external pngDLL;
procedure png_set_cHRM_fixed; external pngDLL;
procedure png_set_compression_level; external pngDLL;
procedure png_set_compression_mem_level; external pngDLL;
procedure png_set_compression_method; external pngDLL;
procedure png_set_compression_strategy; external pngDLL;
procedure png_set_compression_window_bits; external pngDLL;
procedure png_set_crc_action; external pngDLL;
procedure png_set_dither; external pngDLL;
procedure png_set_error_fn; external pngDLL;
procedure png_set_expand; external pngDLL;
procedure png_set_filler; external pngDLL;
procedure png_set_filter; external pngDLL;
procedure png_set_filter_heuristics; external pngDLL;
procedure png_set_flush; external pngDLL;
procedure png_set_gAMA; external pngDLL;
procedure png_set_gAMA_fixed; external pngDLL;
procedure png_set_gamma; external pngDLL;
procedure png_set_gray_to_rgb; external pngDLL;
procedure png_set_hIST; external pngDLL;
function png_set_interlace_handling; external pngDLL;
procedure png_set_invert_alpha; external pngDLL;
procedure png_set_invert_mono; external pngDLL;
procedure png_set_oFFs; external pngDLL;
procedure png_set_pCAL; external pngDLL;
procedure png_set_pHYs; external pngDLL;
procedure png_set_packing; external pngDLL;
procedure png_set_packswap; external pngDLL;
procedure png_set_progressive_read_fn; external pngDLL;
procedure png_set_read_fn; external pngDLL;
procedure png_set_read_status_fn; external pngDLL;
procedure png_set_read_user_transform_fn; external pngDLL;
procedure png_set_rgb_to_gray; external pngDLL;
procedure png_set_rgb_to_gray_fixed; external pngDLL;
procedure png_set_rows; external pngDLL;
procedure png_set_sBIT; external pngDLL;
procedure png_set_sRGB; external pngDLL;
procedure png_set_sRGB_gAMA_and_cHRM; external pngDLL;
procedure png_set_shift; external pngDLL;
procedure png_set_sig_bytes; external pngDLL;
procedure png_set_strip_16; external pngDLL;
procedure png_set_strip_alpha; external pngDLL;
procedure png_set_swap; external pngDLL;
procedure png_set_swap_alpha; external pngDLL;
procedure png_set_tIME; external pngDLL;
procedure png_set_tRNS; external pngDLL;
procedure png_set_text; external pngDLL;
procedure png_set_user_chunk_fn; external pngDLL;
procedure png_set_write_fn; external pngDLL;
procedure png_set_write_status_fn; external pngDLL;
procedure png_set_write_user_transform_fn; external pngDLL;
function png_sig_cmp; external pngDLL;
procedure png_start_read_image; external pngDLL;
procedure png_write_chunk; external pngDLL;
procedure png_write_chunk_data; external pngDLL;
procedure png_write_chunk_end; external pngDLL;
procedure png_write_chunk_start; external pngDLL;
procedure png_write_end; external pngDLL;
procedure png_write_flush; external pngDLL;
procedure png_write_image; external pngDLL;
procedure png_write_info; external pngDLL;
procedure png_write_info_before_PLTE; external pngDLL;
procedure png_write_row; external pngDLL;
procedure png_write_rows; external pngDLL;
procedure png_get_iCCP; external pngDLL;
procedure png_get_sPLT; external pngDLL;
procedure png_set_iCCP; external pngDLL;
procedure png_set_sPLT; external pngDLL;
procedure png_free_data; external pngDLL;

end.

--- NEW FILE: makefile.atari ---
# makefile for libpng
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
# For conditions of distribution and use, see copyright notice in png.h
# modified for LC56/ATARI assumes libz.lib is in same dir and uses default
# rules for library management
#
CFLAGS=-I..\zlib -O
LBR = png.lib
LDFLAGS=-lpng -lz -lm

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

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

all: $(LBR) pngtest.ttp

$(LBR): $(OBJS)

pngtest.ttp: pngtest.o $(LBR)
	$(CC) $(CFLAGS) $(LDFLAGS) -o$@ pngtest.o

install: libpng.a
	- at mkdir $(prefix)/include
	- at 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

--- NEW FILE: makefile.hpux ---
# makefile for libpng, HPUX (10.20 and 11.00)
# Copyright (C) 1999, 2000 Glenn Randers-Pehrson
# Copyright (C) 1995 Guy Eric Schalnat, Group 42
# contributed by Jim Rice and updated by Chris Schleicher, Hewlett Packard
# For conditions of distribution and use, see copyright notice in png.h

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

CC=cc
CFLAGS=-I$(ZLIBINC) -O -Ae +DA1.1 +DS2.0
# Caution: be sure you have built zlib with the same CFLAGS.
CCFLAGS=-I$(ZLIBINC) -O -Ae +DA1.1 +DS2.0
LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm

RANLIB=ranlib

# read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
# have to change it.
PNGMAJ = 2
PNGMIN = 1.0.12
PNGVER = $(PNGMAJ).$(PNGMIN)

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

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

OBJSDLL = $(OBJS:.o=.pic.o)

.SUFFIXES:	.c .o .pic.o

.c.pic.o:
	$(CC) -c $(CFLAGS) +z -o $@ $*.c

all: libpng.a libpng.sl pngtest

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

libpng.sl: libpng.sl.$(PNGMAJ)
	ln -f -s libpng.sl.$(PNGMAJ) libpng.sl

libpng.sl.$(PNGMAJ): libpng.sl.$(PNGVER)
	ln -f -s libpng.sl.$(PNGVER) libpng.sl.$(PNGMAJ)

libpng.sl.$(PNGVER): $(OBJSDLL)
	$(LD) -b -L$(ZLIBLIB) +s +b $(ZLIBLIB) \
	+h libpng.sl.$(PNGMAJ) -o libpng.sl.$(PNGVER) $(OBJSDLL) -lz

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

test: pngtest
	./pngtest

install: libpng.a
	- at mkdir $(prefix)/include
	- at 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
	cp libpng.a libpng.sl.$(PNGVER) $(prefix)/lib
	chmod 644 $(prefix)/lib/libpng.a
	chmod 755 $(prefix)/lib/libpng.sl.$(PNGVER)
	(cd $(prefix)/lib; ln -f -s libpng.sl.$(PNGVER) libpng.sl.$(PNGMAJ); \
	ln -f -s libpng.sl.$(PNGMAJ) libpng.sl)

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

DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
writelock:
	chmod a-w *.[ch35] $(DOCS) scripts/*

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

png.o: png.h pngconf.h
pngerror.o: png.h pngconf.h
pngrio.o: png.h pngconf.h
pngwio.o: png.h pngconf.h
pngmem.o: png.h pngconf.h
pngset.o: png.h pngconf.h
pngget.o: png.h pngconf.h
pngread.o: png.h pngconf.h
pngrtran.o: png.h pngconf.h
pngrutil.o: png.h pngconf.h
pngtest.o: png.h pngconf.h
pngtrans.o: png.h pngconf.h
pngwrite.o: png.h pngconf.h
pngwtran.o: png.h pngconf.h
pngwutil.o: png.h pngconf.h
pngpread.o: png.h pngconf.h

--- NEW FILE: makefile.os2 ---
# makefile for libpng on OS/2 with gcc
# For conditions of distribution and use, see copyright notice in png.h

# Related files: pngos2.def

CC=gcc -Zomf -s

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

WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
	-Wmissing-declarations -Wtraditional -Wcast-align \
	-Wstrict-prototypes -Wmissing-prototypes #-Wconversion
CFLAGS=-I$(ZLIBINC) -Wall -O6 -funroll-loops -malign-loops=2 \
	-malign-functions=2 #$(WARNMORE) -g -DPNG_DEBUG=5
LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lzdll -Zcrtdll
AR=emxomfar

PNGLIB=png.lib
IMPLIB=emximp
SHAREDLIB=png.dll
SHAREDLIBIMP=pngdll.lib

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

.SUFFIXES:      .c .o

all: $(PNGLIB) $(SHAREDLIB) $(SHAREDLIBIMP)

$(PNGLIB): $(OBJS)
	$(AR) rc $@ $(OBJS)

$(SHAREDLIB): $(OBJS) pngos2.def
	$(CC) $(LDFLAGS) -Zdll -o $@ $^

$(SHAREDLIBIMP): pngos2.def
	$(IMPLIB) -o $@ $^

pngtest.exe: pngtest.o png.dll pngdll.lib
	$(CC) -o $@ $(CFLAGS) $< $(LDFLAGS)

test: pngtest.exe
	./pngtest.exe

clean:
	rm -f *.o $(PNGLIB) png.dll pngdll.lib pngtest.exe pngout.png

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

png.o png.pic.o: png.h pngconf.h
pngerror.o pngerror.pic.o: png.h pngconf.h
pngrio.o pngrio.pic.o: png.h pngconf.h
pngwio.o pngwio.pic.o: png.h pngconf.h
pngmem.o pngmem.pic.o: png.h pngconf.h
pngset.o pngset.pic.o: png.h pngconf.h
pngget.o pngget.pic.o: png.h pngconf.h
pngread.o pngread.pic.o: png.h pngconf.h
pngrtran.o pngrtran.pic.o: png.h pngconf.h
pngrutil.o pngrutil.pic.o: png.h pngconf.h
pngtrans.o pngtrans.pic.o: png.h pngconf.h
pngwrite.o pngwrite.pic.o: png.h pngconf.h
pngwtran.o pngwtran.pic.o: png.h pngconf.h
pngwutil.o pngwutil.pic.o: png.h pngconf.h
pngpread.o pngpread.pic.o: png.h pngconf.h

pngtest.o: png.h pngconf.h

--- NEW FILE: makefile.mips ---
# makefile for libpng
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
# For conditions of distribution and use, see copyright notice in png.h

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

CC=cc
CFLAGS=-I../zlib -O -systype sysv -DSYSV -w -Dmips
#CFLAGS=-O
LDFLAGS=-L. -L../zlib/ -lpng -lz -lm

#RANLIB=ranlib
RANLIB=echo

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

all: libpng.a pngtest

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

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

test: pngtest
	./pngtest

install: libpng.a
	- at mkdir $(prefix)/include
	- at 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
	cp libpng.a $(prefix)/lib
	chmod 644 $(prefix)/lib/libpng.a

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

DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
writelock:
	chmod a-w *.[ch35] $(DOCS) scripts/*

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

png.o: png.h pngconf.h
pngerror.o: png.h pngconf.h
pngrio.o: png.h pngconf.h
pngwio.o: png.h pngconf.h
pngmem.o: png.h pngconf.h
pngset.o: png.h pngconf.h
pngget.o: png.h pngconf.h
pngread.o: png.h pngconf.h
pngpread.o: png.h pngconf.h
pngrtran.o: png.h pngconf.h
pngrutil.o: png.h pngconf.h
pngtest.o: png.h pngconf.h
pngtrans.o: png.h pngconf.h
pngwrite.o: png.h pngconf.h
pngwtran.o: png.h pngconf.h
pngwutil.o: png.h pngconf.h

--- NEW FILE: makefile.aix ---
# makefile for libpng using gcc (generic, static library)
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
# Copyright (C) 2000 Cosmin Truta
# Copyright (C) 2000 Marc O. Gloor (AIX support added, from makefile.gcc)
# For conditions of distribution and use, see copyright notice in png.h

# Location of the zlib library and include files
ZLIBINC = ../zlib
ZLIBLIB = ../zlib

# Compiler, linker, lib and other tools
CC = gcc
LD = $(CC)
AR = ar rcs
RANLIB = ranlib
RM = rm -f

# read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
# have to change it.
PNGMAJ = 2
PNGMIN = 1.0.12
PNGVER = $(PNGMAJ).$(PNGMIN)

prefix=/usr/local
INCPATH=$(prefix)/include
LIBPATH=$(prefix)/lib

CDEBUG = -g -DPNG_DEBUG=5
LDDEBUG =
CRELEASE = -O2
LDRELEASE = -s
CFLAGS = -I$(ZLIBINC) -Wall $(CRELEASE)
LDFLAGS = -L. -L$(ZLIBLIB) -lpng -lz -lm $(LDRELEASE)

# File extensions
O=.o
A=.a
E=

# Variables
OBJS = png$(O) pngerror$(O) pngget$(O) pngmem$(O) pngpread$(O) \
	pngread$(O) pngrio$(O) pngrtran$(O) pngrutil$(O) pngset$(O) \
	pngtrans$(O) pngwio$(O) pngwrite$(O) pngwtran$(O) pngwutil$(O)

# Targets
all: libpng$(A) pngtest$(E)

libpng$(A): $(OBJS)
	$(AR) $@ $(OBJS)
	$(RANLIB) $@

test: pngtest$(E)
	./pngtest$(E)

pngtest$(E): pngtest$(O) libpng$(A)
	$(LD) -o $@ pngtest$(O) $(LDFLAGS)

install: libpng.a
	- at if [ ! -d $(INCPATH)  ]; then mkdir $(INCPATH); fi
	- at if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
	cp png.h pngconf.h $(INCPATH)
	chmod 644 $(INCPATH)/png.h $(INCPATH)/pngconf.h
	cp libpng.a $(LIBPATH)

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

png$(O): png.h pngconf.h
pngerror$(O): png.h pngconf.h
pngget$(O): png.h pngconf.h
pngmem$(O): png.h pngconf.h
pngpread$(O): png.h pngconf.h
pngread$(O): png.h pngconf.h
pngrio$(O): png.h pngconf.h
pngrtran$(O): png.h pngconf.h
pngrutil$(O): png.h pngconf.h
pngset$(O): png.h pngconf.h
pngtest$(O): png.h pngconf.h
pngtrans$(O): png.h pngconf.h
pngwio$(O): png.h pngconf.h
pngwrite$(O): png.h pngconf.h
pngwtran$(O): png.h pngconf.h
pngwutil$(O): png.h pngconf.h


--- NEW FILE: makefile.std ---
# makefile for libpng
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
# For conditions of distribution and use, see copyright notice in png.h

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

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

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

#RANLIB=echo
RANLIB=ranlib

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

all: libpng.a pngtest

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

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

test: pngtest
	./pngtest

install: libpng.a
	- at mkdir $(prefix)/include
	- at 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
	cp libpng.a $(prefix)/lib
	chmod 644 $(prefix)/lib/libpng.a

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

DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
writelock:
	chmod a-w *.[ch35] $(DOCS) scripts/*

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

png.o: png.h pngconf.h
pngerror.o: png.h pngconf.h
pngrio.o: png.h pngconf.h
pngwio.o: png.h pngconf.h
pngmem.o: png.h pngconf.h
pngset.o: png.h pngconf.h
pngget.o: png.h pngconf.h
pngread.o: png.h pngconf.h
pngrtran.o: png.h pngconf.h
pngrutil.o: png.h pngconf.h
pngtest.o: png.h pngconf.h
pngtrans.o: png.h pngconf.h
pngwrite.o: png.h pngconf.h
pngwtran.o: png.h pngconf.h
pngwutil.o: png.h pngconf.h
pngpread.o: png.h pngconf.h


--- NEW FILE: makefile.linux ---
# makefile for libpng on Linux ELF with gcc
# Copyright (C) 1998, 1999 Greg Roelofs
# Copyright (C) 1996, 1997 Andreas Dilger
# For conditions of distribution and use, see copyright notice in png.h

CC=gcc

# where "make install" puts libpng.a, libpng.so*, png.h and pngconf.h
prefix=/usr/local

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

ALIGN=
# for i386:
#ALIGN=-malign-loops=2 -malign-functions=2

WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
	-Wmissing-declarations -Wtraditional -Wcast-align \
	-Wstrict-prototypes -Wmissing-prototypes #-Wconversion

# for pgcc version 2.95.1, -O3 is buggy; don't use it.

CFLAGS=-I$(ZLIBINC) -Wall -O3 -funroll-loops \
	$(ALIGN) # $(WARNMORE) -g -DPNG_DEBUG=5
LDFLAGS=-L. -Wl,-rpath,. -L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) -lpng -lz -lm

RANLIB=ranlib
#RANLIB=echo

# read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
# have to change it.
PNGMAJ = 2
PNGMIN = 1.0.12
PNGVER = $(PNGMAJ).$(PNGMIN)

INCPATH=$(prefix)/include
LIBPATH=$(prefix)/lib

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

OBJSDLL = $(OBJS:.o=.pic.o)

.SUFFIXES:      .c .o .pic.o

.c.pic.o:
	$(CC) -c $(CFLAGS) -fPIC -o $@ $*.c

all: libpng.a libpng.so pngtest

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

libpng.so: libpng.so.$(PNGMAJ)
	ln -sf libpng.so.$(PNGMAJ) libpng.so

libpng.so.$(PNGMAJ): libpng.so.$(PNGVER)
	ln -sf libpng.so.$(PNGVER) libpng.so.$(PNGMAJ)

libpng.so.$(PNGVER): $(OBJSDLL)
	$(CC) -shared -Wl,-soname,libpng.so.$(PNGMAJ) -o libpng.so.$(PNGVER) \
	 $(OBJSDLL) -L$(ZLIBLIB) -lz -lm -lc

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

test: pngtest
	./pngtest

install: libpng.a libpng.so.$(PNGVER)
	- at if [ ! -d $(INCPATH)  ]; then mkdir $(INCPATH); fi
	- at if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
	cp png.h pngconf.h $(INCPATH)
	chmod 644 $(INCPATH)/png.h $(INCPATH)/pngconf.h
	cp libpng.a libpng.so.$(PNGVER) $(LIBPATH)
	chmod 755 $(LIBPATH)/libpng.so.$(PNGVER)
	-@/bin/rm -f $(LIBPATH)/libpng.so.$(PNGMAJ) $(LIBPATH)/libpng.so
	(cd $(LIBPATH); ln -sf libpng.so.$(PNGVER) libpng.so.$(PNGMAJ); \
	 ln -sf libpng.so.$(PNGMAJ) libpng.so)

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

DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
writelock:
	chmod a-w *.[ch35] $(DOCS) scripts/*

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

png.o png.pic.o: png.h pngconf.h
pngerror.o pngerror.pic.o: png.h pngconf.h
pngrio.o pngrio.pic.o: png.h pngconf.h
pngwio.o pngwio.pic.o: png.h pngconf.h
pngmem.o pngmem.pic.o: png.h pngconf.h
pngset.o pngset.pic.o: png.h pngconf.h
pngget.o pngget.pic.o: png.h pngconf.h
pngread.o pngread.pic.o: png.h pngconf.h
pngrtran.o pngrtran.pic.o: png.h pngconf.h
pngrutil.o pngrutil.pic.o: png.h pngconf.h
pngtrans.o pngtrans.pic.o: png.h pngconf.h
pngwrite.o pngwrite.pic.o: png.h pngconf.h
pngwtran.o pngwtran.pic.o: png.h pngconf.h
pngwutil.o pngwutil.pic.o: png.h pngconf.h
pngpread.o pngpread.pic.o: png.h pngconf.h

pngtest.o: png.h pngconf.h

--- NEW FILE: makefile.msc ---
# makefile for libpng
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
# For conditions of distribution and use, see copyright notice in png.h
# Assumes that zlib.lib, zconf.h, and zlib.h have been copied to ..\zlib

# -------- Microsoft C 5.1 and later, does not use assembler code --------
MODEL=L
CFLAGS=-Oait -Gs -nologo -W3 -A$(MODEL) -I..\zlib
#-Ox generates bad code with MSC 5.1
CC=cl
LD=link
LDFLAGS=/e/st:0x1500/noe
O=.obj

#uncomment next to put error messages in a file
ERRFILE= >> pngerrs

# variables
OBJS1 = png$(O) pngset$(O) pngget$(O) pngrutil$(O) pngtrans$(O) pngwutil$(O)
OBJS2 = pngmem$(O) pngpread$(O) pngread$(O) pngerror$(O) pngwrite$(O)
OBJS3 = pngrtran$(O) pngwtran$(O) pngrio$(O) pngwio$(O)

all: libpng.lib

png$(O): png.h pngconf.h
		  $(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngset$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngget$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngread$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngpread$(O): png.h pngconf.h
		  $(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngrtran$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngrutil$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngerror$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngmem$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngrio$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngwio$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngtest$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngtrans$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngwrite$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngwtran$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

pngwutil$(O): png.h pngconf.h
	$(CC) -c $(CFLAGS) $*.c $(ERRFILE)

libpng.lib: $(OBJS1) $(OBJS2) $(OBJS3)
	del libpng.lib
	lib libpng $(OBJS1);
	lib libpng $(OBJS2);
	lib libpng $(OBJS3);

pngtest.exe: pngtest.obj libpng.lib
	$(LD) $(LDFLAGS) pngtest.obj,,,libpng.lib ..\zlib\zlib.lib ;

test: pngtest.exe
	pngtest

# End of makefile for libpng


--- NEW FILE: makefile.dec ---
# makefile for libpng on DEC Alpha Unix
# Copyright (C) 2000 Glenn Randers-Pehrson
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
# For conditions of distribution and use, see copyright notice in png.h

# where make install puts libpng.a and png.h
prefix=/usr/local
INCPATH=$(prefix)/include
LIBPATH=$(prefix)/lib

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

# read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
# have to change it.
PNGMAJ = 2
PNGMIN = 1.0.12
PNGVER = $(PNGMAJ).$(PNGMIN)

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

#RANLIB=echo
RANLIB=ranlib

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

all: libpng.so libpng.a pngtest

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

libpng.so: libpng.so.$(PNGMAJ)
	ln -f -s libpng.so.$(PNGMAJ) libpng.so

libpng.so.$(PNGMAJ): libpng.so.$(PNGVER)
	ln -f -s libpng.so.$(PNGVER) libpng.so.$(PNGMAJ)

libpng.so.$(PNGVER): $(OBJS)
	$(CC) -shared -o $@ $(OBJS) -L$(ZLIBLIB) -lz -lm

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

test: pngtest
	./pngtest

install: libpng.a libpng.so.$(PNGVER)
	- at mkdir $(INCPATH)
	- at mkdir $(LIBPATH)
	cp png.h $(INCPATH)
	cp pngconf.h $(INCPATH)
	chmod 644 $(INCPATH)/png.h
	chmod 644 $(INCPATH)/pngconf.h
	cp libpng.a $(LIBPATH)
	cp libpng.so.$(PNGVER) $(LIBPATH)
	chmod 644 $(LIBPATH)/libpng.a
	chmod 644 $(LIBPATH)/libpng.so.$(PNGVER)
	-@/bin/rm -f $(LIBPATH)/libpng.so.$(PNGMAJ) $(LIBPATH)/libpng.so
	(cd $(LIBPATH); ln -f -s libpng.so.$(PNGVER) libpng.so.$(PNGMAJ); \
	 ln -f -s libpng.so.$(PNGMAJ) libpng.so)

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

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

png.o: png.h pngconf.h
pngerror.o: png.h pngconf.h
pngrio.o: png.h pngconf.h
pngwio.o: png.h pngconf.h
pngmem.o: png.h pngconf.h
pngset.o: png.h pngconf.h
pngget.o: png.h pngconf.h
pngread.o: png.h pngconf.h
pngrtran.o: png.h pngconf.h
pngrutil.o: png.h pngconf.h
pngtest.o: png.h pngconf.h
pngtrans.o: png.h pngconf.h
pngwrite.o: png.h pngconf.h
pngwtran.o: png.h pngconf.h
pngwutil.o: png.h pngconf.h
pngpread.o: png.h pngconf.h


--- NEW FILE: makefile.macosx ---
# makefile for libpng, MACOS X
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
# For conditions of distribution and use, see copyright notice in png.h

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

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

CC=cc
CFLAGS=-I$(ZLIBINC) -O # -g -DPNG_DEBUG=5
LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz

#RANLIB=echo
RANLIB=ranlib

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

all: libpng.a pngtest

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

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

test: pngtest
	./pngtest

install: libpng.a
	- at mkdir $(prefix)/include
	- at 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
	cp libpng.a $(prefix)/lib
	chmod 644 $(prefix)/lib/libpng.a

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

DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
writelock:
	chmod a-w *.[ch35] $(DOCS) scripts/*

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

png.o: png.h pngconf.h
pngerror.o: png.h pngconf.h
pngrio.o: png.h pngconf.h
pngwio.o: png.h pngconf.h
pngmem.o: png.h pngconf.h
pngset.o: png.h pngconf.h
pngget.o: png.h pngconf.h
pngread.o: png.h pngconf.h
pngrtran.o: png.h pngconf.h
pngrutil.o: png.h pngconf.h
pngtest.o: png.h pngconf.h
pngtrans.o: png.h pngconf.h
pngwrite.o: png.h pngconf.h
pngwtran.o: png.h pngconf.h
pngwutil.o: png.h pngconf.h
pngpread.o: png.h pngconf.h


--- NEW FILE: makefile.bd32 ---
# Makefile for png32bd.dll
# -------------------- 32-bit Borland C++ --------------------

# This makefile expects to find zlib.h and zlib32bd.lib in the
# $(ZLIBDIR) directory.

# The object files here are compiled with the "stdcall" calling convention.
# This DLL requires zlib32bd.lib to be compiled in the same way.

# Note that png32bd.dll exports the zlib functions adler32, crc32 and
# the deflate... and inflate... functions. It does not export the
# compress and uncompress functions, nor any of the gz... functions,
# since libpng does not call them.

.AUTODEPEND

ZLIBDIR=..\zlib
ZLIB=zlib32bd.lib
PNGDLL=png32bd.dll
PNGLIB=png32bd.lib

CC=bcc32
CFLAGS= -ps -O2 -N- -k- -d -r- -w-par -w-aus -I$(ZLIBDIR) \
	-DPNG_NO_GLOBAL_ARRAYS #-DPNG_DEBUG=5
#LINK=tlink32
#LINK=ilink32
LINK=bcc32
#LINKFLAGS= -Tpd -aa -c
LINKFLAGS= -WDE
IMPLIB=implib

# Use this if you don't want Borland's fancy exception handling
NOEHLIB=noeh32.lib

.c.obj:
	$(CC) -c $(CFLAGS) $<

.c.exe:
	$(CC) $(CFLAGS) $< $(PNGLIB) $(NOEHLIB)


OBJ1=png.obj pngerror.obj pngget.obj pngmem.obj pngpread.obj
OBJ2=pngread.obj pngrio.obj pngrtran.obj pngrutil.obj pngset.obj
OBJ3=pngtrans.obj pngwio.obj pngwrite.obj pngwtran.obj pngwutil.obj

all: $(PNGDLL)

test: pngtest.exe
	pngtest


$(PNGDLL): $(OBJ1) $(OBJ2) $(OBJ3) $(ZLIBDIR)\$(ZLIB)
	$(LINK) @&&|
$(LINKFLAGS)
-e$(PNGDLL)
$(OBJ1)
$(OBJ2)
$(OBJ3)
$(ZLIBDIR)\$(ZLIB)
$(NOEHLIB)
|
	$(IMPLIB) -c $(@R).lib $@


# Clean up anything else you want
clean:
	-del *.obj
	-del *.dll
	-del *.exe
	-del *.lib
	-del *.lst
	-del *.map
	-del *.tds


# End of makefile for png32bd.dll

--- NEW FILE: makefile.bor ---
# Makefile for libpng
# 16-bit Borland C++ (Note: All modules are compiled in C mode)
# To build the library, do:
#       "make -fmakefile.bor -DMODEL=c"
# or:   "make -fmakefile.bor -DMODEL=l"
#
# ------------ Borland C++ ------------

### Absolutely necessary for this makefile to work
.AUTODEPEND

## Where zlib.h, zconf.h and zlib_MODEL.lib are
ZLIB_DIR=..\zlib


## Compiler, linker and lib stuff
CC=bcc
LD=bcc
LIB=tlib

!ifndef MODEL
MODEL=l
!endif

MODEL_ARG=-m$(MODEL)

#TARGET_CPU=3
# 2 = 286, 3 = 386, etc.
!ifndef TARGET_CPU
TARGET_CPU=2
!endif

# Use this if you don't want Borland's fancy exception handling
# (for Borland C++ 4.0 or later)
#NOEHLIB=noeh$(MODEL).lib

!ifdef DEBUG
CDEBUG=-v
LDEBUG=-v
!else
CDEBUG=
LDEBUG=
!endif

# STACKOFLOW=1
!ifdef STACKOFLOW
CDEBUG=$(CDEBUG) -N
LDEBUG=$(LDEBUG) -N
!endif

# -X- turn on dependency generation in the object file
# -w  set all warnings on
# -O2 optimize for speed
# -Z  global optimization
CFLAGS=-O2 -Z -X- -w -I$(ZLIB_DIR) -$(TARGET_CPU) $(MODEL_ARG) $(CDEBUG)

# -M  generate map file
LDFLAGS=-M -L$(ZLIB_DIR) $(MODEL_ARG) $(LDEBUG)


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

LIBOBJS = \
	+png.obj \
	+pngerror.obj \
	+pngget.obj \
	+pngmem.obj \
	+pngpread.obj \
	+pngread.obj \
	+pngrio.obj \
	+pngrtran.obj \
	+pngrutil.obj \
	+pngset.obj \
	+pngtrans.obj \
	+pngwio.obj \
	+pngwrite.obj \
	+pngwtran.obj \
	+pngwutil.obj

LIBNAME=libpng$(MODEL).lib


## Implicit rules
# Braces let make "batch" calls to the compiler,
# 2 calls instead of 12; space is important.
.c.obj:
	$(CC) $(CFLAGS) -c {$*.c }

.c.exe:
	$(CC) $(CFLAGS) $(LDFLAGS) $*.c $(LIBNAME) zlib_$(MODEL).lib $(NOEHLIB)


## Major targets
all: libpng pngtest

libpng: $(LIBNAME)

pngtest: pngtest$(MODEL).exe

test: pngtest$(MODEL).exe
	pngtest$(MODEL)


## Minor Targets

png.obj: png.c
pngerror.obj: pngerror.c
pngget.obj: pngget.c
pngmem.obj: pngmem.c
pngpread.obj: pngpread.c
pngread.obj: pngread.c
pngrio.obj: pngrio.c
pngrtran.obj: pngrtran.c
pngrutil.obj: pngrutil.c
pngset.obj: pngset.c
pngtrans.obj: pngtrans.c
pngwio.obj: pngwio.c
pngwrite.obj: pngwrite.c
pngwtran.obj: pngwtran.c
pngwutil.obj: pngwutil.c


$(LIBNAME): $(OBJS)
	-del $(LIBNAME)
	$(LIB) $(LIBNAME) @&&|
$(LIBOBJS), libpng$(MODEL)
|


pngtest$(MODEL).obj: pngtest.c
	$(CC) $(CFLAGS) -opngtest$(MODEL) -c pngtest.c

pngtest$(MODEL).exe: pngtest$(MODEL).obj
	$(LD) $(LDFLAGS) pngtest$(MODEL).obj $(LIBNAME) zlib_$(MODEL).lib $(NOEHLIB)


# Clean up anything else you want
clean:
	-del *.obj
	-del *.exe
	-del *.lib
	-del *.lst
	-del *.map


# End of makefile for libpng

--- NEW FILE: makefile.intel ---
# Makefile for libpng
# Microsoft Visual C++ with Intel C/C++ Compiler 4.0 and later

# Copyright (C) 2000, Pawel Mrochen, based on makefile.msc which is
# copyright 1995 Guy Eric Schalnat, Group 42, Inc.
# For conditions of distribution and use, see copyright notice in png.h

# To use, do "nmake /f scripts\makefile.intel"


# ------------------- Intel C/C++ Compiler 4.0 and later -------------------

# Caution: the assembler code was introduced at libpng version 1.0.4 and has
# not yet been thoroughly tested.

# Use assembler code
ASMCODE=-DPNG_USE_PNGVCRD

# Where the zlib library and include files are located
ZLIBLIB=..\zlib
ZLIBINC=..\zlib

# Target CPU
CPU=6		# Pentium II
#CPU=5		# Pentium

# Calling convention
CALLING=r	# __fastcall
#CALLING=z	# __stdcall
#CALLING=d	# __cdecl

# Uncomment next to put error messages in a file
#ERRFILE=>>pngerrs

# --------------------------------------------------------------------------


CC=icl -c
CFLAGS=-O2 -G$(CPU)$(CALLING) -Qip -Qunroll4 -I$(ZLIBINC) $(ASMCODE) -nologo
LD=link
LDFLAGS=/SUBSYSTEM:CONSOLE /NOLOGO

O=.obj

OBJS=png$(O) pngset$(O) pngget$(O) pngrutil$(O) pngtrans$(O) pngwutil$(O) \
pngmem$(O) pngpread$(O) pngread$(O) pngerror$(O) pngwrite$(O) \
pngrtran$(O) pngwtran$(O) pngrio$(O) pngwio$(O) pngvcrd$(O)


all: test

png$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngset$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngget$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngread$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngpread$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngrtran$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngrutil$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngvcrd$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngerror$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngmem$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngrio$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngwio$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngtest$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngtrans$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngwrite$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngwtran$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

pngwutil$(O): png.h pngconf.h
	$(CC) $(CFLAGS) $*.c $(ERRFILE)

libpng.lib: $(OBJS)
	if exist libpng.lib del libpng.lib
	lib /NOLOGO /OUT:libpng.lib $(OBJS)

pngtest.exe: pngtest.obj libpng.lib
	$(LD) $(LDFLAGS) /OUT:pngtest.exe pngtest.obj libpng.lib $(ZLIBLIB)\zlib.lib

test: pngtest.exe
	pngtest.exe


# End of makefile for libpng

--- NEW FILE: makefile.acorn ---
# Project:   libpng


# Toolflags:
CCflags = -c -depend !Depend -IC:,Zlib: -g -throwback  -DRISCOS  -fnah
C++flags = -c -depend !Depend -IC: -throwback
Linkflags = -aif -c++ -o $@
ObjAsmflags = -throwback -NoCache -depend !Depend
CMHGflags = 
LibFileflags = -c -l -o $@
Squeezeflags = -o $@


# Final targets:
@.libpng-lib:   @.o.png @.o.pngerror @.o.pngrio @.o.pngwio @.o.pngmem \
	@.o.pngpread @.o.pngset @.o.pngget @.o.pngread @.o.pngrtran \
	@.o.pngrutil @.o.pngtrans @.o.pngwrite @.o.pngwtran @.o.pngwutil
	LibFile $(LibFileflags) @.o.png @.o.pngerror @.o.pngrio @.o.pngrtran \
	@.o.pngmem @.o.pngpread @.o.pngset @.o.pngget @.o.pngread @.o.pngwio \
	@.o.pngrutil @.o.pngtrans  @.o.pngwrite @.o.pngwtran @.o.pngwutil
@.mm-libpng-lib:   @.mm.png @.mm.pngerror @.mm.pngrio @.mm.pngwio @.mm.pngmem \
	@.mm.pngpread @.mm.pngset @.mm.pngget @.mm.pngread @.mm.pngrtran \
	@.mm.pngrutil @.mm.pngtrans @.mm.pngwrite @.mm.pngwtran @.mm.pngwutil
	LibFile $(LibFileflags) @.mm.png @.mm.pngerror @.mm.pngrio \
	@.mm.pngwio @.mm.pngmem @.mm.pngpread @.mm.pngset @.mm.pngget \
	@.mm.pngread @.mm.pngrtran @.mm.pngrutil @.mm.pngtrans @.mm.pngwrite \
	@.mm.pngwtran @.mm.pngwutil


# User-editable dependencies:
# (C) Copyright 1997 Tom Tanner
Test: @.pngtest
	<Prefix$Dir>.pngtest
	@remove <Prefix$Dir>.pngtest

#It would be nice if you could stop "make" listing from here on!
@.pngtest:   @.o.pngtest @.libpng-lib C:o.Stubs Zlib:zlib_lib
	Link $(Linkflags) @.o.pngtest @.libpng-lib C:o.Stubs Zlib:zlib_lib

.SUFFIXES: .o .mm .c

.c.mm:
	MemCheck.CC cc $(ccflags) -o $@ LibPng:$<
.c.o:
	cc $(ccflags) -o $@ $<


# Static dependencies:


# Dynamic dependencies:

--- NEW FILE: libpng.icc ---
// Project file for libpng (static)
// IBM VisualAge/C++ version 4.0 or later
// Copyright (C) 2000 Cosmin Truta
// For conditions of distribution and use, see copyright notice in png.h
// Notes:
//   All modules are compiled in C mode
//   Tested with IBM VAC++ 4.0 under Win32
//   Expected to work with IBM VAC++ 4.0 or later under OS/2 and Win32
//   Can be easily adapted for IBM VAC++ 4.0 or later under AIX
// For conditions of distribution and use, see copyright notice in png.h

option incl(searchpath, "../zlib"), opt(level, "2"),
 link(libsearchpath, "../zlib")
{
   target type(lib) "libpng.lib"
   {
      source type(c) "png.c"
      source type(c) "pngerror.c"
      source type(c) "pngget.c"
      source type(c) "pngmem.c"
      source type(c) "pngpread.c"
      source type(c) "pngread.c"
      source type(c) "pngrio.c"
      source type(c) "pngrtran.c"
      source type(c) "pngrutil.c"
      source type(c) "pngset.c"
      source type(c) "pngtrans.c"
      source type(c) "pngwio.c"
      source type(c) "pngwrite.c"
      source type(c) "pngwtran.c"
      source type(c) "pngwutil.c"
   }
}

option incl(searchpath, "../zlib"), opt(level, "2"),
 link(libsearchpath, "../zlib")
{
   target type(exe) "pngtest.exe"
   {
      source type(c) "pngtest.c"
      source type(lib) "libpng.lib"
      source type(lib) "zlib.lib"
   }
}

--- NEW FILE: makefile.beos ---
# makefile for libpng on BeOS x86 ELF with gcc
# modified from makefile.linux by Sander Stoks
# Copyright (C) 1999 Greg Roelofs
# Copyright (C) 1996, 1997 Andreas Dilger
# For conditions of distribution and use, see copyright notice in png.h

CC=gcc

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

# read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
# have to change it.
PNGMAJ = 2
PNGMIN = 1.0.12
PNGVER = $(PNGMAJ).$(PNGMIN)

ALIGN=
# For i386:
# ALIGN=-malign-loops=2 -malign-functions=2

WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
	-Wmissing-declarations -Wtraditional -Wcast-align \
	-Wstrict-prototypes -Wmissing-prototypes #-Wconversion

# On BeOS, -O1 is actually better than -O3.  This is a known bug but it's
# still here in R4.5
CFLAGS=-I$(ZLIBINC) -Wall -O1 -funroll-loops \
	$(ALIGN) # $(WARNMORE) -g -DPNG_DEBUG=5
# LDFLAGS=-L. -Wl,-rpath,. -L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) -lpng -lz -lm
LDFLAGS=-L. -Wl,-soname=libpng.so.$(PNGMAJ) -L$(ZLIBLIB) -lz -lm

RANLIB=ranlib
#RANLIB=echo

# where make install puts libpng.a, libpng.so*, and png.h
prefix=/usr/local
INCPATH=$(prefix)/include
LIBPATH=$(prefix)/lib

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

OBJSDLL = $(OBJS)

.SUFFIXES:      .c .o

all: libpng.a libpng.so pngtest

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

libpng.so: libpng.so.$(PNGMAJ)
	ln -sf libpng.so.$(PNGMAJ) libpng.so
	cp libpng.so* /boot/home/config/lib

libpng.so.$(PNGMAJ): libpng.so.$(PNGVER)
	ln -sf libpng.so.$(PNGVER) libpng.so.$(PNGMAJ)

libpng.so.$(PNGVER): $(OBJSDLL)
	$(CC) -L$(ZLIBLIB) -lz -nostart -Wl,-soname,libpng.so.$(PNGMAJ) -o
libpng.so.$(PNGVER) \
	 $(OBJSDLL)

pngtest: pngtest.o libpng.so
	$(CC) -L$(ZLIBLIB) -lz -lpng -o pngtest pngtest.o

test: pngtest
	./pngtest

install: libpng.a libpng.so.$(PNGVER)
	- at mkdir $(INCPATH) $(LIBPATH)
	cp png.h pngconf.h $(INCPATH)
	chmod 644 $(INCPATH)/png.h $(INCPATH)/pngconf.h
	cp libpng.a libpng.so.$(PNGVER) $(LIBPATH)
	chmod 755 $(LIBPATH)/libpng.so.$(PNGVER)
	-@/bin/rm -f $(LIBPATH)/libpng.so.$(PNGMAJ) $(LIBPATH)/libpng.so
	(cd $(LIBPATH); ln -sf libpng.so.$(PNGVER) libpng.so.$(PNGMAJ); \
	 ln -sf libpng.so.$(PNGMAJ) libpng.so)

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

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

png.o png.pic.o: png.h pngconf.h
pngerror.o pngerror.pic.o: png.h pngconf.h
pngrio.o pngrio.pic.o: png.h pngconf.h
pngwio.o pngwio.pic.o: png.h pngconf.h
pngmem.o pngmem.pic.o: png.h pngconf.h
pngset.o pngset.pic.o: png.h pngconf.h
pngget.o pngget.pic.o: png.h pngconf.h
pngread.o pngread.pic.o: png.h pngconf.h
pngrtran.o pngrtran.pic.o: png.h pngconf.h
pngrutil.o pngrutil.pic.o: png.h pngconf.h
pngtrans.o pngtrans.pic.o: png.h pngconf.h
pngwrite.o pngwrite.pic.o: png.h pngconf.h
pngwtran.o pngwtran.pic.o: png.h pngconf.h
pngwutil.o pngwutil.pic.o: png.h pngconf.h
pngpread.o pngpread.pic.o: png.h pngconf.h
pngtest.o: png.h pngconf.h

--- NEW FILE: smakefile.ppc ---
# Amiga powerUP (TM) Makefile
# makefile for libpng and SAS C V6.58/7.00 PPC compiler
# Copyright (C) 1998 by Andreas R. Kleinert
# For conditions of distribution and use, see copyright notice in png.h

CC       = scppc
CFLAGS   = NOSTKCHK NOSINT OPTIMIZE OPTGO OPTPEEP OPTINLOCAL OPTINL IDIR /zlib \
           OPTLOOP OPTRDEP=8 OPTDEP=8 OPTCOMP=8
LIBNAME  = libpng.a
AR       = ppc-amigaos-ar
AR_FLAGS = cr
RANLIB   = ppc-amigaos-ranlib
LDFLAGS  = -r -o
LDLIBS   =  ../zlib/libzip.a LIB:scppc.a
LN       = ppc-amigaos-ld
RM       = delete quiet
MKDIR    = makedir

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

all: $(LIBNAME) pngtest

$(LIBNAME): $(OBJS)
            $(AR) $(AR_FLAGS) $@ $(OBJS)
            $(RANLIB) $@

pngtest: pngtest.o $(LIBNAME)
        $(LN) $(LDFLAGS) pngtest LIB:c_ppc.o pngtest.o $(LIBNAME) $(LDLIBS) \
LIB:end.o




More information about the dslinux-commit mailing list