[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



http://www.freewnn.org/ FreeWnn Project