[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freewnn:00599] Re: cpp for pubdicplus (Re: cvs server for freewnn.org)
- To: freewnn@tomo.gr.jp
- Subject: [freewnn:00599] Re: cpp for pubdicplus (Re: cvs server for freewnn.org)
- From: aono@XXXX (Tomoki AONO)
- Date: Fri, 1 Jun 2001 16:57:53 +0900 (JST)
- In-Reply-To: Your message of "Fri, 18 May 2001 23:52:12 +0900".<200105181452.XAA29514@sranhm.sra.co.jp>
- Reply-To: freewnn@tomo.gr.jp
大阪教育大の青野です。こんにちは。
#thread的には矢吹さんへのリプライにしてますが、一応その後の
#議論も読んでるつもりです。
すでにa017-p2(?)で暫定対処ができてるようなのでタイミングを
逸した感じですが、叩き台的にパッチ作りました。
<200105181452.XAA29514@sranhm.sra.co.jp>の記事において
yabuki@sranhm.sra.co.jpさんは書きました。
>> またGCC の歴史の話になってしまいますが,古い Changelog を
>> 見てみると,-x オプションは,gcc-1.39 ぐらいの頃(多分,g++ の
>> 登場に対応して),Richard Stallman 氏によって追加された,
>> 由緒正しい(?)ものです.:-)
(中略)
>> まぁ,gcc -x c -E と gcc -print-prog-name=cpp のどちらが良いかと
>> 言われたら,私としてはどちらでも良いです.
確かにgcc-1.xでコンパイルできるか分かりませんが、ここでは
「-x c」を使うことにしました。
>> Xsi/PubdicPlus/PUBDICPLUS-README.jp には,
>> 「この辞書は何をしてもかまいません」とあるので,良いのでは
>> ないでしょうか? 問題の fzk.* ファイルは GPL になってますし.
私も元のファイルとMakefileでの生成ルールを残しておけば問題
はなさそうな気がします。(自信はないですが…。)
#以下のパッチには日本語のコメントを入れているので、EUC-JP
#に変換してからパッチを当てて下さい。
-----
より多くのプラットフォームで、cppをdicのプリプロセッサで使えるようにす
るパッチ(のプロトタイプ)
2001.5.30 by 青野智樹
概要
・FreeWnn-1.1.1-a017に対するパッチ。
・dic用pre-processorということでDIC_PPという名称に変更。も
し将来cppからm4など他の言語に変更されても対応が容易である
(かも)。
・原作(a017)と異なり、configure時に環境変数DIC_PP/CPPで指定した値を
(先の優先順位で)DIC_PPにすることが可能。gccがない and 場合分けに
対応していないシステムでも何とか動かせる(かも)。
・パッチ適用後、autoconf(2.13で確認)でconfigureスクリプトを生成すること。
・Solaris-2.4で当該部分のみ動作することは確認した。
気になる点
・DIC_PPという名前でよかったかどうか。
・まだ古いCPP選択部分がコメントとして残しているので、マージする場合は
削除する必要がある。
・CPP(_NONC)に関するcase文とCCOPTIONS / CDEBUGFLAGSの設定case文は分け
た方がよいかもしれない。
・config.cacheに蓄えるべきか判断できない。
・a017-p1ではconfig.guessが組み込まれたので、システムでの場合分けで
$host (ex. sparc-sun-solaris2.8)を使った方がよくないか。
diff -ur ../orig/Wnn/pubdicplus/Makefile.in ./Wnn/pubdicplus/Makefile.in
--- ../orig/Wnn/pubdicplus/Makefile.in Sun Jan 30 12:49:35 2000
+++ ./Wnn/pubdicplus/Makefile.in Mon May 21 15:41:14 2001
@@ -410,7 +410,7 @@
@echo "skipping make in my dir"
std.fzk: $(FZK_SRC)
- $(CPP) $(FZK_FLAG) fzk.master | egrep -v '^(# |#line |$$)' | $(ATOF) -h $(HINSI) $@
+ $(DIC_PP) $(FZK_FLAG) fzk.master | egrep -v '^(# |#line |$$)' | $(ATOF) -h $(HINSI) $@
full.fzk: $(FZK_SRC)
$(MAKE) FZK_FLAG=-DKANSAI std.fzk
diff -ur ../orig/cWnn/cdic/Makefile.in ./cWnn/cdic/Makefile.in
--- ../orig/cWnn/cdic/Makefile.in Sun Sep 12 23:01:35 1999
+++ ./cWnn/cdic/Makefile.in Mon May 21 15:41:28 2001
@@ -59,10 +59,10 @@
$(DICS): $(HINSI)
$(FULL):: $(FZK_SRCS)
- $(CPP) $(FZK_FLAG) con.master | egrep -v '^(# |#line |$$)' | $(ATOF) -h $(HINSI) $@
+ $(DIC_PP) $(FZK_FLAG) con.master | egrep -v '^(# |#line |$$)' | $(ATOF) -h $(HINSI) $@
$(FULLR):: $(FZK_SRCS)
- $(CPP) $(FZK_FLAG) con.masterR | egrep -v '^(# |#line |$$)' | $(ATOF) -h $(HINSI) $@
+ $(DIC_PP) $(FZK_FLAG) con.masterR | egrep -v '^(# |#line |$$)' | $(ATOF) -h $(HINSI) $@
instserver:: install
diff -ur ../orig/cWnn/tdic/Makefile.in ./cWnn/tdic/Makefile.in
--- ../orig/cWnn/tdic/Makefile.in Sun Sep 12 23:01:35 1999
+++ ./cWnn/tdic/Makefile.in Mon May 21 15:41:44 2001
@@ -59,10 +59,10 @@
$(DICS): $(HINSI)
$(FULL):: $(FZK_SRCS)
- $(CPP) $(FZK_FLAG) con.master | egrep -v '^(# |#line |$$)' | $(ATOF) -h $(HINSI) $@
+ $(DIC_PP) $(FZK_FLAG) con.master | egrep -v '^(# |#line |$$)' | $(ATOF) -h $(HINSI) $@
$(FULLR):: $(FZK_SRCS)
- $(CPP) $(FZK_FLAG) con.masterR | egrep -v '^(# |#line |$$)' | $(ATOF) -h $(HINSI) $@
+ $(DIC_PP) $(FZK_FLAG) con.masterR | egrep -v '^(# |#line |$$)' | $(ATOF) -h $(HINSI) $@
instserver:: install
diff -ur ../orig/configure.in ./configure.in
--- ../orig/configure.in Fri Mar 17 01:15:32 2000
+++ ./configure.in Tue May 29 11:33:23 2001
@@ -54,7 +54,12 @@
dnl Checks for cc and cpp.
dnl
AC_PROG_CC
-AC_MSG_CHECKING(for cpp)
+# preserve user-defined CPP variable.
+CPP_orig=$CPP
+AC_PROG_CPP
+
+AC_MSG_CHECKING(pre-processor for dictionaries)
+
hosttype=`uname`
CCOPTIONS=""
CDEBUGFLAGS=-O
@@ -62,23 +67,23 @@
"Linux")
CCOPTIONS="-Dlinux -D_POSIX_SOURCE -D_BSD_SOURCE"
CDEBUGFLAGS="-O2 -fno-strength-reduce"
- if test -x /lib/cpp; then
- CPP=/lib/cpp
- fi
+# if test -x /lib/cpp; then
+# CPP_NONC=/lib/cpp
+# fi
;;
"FreeBSD"|"NetBSD"|"OpenBSD")
CCOPTIONS="-DCSRG_BASED"
CDEBUGFLAGS="-O2 -fno-strength-reduce"
- if test -x /usr/libexec/cpp; then
- CPP=/usr/libexec/cpp
- fi
+# if test -x /usr/libexec/cpp; then
+# CPP_NONC=/usr/libexec/cpp
+# fi
;;
"BSD/OS")
CCOPTIONS="-DCSRG_BASED"
CDEBUGFLAGS="-O2 -fno-strength-reduce"
- if test -x /usr/bin/cpp; then
- CPP=/usr/bin/cpp
- fi
+# if test -x /usr/bin/cpp; then
+# CPP_NONC=/usr/bin/cpp
+# fi
;;
"SunOS")
case `uname -r` in
@@ -90,7 +95,7 @@
CDEBUGFLAGS=-O4
CCOPTIONS=""
fi
- CPP=/usr/lib/cpp
+ CPP_NONC=/usr/lib/cpp
;;
5.*)
if test $CC = gcc; then
@@ -100,12 +105,12 @@
CCOPTIONS="-Xc -xF -xcg92 -Dsun -D`uname -p` -DSVR4 -DSYSV"
fi
if test -x /usr/ccs/lib/cpp; then
- CPP=/usr/ccs/lib/cpp
+ CPP_NONC=/usr/ccs/lib/cpp
fi
;;
- *)
- AC_MSG_WARN("This system is not supported. But continuing...")
- ;;
+ #*)
+ # AC_MSG_WARN("This system is not supported. But continuing...")
+ # ;;
esac
;;
"HP-UX")
@@ -118,17 +123,17 @@
case `uname -r` in
A.09.*)
if test -x /lib/cpp; then
- CPP=/lib/cpp
+ CPP_NONC=/lib/cpp
fi
;;
B.10.*|B.11.*)
if test -x /opt/langtools/lbin/cpp; then
- CPP=/opt/langtools/lbin/cpp
+ CPP_NONC=/opt/langtools/lbin/cpp
fi
;;
- *)
- AC_MSG_WARN("This system is not supported. But continuing...")
- ;;
+ #*)
+ # AC_MSG_WARN("This system is not supported. But continuing...")
+ # ;;
esac
;;
"BeOS")
@@ -136,17 +141,17 @@
"BePC")
CCOPTIONS="-DBEOS -D_POSIX_SOURCE -D_BSD_SOURCE"
CDEBUGFLAGS="-O2 -fno-strength-reduce"
- if test -x /boot/develop/tools/gnupro/lib/gcc-lib/i586-beos/2.9-beos-980929/cpp; then
- CPP=/boot/develop/tools/gnupro/lib/gcc-lib/i586-beos/2.9-beos-980929/cpp
- fi
+# if test -x /boot/develop/tools/gnupro/lib/gcc-lib/i586-beos/2.9-beos-980929/cpp; then
+# CPP_NONC=/boot/develop/tools/gnupro/lib/gcc-lib/i586-beos/2.9-beos-980929/cpp
+# fi
;;
"BeBox"|"BeMac")
CCOPTIONS="-DBEOS -D_POSIX_SOURCE -D_BSD_SOURCE"
- NON_GNU_CPP=/boot/apps/GeekGadgets/bin/cpp
+# NON_GNU_CPP=/boot/apps/GeekGadgets/bin/cpp
;;
- *)
- { echo "configure: error: "This system is not supported."" 1>&2; exit 1; }
- ;;
+ #*)
+ # { echo "configure: error: "This system is not supported."" 1>&2; exit 1; }
+ # ;;
esac
;;
"AIX")
@@ -156,13 +161,37 @@
CDEBUGFLAGS=-O
fi
CCOPTIONS="-DSYSV"
- CPP=/usr/lib/cpp
- ;;
-*)
- AC_MSG_WARN("This system is not supported. But continuing...")
+ CPP_NONC=/usr/lib/cpp
;;
+#*)
+# AC_MSG_WARN("This system is not supported. But continuing...")
+# ;;
esac
-AC_PROG_CPP
+
+dnl
+dnl gccを使っている時は言語指定('-x c')を使う
+dnl
+if test "$GCC" = yes ; then
+ # CPP_NONC=`${CC} -print-prog-name=cpp`
+ CPP_NONC="${CC} -x c -E"
+fi
+
+dnl
+dnl 環境変数 DIC_PP / CPP が設定されていたときはその順で、
+dnl 設定されていない場合は上の節で検出された $CPP_NONC、
+dnl それもない場合はAC_PROG_CPPで検出されたCPPを使う。
+dnl FIXME: config.cache に記録した方がよい?
+dnl
+if test -z "$DIC_PP"; then
+ if test -z "$CPP_orig" -a -n "$CPP_NONC"; then
+ DIC_PP="$CPP_NONC"
+ else
+ DIC_PP="$CPP"
+ fi
+fi
+
+AC_MSG_RESULT($DIC_PP)
+AC_SUBST(DIC_PP)
dnl
dnl Checks for programs.
diff -ur ../orig/kWnn/kdic/Makefile.in ./kWnn/kdic/Makefile.in
--- ../orig/kWnn/kdic/Makefile.in Sun Sep 12 23:01:35 1999
+++ ./kWnn/kdic/Makefile.in Mon May 21 15:41:52 2001
@@ -56,7 +56,7 @@
$(DICS): $(HINSI)
$(FULL):: $(FZK_SRCS)
- $(CPP) $(FZK_FLAG) fzk.master | egrep -v '^(# |#line |$$)' | $(ATOF) -h $(HINSI) $@
+ $(DIC_PP) $(FZK_FLAG) fzk.master | egrep -v '^(# |#line |$$)' | $(ATOF) -h $(HINSI) $@
instserver:: install
diff -ur ../orig/makerule.mk.in ./makerule.mk.in
--- ../orig/makerule.mk.in Sun Feb 13 18:15:54 2000
+++ ./makerule.mk.in Mon May 21 14:07:48 2001
@@ -54,6 +54,7 @@
AS = as
CPP = @CPP@
+ DIC_PP = @DIC_PP@
INSTALLFLAGS = -c
LD = ld
----
(関係ない話)
slashdot.ne.jpでAnthyという仮名漢字変換サーバ(?)を作ってらっ
しゃる方(方々?)がおられることを知りました。フルスクラッチ
で作る意欲は評価したい(し、頑張ってほしい)のですが、
Canna/Wnn に対する、すでに過去のものであるかのような説明を
読んで多少複雑な気持ちになっています。
#今のところソースやドキュメントすら見ていませんが(^^;;。
----
大阪教育大学 情報処理センター
青野智樹 (aono@cc.osaka-kyoiku.ac.jp)
#情報処理センターに関するお問い合わせは
#center@cc.osaka-kyoiku.ac.jp へお願いします。