[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:000599] Re: f2c



塩谷です. 

dcl-5.2C をコンパイルしてみました. 

ちょっと問題が多いです. 慌てなくてもいいので, 十分にチェックしたものを
出すようにしてくださいね. 

>>     カラーマップが読めない。
>>     調べてみると、math1/syslib/glcqnp.c において DSPATH に
>>     "/export/home/nishi/d52/dcl-5.2/lib/dcldbase/" という、コン
>>     パイル時に全く指定していないディレクトリが入っているのが原因
>>     じゃないかと思います。...

まず, この手のパスがちゃんと通っているかどうかは make install してでき
る dcl 関連プログラムの中の dcldbs を実行してみてください. 

load03:/export/home/shiotani/tmp/dennou-ruby/dcl-5.2C/bin > ./dcldbs
*** PATH NAME FOR DATABASE
DSPATH   : /export/home/shiotani/tmp/dennou-ruby/dcl-5.2C/lib/dcldbase/
DUPATH   :  
*** FILE NAME FOR SYSLIB
DCLRC    :  
*** FILE NAME FOR SWPACK/SZPACK
BITMAP   : /export/home/shiotani/tmp/dennou-ruby/dcl-5.2C/lib/dcldbase/bitmap.x11
CL2TN    : /export/home/shiotani/tmp/dennou-ruby/dcl-5.2C/lib/dcldbase/cl2tnmap
CLRMAP   : /export/home/shiotani/tmp/dennou-ruby/dcl-5.2C/lib/dcldbase/colormap.x11
FONT1    : /export/home/shiotani/tmp/dennou-ruby/dcl-5.2C/lib/dcldbase/font1u
FONT2    : /export/home/shiotani/tmp/dennou-ruby/dcl-5.2C/lib/dcldbase/font2u

のように各種データベースファイルの在処が示されます. 

さて, この問題は, 次の堀之内君のメールにもありましたが

>> どうやら C のソースも make 時に生成すればいいことが分かってきま
>> した。ただ、math1/syslib/Makefile 中の
>> 
>> glcqnp.c: glcqnp.g
>> 	@xxxxxx "Substituting dcldbase path names (glcqnp.g -> glcqnp.c)"
>> 	@xxxxxx -e "s!@xxxxxx!$(DBASEDIR)/!" \
>> 	     glcqnp.g > glcqnp.c

この部分の glcqnp.g として適切な C プログラムが用意されていないことに
あります. dcl-5.1-C では, これら *.g のファイルとして C プログラムが用
意されていますが, dcl-5.2C ではオリジナルの Fortran プログラムが残って
います. 

>>    前にも報告しましたが Solaris2.6 では -lsocket -lnsl の追加が必
>>    要です。これは恐らく X 関連でしょうから、Mkinclude.in で
>>    XLIBOPT に -lsocket -lnsl を加えてしのぎましたが、ここをうま
>>    くやる(つまり「必要なら」これらがリンクされるようにする)こ
>>    とはできないでしょうか。

ここの部分に関していうと, 私の環境ではちゃんと -lsocket -lnsl が入って
いますけど. 

dcl-5.2 から用意した dclconfig コマンドを使って ./dclconfig --ldlibs
のようにしてみてください. 私のところでは

-R/opt/FSUNf90/lib -ldcl52C -lf2c4dcl -lsocket -lnsl -lSM -lICE -lX11 -lm

と, ちゃんと -lsocket -lnsl が入ります. 

>>     Mkinclude.in, l.28 で BINDIR = .../bin の後ろにスペースがあ
>>     るため、$(BINDIR)/hoge といったパスにスペースが入ってしまう。

これ以外にも, 不必要なブランクが行末にくっついている場合が多く見受けら
れます. どういう処理の中で入り込んだのか分かりませんが, 注意してくださ
い. 

>>     本家も確かそうだったけど、make ではコンパイルするだけで、
>>     make install してライブラリーが始めて作られるのは嬉しくない
>>     です。やはり make でお膳立てがすべて出来て、text が OK で、
>>     どんな名前のファイルがインストールされそうか把握した上で
>>     make install したいです。また、今 prefix が無視されるように
>>     なってるようですね。もっとも fortran 版の dcl とはライブラリー
>>     名が違うだけで、実行ファイル名はほとんど重なってるので、
>>     prefix をちゃんと解釈すると make install して Fortran 版が消
>>     えて焦るということはありそうです。

この辺は, 明確な方針があれば変更可能ですけれども, 前半のところの話しは
歴史的いきさつとしかいいようがないですね. 

>>     make distclean がない --- Makefile も含めてすべての生成物を
>>     消すのが欲しいです。

make clean.all というのがあります. 要望のものとは違う?