[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freewnn:00443] Re: server と
libraries の分離
田岡です。
現状の分割+shared libパッチです。手元では、分割してちゃんとshared libが
出来ることを確認しました。
また、いきおい余ったlibjdもshared libも生成するようにしました。ただ、
libjdはlibwnnにいくつかのオブジェクトをつけたものだから、libjd の
libwnnを分離して、アプリケーション側では、この二つをリンクするのが、節約
になるでしょう(これで動けばの話ですが。。。
使うときの注意ですが、インストールされているであろうaclocal.m4,
config.sub, config.gussをXsiの下ににコピーしてください。aclocal.m4は
libtoolに、残りの二つはautoconfについています。FreeBSDだと、
cp /usr/local/share/libtool/libltdl/aclocal.m4 Xsi
cp /usr/local/share/autoconf/config.sub Xsi
cp /usr/local/share/autoconf/config.guess Xsi
などとしてください。
# config.{sub,guss}が入るといっそうGNUのものっぽくなりますね。
で、コンパイル方法は、Xsiに入って、
autoconf
configure
make
です。
● 追伸1 ●
このパッチは、kWnn/Makefile.inの修正も入っています。cWnn/Makefile.inと値
の順番が違ってたからです。
-JLIBDIR = romkan jlib
+JLIBDIR = include etc romkan jlib
KDICDIR = kdic
-KDDIR = include kd
+KDDIR = kd
+LIB_SUBDIRS = $(KDDIR) $(JLIBDIR)
の順番になります。元の順番だとなぜかコンパイルが通らないときがありました
が、cWnnに会わせると成功するようになりました。
● 追伸2 ●
濱嶋さんへ。
濱嶋さんのパッチでは、
libwnn.$(A): $(OBJS) $(EXTRALIBRARYDEPS)
$(RM) $@
@if [ "$(A)" = "a" ] ; then \
$(AR) $@ $(OBJS) ; \
$(RANLIB) $@ ; \
else \
$(LIBTOOL) $(CC) -o $@ $(OBJS:.o=.lo) -rpath $(DESTDIR)$(WNNLIBDIR) -version-info $(WNNJLIBVERSION) ; \
fi
などとしてありましたが、この部分は、
libwnn.la: $(OBJS) $(EXTRALIBRARYDEPS)
$(LIBTOOL) $(CC) -o $@ $(OBJS:.o=.lo) -rpath $(DESTDIR)$(WNNLIBDIR) -version-info $(WNNJLIBVERSION)
にだけで、上と同じ作業をlibtoolが勝手にやってくれます。
また、installも
install:: libwnn.$(A)
@if [ -d $(DESTDIR)$(WNNLIBDIR) ]; then set +x; \
else (set -x; $(MKDIRHIER) $(DESTDIR)$(WNNLIBDIR)); fi
$(LIBTOOL) $(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) libwnn.$(A) $(DESTDIR)$(WNNLIBDIR) ; \
if [ "$(A)" = "a" ] ; then \
$(RANLIB) $(RANLIBINSTFLAGS) $(DESTDIR)$(WNNLIBDIR)/libwnn.$(A) ; \
fi
とされていましたが、
install:: libwnn.la
@if [ -d $(DESTDIR)$(WNNLIBDIR) ]; then set +x; \
else (set -x; $(MKDIRHIER) $(DESTDIR)$(WNNLIBDIR)); fi
$(LIBTOOL) $(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) libwnn.la $(DESTDIR)$(WNNLIBDIR)
だけで十分でした。
divided+shared.patch.gz