2006年8月15日の日記の4番目の記事へのコメント
■x86_64 vs Emcws-21.3
x86_64環境ですが,Emcwsは実はちゃんとビルドできてなかったことが判明.終了時に「wnn-server-isconnect」なんてありませんとか言われて刺さったりします.なんでかと調べてみると,そもそもemcwsがcanna・wnn非対応でビルドされている模様.でもconfig.logを見ると検出されてるように見えるんだよなぁ.
とりあえずsrc/config.hがおかしいよぅ.src/config.h は src/config.in から作られるんですが config.statusを実行してもsrc/config.inの「#undef LIBS_MULE」が「#define LIBS_MULE -lwnn -lcrypt -lcanna」に置き換わらないのが謎です.そこで,config.statusの中でやってるsedの置換を追いかけてみた所,置換対象について
/^[ ]*#[ ]*undef[ ][ ]*[_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ][_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]*[ ]*$/b def
なんて条件がありました.emcwsのパッチ当てた状態だと,src/config.inには
#undef LIBS_MULE /* special library for Mule */
みたいな感じに後ろにコメントが書かれてて反応しなかったわけですな.というわけで,普通に以下のようにしてやった所・・・
/* special library for Mule */ #undef LIBS_MULE
あれ,まだだめじゃん.sedしてるところだけを抜き出して実験してみたんですが,置換されません.もしかしてこの書き方でもまずいのかと置換のパターンをよく読んでみると・・・
s,^\([ #]*\)[^ ]*\([ ]*LIBS_MULE\)[ (].*,\1define\2 -lwnn -lcrypt -lcanna ,
・・・(;´Д`) 「LIBS_MULE」の直後にスペースかタブか括弧が無いと置換されねーのかよ・・・.あー,autoconf.m4fにそれっぽいのが書いてあるなぁ.
ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' ac_dB='\\)[ (].*,\\1define\\2' ac_dC=' ' ac_dD=' ,']
もしかしてこれってautoconf-2.60が悪いのか?ってことで2.59の方を見たらなんか全然違うんですけどこの辺・・・.試しに2.59でautoconfしなおしたら,見事にcanna・wnnに対応したemcwsがちゃんとできました.あえて言おう.autoconf-2.60のバグちゃうんかこれホイショ.
2006年8月15日の日記の4番目の記事へのコメント
[コメントを書く]