SHIOTA Shoichi
Shoic****@light*****
2003年 12月 19日 (金) 12:16:01 JST
潮田です。 何が怒られているかがやっと分かりました。 config.log に残っているコマンドの引数ではなく、実行時の 画面に残っているコマンドラインを見れば良いだけでした。 私が [Canna-dev 267] で書いた、 >creating cannaconf.h > CPPFLAGS=' ` ` -DSYSV -DAIXV3 -DAIXV4 -D_ALL_SOURCE >-DFUNCPROTO=15 ` ` ' CC='cc' CFLAGS='-O ' IN_MAKE=yes ./configure >--prefix=/usr/local/canna で環境変数 CPPFLAGS にセットされている ` ` がお気に召さない ようです。 以下に、匍匐前進して行くさまを書きます。 # 先に書いておきますが、 Canna37 は当分使用する予定はありません。 # 単に、あまり一般的でない AIX という環境でコンパイルできるかの # 確認が目的です。 $ xmkmf 作成された Makefile の CPPFLAGS を探す。 CPPFLAGS='$(ALLDEFINES)' となっていたので、ALLDEFINES を ALLDEFINES=-DSYSV -DAIXV3 -DAIXV4 -D_ALL_SOURCE -DFUNCPROTO=15 とハードコード。(本当は一行で) $ make canna (途中省略) ` ` cc -c -O -I../../include ` ` -DSYSV -DAIXV3 -DAIXV4 -D_ALL_SOURCE -DFUNCPROTO=15 ` ` -DCPP='"/usr/lpp/X11/Xamples/util/cpp/cpp -DSYSV -DAIXV3 -DAIXV4 -D_ALL_SOURCE"' -DNEED_RKINDEP_SUBST conf.c "conf.c", line 1480.1: 1506-046 (S) 構文エラーです。 "conf.c", line 1486.26: 1506-026 (S) 初期化指定子の数は集合体メンバー数以下でなければなりません。 "conf.c", line 1487.2: 1506-277 (S) 構文エラー : ',' または '}' がない可能性があります。 "conf.c", line 1490.27: 1506-045 (S) 識別子 item が宣言されていません。 "conf.c", line 1490.33: 1506-026 (S) 初期化指定子の数は集合体メンバー数以下でなければなりません。 "conf.c", line 1494.1: 1506-026 (S) 初期化指定子の数は集合体メンバー数以下でなければなりません 。 "conf.c", line 1495.18: 1506-045 (S) 識別子 confrec が宣言されていません。 "conf.c", line 1496.33: 1506-045 (S) 識別子 endrec が宣言されていません。 "conf.c", line 1504.5: 1506-045 (S) 識別子 defrec が宣言されていません。 "conf.c": 1506-026 (S) 初期化指定子の数は集合体メンバー数以下でなければなりません。 "conf.c", line 1518.33: 1506-026 (S) 初期化指定子の数は集合体メンバー数以下でなければなりません。 "conf.c", line 1522.1: 1506-026 (S) 初期化指定子の数は集合体メンバー数以下でなければなりません で終了。 --- ここから --- @@ -1477,11 +1477,9 @@ }; const StrDefaultRec host_str_defaults[] = { + { CONF_DUMMYCODE, NULL }, }; const NumberDefaultRec top_num_defaults[] = { + { CONF_DUMMYCODE, 0u }, }; --- ここまで --- で黙らせる。 # 値は、適当です。 再度 $ make canna (途中省略) cc -O -I../include ` ` -DSYSV -DAIXV3 -DAIXV4 -D_ALL_SOURCE -DFUNCPROTO=15 ` ` -DTCPCONN -DUNIXCONN -c convert.c "convert.c", line 56.19: 1506-131 (S) auto または static の配列には、明示的な次元指定または初期化指定子が必要です。 "convert.c", line 93.17: 1506-131 (S) auto または static の配列には、明示的な次元指定または初期化指定子が必要です。 "convert.c", line 97.19: 1506-131 (S) auto または static の配列には、明示的な次元指定または初期化指定子が必要です。 で終了。 # diff が大きいので、やったことを書きます static const char *ProtoName[] static oreqproc Vector[] static const char *ExtensionName[][2] の宣言([])が気に入らないようなので、これらの宣言を削除し、 ファイルの末尾にいる定義をこの位置に移動。 Vector の定義中にいる ProcReq2 の宣言が無いと怒られるので、 その前にプロトタイプを挿入。 # 実際の数を入れればいいだけかもしれませんが、意味が無いですよね。 再々度 $ make canna (途中省略) cc -O -I../include ` ` -DSYSV -DAIXV3 -DAIXV4 -D_ALL_SOURCE -DFUNCPROTO=15 ` ` -DTCPCONN -DUNIXCONN -c wconvert.c "wconvert.c", line 88.19: 1506-131 (S) auto または static の配列には、明示的な次元指定または初 期化指定子が必要です。 "wconvert.c", line 88.37: 1506-131 (S) auto または static の配列には、明示的な次元指定または初 期化指定子が必要です。 "wconvert.c", line 89.22: 1506-131 (S) auto または static の配列には、明示的な次元指定または初 期化指定子が必要です。 "wconvert.c", line 91.22: 1506-131 (S) auto または static の配列には、明示的な次元指定または初 期化指定子が必要です。 で終了。 static const char *WideProtoName[], *ExtensionRequest[]; static const reqproc WideVector[]; static const reqproc ExtensionWideVector[]; を先と同様に変更。 今度は、宣言が無いと怒られる関数が多数いるので、それらの プロトタイプを入れるのが面倒でした。 再再々度 $ make canna (途中省略) rm -f pod cc -o pod -O ` ` -L/usr/lib pod.o ` ` ` ` ` ` -bnodelcsect ld: 0711-317 エラー: 未定義のシンボル: .RkiMalloc ld: 0711-345 -bloadmap または -bnoquiet オプションを使用して、詳細な情報を得てください。 で終了。 ./dic/ideo/pubdic/Makefile の pod: pod.o ` ` $(RM) $@ $(CCLINK) -o $@ $(LDOPTIONS) pod.o $(LDLIBS) $(EXTRA_LOAD_FLAGS) に ../../../lib/RKindep/libRKindep.a を付ければ、 黙るのは確認しましたが、 Makefile を毎回作成しなおす ようで手が出ません。 # Imakefile を修正できればいいんでしょうが・・・ と、ここでギブアップしております。 愛の手をお待ちしております。 $ make canna -k で見る限りは、こことこれを前提にしている部分だけが エラーになっているようなので、これさえ通れば終わりだと思います。