portfile(7)
提供:Beginning OS X
| PORTFILE(7) | BSD Miscellaneous Information Manual | PORTFILE(7) |
目次 |
[編集] 名前
- Portfile -- MacPorts のデスクリプションファイルに関するリファレンス
[編集] 概略
- Portfile で利用可能な全ての変数と、その例文に関する完全なリファレンスです。Portfiles は正しい TCL 文で構成され、単純なキー/バリューのペアからなる文法や、TCL の拡張機能を使うことができます。Portfiles は UTF-8 でエンコードされます。
- MacPorts は依存/提供モデルに基づいたターゲットの依存関係システムを用いており、個々の要求に応じて、ターゲットを正しい順序で登録・実行することができます。
- Portfile の作者は、標準的なターゲット、それらが必要とするオプション、および、ターゲットと port システムの用意する各変数について、十分に理解しておかなくてはなりません。
[編集] PORTSYSTEM
- Portfiles は、Portfile のインタープリタのバージョンを指定する PortSystem 行から始まらなくてはなりません。
- Synopsis:
- PortSystem 1.0
[編集] メイン変数
- ports 中では、いくつかの変数を設定する必要があります。
- name
- port のフルネームを示します。
- Type: required
- Example:
- name XFree86
- version
- ソフトウェアの上流バージョンを示します。
- Type: required
- Example:
- version 4.2.1
- epoch
- port のバージョン番号変更時に、新しいバージョンが以前のバージョンよりも古いものであるように見えてしまう場合には、epoch の値を増やすことで対処できます。epoch の値は、日付のようなフォーマットを持つことが多いです。
- Type: optional
- Default: 0
- Example:
- epoch 20041231
- description
- ソフトウェアの内容に関する一行説明文です。説明文中では、ブラケットとセミコロンはバックスラッシュでエスケープする必要があります。(すなわち、"\[", "\]" および "\;") と書かなければなりません。) re_syntax(n) 中のエスケープシーケンスは、\n, \r および \f を除き利用できます。
- Type: required
- Example:
- description Dictionary Server Protocol (RFC2229) client
- long_description
- ソフトウェアの内容に関する、より長い説明文です。説明文中では、ブラケットとセミコロンはバックスラッシュでエスケープする必要があります。(すなわち、"\[", "\]" および "\;") と書かなければなりません。) re_syntax(n) 中のエスケープシーケンスは、\n, \r および \f を除き利用できます。
- Type: required
- Example:
- long_description The GNU Image Manipulation Program \
- (GIMP) is a powerful tool for the preparation and \
- manipulation of digital images. The GIMP provides \
- the user with a wide variety of image manipulation, \
- painting, processing, and rendering tools.
- long_description The GNU Image Manipulation Program \
- notes
- port の設定や利用に関するノートを書きます。port をアクティベートしたとき、及び notes コマンドが使われた際に表示されます。
- port notes python26
- ui_msg の代わりに notes を使う利点としては、ui_msg がインストールの最中にしか表示されないのに対し、port のインストール後にも問い合わせをおこなうことが出来るところにあります。ですから、インストール後に必要となるインフォメーションなら何でも notes に書いておきましょう。
- Type: optional
- Example:
- notes To fully complete your installation and make python \
- ${branch} the default, please run: \
- sudo port install python_select \
- sudo python_select ${name}
- notes To fully complete your installation and make python \
- port の設定や利用に関するノートを書きます。port をアクティベートしたとき、及び notes コマンドが使われた際に表示されます。
- revision
- Portfile のローカルなリビジョン番号です。いかなる場合にも、インストールされる内容に変化が生じる場合には、port のリビジョン番号を増やしてください。
- Type: optional
- Default: 0
- Example:
- revision 1
- categories
- port の属するカテゴリを示します。
- Type: required
- Example:
- categories spelling textproc
- maintainers
- port のメンテナの E-mail アドレスを示します。
- Type: required
- Example:
- maintainers landonf@macports.org
- platforms
- port がサポートするプラットフォームを宣言します。
- Type: required
- Values: darwin freebsd
- Example:
- platforms darwin
- homepage
- port のプロジェクトホームページです。
- Type: required
- Example:
- http://wireshark.org
- master_sites
- distfiles の取得元となるサイト、もしくは事前に設定されてあるミラーサイトのリストです。サブディレクトリの設定が行われずにミラーサイトが設定された場合には、portname の内容がサブディレクトリ名として用いられます。
- Type: required
- Example:
- master_sites ftp://ftp.cdrom.com/pub/magic \
- sourceforge
- master_sites ftp://ftp.cdrom.com/pub/magic \
- worksrcdir
- workpath を基準とした、ソースディレクトリのパスです。
- Type: optional
- Default: ${distname}
- Example:
- worksrcdir ${distname}-src-${version}
- distname
- extract.suffix を省いた、ソフトウェアの配布ファイルの名前です。
- Type: optional
- Default: ${name}-${version}
- Example:
- distname ${name}-${version}-src
- checksums filename type checksum [filename type checksum ...]
- distfiles のチェックサムに関するリストです。チェックサムの type としては現在、md5, rmd160 または sha1 が利用できます。配布ファイルが一つしかない場合には、filename を省略することもできます。
- Type: required
- Example:
- checksums dictd-1.7.1.tar.gz md5 81317b86ea0a5df0163900ad2e6bb12c \
- magic-words-1.7.1.tar.gz md5 897a005182928613eadd30c267ce9c5b
- checksums dictd-1.7.1.tar.gz md5 81317b86ea0a5df0163900ad2e6bb12c \
- Example (ledit 1.11):
- checksums md5 a2d38ba641682509c1e964ad699a9dd2 \
- sha1 1fb6443b5fdf3c83787953f06282d256477c1288
- checksums md5 a2d38ba641682509c1e964ad699a9dd2 \
- Example (ssldump 0.9b3):
- checksums md5 ac8c28fe87508d6bfb06344ec496b1dd \
- sha1 a633a9a811a138eac5ed440d583473b644135ef5 \
- rmd160 941cf8f2ef8459ec4f9ce65772e134505d46566
- checksums md5 ac8c28fe87508d6bfb06344ec496b1dd \
- macosx_deployment_target
- configure スクリプトを実行する際の MACOSX_DEPLOYMENT_TARGET 環境変数の値です。
- Type: optional
- Default: (current OS version)
- Example:
- macosx_deployment_target 10.4
- use_parallel_build
- yes を設定すると(および macports.conf 中で buildmakejobs を有効にすると)、port は一つ以上のジョブを使ってビルドされるようになります。
- Type: optional
- Default: no
- Example:
- use_parallel_build yes
- use_automake
- yes を設定すると、configure 用の Makefile.in ファイルを作成するために automake ターゲットが実行されます。
- Type: optional
- Default: no
- Example:
- use_automake yes
- use_autoconf
- yes を設定すると、configure スクリプトを作成するために autoconf ターゲットが実行されます。
- Type: optional
- Default: no
- Example:
- use_autoconf yes
- use_configure
- yes を設定すると、ビルドの設定をおこなうために configure ターゲットが実行されます。
- Type: optional
- Default: yes
- Example:
- use_configure no
- copy_log_files path/to/logfile1 path/to/logfile2 ...
- 指定したログファイルを workdir から macports のログディレクトリにコピーします。
- Type: optional
- Example:
- copy_log_files config.log
- conflicts
- conflicts 宣言は、その port とコンフリクトする内容を含む ports を列挙するのに使われます。
- Type: optional
- Default: none (empty)
- Example:
- conflicts cdrtools
- replaced_by
- ある port が廃止となり、他の port で代替される場合には、廃止側の port で replaced_by を使い、新しく導入されるべきものを指定します。
- Type: optional
- Default: none (empty)
- Example:
- replaced_by xorg-renderproto
- add_users
- ユーザ名と設定のリストから構成されます。port のインストールプロセス中の適切な時点で、ユーザ名毎に、対応する設定内容に沿ってユーザが生成されます。設定は name=value の形態でおこないます。設定内容は、リスト中の直近のユーザ名に対して適用されます。
- 適用可能なオプション: group, gid (group の代わりに利用可能), passwd, realname, home, および shell
- Type: optional
- Default: none (empty)
- Example:
- add_users squid group=squid realname=Squid\ Proxy home=${prefix}/var/squid
- add_users user1 group=mygroup user2 group=mygroup
- installs_libs
- デフォルトでは、ライブラリやヘッダをインストールする ports と、それに依存する他の ports とは、一体のものでなければならないとみなされます。もしそうでなければ、installs_libs を no に設定してください。これは、この ports に依存する他の ports において、それらと同じアーキテクチャとしてこの port がインストールされているかどうかのチェックをする必要がないということを意味します。また、ライセンスのコンフリクトが生じる場合であっても、バイナリの配布を許可するということを意味します。加えて、この port のアップデートが、依存する他の ports に対して、ダイナミックリンクの破損を決して引き起こさないということを意味します。
- Type: optional
- Default: none
- Example:
- installs_libs no
[編集] ターゲットフック
- フックを利用することで、port(1) の実行する多くの標準的なターゲットをカスタマイズすることができます。これらのフックをサポートするターゲットには、fetch, automake, autoconf, configure, build, destroot, および test があります。各フックについては次のとおりです。
- target.asroot
- target を root の権限で実行します。
- Example:
- install.asroot yes
- target.dir
- target を実行する際のディレクトリを指定します。
- Example:
- automake.dir src
- target.env
- target 実行時の環境変数を変更します。Portfile ごとの基本設定によって、上書きされてしまうことがあります。
- Example:
- configure.env CPP=/usr/bin/cpp-4.0
- target.pre_args
- メインの引数の前に渡される追加の引数を書きます。
- Example:
- extract.pre_args -cd
- target.args
- target に渡されるメインの引数を書きます。Portfile ごとの基本設定によって、上書きされてしまうことがあります。
- Example:
- configure.args --enable-fooble
- target.post_args
- メインの引数の後に渡される追加の引数を書きます。
- Example:
- extract.post_args | tar xf -
[編集] ランタイム変数
- MacPorts の設定に関しては、読み出し専用のものもあります。
- prefix
- インストール時の prefix です。
- Type: optional
- Default: /opt/local
- libpath
- ports 専用の TCL ライブラリの場所を示します。
- Type: read-only
- portpath
- Portfile の存在する場所へのフルパスです。
- Type: read-only
- Default: work
- workdir
- portpath を基準とした、作業ディレクトリへのパスを示します。可能であれば、代わりに workpath を利用してください。
- Type: read-only
- Default: work
- workpath
- 作業ディレクトリへのフルパスです。
- Type: read-only
- Default: ${portbuildpath}/work
- worksrcpath
- 作業対象となるソース (port がソースファイルを展開した場所) へのフルパスです。
- Type: read-only
- Default: ${workpath}/${worksrcdir}
- filesdir
- portpath を基準とした、port ファイルへのパスです。
- Type: read-only
- Default: files
- filespath
- port ファイルがある場所へのフルパスです。
- Type: read-only
- Default: ${portpath}/${filesdir}
- distpath
- ダウンロード済みの distfiles が格納される場所です。
- Type: read-only
- Default: ${sysportpath}/distfiles/${dist_subdir}/
- os.arch
- ハードウェアのタイプを表します。(たとえば "powerpc")
- Type: read-only
- os.version
- オペレーティングシステムのバージョンです。(たとえば "7.0")
- Type: read-only
- os.major
- オペレーティングシステムのメジャーバージョンです。(たとえば "7")
- Type: read-only
- os.endian
- プロセッサのエンティアンを表します。(たとえば "big")
- Type: read-only
- os.platform
- オペレーティングシステムの名前を表します。(たとえば "darwin")
- Type: read-only
- os.subplatform
- オペレーティングシステムのバリアント名を表します。(たとえば "macosx")
- Type: read-only
- install.user
- MacPorts をインストールする際のユーザ名を表します。(たとえば root)
- Type: read-only
- install.group
- MacPorts をインストールする際のグループを表します。(たとえば wheel)
- Type: read-only
- applications_dir
- Mac OS X のアプリケーションバンドル (.app ディレクトリ) をインストールする最終位置の絶対パスを表します。
- Type: read-only
- Default: /Applications/Macports
- frameworks_dir
- Mac OS X のフレームワークバンドル (.framework ディレクトリ) をインストールする最終位置の絶対パスを表します。
- Type: read-only
- Default: ${prefix}/Library/Frameworks
[編集] 依存関係のオプション
- Port の依存関係は、可能である限り他の MacPorts の ports を参照する形でおこなわれるべきです。したがって、各依存関係は以下のフォーマットで表現されるべきです。
- port:<port>
- <port> の部分には、MacPorts における既存の port 名が入ります。もし MacPorts の port で依存関係を満たすことが現実的でない場合や、Apple のソフトウェアを追加インストールすることにより依存関係が満たされる場合には、以下の代替的な依存関係のフォーマットを使うことができます。
- type:<filename>:<port>
- <filename> がプログラムである場合には、type は "bin" となり、ライブラリであれば "lib"、インストール済みのファイルに対するパスであれば "path" とします。
- Example:
- lib:libX11.6:XFree86
- depends_fetch
- fetch, checksum, extract, patch, configure, build, destroot, install, および package ターゲットの前にチェックされるべき依存関係のリストです。
- Type: optional
- Example:
- depends_fetch port:mercurial
- depends_extract
- extract, patch, configure, build, destroot, install, および package ターゲットの前にチェックされるべき依存関係のリストです。
- Type: optional
- Example:
- depends_extract port:xz-devel
- depends_build
- configure, build, destroot, install, および package ターゲットの前にチェックされるべき依存関係のリストです。
- Type: optional
- Example:
- depends_build port:autoconf
- depends_run
- destroot, install および package ターゲットの前にチェックされるべき依存関係のリストです。インストールの際には、依存関係を持つ port からの要求によってインストールされた旨がレジストリに記録されます。
- Type: optional
- Example:
- depends_run port:bash
- depends_lib
- configure, build, destroot, install, および package ターゲットの前にチェックされるべき依存関係のリストです。インストールの際には、依存関係を持つ port からの要求によってインストールされた旨がレジストリに記録されます。
- Type: optional
- Example:
- depends_lib port:libfetch
[編集] FETCH オプション
- 全ての配布ファイルとパッチを取得します。
- master_sites.mirror_subdir
- master_sites で指定されたリスト中の全てのミラーサイトにおいて、追加されるサブディレクトリ名を指定します。
- Type: optional
- Default: ${name}
- Example:
- master_sites.mirror_subdir magic
- patch_sites
- patchfiles を取得する元サイトのリスト、もしくは既存ミラーサイトのリストです。
- Type: optional
- Default: ${master_sites}
- Example:
- patch_sites ftp://ftp.patchcityrepo.com/pub/magic/patches
- patch_sites.mirror_subdir
- patch_sites で指定されたリスト中の全てのミラーサイトにおいて、追加されるサブディレクトリ名を指定します。
- Type: optional
- Default: ${name}
- Example:
- patch_sites.mirror_subdir magic
- extract.suffix
- distname に追加される拡張子を指定します。
- Type: optional
- Default: .tar.gz
- Example:
- extract.suffix .tgz
- distfiles
- master_sites から取得すべき配布ファイルのリストです。
- Type: optional
- Default: [suffix ${distname}]
- Example:
- distfiles magicsource.tar.gz cluebat.tar.bz2
- patchfiles
- 取得し、適用すべきパッチファイルのリストです。
- Type: optional
- Example:
- patchfiles japanese-widechar-fix.diff japanese-localization.diff
- use_zip
- zip を使います。
- extract.suffix を .zip に設定します。
- extract.cmd を unzip に設定します。
- extract.pre_args を -q に設定します。
- extract.post_args を "-d ${workpath}" に設定します。
- Type: optional
- Example:
- use_zip yes
- use_bzip2
- bzip2 を使います。
- extract.suffix を .bz2 に設定します。
- extract.cmd を bzip2 に設定します。
- Type: optional
- Example:
- use_bzip2 yes
- use_lzma
- lzma を使います。
- extract.suffix を .lzma に設定します。
- extract.cmd を lzma に設定します。
- Type: optional
- Example:
- use_lzma yes
- use_xz
- xz を使います。
- extract.suffix を .xz に設定します。
- extract.cmd を xz に設定します。
- Type: optional
- Example:
- use_xz yes
- use_7z
- 7z を使います。
- extract.suffix を .7z に設定します。
- extract.cmd を 7za に設定します。
- Type: optional
- Example:
- use_7z yes
- dist_subdir
- 取得したファイルを格納するため、distpath 内にサブディレクトリを作成します。
- Type: optional
- Default: ${name}
- Example:
- dist_subdir vim${version}
[編集] 高度な FETCH オプション
- ミラーからリソースを正しくダウンロードするために、特別なオプションが必要となる場合もあります。
- fetch.user
- リソースを取得する際に使う、HTTP または FTP のユーザ名を指定します。
- Type: optional
- fetch.password
- リソースを取得する際に使う、HTTP または FTP のパスワードを指定します。
- Type: optional
- fetch.use_epsv
- FTP の転送時に EPSV コマンドを使うかどうかを指定します。
- Type: optional
- Default: yes
- fetch.ignore_sslcert
- (HTTPS 時における) ホスト SSL 認証を無視するかどうかを指定します。
- Type: optional
- Default: no
[編集] CVS からのファイル取得
- 配布ファイルを取得する方法の一つとして、CVS レポジトリからのソースのチェックアウトが利用できます。但し、CVS を利用すると、常に同じビルド結果が得られるとは限らない場合も出てきますので、あまりお勧めはしません。
- cvs.root
- ファイルをチェックアウトする元となる CVS レポジトリのアドレスを指定します。
- Type: optional
- Default: none
- Example:
- cvs.root :pserver:anonymous@cvs.sv.gnu.org:/sources/emacs
- cvs.tag
- チェックアウトするソースコードを指定するための CVS タグです。
- Type: optional
- Default none
- Example:
- cvs.tag HEAD
- cvs.date
- チェックアウトするソースコードを指定するための日付です。
- Type: optional
- Default none
- Example:
- cvs.date "12-April-2005"
- cvs.module
- ソースコードをチェックアウトするための CVS モジュールを指定します。
- Type: optional
- Default none
- Example:
- cvs.module Sources
[編集] SUBVERSION からのファイル取得
- 配布ファイルを取得する方法の一つとして、subversion レポジトリからのソースのチェックアウトが利用できます。但し、subversion を利用すると、常に同じビルド結果が得られるとは限らない場合も出てきますので、あまりお勧めはしません。
- svn.url
- ファイルを取得する元となる url を指定します。
- Type: required
- Default: none
- Example:
- svn.url http://www.domain.com/svn-repo/mydirectory
- svn.url svn://www.domain.com/svn-repo/mydirectory
- svn.tag
- svn のどのバージョンからファイルを取得するかのタグを指定します。これは svn をコマンドラインで使った場合の -r オプションに対応しています。ブレースやダブルクォートといった、Tcl インタープリタで解釈される文字の含まれる場合には、バックスラッシュを使ってエスケープをおこなう必要がある点に注意してください。
- Type: optional
- Default: none
- Example:
- svn.tag 37192
- svn.tag \{\"2006-02-17 15:30 +0230\"\}
[編集] GIT からのファイル取得
- 配布ファイルを取得する方法の一つとして、git レポジトリからのソースのチェックアウトが利用できます。但し、git を利用すると、常に同じビルド結果が得られるとは限らない場合も出てきますので、あまりお勧めはしません。
- git.url
- ファイルを取得する元となる url を指定します。
- Type: required
- Default: none
- Example:
- git.url git://git.kernel.org/pub/scm/git/git.git
- git.url http://www.kernel.org/pub/scm/git/git.git
- git.branch
- git でチェックアウトするブランチ(または他のコミットされたもの)を指定します。
- HEAD 以外のブランチでは必ず先頭に origin/ を付けなければならない点に注意してください。
- Type: optional
- Default: none
- Example:
- git.branch 72bf1c8
- git.branch origin/next
[編集] EXTRACT オプション
- 圧縮/アーカイブ済みのファイルを全て展開します。
- extract.only
- workpath に展開するファイルのリストを書きます。
- Type: optional
- Default: ${distfiles}
- Example:
- extract.only worksrc-1.4.4.tar.gz
- extract.cmd
- 展開をおこなうためのコマンドを指定します。
- Type: optional
- Default: gzip
- Example:
- extract.cmd bzip2
- extract.mkdir
- 展開の前に worksrcdir を生成します。サブディレクトリを掘るのではなく、カレント作業ディレクトリに直接展開する ports に有用です。
- Type: optional
- Default: no
- Example:
- extract.mkdir yes
[編集] CONFIGURE オプション
- MacPorts には、configure フラグ (CFLAGS, LDFLAGS, CPPFLAGS, CXXFLAGS, CC, CXX, CPP, FC, F77, F90) に関する特別なサポートがあります。従来の方法 (configure.env を使用) を使ってこれらのフラグを書き換えるのは、いくつかの点で好ましくありませんので、注意してください。以下のオプションが用意されています。
- configure.optflags
- 最適化のために使われるフラグを指定します。
- Type: optional
- Default: -O2
- Example:
- configure.optflags -O3
- configure.cflags
- configure スクリプトを実行する際の CFLAGS 環境変数に設定するフラグを指定します。
- Type: optional
- Default: ${configure.optflags}
- Example:
- configure.cflags-append -DHAS_LRINTF
- configure.cppflags
- configure スクリプトを実行する際の CPPFLAGS 環境変数に設定するフラグを指定します。
- Type: optional
- Default: -I${prefix}/include
- configure.cxxflags
- configure スクリプトを実行する際の CXXFLAGS 環境変数に設定するフラグを指定します。
- Type: optional
- Default: ${configure.optflags}
- configure.objcflags
- configure スクリプトを実行する際の OBJCFLAGS 環境変数に設定するフラグを指定します。
- Type: optional
- Default: ${configure.optflags}
- configure.ldflags
- configure スクリプトを実行する際の LDFLAGS 環境変数に設定するフラグを指定します。
- Type: optional
- Default: -L${prefix}/lib
- configure.fflags
- configure スクリプトを実行する際の FFLAGS 環境変数に設定するフラグを指定します。
- Type: optional
- Default: ${configure.optflags}
- configure.f90flags
- configure スクリプトを実行する際の F90FLAGS 環境変数に設定するフラグを指定します。
- Type: optional
- Default: ${configure.optflags}
- configure.fcflags
- configure スクリプトを実行する際の FCFLAGS 環境変数に設定するフラグを指定します。
- Type: optional
- Default: ${configure.optflags}
- configure.classpath
- configure スクリプトを実行する際の CLASSPATH 環境変数に設定するフラグを指定します。
- Type: optional
- configure.cc
- configure スクリプトを実行する際の CC 環境変数に設定する C コンパイラを指定します。
- Type: optional
- Example:
- configure.cc /usr/bin/gcc
- configure.cpp
- configure スクリプトを実行する際の CPP 環境変数に設定する C プリプロセッサを指定します。
- Type: optional
- configure.cxx
- configure スクリプトを実行する際の CXX 環境変数に設定する C++ コンパイラを指定します。
- Type: optional
- configure.objc
- configure スクリプトを実行する際の CPP 環境変数に設定する Objective-C コンパイラを指定します。
- Type: optional
- Example:
- configure.objc ${prefix}/bin/gcc-mp-4.1
- configure.fc
- configure スクリプトを実行する際の FC 環境変数に設定する Fortran コンパイラを指定します。
- Type: optional
- configure.f77
- configure スクリプトを実行する際の F77 環境変数に設定する Fortran-77 コンパイラを指定します。
- Type: optional
- configure.f90
- configure スクリプトを実行する際の F90 環境変数に設定する Fortran-90 コンパイラを指定します。
- Type: optional
- configure.javac
- configure スクリプトを実行する際の JAVAC 環境変数に設定する Java コンパイラを指定します。
- Type: optional
- configure.compiler
- 利用するコンパイラ一式を選択します。このオプションはコンパイラ環境変数を指定された一式で上書きします。選択されたコンパイラパッケージへの依存関係は、わざと設定されていませんので注意してください。gcc-3.3 gcc-4.0 gcc-4.2 は標準のシステムコンパイラパッケージを、llvm-gcc-4.2 clang は Xcode によりインストールされる新しい非デフォルトのコンパイラを、apple-gcc-3.3 apple-gcc-4.0 apple-gcc-4.2 は MacPorts 経由でインストールされた Apple の gcc パッケージを、macports-gcc-3.3 macports-gcc-3.4 macports-gcc-4.0 macports-gcc-4.1 macports-gcc-4.2 macports-gcc-4.3 macports-gcc-4.4 macports-gcc-4.5 は MacPorts 経由でインストールされた素の gcc を使います。
- Type: optional
- Values: gcc-3.3 gcc-4.0 gcc-4.2 llvm-gcc-4.2 clang apple-gcc-3.3 apple-gcc-4.0 apple-gcc-4.2 macports-gcc-3.3 macports-gcc-3.4 macports-gcc-4.0 macports-gcc-4.1 macports-gcc-4.2 macports-gcc-4.3 macports-gcc-4.4 macports-gcc-4.5
- Example:
- configure.compiler gcc-4.0
[編集] UNIVERSAL ターゲットフック
- configure ベースの ports で universal バイナリを生成できるようにするため、特別なターゲットフックが用意されています。これらの内容は必要に応じて上書き可能です。なお、これらのフックはデフォルトの universal variant で利用されるものであり、variant の再定義をおこなった場合には反映されないという点に注意してください。
- configure.universal_args
- universal バイナリを生成するため configure スクリプトに追加する引数を指定します。
- Type: optional
- Default: --disable-dependency-tracking
- configure.universal_cflags
- configure スクリプトを実行する際の CFLAGS 環境変数に追加するフラグを指定します。
- Type: optional
- Default: -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc
- configure.universal_cppflags
- configure スクリプトを実行する際の CPPFLAGS 環境変数に追加するフラグを指定します。
- Type: optional
- configure.universal_cxxflags
- configure スクリプトを実行する際の CXXFLAGS 環境変数に追加するフラグを指定します。
- Type: optional
- Default: -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc
- configure.universal_ldflags
- configure スクリプトを実行する際の LDFLAGS 環境変数に追加するフラグを指定します。
- Type: optional
- Default: -arch i386 -arch ppc
[編集] BUILD オプション
- 必要なビルドコマンドを実行します。
- build.cmd
- worksrcdir をカレントディレクトリとして実行される make コマンドを指定します。
- Type: optional
- Default: make
- Example:
- build.cmd scons
- build.type
- 'gnu' と 'bsd' のうち、どちらの 'make' が必要となるのかを設定します。'xcode' (または非推奨の別名 'pbx') を選択することもできますが、これを直接指定するよりは xcode PortGroup を使うべきです。これにより、build.cmd は gnumake, bsdmake または xcodebuild のいずれかにセットされます。
- Type: optional
- Default: gnu
- Example:
- build.type bsd
- build.target
- build.cmd に渡されるターゲットを指定します。
- Type: optional
- Default: all
- Example:
- build.target all-src
[編集] DESTROOT オプション
- 一時的なデスティネーションルート ("destroot") 領域にインストールするのに必要なコマンドを実行します。
- destroot.cmd
- worksrcdir をカレントディレクトリとして実行されるインストールコマンドを指定します。
- Type: optional
- Default: ${build.cmd}
- Example:
- destroot.cmd pbxbuild
- destroot.destdir
- destroot にインストールをおこなううえで必要な、destroot.cmd に渡される引数を指定します。
- Type: optional
- Default: DESTDIR=${destroot}
- Example:
- destroot.destdir prefix=${destroot}${prefix}
- destroot.target
- destroot.cmd に渡されるインストールターゲットを指定します。
- Type: optional
- Default: install
- Example:
- destroot.target install-src
- destroot.umask
- destroot 中に使われる umask を指定します。
- Type: optional
- Default: 022
- Example:
- destroot.umask 002
- destroot.keepdirs
- destroot の終了時に、たとえ内容が空であっても削除されることのないディレクトリのリストを書きます。
- Type: optional
- Example:
- destroot.keepdirs ${destroot}${prefix}/var/log/mysql
- destroot.violate_mtree
- port が標準のディレクトリ構造を逸脱するか否かを指示します。mtree 違反のテスト (e. g. non-standard directories in ${prefix}) を有効または無効にします。標準の mtree については porthier(7) を参照してください。
- Type: optional
- Values: yes no
- Default: no
[編集] TEST オプション
- port に付属するテストコマンドを実行します。
- test.run
- port に付属するテストを実施するようにします。
- Type: optional
- Example:
- test.run yes
- test.cmd
- worksrcdir をカレントディレクトリとして実行されるテストコマンドを指定します。
- Type: optional
- Default: ${build.cmd}
- Example:
- test.cmd checks.sh
- test.target
- test.cmd に渡されるテストターゲットを指定します。
- Type: optional
- Default: test
- Example:
- test.target checks
[編集] STARTUPITEM オプション
- port がシステムのスタートアップ時に起動される必要がある場合には、MacPorts の startupitem キーワードを使って OS X のスタートアップスクリプトをインストールすることができます。スタートアップスクリプトの起動を有効にするには、port のインストール後にユーザが手動でおこなう必要があります。その方法に関しては、port のインストール中に表示されます。
- startupitem.create
- スタートアップアイテムを生成するかどうかを選択します。
- Type: optional
- Default: no
- Values: yes no
- Example:
- startupitem.create yes
- startupitem.type
- 生成するスタートアップアイテムののタイプを選択します。デフォルトでは、OS のタイプに合致したスタートアップアイテムが生成されます。具体的には、10.4 のシステムでは launchd が使われていますが、それ以前の Mac OS X システムでは SystemStarter が用いられています。グローバルなデフォルト設定は ports.conf の startupitem_type で指定することができます。
- Type: optional
- Default: default
- Values: SystemStarter launchd default rcNG
- Example
- startupitem.type launchd
- startupitem.name
- スタートアップアイテムの表示上の名前を指定します。
- Type: required
- Example:
- startupitem.name OpenSSH
- startupitem.executable
- バックエンドで起動されるデーモンの名前を指定します。startupitem.init, startupitem.start, startupitem.stop, および startupitem.restart を使って デーモンを起動する方法よりも好ましく、また、これらのオプションと同時に使うことはできません。このオプションは複数の引数を持つことができますが、それらは exec で呼び出せる必要があり、恣意的なシェルコードは書けません。
- Type: optional
- Values: /path/to/executable <args>
- Example:
- startupitem.executable ${prefix}/bin/wonka
- startupitem.init
- startupitem.start, startupitem.stop, および startupitem.restart のいずれよりも 早い段階で呼び出されるシェルコードを指定します。
- Type: optional
- Values: sh code
- Example:
- startupitem.init FOO=start
- startupitem.start
- デーモンを開始するためのシェルコードを指定します。
- Type: optional
- Values: sh code
- Example:
- startupitem.start ${prefix}/share/mysql/mysql.server start
- startupitem.stop
- デーモンを停止するためのシェルコードを指定します。
- Type: optional
- Values: sh code
- Example:
- startupitem.stop ${prefix}/share/mysql/mysql.server stop
- startupitem.restart
- デーモンを再起動するためのシェルコードを指定します。この指定がない場合には、デーモンは一旦停止ののち、続いて開始のアクションがおこなわれることで再起動されます。
- Type: optional
- Values: sh code
- Example:
- startupitem.restart ${prefix}/share/mysql/mysql.server restart
- startupitem.pidfile
- pid ファイルの扱いに関して指定します。これは startupitem.executable と同時に使うと、とりわけ有用です。というのも、startupitem がデーモンの起動状態をどのように追跡するかを知っておくことは大変重要であるからです。デーモンが自分自身で pid ファイルを生成する場合 (auto)、デーモンは自分自身で pid ファイルを生成するが、削除するのを忘れており、startupitem 側で削除しなければならない場合 (clean)、もしくは、デーモンは自分自身で pid ファイルを生成せず、startupitem が独自に pid ファイルを管理しなければならない場合 (manual)、または、pid ファイルは全く使用しない場合 (none) のいずれかを指定できます。
- Type: optional
- Default: none ${prefix}/var/run/${name}.pid
- Values: none|auto|manual|clean [/path/to/pidfile]
- Example:
- startupitem.pidfile auto ${prefix}/var/run/${name}.pidfile
- startupitem.logfile
- startupitem の生存時間に関するイベントをロギングするログファイルのパスを指定します。startupitem のタイプ、およびデーモンの開始方法により、デーモンの標準出力もまたログファイルに保存されます。
- Type: optional
- Default: /dev/null
- Values: path
- Example:
- startupitem.logfile ${prefix}/var/log/mydaemon.log
- startupitem.logevents
- イベントをログファイルに保存するかどうかをコントロールします。logevents が設定されると、イベントはタイムスタンプ付きでログファイルに保存されます。
- Type: optional
- Default: no
- Values: yes|no
- Example:
- startupitem.logevents yes
- startupitem.netchange
- ネットワーク状態の変化を検知した場合に startupitem を再起動させるかどうかをコントロールします。
- Type: optional
- Default: no
- Values: yes|no
- Example:
- startupitem.netchange yes
[編集] DISTCHECK および LIVECHECK オプション
- MacPorts は、Portfile が更新されてからソフトウェアがアップデートされていないかどうか、また、何らかの変更が生じた結果、Portfile のアップデートが必要となっていないかどうかを 自動的にチェックすることができます。これによりメンテナが Portfile を最新の状態に保ちやすくなります。
- 二種類のチェックを利用できます。distcheck では、MacPorts は配布ファイルがまだダウンロード可能であり、portfile が最後に更新されてから変更が生じていないかどうかをチェックできます。livecheck では、MacPorts はリソースに問い合わせをおこない、より新しいバージョンのソフトウェアが存在していないかどうかを確認することができます。
- distcheck.check
- このオプションは distcheck を無効化する際に使います。配布ファイルに対しておこなうチェックの方法として、moddate (Portfile が配布ファイルよりも古いかどうかを確認) または none (チェックをおこなわない) を指定できます。
- Type: optional
- Default: moddate
- Values: moddate none
- livecheck.type
- ソフトウェアがアップデートされていないかどうかを確認するために、どういった方法をとるのかを指定します。freshmeat (freshmeat の XML ファイル内の date_updated タグを使用), sourceforge (プロジェクトの最新リリースファイルのバージョンを使用), googlecode (プロジェクトの最新リリースファイルのバージョンを使用), moddate (何らかの URL リソースの更新日時を使用), regex (何らかの URL リソースに正規表現を適用し、バージョンを取得), regexm (何らかの URL リソースに複数行の正規表現を適用し、バージョンを取得), md5 (何らかの URL リソースの md5 サムを比較) もしくは none (チェックをおこなわない) を指定できます。
- Type: optional
- Default: sourceforge or googlecode if the master_sites is one of these, else freshmeat
- Values: freshmeat sourceforge googlecode moddate regex regexm md5 none
- livecheck.name
- livecheck をおこなうプロジェクト名を指定します。(freshmeat, sourceforge および googlecode ベースのチェックで使用されます。)
- Type: optional
- Default: ${name} or the sourceforge/freshmeat/googlecode project name if it can be guessed by looking at the master_sites.
- livecheck.distname
- リリースされたファイルの名前を指定します。(sourceforge および googlecode ベースのチェックで使用されます。) sourceforge では、パッケージの名前が使われます。googlecode では、拡張子を含んだダウンロードファイルの名前が使われます。バージョン部分は "(.*)" で置き換えられます。
- Type: optional
- Default: ${livecheck.name} for sourceforge projects or the first entry in ${distfiles} for googlecode projects
- livecheck.version
- livecheck をおこなうプロジェクトのバージョンを指定します。(regex ベースのチェックで使用されます。)
- Type: optional
- Default: ${version}
- livecheck.url
- チェックの際にクエリがおこなわれる URL を指定します。
- Type: optional
- Default: ${homepage} or http://freshmeat.net/projects-xml/${livecheck.name}/${livecheck.name}.xml or http://sourceforge.net/export/rss2_projfiles.php?project=${livecheck.name} or http://code.google.com/p/${livecheck.name}/downloads/list
- livecheck.regex
- regex ベースのチェックにおいて、リソースの切り分けをおこなう際に使う正規表現を指定します。バージョン番号に相当する部分を正規表現でグループ化しておくのを忘れないよう注意してください。
- Type: optional
- livecheck.md5
- md5 の比較の際に使う md5 のチェックサム値を指定します。
- Type: optional
[編集] VARIANT オプション
- MacPorts では Portfile に指定された範疇でインストール条件の変更が可能であり、ソフトウェアのビルド時における設定のカスタマイズをユーザ側でおこなうことができます。
- variant [requires variant] [conflicts variant] [description description]
- 値には大抵の場合、Portfile 中にある変数を少し変更する TCL スクリプトが入ります。同一 port 中における、他の variant に対する依存およびコンフリクトの関係については、requires と conflicts を併記することで表現可能となります。ユーザに対して variant の説明をおこないたい場合には、description を併用してください。
- Type: optional
- Example: Add a "gnome" variant to a port.
- variant gnome requires glib { configure.args-append --with-gnome \
- depends_lib-append lib:gnome-session:gnome-session }
- variant gnome requires glib { configure.args-append --with-gnome \
- default_variants
- 定義されると、default_variants のリストに含まれるバリアントの要素がデフォルトで有効になります。
- Type: optional
- Example:
- default_variants +ssl +tcpd
- universal_variant
- MacPorts を Mac OS X 上で利用する際には universal variant がデフォルトで定義され、その動作としては、universal フラグ付きで ports のコンフィグをおこないます。(上記の UNIVERSAL ターゲットフック セクションを参照してください。) universal variant は、デフォルトのコードでは動作しない場合、上書きすることができます。また、universal variant が必要ない場合には、無効化することもできます。無効化する際には universal_variant オプションを使います。
- Type: optional
- Default: yes
- Example:
- universal_variant no
[編集] PLATFORM オプション
- MacPorts では Portfile 中でプラットフォームに特化したコードを書くことができ、プラットフォーム間、および同一プラットフォームでのバージョン間における差異を吸収できます。
- platform platform [version] [arch] body
- 指定された platform/version/arch の組み合わせが os.platform または os.subplatform かつ/または os.major かつ/または os.arch にマッチする場合、ボディの内容が実行されます。以下の例は databases/db4 および devel/libidll の Portfiles からそれぞれ引用したものです。
- Type: optional
- Example:
- platform darwin 6 { configure.args-append --enable-tcl \
- --with-tcl=/System/Library/Tcl/8.3 }
- platform darwin 6 { configure.args-append --enable-tcl \
- Example:
- platform darwin powerpc { configure.args-append \
- --host=${os.arch}-apple-rhapsody${os.version} }
- platform darwin i386 { configure.args-append \
- --host=i386-gnu-rhapsody${os.version} }
- platform darwin powerpc { configure.args-append \
[編集] PORTGROUP
- よく似た ports をグループ分けするため、MacPorts には PortGroup が用意されています。これを使って指定されたクラスまたは ports グループに関する定義を読み込むことができます。PortGroup クラスの詳細に関しては、portgroup(7) を参照してください。
[編集] TCL エクステンション
- Portfiles 中では、多数の TCL エクステンションが利用可能です。
- xinstall [-c] [-B suffix] [-b] [-C] [-f flags] [-g group] [-M] [-m mode] [-o owner] [-p] [-S] [-s] [-W dir] [file ...] destination
- xinstall -d [-B suffix] [-b] [-C] [-f flags] [-g group] [-M] [-m mode] [-o owner] [-p] [-S] [-s] [-W dir] directory
- ターゲットのファイル名として、あるいはディレクトリにファイルをインストールします。利用できるオプションは install(1) のものと互換性があります。
- -b
- .old という拡張子を付けて既存のファイルをバックアップします。
- -b
- -B
- -b フラグで使われるファイルの拡張子を指定します。
- -B
- -c
- ファイルをインストールします。(これがデフォルトの動作となります。)
- -c
- -C
- 相違がある場合に限り、ファイルをコピーします。
- -C
- -d
- ディレクトリを作成します。(必要であれば) 親ディレクトリも作成します。
- -d
- -f
- ターゲットのフラグを指定します。詳しくは chflags(1) を参照してください。
- -f
- -g
- グループを指定します。
- -g
- -M
- mmap(2) の使用を無効にします。
- -M
- -m
- モードを指定します。デフォルトは 0755 です。詳しくは chmod(1) を参照してください。
- -m
- -p
- 更新日時を保持します。
- -p
- -S
- 一時ファイルを用いて安全なコピーを行います。
- -S
- -s
- strip(1) を用いてバイナリの strip をおこないます。
- -s
- -W
- 作業をおこなう前にディレクトリを dir に変更します。
- -W
- fs-traverse [-depth] [-ignoreErrors] varname target-list body
- target-list で指定した各々の要素をルートとしてファイルシステムの階層構造を辿り、見つかったファイル/ディレクトリごとに body を実行します。varname にはファイル/ディレクトリのパスが設定されます。実行途中でbreak が呼ばれた場合には、ファイルシステムの巡回は終了します。continue が呼ばれた場合には、現在のファイルおよびその配下にあるファイルはスキップされ、巡回は継続されます。
- -depth
- find(1) における -d スイッチと同じ働きをします。-depth を利用した場合、配下のディレクトリから先に処理がおこなわれるようになるので、continue を使ったディレクトリの枝刈りがおこなえなくなる点に注意してください。
- -depth
- -ignoreErrors
- fs-traverse の処理の最中にパーミッション/読み出しエラーが生じたとしても、無視するようにします。
- -ignoreErrors
- シンボリックリンクに対して fs-traverse が呼び出された場合、そのリンクは辿られます。巡回中に見つかったリンクは辿られません。
- fs-traverse は、ルートと異なるデバイス番号を持つディレクトリは辿りません。
- もし巡回中にカレントディレクトリを削除した場合、fs-traverse がディレクトリを降下しないように continue を呼び出さなければなりません。
- curl fetch url file
- url にて示されたリソースを取得し、file にセーブします。
- curl isnewer url date
- url にて示されたリソースが date よりも新しいかどうかを調べます。(date は epoch 時からの秒数です。)
- adduser username [uid=uid] [gid=gid] [passwd=passwd] [realname=realname] [home=home] [shell=shell]
- 指定した uid, gid, パスワード, 本名, ホームディレクトリ、ログインシェルを持つ 新しいローカルユーザをシステムに追加します。たいていの場合、adduser を直接呼び出すよりも、add_users オプションを設定するほうが好ましいといえます。なぜなら、adduser は全てのケースで動作するように考慮するならば、複数の場所に記述しなければならないからです。(たとえば、バイナリアーカイブからインストールする場合など。)
- existsuser username
- ローカルユーザが存在するかどうかを調べます。
- nextuid
- 最も大きな uid + 1 の値を返します。
- addgroup group [gid=gid] [passwd=passwd] [realname=realname] [users=users]
- 指定した gid, パスワード、リアルネーム、およびユーザのリストをメンバとして持つ 新しいローカルグループをシステムに追加します。
- existsgroup group
- ローカルグループが存在するかどうかを調べ、その gid を返します。adduser と一緒に使うことができます。
- addgroup foo
- adduser foo gid=[existsgroup foo]
- ローカルグループが存在するかどうかを調べ、その gid を返します。adduser と一緒に使うことができます。
- nextgid
- 最も大きな gid + 1 の値を返します。
- reinplace [-E] regex file ...
- sed(1) ライクなファイルの編集処理をおこないます。-E フラグは sed(1) と同じ働きをします。
- Example:
- reinplace "s|/usr/local|${prefix}|g" doc/manpage.1
- file
- ファイルの名前と属性を操作する標準 TCL コマンドです。Mac OS X 10.3.x および Mac OS X 10.4.x 上において、destroot の際に Mac OS のリソースフォークを保持したい場合に推奨されます。拡張アトリビュート (たとえばアクセスコントロールリスト) を保持したい場合には同様に xinstall を使うようにしてください。詳しくは file(n) を参照してください。
- copy
- "file copy" と同じ働きをするビルトインの短縮コマンドです。
- move
- "file rename" と同じ働きをするビルトインの短縮コマンドです。
- delete file ...
- 指定されたファイル/ディレクトリを削除します。挙動としては file delete -force に似ていますが、file delete -force だと 10.3 のシステムではディレクトリの削除に失敗してしまいます。その点が異なります。
- touch
- BSD の touch コマンドと似た働きをするビルトインコマンドです。
- ln
- BSD の ln コマンドと似た働きをするビルトインコマンドです。
- system commandline
- プログラムを実行します。詳しくは system(3) を参照してください。install(1) を呼び出す代わりに xinstall を使うようにしてください。また、mv(1), cp(1), rm(1) などを呼び出す代わりに組み込みのコマンド、もしくはそれが目的に合致しないようならば file を用いるようにしてください。
- variant_isset variant
- variant が指定されているかどうかを調べます。
- variant_set variant
- variant を指定します。
- variable-append item
- 変数 variable に要素 item を追加します。
- Example:
- configure.args-append --with-gnomedb
- variable-delete item
- 変数 variable から要素 item を削除します。
- Example:
- configure.args-delete --with-gnomedb
- readdir directory
- ディレクトリ directory に含まれる要素のリストを返します。. および .. は除外されます。
- strsed string pattern
- ed(1)/tr(1)ライクな文字列の検索、置換、翻字を行います。
- mktemp template
- template を使って一時ファイルを作成します。詳しくは mktemp(3) を参照してください。
- mkstemp template
- template を使って安全に一時ファイルを作成します。詳しくは mkstemp(3) を参照してください。
- mkdtemp template
- template を使って一時ファイルを作成します。詳しくは mkdtemp(3) を参照してください。
- md5 file ...
- ファイルの MD5 ハッシュ値を計算します。
- rpm-vercomp versionA versionB
- 二つの RPM フォーマットで記されたバージョンを比較します。戻り値は strcmp() と同じように、versionA が versionB よりも古い、同じ、新しい場合にそれぞれ、-1, 0, または 1 が返されます。バージョン番号が浮動小数点表記の場合、正しい比較結果が得られないことがあります。たとえば、2.101 を 2.2 よりも新しいバージョンである(101 は 2 よりも大きい)とみなすのは、プロジェクトのバージョニングメソッドによっては正しくないことかも知れません。(チケット #11873 を参照)
- lpush varName [value ...]
- varName で与えられた変数をリストとして扱い、各々の value の引数を個別の要素としてリストの末尾に追加します。varName が存在しない場合には、value の引数で与えられた要素からなるリストを生成します。実際、lappend(n) に対する別名でしかありません。
- lpop varName
- varName で与えられたリストの末尾の要素を削除し、その要素を返します。リストに要素が無い場合には、空文字列が返されます。varName が存在しない場合には、例外が発生します。
- lunshift varName [value ...]
- varName で与えられた変数をリストとして扱い、各々の value の引数を個別の要素としてリストの先頭に追加します。varName 存在しない場合には、value の引数で与えられた要素からなるリストを生成します。
- lshift varName
- varName で与えられたリストの先頭の要素を削除し、その要素を返します。リストに要素が無い場合には、空文字列が返されます。varName が存在しない場合には、例外が発生します。
- ldindex varName [index ...]
- varName で与えられた変数をリストとして扱い、index で指定された番号の要素を削除し、その要素を返します。index の指定がない場合には、varName は空文字列になり、前に設定されていた値の全体が返されます。lindex(n) と同じような使いかたをします。
- try body [catch { type-list [ecvar] [msgvar] [infovar] } body ...] [finally body]
- TIP #89 で定義された try-catch-finally ブロックを実装します。
- Example: Basic try-finally construct.
- try {
- set fd [open $file r]
- # do stuff here
- } finally {
- close $fd
- }
- try {
- Example: Basic try-catch construct
- try {
- set result [expr $num / $div]
- } catch {{ARITH DIVZERO}} {
- set result -1
- }
- try {
- Example: Basic try with multiple catches construct
- try {
- set fd [open $file r]
- # do stuff here
- } catch {{POSIX ENOENT} {} msgvar} {
- puts stderr $msgvar
- } catch {*} {
- puts stderr "An error occurred while processing the file"
- close $fd
- throw
- }
- try {
- throw [type] [message] [info]
- 例外を投げます。引数が与えられた場合、error message info type コマンドと同様の動作をします。引数が指定されずに catch ブロックの中から呼び出された場合には、捕捉された例外が再度投げられます。
- ui_debug message
- ui_error message
- ui_info message
- ui_msg message
- ui_warn message
- ユーザに対する様々なレベルの message を表示します。
- Example:
- ui_msg "Add each user to the system using the clamav command"
[編集] 参照
[編集] 作者
- Landon Fuller <landonf@macports.org>
- Juan Manuel Palacios <jmpp@macports.org>
- Mark Duling <markd@macports.org>
- Kevin Van Vechten <kevin@opendarwin.org>
- Jordan K. Hubbard <jkh@macports.org>
- Chris Ridd <cjr@opendarwin.org>
- Kevin Ballard <eridius@macports.org>
- Markus W. Weissmann <mww@macports.org>
| Darwin | February 13, 2007 | Darwin |