Tomoki AONO
aono****@cc*****
2011年 1月 3日 (月) 23:19:16 JST
青野です。藤原さん、ありがとうございます。 <yfmei8ve4iw.wl%makot****@ki*****>の記事において makot****@ki*****さんは書きました。 >> こんにちは。 >> NetBSD/pkgsrc/inputmethod/ja-freewnn* は かなり古いので、何 >> とか 1.1.1-a021 まで新しくしようと思って、試行錯誤中です。 藤原さんの日記に挙げられてたpkgsrc(のパッチ部分)に関しては 少し見てました。 (略) >> それで、その分ける場合の方ですが、どうも --with-wnn-include= >> を設定する必要があって、見ていました。 >> >> ですが、どうもそれが効かない(指定しても無視される)ような気がして、 >> configure を変更して見たりする訳ですが、それには configure.in >> を少し変更して、autoconf (2.53) を使うと、どうも変です。 >> >> (僕の勘違いでなければ)、configure.in がこわれている気がします。 >> それで直そうと思ったのが添付の差分です。 >> ---> うーん、やはり勘違いかも知れません。 --with-wnn-includeを見てみると、設定したまま特にAC_SUBST() するでもなく放置されていました。多分藤原さんの仰るとおり同 オプションを指定しても使われていないのだと思います。実際に はconfigure.inだけでなく、(藤原さんのpkgsrcのパッチにはあ りますが) makerule.mk.inやMakefile.in 内で置き換える指定も 必要です。 #ソースに取り込まれたパッチは[freewnn:00443]に当たるよう #ですが、そこから(見た目以外は)変更されていないようです。 #(cf. http://www.tomo.gr.jp/users/wnn/0101ml/msg00019.html ) 藤原さんのパッチは1.1.1-a021を対象に作られてますが、その辺 りは変更ないのでCVS版と読み替えてコメントします。 >> --- configure.in.orig 2005-11-28 02:30:23.000000000 +0900 >> +++ configure.in 2010-12-29 17:30:58.000000000 +0900 >> @@ -148,13 +148,13 @@ >> >> AC_ARG_WITH(libwnn, >> [ --with-libwnn use installed Wnn library [[default=no]]], >> -[ with_libwnn="${withval}" >> +[ with_libwnn="${withval}"],[]) >> AC_ARG_WITH(wnn-includes, >> [ --with-wnn-includes=DIR WNN include files are in DIR], >> -[wnnincludedir="-I${withval}"], [wnnincludedir='']) >> +[WNNINCLUDESRC="-I${withval}"], [WNNINCLUDESRC='']) >> AC_ARG_WITH(wnn-libraries, >> [ --with-wnn-libraries=DIR Search for WNN libraries in DIR [[default=/usr/local/lib]]], >> -[wnnlibdir="${withval}"], [wnnlibdir='/usr/local/lib']) >> +[wnnlibdir="${withval}" >> if test "X${with_libwnn}" = X-lwnn; then >> WNNJLIB="-L${wnnlibdir} -lwnn" >> elif test X"`echo ${with_libwnn} | grep '^/.*'`" != X ; then この辺は分かりにくいですね。元のconfigure.in (--with-libwnn近辺のみ)をインデントしなおしてみました。 AC_ARG_WITH(libwnn, [ --with-libwnn ....], [ with_libwnn="${withval}" AC_ARG_WITH(wnn-includes, [ --with-wnn-includes=DIR ....], [wnnincludedir="-I${withval}"], [wnnincludedir='']) AC_ARG_WITH(wnn-libraries, [ --with-wnn-libraries=DIR ....], [wnnlibdir="${withval}"], [wnnlibdir='/usr/local/lib']) # snipped: $with_libwnnに応じて WNNJLIBを決定 # '-l${wnnlibdir} -lwnn' or '${wnnlibdir}/libwnn.a' or '$with_libwnn' DEPWNNJLIB="" HINSI_DATA="\$(JWNNWNNDIR)/hinsi.data" ], [ WNNJLIB="\$(top_builddir)/Wnn/jlib/libwnn.la" DEPWNNJLIB="\$(WNNJLIB)" HINSI_DATA="\$(top_builddir)/Wnn/jd/hinsi.data" ] ) --with-libwnnのAC_ARG_WITH()文での定義中に --with-wnn-{includes,libraries}の定義が混ざってて分かりに くいですね。パッチ後は処理が--with-wnn-librariesの定義内で 実施されるように移動しただけで、挙動としてはパッチ前とパッ チ後で変わらないという印象を持ちました。 #青野が書くならばWNNJLIBなどの実際の定義はAC_ARG_WITH()文 #の外で記述すると思います。 --with-wnn-includes で定義されたwnnincludedir(パッチ後の WNNINCLUDESRC相当)がその後使われていないのはご指摘の通りで す。 >> @@ -308,7 +314,19 @@ >> ;; >> *-*-aix*) >> CCOPTIONS="-DSYSV" >> - ;; >> + ;; >> +*-*-freebsd*|*-*-openbsd*) >> + CCOPTIONS="-DCSRG_BASED" >> + CDEBUGFLAGS="-O2 -fno-strength-reduce" >> + if test -x /usr/libexec/cpp; then >> + CPP=/usr/libexec/cpp >> + fi >> + ;; >> +*-*-netbsd*|*-*-dragonfly*) >> + CCOPTIONS="-DCSRG_BASED" >> + CDEBUGFLAGS="-O2 -fno-strength-reduce" >> + CPP=/usr/bin/cpp >> + ;; >> *) >> dnl AC_MSG_WARN("It is not reported if FreeWnn works on this system. But continuing...") >> dnl AC_MSG_WARN([(It may or may not work if you set CCOPTIONS properly.)]) この辺は多分不要だと思います。特にマクロ「CSRG_BASED」は他 のソースでは参照されてないはずです。(Xwnmoだけ自信がありま せんので保留しますが…。) ---- 青野智樹 (aono****@cc*****) Personal opinion only...