Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

EWS4800でnamazu-2.0.12のコンパイル



2.0.13RC2の動作チェックが各OSでされているようなので、
EWS4800でもやってみようかと思い、
まずは、2.0.12を導入してみました。
#実は、色々時間がなくて2.0.10から更新していませんでした。

結論から言うと、何とか構築できました。
一応、その手順をポストします。
#そんかキカイは捨てろと言われそうですが・・・・

・使用パッケージ

kakasi-2.3.4.tar.gz
namazu-2.0.12.tar.gz

・環境
uname -srvmp
UNIX_SV 4.2MP 1.release.1218.07:39 R4000 r4000

/usr/abiccs/bin/cc -V
         _driverrev.c,v 1997/04/10 08:08:08 1.38 (EWS)
         _cferev.c,v 1998/05/18 02:19:26 1.131 (header-cc3.18)
         _as0rev.c,v 1996/07/24 04:31:51 1.5 CC3.18
         _as1rev.c,v 1996/07/12 05:37:24 1.25 CC3.18
         _cof2elfrev.c,v 1997/06/12 09:01:21 1.6
         _ujoinrev.c,v 1994/06/09 01:54:04 1.1
         _ldrev.c,v 1996/07/29 06:09:24 1.6 (cc3.18)
         _usplitrev.c,v 1994/06/09 01:54:05 1.1
         _umergerev.c,v 1994/06/17 09:29:28 1.2
         _uoptrev.c,v 1996/11/05 11:26:59 1.8 (cc3.18)
         _ugenrev.c,v 1996/04/17 11:49:08 1.7 (cc3.18)
        _ldrev.c 112.1.1.100 96/07/25 10:20:53
        _picierev.c 112.1.1.38 94/11/09 16:17:22


・コンパイル方法

1)kakasi-2.3.4
 パッケージを展開後、
 env CC="/usr/abiccs/bin/cc" CFLAGS="-DNO_ALLOCA" ./configure
 後は普通にmake ; makeinstall できました。

2)namazu-2.0.12
 2.0.10は、kakasiと同じ方法でコンパイルできましたが、
 2.0.12は、
            first referenced in file ../nmz/.libs/libnmz.so
            Undefined symbol alloca 
 と、エラーになりました。
 無理やりalloca.cをコンパイルすると、今度はxmallocが無いと。(T_T)

 そこで、色々調べて、このML小島 肇さんの過去ログに、
  「この OS では、alloca は /usr/ucblib/libucb.a に含まれています。」
 とあったのを参考に、以下の手順でコンパイルしました。

 パッケージを展開後、
 env CC="/usr/abiccs/bin/cc" CFLAGS="-DNO_ALLOCA" ./configure
 を実行、

  ar -x /usr/ucblib/libucb.a alloca.o
 で、ライブラリからalloca.oを取り出す。

 パッケージのnmzディレクトリに、alloca.o をコピーし、
 alloca.loというシンボリックリンクを作成。(cpでも問題ないです。)
 ln -s alloca.o alloca.lo

 nmz/Makefileを編集。
 EXTRA_DISTから、alloca.cを抜き、libnmz_la_OBJECTSにalloca.loを追加

125c125
< EXTRA_DIST = alloca.c memcmp.c memmove.c memset.c strcasecmp.c strncasecmp.c
     strcspn.c strerror.c vsnprintf.c system.h support.h
---
> EXTRA_DIST = memcmp.c memmove.c memset.c strcasecmp.c strncasecmp.c        str
cspn.c strerror.c vsnprintf.c system.h support.h
155c155
< libnmz_la_OBJECTS =  alias.lo codeconv.lo field.lo hlist.lo i18n.lo \
---
> libnmz_la_OBJECTS = alloca.lo alias.lo codeconv.lo field.lo hlist.lo i18n.lo \

 念のため、nmz/alloca.c をリネーム
  mv nmz/alloca.c nmz/alloca.c.bak

 後は、make ; make installする。

一応、動作確認として、27000枚の薬剤添付文書のHTMLファイルのmknmzと
検索に成功しております。

---
村永文学 鹿児島大学医学部附属病院 医療情報部
Fuminori Muranaga , Medical Informatics,Kagoshima Univ. Hospital
TEL:099-275-5171
FAX:099-275-5177