Tomoki AONO
aono****@cc*****
2011年 1月 7日 (金) 03:38:35 JST
青野です。こんばんは。 <11010****@ikoma*****>の記事において 青野は書きました。 >> --with-wnn-includeを見てみると、設定したまま特にAC_SUBST() >> するでもなく放置されていました。多分藤原さんの仰るとおり同 >> オプションを指定しても使われていないのだと思います。実際に >> はconfigure.inだけでなく、(藤原さんのpkgsrcのパッチにはあ >> りますが) makerule.mk.inやMakefile.in 内で置き換える指定も >> 必要です。 コメントばかりでもよろしくないので、コンセプト的なパッチを 作ってみました。(できれば同オプションを使っているパッケー ジマネージャの方々にも)お試しいただければ幸いです。 (ご注意) ○今のところは[ck]wnnに対応してません。 ○autoconfでconfigureスクリプトを生成してください。 ○基本的にCVS版に対するパッチですが、多分1.1.1-a021でも適 用できるのではないかと思います。(できなかったら…適宜編 集してください。) ○従来は--without-libwnnを指定した時でも外部ライブラリを見 るようになってましたが(これはバグかな…)、この変更により 未指定時と同じく外部libwnnは使わないようになります。 ○この指定が有効になる対象は(--with-wnn-librariesと同様) jutil(の一部)とuumに限られます。 ○(多分)Wnn[67] SDKのlibwnnを利用できるような機能ではあり ません。 (その他コメント) 今回は--with-wnn-includesのデフォルト値は定めませんでした。 /usr/local/include/wnn (もっと言えば、$includedir/wnn)にし てもよかったかもしれません。 過去の互換性を保つため(だと思うのですが)、日本語のWnn では includeディレクトリにconfig.hを(wnn_config.hへのsymlinkと して)作成します。先にそのファイルを読んでしまうとconfigure で検出した結果(であるところの$top_builddir/config.h の内容) が全く反映されずコンパイル時にエラーとなります。そのため、 インクルードパスの順番に注意する必要があります。 あと、--with-libwnnで任意の文字列を引き受ける必要があるの か青野には分かりません。過去の経緯をご存知の方がおられたら お教え下さい。 Index: configure.in =================================================================== RCS file: /cvsroot/freewnn/FreeWnn/configure.in,v retrieving revision 1.53 diff -u -u -r1.53 configure.in --- configure.in 31 Dec 2010 14:40:51 -0000 1.53 +++ configure.in 6 Jan 2011 09:55:20 -0000 @@ -186,39 +186,40 @@ dnl For a library libwnn -dnl AC_ARG_WITH(libwnn, -dnl [ --with-libwnn use installed Wnn library [default=no]], -dnl [case "${withval}" in -dnl yes|no) with_libwnn=${withval};; -dnl *) AC_MSG_ERROR(invalid argument to --with-libwnn) ;; -dnl esac], with_libwnn=no) -dnl - AC_ARG_WITH(libwnn, [ --with-libwnn use installed Wnn library [[default=no]]], -[ with_libwnn="${withval}" +[ with_libwnn="${withval}"], [with_libwnn=no]) AC_ARG_WITH(wnn-includes, -[ --with-wnn-includes=DIR WNN include files are in DIR], +[ --with-wnn-includes=DIR Installed Wnn include files are in DIR], [wnnincludedir="-I${withval}"], [wnnincludedir='']) AC_ARG_WITH(wnn-libraries, -[ --with-wnn-libraries=DIR Search for WNN libraries in DIR [[default=/usr/local/lib]]], +[ --with-wnn-libraries=DIR Search for Wnn libraries in DIR [[default=/usr/local/lib]]], [wnnlibdir="${withval}"], [wnnlibdir='/usr/local/lib']) - if test "X${with_libwnn}" = X-lwnn; then - WNNJLIB="-L${wnnlibdir} -lwnn" - elif test X"`echo ${with_libwnn} | grep '^/.*'`" != X ; then - WNNJLIB="${with_libwnn}" - else - WNNJLIB="${wnnlibdir}/libwnn.a" - fi + +if test X${with_libwnn} != Xno; then + case X${with_libwnn} in + Xyes | X-lwnn) + WNNJLIB="-L${wnnlibdir} -lwnn" ;; + X/*) + WNNJLIB="${wnnlibdir}/libwnn.a" ;; + *) + # Honor specified value --with-libwnn + # (maybe wrong in most cases) + WNNJLIB="${with_libwnn}" ;; + esac DEPWNNJLIB="" + dnl NOTICE: HINSI_DATA depends on --prefix (and makerule.mk). HINSI_DATA="\$(JWNNWNNDIR)/hinsi.data" -], -[ WNNJLIB="\$(top_builddir)/Wnn/jlib/libwnn.la" + EXTWNNJINC=${wnnincludedir} +else + WNNJLIB="\$(top_builddir)/Wnn/jlib/libwnn.la" DEPWNNJLIB="\$(WNNJLIB)" HINSI_DATA="\$(top_builddir)/Wnn/jd/hinsi.data" -]) + EXTWNNJINC="" +fi AC_SUBST(WNNJLIB) AC_SUBST(DEPWNNJLIB) +AC_SUBST(EXTWNNJINC) AC_SUBST(HINSI_DATA) AC_ARG_WITH(libcwnn, Index: Wnn/jutil/Makefile.in =================================================================== RCS file: /cvsroot/freewnn/FreeWnn/Wnn/jutil/Makefile.in,v retrieving revision 1.12 diff -u -u -r1.12 Makefile.in --- Wnn/jutil/Makefile.in 11 Jul 2010 10:18:17 -0000 1.12 +++ Wnn/jutil/Makefile.in 6 Jan 2011 09:55:20 -0000 @@ -39,7 +39,7 @@ LT_LD = $(LIBTOOL) --mode=link $(CCLINK) LOCAL_INSTFLAGS = -o $(WNNOWNER) - INCLUDES = -I$(WNNINCLUDESRC) -I$(top_builddir) + INCLUDES = -I$(top_builddir) @EXTWNNJINC@ -I$(WNNINCLUDESRC) DEFINES = $(WNNDEFINES) $(WNNLANGDEF) HINSIDEFINE = -DHINSIDATA_FILE=\"/$(JWNNLANG)/hinsi.data\" Index: Wnn/uum/Makefile.in =================================================================== RCS file: /cvsroot/freewnn/FreeWnn/Wnn/uum/Makefile.in,v retrieving revision 1.16 diff -u -u -r1.16 Makefile.in --- Wnn/uum/Makefile.in 11 Jul 2010 10:18:17 -0000 1.16 +++ Wnn/uum/Makefile.in 6 Jan 2011 09:55:20 -0000 @@ -37,7 +37,7 @@ INSTALL = @INSTALL@ LOCAL_INSTFLAGS = $(INSTUUMFLAGS) - INCLUDES = -I$(WNNINCLUDESRC) -I$(WNNROMKANSRC) -I$(top_builddir) + INCLUDES = -I$(top_builddir) @EXTWNNJINC@ -I$(WNNINCLUDESRC) -I$(WNNROMKANSRC) DEFINES = $(WNNDEFINES) $(WNNLANGDEF) # todo: should update configure to switch both WNNJLIB and WNNCONVLIB # according to --with-wnn-libraries ---- 青野智樹 (aono****@cc*****) Personal opinion only...