Mac向け文字化けしないunzipコンパイル
Mac 10.8.2でhomebrew0.94でやってるlibiconvが必要らしいがなんかbrewで入れようとするとMacで元から入ってるからそれ使えっていわれる。しかし、それでは上手くいかないような事がWeb記事見てたら載ってるので、自前でコンパイルする。
参考サイト unzip ver6.0ソースコード+日本語化パッチでzipファイル解凍時の文字化けに対処。 -パソコン関連の覚え書き
libiconvのインストール
$wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
$tar zxvf libiconv-1.14.tar.gz
$cd libiconv-1.14
$./configure --prefix=/usr/local/Cellar/libiconv/1.14
$make
$make install
$brew link libiconv
unzipのインストール
パッチの取得
- https://bugs.archlinux.org/task/15256からunzip60-alt-iconv-utf8.patchをダウンロード
- http://sourceforge.net/projects/infozip/files/からunzip60.tar.gzをダウンロード
上2つのファイルをコンパイルする作業ディレクトリに置く。コマンドラインからそのディレクトリに移動
$tar zxvf unzip60.tar.gz
$ cd unzip60
$patch -p1 < ../unzip60-alt-iconv-utf8.patch
Makeファイルの修正
$vi unix/Makefile
diff表示なので、-行を+行に書き換え
--- unix/Makefile2009-01-19 07:41:18.000000000 +0900
+++ /Users/flogedge/Builds/unzip/unzip60/unix/Makefile2013-02-16 18:57:50.000000000 +0900
@@ -50,7 +50,7 @@
CFLAGS = -O
CF_NOOPT = -I. -I$(IZ_BZIP2) -DUNIX $(LOC)
CF = $(CFLAGS) $(CF_NOOPT)
-LFLAGS1 =
+LFLAGS1 = -L/usr/local/lib -liconv
LF = -o unzip$E $(LFLAGS1)
LF2 = -s
@@ -121,7 +121,7 @@
INSTALL_D = mkdir -p
# on some systems, manext=l and MANDIR=/usr/man/man$(manext) may be appropriate
manext = 1
-prefix = /usr/local
+prefix = /usr/local/Cellar/unzip/6.0
BINDIR = $(prefix)/bin#where to install executables
MANDIR = $(prefix)/man/man$(manext)#where to install man pages
INSTALLEDBIN = $(BINDIR)/funzip$E $(BINDIR)/unzip$E $(BINDIR)/unzipsfx$E \
@@ -872,7 +872,7 @@
# Macintosh MacOS X (Unix-compatible enviroment), using standard compiler
macosx:unix_make
-$(MAKE) unzips CFLAGS="-O3 -Wall -DBSD" LF2=""
+$(MAKE) unzips CFLAGS="-O3 -Wall -DBSD -I/usr/local/include" LF2=""
$(STRIP) $(UNZIPS)
# Macintosh MacOS X (Unix-compatible enviroment), using gcc
コンパイル
$make macosx -f unix/Makefile
$make install
$brew link unzip
使い方
$unzip -O cp932 filename -d 展開ディレクトリ