This project builds a static library version of libpng on x86 BeOS.

It defines PNG_USE_PNGGCCRD, which activates the assembly code in
pnggccrd.c; this hasn't been extensively tested on BeOS.

To install:

1) build

   Note: As of version 1.0.10, you'll get a fair number of warnings when
         you compile pnggccrd.c.  As far as I know, these are harmless,
         but it would be better if someone fixed them.

2) copy and png.h, pngconf.h somewhere; /boot/home/config/include (which
   you'll have to make) is a good choice

3) copy libpng.a to /boot/home/config/lib

4) build your libpng.a applications (remember to include libz.a as
   well when you link)

- Chris Herborth, March 27, 2001
