長らく放置していた、Plagger の Mac OS X 10.4 むけバイナリパッケージ を更新することにした。
放置していたのは更新が面倒だからで、そこを直さないことには、今回がんばってもまたしばらく放置してしまうだろうから、いっそ全てを自動化してみた。
で、これを書いてから、2006年12月以来 Plagger が CPAN にリリースされていないことに気づく。更新必要ない……。
Universal Binary
前は ~/.cpan/build のなかで手動で make なんて書いていたけど、~/.cpan/CPAN/MyConfig.pm を適切に設定すれば、そんなことはしなくていい。
$CPAN::Config = {
...
'make_arg' => q[CC=ub-cc LD=ub-cc],
'makepl_arg' => q[PREFIX=~/CPAN INSTALLDIRS=site CC=ub-cc LD=ub-cc],
...
}
ub-cc は PATH の通ったところに置いたシェルスクリプトで
MACOSX_DEPLOYMENT_TARGET=10.3 gcc -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk $*
こんな内容。Universal Binary のためのオプションをつけて gcc を呼んでいる。
CPAN shell
CPAN shell は stdin が端末でなければ、デフォルトの設定ですべてを進めてくれるらしい。
cat <<EOF | perl -MCPAN -e shell
install YAML
EOF
デフォルトの設定ではだめな場合にも、o conf で make_arg と makepl_arg を変更しておけば、大抵なんとかなる。
cpan_dir=$HOME/CPAN
makepl_arg="PREFIX=$cpan_dir INSTALLDIRS=site CC=ub-cc LD=ub-cc"
...
cat <<EOF | perl -MCPAN -e shell
o conf makepl_arg 'TT_ACCEPT=y TT_XS_ENABLE=y TT_XS_DEFAULT=y TT_EXTRAS=n $makepl_arg'
install Template::Stash::XS
EOF
プラグイン
各プラグインが依存する CPAN モジュールについては Plagger-(VERSION)/deps/*.yaml を読んで、platform == MSWin32 なものをはじいてから、depends を見ればよい。
Mac::Carbon
サウンドのテストで奇声が流れるので、非常に心臓に悪い。
