From the libpng-1.2.19rc2 directory:
./configure --with-libpng-compat=no --disable-shared
make
It will print some stuff about only building a static library because "linker path does not have a real file for library -z". That is OK since it is in /usr/local where gcc knows to look.
Remove a duplicate line in the def file:
sed '222 d' scripts/pngw32.def >in.def
dlltool -D libpng13.dll -d in.def -l libpng.dll.a
ranlib libpng.dll.a
gcc -shared -s -mwindows -def in.def -o libpng13.dll .libs/libpng.a -lz
Only install the headers and import library, otherwise SDL_image will statically link to png.
cp png.h /usr/local/includep>
cp pngconf.h /usr/local/include
cp libpng.dll.a /usr/local/lib
cp libpng13.dll /usr/local/bin