
distccを使ってpkgsrcをクロスコンパイルする方法。
NetBSDはkernelのクロスコンパイルは容易だけど、pkgsrcはクロスコンパイルできないんだよな。
distccでの分散コンパイルを試してみた。
- コンパイルを行うマシンで、distccdを動作させる
- コンパイルの指示を行うマシン(=ソースが置いてあるマシン)で、ccの代わりにdistccを使う
とすれば良い。自分のマシンでもコンパイルするなら、自分のマシンでもdistccdを動作させておく事。
distccdの起動には、
# pkg_add distcc
# cp /usr/pkg/etc/rc.d/distccd /etc/rc.d/distccd
# chmod 0755 /etc/rc.d/distccd
とし、rc.confに以下を追加する。
distccd=YES
distccd_flags="--allow 192.168.0.0/16 --listen 192.168.0.2"
allowは、どのIPからの要求を受け付けるかを指定する。listenは自IPアドレスを指示する。
listenでIPv4のアドレスを指定しないと、自動でIPv6での接続待ちになってしまうので注意。
コンパイル指示を行うマシンでは、ccの代わりにdistccを使えば良い。
ただし、distccを並列に呼び出す人(makeやSCons)がいないと意味が無い。
というわけで、
% export DISTCC_HOSTS="host1 host2"
% CC=distcc ./configure
% make -j 4
のようにすれば良い。
<http://distcc.samba.org/>
<http://www-6.ibm.com/jp/developerworks/linux/040716/j_l-distcc.html>
<http://www.smalltown.ne.jp/~usata/memo/distcc.shtml>