[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:000777] Re: f2c
高橋(FIP)さん
> 修正する項目としては、リストに上げてあるもので、
> いいのでしょうか。
> 簡単に出来るところから取り掛かりたいと思います。
とりあえずいいのではないでしょうか。今気が付く漏れも少しありま
すので(下記)、それもお願いします。
このままでは動かない(f2clibに追加)というのは優先的に片付けたいで
すね。実際には本家の f2c をリンクするに切り替えれば使えるのです
が。さらに、公開のためにはもろもろの名前を fix する必要があるで
しょう。rubyのラッパーはそれに依存してますから、もう fix して頂
けないと面倒です。リストの中で関係するのは
f2c.hの名前の変更
dclのライブラリはlibcdcl52.aとする
ですね。さらに、
ヘッダファイルの作成
というのがあります。これも名前を決めないとなりませんが、
dennou-ruby:000509 より cdcl.h にしようとなっています(byごとけ
ん氏)。ちなみに、ヘッダファイルの作成そのものは、src 以下の *.P
ファイルを cat で繋げるだけで ok と思います。(なお、*.P はコメ
ントも沢山あって長くなりそうなので、とってしまったほうがいいと思
います。例:
% cat sgpmzr.P
extern int sgpmzr_(integer *n, real *rpx, real *rpy, integer *itype, integer *in
dex, real *rsize);
/*:ref: msgdmp_ 14 6 13 13 13 124 124 124 */
/*:ref: szpmop_ 14 3 4 4 6 */
/*:ref: szpmzr_ 14 3 4 6 6 */
/*:ref: szpmcl_ 14 0 */
といった感じなので、cat `find . -name "*.P" -print` | sed '/\/\*.*\*\//d'
でいいのでは? --- やってみたらそれでも 2000 行弱になった)
ヘッダーについてはさらに、リストには挙ってませんが、以下も必要で
す。
ヘッダーはインストール先ディレクトリーにインストール
されるようにする。
cdcl.h だけでなく、f2c 互換ヘッダーもそうです。
名前問題でリストから漏れてるものとしては、
実行型コマンドも Fortran 版と名前が重ならないようにして、
共存可能にする。
があります。今までの一連のネーミングから dclhogehoge は
cdclhogehoge とすればいいのでは? dclfrt については、frt が
Fortran の意なので cdclfrt は今いちですね。これは現在のように
dclcc でいいでしょう。ただ、それだけだと他のコマンドやライブラリー
とプレフィックスが違うので、別名を "cdcl" にしてはどうでしょう(シ
ンボリックリンクでなくコピーでいいです。win で面倒のないように)。
なお、現在 C 版では dclcc と dclfrt が両方インストールされるよう
になってますが、後者は動く保証がないでしょう? インストールされ
ないようにしてください。
以上、ポイントは、
(1) ./configure, make, make install でちゃんと使えるもの
がインストールされないとならない
(現状では各人が不具合に合わせて手を加えないとならない
ですが、その状態のままでは駄目です)
(2) 諸々の名前は確定すべき。(基本はプレフィックスを
dcl -> cdcl)
です。
さらに、その後でいいですが、configure では Fortranコンパイラーを
チェックしないようにすべきと思います。実際には使ってないのですか
ら、Fortranコンパイラーを持ってない場合、そこで止られたらかない
ません。また、リストにある
make でお膳立てがすべて出来て、test が OK で、どんな
名前のファイルがインストールされそうか把握した上で
make install 出来るようにする。(方針を決めた後)
も「普通のパッケージ」にするためには将来的に必要でしょう。これに
ついては、本家がそうなるのを待つというスタンスでもいいと思います。
最後に、C化は手作業を出来るだけ廃して自動化すべきと思います。
dclのカラーマップのフルカラー対応等、今も少しずつ本家が発展し
ています。自動化されてれば C 版もそれにあわせて気軽に更新できま
す。
堀之内 武 horinout@xxxxxx
京都大学宙空電波科学研究センター 611-0011 宇治市五ヶ庄