人気ブログランキング | 話題のタグを見る

Cabal User Guide 5 (Building and installing packages)

前へ 目次 次へ

Cabal User Guide > Building and installing packages

setup build

パッケージのインストールを準備するために必要なプリプロセッシングやコンパイルをする。

このコマンドにはつぎのようなオプションがある。

–prog-options=options, –prog-option=option

これらのオプションはほとんどが configure ステップのものと同じである。configure ステップで指定されたオプションと違って、ビルド・ステップで使われるオプションはそのステップ限りのものだ。ビルド・ステップで指定されるオプションはそれに加えて、configure ステップで設定されたオプションを上書きしない。

setup haddock

パッケージの文書を haddock を使ってビルドする。デフォールトでは公開されるモジュールに関する文書のみが作成される。(しかし、下記の --executables と --internal フラグを使えばその限りではない。)

このコマンドにはつぎのようなオプションがある。

--hoogle

dist/doc/html/pkgid.txt ファイルを生成する。このファイルは Hoogle によって検索用のデータベースに変換される。このオプションは haddock を --hoogle フラグで起動するのと同じ動作をする。

--html-location=url

パッケージに必須のHTML 文書の場所に関するテンプレートを指定する。個々のパッケージの文書を納める位置を得る(listing 参照)ために、テンプレートに記述されている URL の置き換えが行われる。この処理は発生させた文書にハイパーリンクを設定するのに利用される。例えば、次のようなコマンドは Hackage のページへのリンクを生成する。

setup haddock –html-location=‘http://hackage.haskell.org/packages/archive/$pkg/latest/doc/html’

引数はシェルによる置き換えを防ぐため引用符で囲む必要がある。このオプションが省略された場合、個々のパッケージの位置の情報はパッケージツール (ghc-pkg) を利用して取得される。

--executables

実行可能プログラムから利用される全てのモジュールに関して haddock を使って文書を作成する。デフォールトでは haddock は export されたモジュールに関してのみ文書を作成する。

--internal

全てのモジュールに対して haddock による文書を作成する。この場合、export されていないシンボルに対しても文書が作成される。

--css=path

引数のパスは CSS ファイルのパスを指定する。パスの情報は haddock に渡され、生成する HTML 文書のスタイルをきめる。このオプションは haddock のデフォールトの CSS を上書きするときにのみ必要である。

--hyperlink-source

haddock の文書を HsColour と統合して生成する。最初に、HsColour が起動されカラー化されたコードを生成する。次に haddock が起動して HTML 文書を生成する。HTML 文書の項目はカラー化されたコードの定義へとリンクされる。

--hscolour-css=path

引数のパスは CSS ファイルのパスを指定する。これは、 HsColour に次のように渡される。

runhaskell Setup.hs hscolour –css=path

setup hscolour

HsColour を使ってカラー化されたコードの HTML 文書を生成する。export されたモジュールのカラー化コードは /dist/doc/html/pkgid/src に置かれる。

このコマンドでは次のオプションが利用できる。

--executables

HsColour を実行プログラムに対しても適用する。カラー化されたコードは dist/doc/html/pkgid/executable/src ディレクトリに入れられる。

--css=path

生成された HTML ファイルに対し path で指定した CSS を使う。CSS ファイルはカラー化されたコードに使う色の定義をしている。この動作は指定された CSSファイルを hscolour.css にリネームしてコピーすることで実現させるので、生成された HTML ファイルにリンクを作成するわけではないことに注意が必要。

setup install

パッケージのコンパイル後のファイルを、インストール・ロケーションにコピーし、ライブラリの場合はコンパイラにパスを登録する。ライブラリは登録されるとプログラムから使うごとができるようになる。

コンパイルされたファイルのインストール場所は、setup configure のオプションで決められる。

このコマンドでは次のオプションが利用できる。

--global

このパッケージをシステム全体のデータベースに登録する。これはデフォールトの動作で、configure コマンドで --user オプションが使われないかぎり、システム・データベースへ登録されることになる。

--user

パッケージがユーザのローカル・パッケージ・データベースに登録される。このオプションは、configure command が --user オプションで実行された場合はデフォールトになる。

setup copy

ファイルをコピーするがパッケージをデータベースに登録しない。このコマンドは主にバイナリ・パッケージを作るときに使われる。

このコマンドでは次のオプションが利用できる。

--destdir=path

インストールするファイルを置くディレクトリを path で指定する。このオプションが使われていない場合、root ディレクトリが使われる。

setup register

パッケージをコンパイラに登録する。つまり、プログラムから利用可能なモジュールを作成する。このコマンドは、ライブラリ・パッケージにのみ有効だ。この動作は install コマンドに組み入れられているので注意が必要だ。このオプション個別に使うのは、バイナリ・パッケージをインストールしたあとの処理をするときだ。

このコマンドでは以下のオプションが利用可能だ。

--global

パッケージをシステム・データベースに登録する。(デフォールト)

--user

パッケージをユーザのローカル・データベースに登録する。

--gen-script

パッケージを register する代わりに、register の動作を行うコマンドを含むスクリプトを生成する。Unix ではこのスクリプトは register.sh である。Windows では register.bat になる。このスクリプトは binary bundle の tarball に含まれていることがおおい。bundle をターゲットのシステムで解凍した後、このスクリプトを起動するとパッケージの register とインストールができる。

