LS-GL向けにscreenをコンパイル

シリアルを付けてちょっとカスタマイズを加えたLS-GL上で、perlで書いたデーモンを常駐させています。
BUFFALO LS-400GL ギガビット LAN接続HDD LinkStation

が、このデーモンが、たまに落ちているようなので、エラーメッセージなどがコンソールに出ていないか記録するためにscreenをLS-GLに導入します。
やり方は以下の通り。
環境構築やパス設定の仕方は、id:NeoCat:20070819とかid:NeoCat:20070910の通り。

export PATH=/usr/local/arm/bin:/usr/local/arm/arm-none-linux-gnueabi/usr/local/bin:$PATH
export CC=arm-none-linux-gnueabi-gcc
export CXX=arm-none-linux-gnueabi-g++
export F77=none
export LD=arm-none-linux-gnueabi-ld
export AS=arm-none-linux-gnueabi-as
export AR=arm-none-linux-gnueabi-ar
export NM=arm-none-linux-gnueabi-nm
export RANLIB=arm-none-linux-gnueabi-ranlib
export STRIP=arm-none-linux-gnueabi-strip

screen-4.0.3をダウンロード。このバージョンはバグも報告されているようですが、テスト用なのでまあ良いでしょう。

ロスコンパイルしようとすると、その環境でないとテストプログラムが動かない!というエラーになるので、

echo "$as_me: error: cannot run test program while cross compiling
See \`config.log' for more details." >&2;}
   { (exit 1); exit 1; }; }

を全て

echo "$as_me: error: cannot run test program while cross compiling
See \`config.log' for more details." >&2;}
#   { (exit 1); exit 1; }; 
}

に置き換えてしまいます。そして、代わりに

if test -n "$fifo"; then
  if test -n "$sock"; then
    if test -n "$nore"; then
      echo "- hmmm... better take the fifos" 1>&6

の前に、

fifo=1
sock=1

と、テスト結果を埋め込んでおく。

あとはいつも通り、

% ./configure --build=powerpc-apple-darwin8.10.0 --host=arm-none-linux-gnueabi --target=arm-none-linux-gnueabi
% make
% sudo  make install DESTDIR=~/Desktop/packages
% sudo mkdir ../packages/usr/etc
% sudo cp etc/etcscreenrc ../packages/usr/etc/screenrc

% cd ../packages/
% sudo chown -R root:wheel usr
% tar czf screen-4.0.3-arm-none-linux-gnueabi.tar.gz usr

でパッケージの出来上がりです。

tarで -C / 付きでインストールすればOK。/usr/bin に入っちゃいますけど。/usr/local にすべきだったかもしれません。

backspaceがきかないことがあるようです。bashなら

bind '"^[[[3~":backward-delete-char

と、zshの場合、

bindkey '^[[3~' backward-delete-char

を.bashrcや.zshrcなどに書いておけばOKだと思います。