namazu-ml(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: namazu-1.3.1.0-pre-2 (Re: namazu-1.3.1.0-pre-1)
馬場@京大宇宙物理 です。
Date: Hajime BABA <baba@xxxxxxxxxxxxxxxxxxxxxx>
From: [namazu 22] Re: namazu-1.3.1.0-pre-2 (Re: namazu-1.3.1.0-pre-1)
Subject: Tue, 02 Feb 1999 23:23:27 JST
> > >ということで、昨日 pre-1 をベースに、手元で適当に変更してみたもの
> > >があります。ついでに automake を使うようにしました。もし使うようで
> > >したらお送りしますので、言ってくださいませ。>高林さん
> > ぜひ送ってくださいませ。 > 馬場さん
> はい、では私信で送ります。ちょっと整理するので、しばらく待ってね。
コメントを整理していたら意外に長くなってしまって、高林さん一人に送
るのはもったいなくなった :-) ので、コメントだけMLに投げてみます。
はたして誰が見るのか不明ですが、もしも参考になれば幸いです。
変更したソースコードはでかくて迷惑ですので、高林さんだけにお送りし
ます。これは適当にマージしていただいて、pre3 で見ることにしませう。
--
馬場 肇 ( Hajime BABA ) E-mail: baba@xxxxxxxxxxxxxxxxxxxxxx
京都大学理学部宇宙物理学教室 博士課程二回生
--
やったこと:
・GNU coding standards に従うようにファイル名を変更し
(ToDo -> TODO, README.en -> README)、いくつかのファイル
(AUTHORS, NEWS, THANKS) のダミーを新設
・install-sh, missing, mkinstalldirs を他のツールからコピー
・src/configure.in を移動し、automake を使うように編集
変更点は基本的に先頭付近と最後のあたり
・Makefile.am, src/Makefile.am を手で新規作成、
src/Makefile.am はもとの src/Makefile.in を適当に編集したもの
C でしか使っていない変数は、config.h で定義するように変更し、
src/Makefile.am からは削除
・config.h を生成し、これを利用するように src/namazu.h を編集
config.h の生成には acconfig.h が必要なので、これは手で新規作成
・src/namazu.h, src/message.c と conf.pl.in を
src/Makefile 中の定義の VERSION を利用するように編集
・ファイル "VERSION" は自動生成するように変更
くらいかな。そして、
% automake
% automake src/Makefile
% aclocal
% autoconf
% autoheader
としました。これで、Makefile.in, config.h.in, src/Makefile.in,
configure がそろいます。ここまでくれば、あとは基本的に make 以外の
コマンドは打たなくてもいいです。
% ./configure
% make dist
すれば、配布パッケージ namazu-@VERSION@.tar.gz ができます。また、
% make distclean
すれば、生成されるファイルは全部消去されます。automake を使えば、
clean,distclean,install,dist などが一般的・直感的になるので、かな
り便利になるんじゃないかとおもいます。make uninstall も、限定的で
すができるようになります。
@VERSION@ を定義しているところは、configure.in の先頭付近の
AM_INIT_AUTOMAKE(namazu, 1310pre1-am)
という行です。この '1310pre1-am' を変更するだけで、VERSION と、バ
イナリ中に埋め込まれるバージョン番号と、tar-ball の名前を変えるこ
とができます。
# ただし、autoconf,automake をインストールしておく必要あり。
また、ソースコードが増えたり減ったりしたときは、src/Makefile.am の
先頭付近を編集します。そして、make すれば、勝手に Makefile.in と
Makefile, config.h などの依存関係を考えて再生成してくれます。
automake はいちおう CYGNUS GNUwinでの動作も考えているようですから
(というか、automake は cygnus で開発されていますから)、Makefile の
統合というのは、まだ詳しくは見ていませんし良く分かっていませんが、
可能ではないかとおもいます。
なお、僕の改造だと、細かい問題点はいくつかあるかとおもいます。これ
は僕が最近の namazu のコードについていっていない部分があるのと、
automake/autoconf に不馴れな部分があるのと、両方だとおもうので、適
宜修正してやっていただければとおもいます。
それから、以下は完全に蛇足なのですが、GNU coding standards と他の
GNU ツールなどを見ていて、もっと generic にするにはどうすればいい
か、という僕なりのコメントです。GNU coding standards は info で見
られます。
AUTHORS は GNU coding standards で要求されています。とりあえず、高
林さんの名前とメールアドレスだけを入れておきました。
ChangeLog は、C-x 4 a (add-change-log-entry-other-window) で書かれ
る形式にする方がいいようにおもいます。
INSTALL は、ndtpd のソースコードの INSTALL, INSTALL-ja をコピーし
て最後の方を編集すれば、なお良くなるでしょう。
NEWS は、GNU coding standards で要求されているファイルです。これに
はフォーマットがあるようですが、それにしたがって書かれているのは少
なく、mule と lookup くらいしかまだ見たことはありません。自由な形
式で書いておくといいでしょう。
README も GNU coding standards で要求されてます。とりあえず
README.en を rename しておきましたが、あるいは README.ja を README
としても良いかもしれません。その場合は、Makefile.am の EXTRA_DIST
をいじってください。
THANKS は、GNU coding standards の必須のファイルではありません。し
かし recommended なものです。まあ、doc/ 以下に書いてあるから不要だ
という考え方もできますので、必要なければ削除してください。
ToDo は、TODO と書くことが推奨されているようです。これもGNU coding
standards で要求されています。
ファイル VERSION は、とりあえず入れておきましたが、個人的には不要
だとおもいます。そしたら、Makefile.am の all-local: は削れます。
また、Makefile.am でコメントに書いてますが、別にインストールせんで
もいいんじゃないかとおもうファイルがあります。
src/Makefile.am 中で、sed を使って Perl スクリプトを置換する時は、
スクリプト内部では%VER% よりも@VAR@ とする方がどちらかというと一般
的であるようです。ただし、これについては数が多かったので、一部しか
いじっていません。
@OPT_PERL@ を置換するより、単に @PERL@ を置換するように、*.pl を書
き換えると良いかとおもいます。このあたり ndtpd のソースコードが良
いでしょう。
mknmz では $conf::VERSION を参照するようになっていますが、これより
は、sed による置換で、mknmz のソースコードの内部に「埋め込む」方が
いいです。外部にバージョンを持つと混乱する場合があるからです。
... 他にもまだあるのかもしれませんが、ま、こんなところです。
あとは automake/autoconf のグルーの意見を待ちたいとおもいます。