--gen-pkg-config[=path]

パッケージをインストールする代わりに、package registration file を作成する。このオプションはコンパイラが package registration file をサポートしている場合にのみ有効だ。そのようなコンパイラは、今のところ GHC のみである。このようなファイルはコンパイラのパッケージを register する機能のために使われる。可能限りこのオプションの代わりに --gen-script オプションを使った方が良い。そのほうが、多くの Haskell 実装に対してポータブルなパッケージにする事ができる。パラメータの path は追加選択的なもので、特別の出力ファイルを生成する場合に使用する。それ以外は、デフォールトで生成されるファイルの名前はパッケージ名、バージョン、 .conf 拡張子からなっている。

--inplace

パッケージをビルド・ツリーから直接使えるように register する。この場合バイナリファイルのインストールを行う必要はない。この機能はテストの際に有用だ。それはソースを変更してもインストールをやり直す必要がないからだ。したがって、そのままリコンパイルしてテストすることができる。

このフラグは build-tree-local のパッケージ・データベースは生成しない。しかし、パッケージをユーザやグローバルのデータベースに register する。

しかしながら、このオプションには注意点がある。このオプションは (現在の所) GHC でしか働かない。またパッケージのプログラムが補助的なファイルに依存していない場合にのみ有効だ。つまり、プログラムが基本的な Haskell ライブラリに依存しているだけなら有効だ。

setup unregister

パッケージのコンパイラへの登録を抹消する。

このコマンドでは以下のオプションが利用可能である。

--global

パッケージをシステム・データベースから削除する。(デフォールト)

--user

パッケージをユーザのローカル・パッケージ・データベースから削除する。

--gen-script

パッケージの登録抹消をする代わりに、登録抹消を実行するスクリプトを生成する。Unix ではこのファイルは unregister.sh で、Windows では unregister.bat だ。このスクリプトは binary bundle に含まれている場合がある。ターゲットシステムでパッケージの登録抹消を実行するためだ。

setup clean

configure, build, haddock, register, ungegister ステップの間に生成されたローカル・ファイルを削除する。また、extra-temp-files フィールドに記述されていた、ファイルやディレクトリも削除する。

このコマンドでは以下のオプションが利用可能である。

--save-configure or -s

configure 情報を残す、こうすることでビルドを繰り返す際に configure ステップを省略できる。

setup test

パッケージ設定ファイル (.cabal ファイル) に記述されているテスト・スーツを実行する。後述するフラグは別として、Cabale は1個以上のテスト・スーツの名前を、コマンドラインの test コマンドの後に指定する事ができる。テスト・スーツの名前が指定された場合、Cabal は名前を指定されたテスト・スーツのみを実行する。それ以外は、Cabal はパッケージ設定ファイルに記述された全てのテストを実行する。

--builddir=dir

Cabal が生成した build file を置くディレクトリを指定する (デフォールト: dist)。テスト結果のログは test サブディレクトリに置かれる。

--human-log=path

人間が読めるテスト・ログのためのテンプレートを指定する。path は dist/test ディレクトリに対する相対パス名を指定する。デフォールトでは、ログは $pkgid-$test-sute.log テンプレートによって命名される。そのため、個々のテスト・スーツはそれぞれの人間に可読なログ・ファイルに記録される。テンプレートに使える変数は、$pkgid, $compiler, $os, $arch, $test-sute, および $result だ。

--machine-log=path

機械判読のログのパスだ。path は dist/test からの相対パスだ。デフォールトのテンプレートは $pkgid.log だ。テンプレートの変数としては、$pkgid, $compiler, $os, $arch および $result を使う事ができる。

--show-details=filter

filter によって個々のテスト・ケースの結果を端末に表示するかどうかを決める。filter には always (いつも表示する)、never (いつも表示しない)、および failures (テスト・スーツで失敗したケースだけを表示する)がある。

--test-options=options

テストの実行ファイルに付加的なオプションを与える。

--test-option=option

テストの実行ファイルに付加的なオプションを与える。このオプション指定では単一のオプションを指定できるだけなので、オプションに引用符で囲まれた空白区切りのオプションリストを使う必要がない。また、オプションを空白文字で区切ることはできない。

setup sdist

システムやコンパイラーによらないソースの配布を package-version.tar.gz 圧縮ファイルに作成する。作成されたファイルは dist サブディレクトリに置かれる。パッケージ制作者はそのファイルを配布できる。パッケージファイルが解凍されたときは、このセクションのリストでのべたコマンドが利用できる。

この配布用ファイルに含まれるのは、package description file (.cabal), setup スクリプト, package description file に記述されたモジュールのソース・ファイル, それから、.cabal ファイルの各フィールド、すなはち、license-file, main-is, c-sources, data-files, extra-sours-files および extra-html-files フィールドで指定されるファイル群だ。

このコマンドでは次のようなオプションが使用可能だ。

--snapshot

パッケージファイルの作成日 (YYYYMMDD の形式) をソースパッケージのバージョン番号に付加する。オリジナルのパッケージは影響をうけない。
by tnomura9 | 2013-11-04 09:05 | Haskell | Comments(0)
<< Superfly Cabal User Guid... >>