Gauche:ExtensionBuildHelper
Motivation
CPANみたいに、コマンド一発で拡張モジュールがダウンロード-ビルド-インストール
できるシステムをいずれ作る。そのためには、
- Net上のアーカイブ
- 認証機構
- ローカルでuntar+configure+make+make installするシステム
が必要だ。
それぞれ慎重な設計が必要だけど、ここでは3番目の、持ってきたtarballから
ビルドしてインストールするところに手をつける。
今でも、Gaucheのバージョンを上げるとインストールしてある拡張モジュールを
リコンパイル+リインストールしなくちゃならいので、
そこが自動化できるだけでも便利。
Issues
- パッケージ管理はどうする?
- 既にinstallされたパッケージ名
- そのconfigureオプション
- 依存関係
- 権限管理
- make install時に特権が必要。
- パッケージデータベースを集中管理するならそれへの書き込みも。
- でもconfigure+makeはユーザーの普通の権限でやりたいよなあ。
gauche-packageスクリプト
(2004/05/04 18:27:03 PDT)
Gauche-0.8につく予定。既にCVSには入っている。
- ダウンロード, untar, configure, make, make installを自動化。
- configure optionはコマンドライン経由で渡せる。
- make install時だけsudo経由も可能。
- パッケージメタ情報管理
- パッケージごとに、$(library_path)/.package/${PACKAGE}.gpd
というテキストファイルで管理 (gpd = gauche package description)。
$(library_path)は*load-path*でスキャンされる。パッケージ別のテキスト
ファイルであることにより、別のパッケージシステム (rpm等) との親和性が
高い (特別なデータベースを経由しなくても、ファイルを置くだけでエントリ
ができる)。
- 当面、configure時のオプションを覚えておく。reconfigureのために。
- メタ情報はオプショナル。無くてもかまわない。既存のパッケージの
移行のために。
(2005/07/03 15:13:29 PDT)
Gauche-0.8.6より、gauche-packageで拡張パッケージの作成支援も行う。
既にCVSには入っている。
- gauche-package generate package-name
パッケージのスケルトン作成
- gauche-package compile package file.c file2.c filelib.stub ...
パッケージのコンパイルとリンク
Last modified : 2005/07/03 22:13:29 UTC