nano 2.5.3をAndroid Terminal Emulatorで日本語が使えるようにビルドした。

Linux環境でのテキストエディタはメインにnanoを使っている。jedも併用してるけど、nanoの方が気楽ではある。

Androidのターミナルでもnanoを使っているのだけど、通常だと日本語で文字化けしてしまう。日本語を開く機会はあまりないのだけども、文字化けしないに越したことはないので、nano 2.5.3をutf-8に対応させるべく、ソースからビルドしてみることに。予めapt-getでgcc-arm-linux-androideabiを入れておく。

 

まずはncursesが必要なので、ncursesをビルドすることにする。
ビルドするにあたっては下記サイトを参考にした。
Compiling GNU Nano for Android at Compdigitec Labs

その後fty_num.cのソースを一部変更。
この時点ではnanoのconfigureを通すのが目的なのでこれ以上の変更はしない。
そしてmake && make install。ncurseswのライブラリが作成された。

次はnanoのビルドにとりかかる。

configureを実行したところ通らないので修正して強引に通す。

android用のライブラリは一部実装されていないのものがある。例えばmblen、mbtowc、wctomb、getpwentはそもそもの実体がないのでリンクの時にエラーが出る。UTF-8の実装はmuslを使うことにする。

ncursesをロケール決め打ちの実装にする。そしてマルチバイト周りをmuslの実装を呼び出すようにして再度ビルド。

次にnano側でmuslのUTF-8の実装をする。getpwentはgetenv(“HOME”)で代用。globはinclude用に使われているので、ひとまず2.2.6相当で読めればなんとかなるからglobを実装から外す。ttynameもちゃんとした実装されていないから、呼び出さなくて良いように変更。

HTML Generating Time : 0.046 s