こないだ zlib はオフィシャルから配布されてた DLL を使いましたが、新バージョン公開後すぐにバイナリーが上がるわけではないみたい。なので自分で make してみた。
win32/DLL_FAQ.txt によればオフィシャルの DLL を使うよう推奨しているのにね…。
## Cygwin で $ cd ~/src $ wget http://zlib.net/zlib-1.2.5.tar.bz2 $ tar xjf zlib-1.2.5.tar.bz2 ## MinGW で $ cd zlib-1.2.5 $ cp contrib/asm686/match.S ./match.S $ make LOC=-DASMV OBJA=match.o -fwin32/Makefile.gcc gcc -DASMV -O3 -Wall -DNO_VIZ -c -o adler32.o adler32.c gcc -DASMV -O3 -Wall -DNO_VIZ -c -o compress.o compress.c gcc -DASMV -O3 -Wall -DNO_VIZ -c -o crc32.o crc32.c gcc -DASMV -O3 -Wall -DNO_VIZ -c -o deflate.o deflate.c gcc -DASMV -O3 -Wall -DNO_VIZ -c -o gzclose.o gzclose.c gcc -DASMV -O3 -Wall -DNO_VIZ -c -o gzlib.o gzlib.c gcc -DASMV -O3 -Wall -DNO_VIZ -c -o gzread.o gzread.c gcc -DASMV -O3 -Wall -DNO_VIZ -c -o gzwrite.o gzwrite.c gcc -DASMV -O3 -Wall -DNO_VIZ -c -o infback.o infback.c gcc -DASMV -O3 -Wall -DNO_VIZ -c -o inffast.o inffast.c gcc -DASMV -O3 -Wall -DNO_VIZ -c -o inflate.o inflate.c gcc -DASMV -O3 -Wall -DNO_VIZ -c -o inftrees.o inftrees.c gcc -DASMV -O3 -Wall -DNO_VIZ -c -o trees.o trees.c gcc -DASMV -O3 -Wall -DNO_VIZ -c -o uncompr.o uncompr.c gcc -DASMV -O3 -Wall -DNO_VIZ -c -o zutil.o zutil.c gcc -DASMV -Wall -c -o match.o match.S ar rcs libz.a adler32.o compress.o crc32.o deflate.o gzclose.o gzlib.o gzread.o gzwrite.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o match.o windres --define GCC_WINDRES -o zlibrc.o win32/zlib1.rc gcc -shared -Wl,--out-implib,libzdll.a -DASMV \ -o zlib1.dll win32/zlib.def adler32.o compress.o crc32.o deflate.o gzclose.o gzlib.o gzread.o gzwrite.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o match.o zlibrc.o Creating library file: libzdll.a strip zlib1.dll gcc -DASMV -O3 -Wall -DNO_VIZ -c -o example.o example.c gcc -DASMV -o example.exe example.o libz.a strip example.exe gcc -DASMV -O3 -Wall -DNO_VIZ -c -o minigzip.o minigzip.c gcc -DASMV -o minigzip.exe minigzip.o libz.a strip minigzip.exe gcc -DASMV -o example_d.exe example.o libzdll.a strip example_d.exe gcc -DASMV -o minigzip_d.exe minigzip.o libzdll.a strip minigzip_d.exe $ make test testdll -fwin32/Makefile.gcc ./example zlib version 1.2.5 = 0x1250, compile flags = 0x255 uncompress(): hello, hello! gzread(): hello, hello! gzgets() after gzseek: hello! inflate(): hello, hello! large_inflate(): OK after inflateSync(): hello, hello! inflate with dictionary: hello, hello! echo hello world | ./minigzip | ./minigzip -d hello world ./example_d zlib version 1.2.5 = 0x1250, compile flags = 0x255 uncompress(): hello, hello! gzread(): hello, hello! gzgets() after gzseek: hello! inflate(): hello, hello! large_inflate(): OK after inflateSync(): hello, hello! inflate with dictionary: hello, hello! echo hello world | ./minigzip_d | ./minigzip_d -d hello world ## Cygwin で $ tar cvzf zlib-1.2.5-win32-x86-unofficial-uch.tar.gz \ > ./zlib-1.2.5/*.{exe,dll} ./zlib-1.2.5/example.exe ./zlib-1.2.5/example_d.exe ./zlib-1.2.5/minigzip.exe ./zlib-1.2.5/minigzip_d.exe ./zlib-1.2.5/zlib1.dll
いちおう置いてみます。オフィシャルの DLL が出たのに気づいたら消します。ダウンロード前に http://www.zlib.net/ をチェックしてみてください。
http://w4.hoso.net/fileszlib-1.2.5-win32-x86-unofficial-uch.tar.gz
追記@Wed Aug 18 17:03:52 2010
オフィシャルの DLL がでています。