diff options
Diffstat (limited to 'ja_JP.eucJP/man/man1/crunchgen.1')
-rw-r--r-- | ja_JP.eucJP/man/man1/crunchgen.1 | 466 |
1 files changed, 0 insertions, 466 deletions
diff --git a/ja_JP.eucJP/man/man1/crunchgen.1 b/ja_JP.eucJP/man/man1/crunchgen.1 deleted file mode 100644 index 726e58452a..0000000000 --- a/ja_JP.eucJP/man/man1/crunchgen.1 +++ /dev/null @@ -1,466 +0,0 @@ -.\" -.\" Copyright (c) 1994 University of Maryland -.\" All Rights Reserved. -.\" -.\" Permission to use, copy, modify, distribute, and sell this software and its -.\" documentation for any purpose is hereby granted without fee, provided that -.\" the above copyright notice appear in all copies and that both that -.\" copyright notice and this permission notice appear in supporting -.\" documentation, and that the name of U.M. not be used in advertising or -.\" publicity pertaining to distribution of the software without specific, -.\" written prior permission. U.M. makes no representations about the -.\" suitability of this software for any purpose. It is provided "as is" -.\" without express or implied warranty. -.\" -.\" U.M. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL U.M. -.\" BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -.\" IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -.\" -.\" Author: James da Silva, Systems Design and Analysis Group -.\" Computer Science Department -.\" University of Maryland at College Park -.\" %FreeBSD: src/usr.sbin/crunch/crunchgen/crunchgen.1,v 1.11.2.8 2001/08/16 15:55:47 ru Exp % -.\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/crunchgen.1,v 1.11 2001/07/29 05:14:50 horikawa Exp $ -.Dd November 16, 2000 -.Dt CRUNCHGEN 1 -.Os -.Sh 名称 -.Nm crunchgen -.Nd クランチバイナリ構築環境を作成する -.Sh 書式 -.Bk -words -.Nm -.Op Fl foql -.Op Fl h Ar makefile-header-name -.Op Fl m Ar makefile-name -.Op Fl p Ar obj-prefix -.Op Fl c Ar c-file-name -.Op Fl e Ar exec-file-name -.Op Ar conf-file -.Ek -.Sh 解説 -クランチバイナリ (crunched binary) は、 -たくさんの別々のプログラムをひとつにまとめて -単一の実行形式にしたプログラムです。 -クランチバイナリの -.Fn main -関数は、 -.Va argv[0] -の値をみて、 -どのコンポーネントプログラムが実行されるべきかを決定します。 -複数プログラムをクランチしてひとつにまとめる主たる理由は、 -インストールフロッピあるいはシステム回復フロッピ上に、 -できるだけ多くのプログラムを収納するためです。 -.Pp -.Nm -は -.Ar conf-file -に記述されたクランチバイナリのための設定項目を読み込み、 -.Pa Makefile -とそれに付随するトップレベルの C ソースファイルを生成します。 -これらはビルド時に各コンポーネントプログラムからクランチした実行形式を -作成します。 -オプションにより、 -.Nm -は、各コンポーネントプログラムに対して、 -そのソースディレクトリの -.Pa Makefile -から -プログラムを構成するオブジェクトファイル (.o) を決定することも試みます。 -この情報は実行のたびにキャッシュされます。 -.Nm -は関連するもうひとつのプログラム -.Xr crunchide 1 -を用い、全ての不要なシンボルを隠すことで -コンポーネントプログラム間のリンク時のシンボル競合を防ぎます。 -.Pp -.Nm -は特殊な要件をパッケージの -.Pa Makefile -に課しており、このことが原因で -.Pa Makefile -が非 -.Bx -ソース用に使えなくなっています。 -特に、 -.Pa Makefile -はターゲット -.Ic depend -を含むことが必要であり、全オブジェクトファイルを変数 -.Va OBJS -で定義することが必要です。 -場合によっては、偽の -.Pa Makefile -を使えるでしょう。 -.Nm -は、ソースディレクトリ -.Pa foo -中の -.Pa Makefile -を見る前に、現在のディレクトリ中の -.Pa Makefile.foo -を見ます。 -.Pp -.Nm -実行後、 -.Dq Li make -f <conf-name>.mk -を実行することで -クランチバイナリを作成できます。 -コンポーネントプログラムのオブジェクトファイルは既に作成されている -必要があります。 -出力される makefile に含まれる -.Ic objs -ターゲットは、 -各コンポーネントプログラムのソースディレクトリで -.Xr make 1 -を実行し、ユーザのためにオブジェクトファイルを作成してくれます。 -しかしこのターゲットは自動的には実行されません。 -リリースエンジニアリング環境では、オブジェクトを他のディレクトリで -修正するのは一般に望ましくないからです。 -.Pp -オプションは以下の通りです: -.Bl -tag -width indent -.It Fl c Ar c-file-name -出力する C のファイル名を -.Ar c-file-name -とします。デフォルトの名前は -.Pa <conf-name>.c -です。 -.It Fl e Ar exec-file-name -クランチバイナリの実行形式ファイルの名前を -.Ar exec-file-name -とします。デフォルトの名前は -.Pa <conf-name> -です。 -.It Fl f -キャッシュを消去し、キャッシュされていたパラメータを強制的に再計算します。 -.It Fl l -名前の表示。このバイナリが対応する名前を一覧表示します。 -.It Fl h Ar makefile-header-name -.Nm -が生成する -.Pa Makefile -の先頭に含めるファイルの名前を設定します。 -make の変数を定義するのに便利です。 -これには、 -.Xr make 1 -の動作に影響を与え、環境変数を介してでは面倒である、 -.Va RELEASE_CRUNCH -が含まれます。 -.It Fl m Ar makefile-name -出力する -.Pa Makefile -の名前を -.Ar makefile-name -とします。デフォルトの名前は -.Pa <conf-name>.mk -です。 -.It Fl o -各プログラムの make ターゲットに対し、 -.Dq Li make obj -ルールを追加します。 -.It Fl p Ar obj-prefix -.Ic objdir -を計算するときに、 -.Ic srcdir -の前に付けるパス名を設定します。 -このオプションが存在しない場合、使用するプレフィックスは -.Ev MAKEOBJDIRPREFIX -環境変数の内容か、または -.Pa /usr/obj -です。 -.It Fl q -静粛処理モード。状況報告メッセージを抑制します。 -.El -.Sh CRUNCHGEN コンフィギュレーションファイルコマンド -.Nm -は、クランチバイナリのコンポーネントについて記述した設定項目を -.Ar conf-file -から読み取ります。 -最も単純な場合は、各コンポーネントプログラム名を、 -そのソースファイルが置かれたトップレベルのディレクトリ名とともに、 -単に列挙するだけです。 -次に -.Nm -は (ソースの makefile によって) オブジェクトファイルリストと -その位置を求め、それをキャッシュします。 -もっと特殊な場合には、 -.Nm -が必要とするあらゆるパラメータを、ユーザが手動で指定することができます。 -.Pp -.Ar conf-file -のコマンドは以下の通りです: -.Bl -tag -width indent -.It Ic srcdirs Ar dirname ... -コンポーネントプログラムのソースディレクトリがあるソースツリーのリスト。 -これらのディレクトリは -.Bx -の -.Dq Pa <source-dir>/<progname>/ -方式を用いて検索されます。 -.Ic srcdirs -行は複数あってもよく、ディレクトリは記述された順に検索されます。 -.It Ic progs Ar progname ... -クランチバイナリを構成するプログラムのリスト。 -.Ic progs -行は複数あっても構いません。 -.It Ic libs Ar libspec ... -クランチバイナリのリンク時に含めるライブラリ指定のリスト。 -.Ic libs -行は複数あっても構いません。 -.It Ic buildopts Ar buildopts ... -各 make ターゲットに追加追加される、ビルドオプションのリスト。 -.It Nm ln Ar progname linkname -.Va argv[0] -に -.Ar linkname -が現われたときはいつも -.Ar progname -を起動するよう、クランチバイナリに要請します。 -これにより、起動時の名前によって振る舞いを変えるようなプログラムも -正しく動作するようにできます。 -.El -.Pp -特別な状況、例えば -ソースファイルがないとか、 -従来の -.Pa Makefile -によらないビルドを行うといった場合に対応するため、以下に述べる -.Ic special -コマンドを用いてコンポーネントプログラムの -.Nm -パラメータを指定できます。 -.Bl -tag -width indent -.It Ic special Ar progname Ic srcdir Ar pathname -プログラム用 -.Ar progname -のオブジェクトファイル一覧を保持する make 変数の名前を設定します。 -これは通常 -.Nm OBJS -ですが、Makefile によっては、他の約束が好ましい場合や、 -.Nm SSHD_OBJS -のようにプログラム名が前に付くものがあります。 -.It Nm special Ar progname Nm srcdir Ar pathname -プログラム -.Ar progname -のソースディレクトリを指定します。 -通常は指定されたディレクトリ -.Ic srcdirs -内の -.Ar progname -ディレクトリを検索して決定されます。 -.It Ic special Ar progname Ic objdir Ar pathname -プログラム -.Ar progname -の -.Pa obj -ディレクトリを指定します。 -通常、 -.Pa obj -ディレクトリは、 -ソースディレクトリ名の前に次のいずれかのコンポーネントを付けたものとして -計算され、コンポーネントには次の順番で優先度があります: -コマンドラインにおける -.Fl p -の引数、環境変数 -.Ev MAKEOBJDIRPREFIX -の値、または -.Pa /usr/obj -です。 -もしディレクトリが見つからなければ、ディレクトリ -.Ic srcdir -自身が -.Ic objdir -となります。 -.It Ic special Ar progname Ic buildopts Ar buildopts -ビルドオプション集合を定義します。 -.Ar progname -処理時には、 -.Nm buildopts -で指定されたものに加え、これらが追加されて -.Xr make 1 -のターゲットが作成されます。 -.It Ic special Ar progname Ic objs Ar object-file-name ... -プログラム -.Ar progname -のオブジェクトファイルのリストを指定します。 -通常は、 -.Dq Ic srcdir Ns / Ns Pa Makefile -をインクルードし -.Va $(OBJS) -の値を出力するような一時 makefile を構築する -ことで決定されます。 -.It Ic special Ar progname Ic objpaths Ar full-pathname-to-object-file ... -プログラム -.Ar progname -のオブジェクトファイルのパス名を指定します。 -通常は -.Ic objs -リスト中の各ファイルのパス名の先頭に -.Ic objdir -を付加することで決定されます。 -.It Ic special Ar progname Ic objvar Ar variable_name -プログラム -.Ar progname -用のオブジェクトファイルリストを保持する -.Xr make 1 -変数名を設定します。 -これは通常 -.Va OBJS -ですが、 -.Pa Makefile -によっては別の規約を使用したいかもしれませんし、 -変数名の前にプログラム名を付けたいかもしれません。例えば -.Va SSHD_OBJS -など。 -.It Ic special Ar progname Ic keep Ar symbol-name ... -プログラム -.Ar progname -の保持リストに、指定するシンボルのリストを追加します。 -各シンボルの前にはアンダスコア -.Pq Ql _ -が付加され、 -.Xr crunchide 1 -フェーズでは -.Fl k -オプションの引数となります -このオプションはシンボルが衝突するときの最後の拠所ですが、 -シンボル解決の唯一の方法である場合もあります。 -.It Ic special Ar progname Ic ident Ar identifier -.Ar progname -に対する -.Pa Makefile Ns / Ns Tn C -識別子を設定します。 -これは通常、 -.Ar progname -を元に、 -.Ql - -を -.Ql _ -にマップし、他のすべての非識別子文字を無視することにより、生成されます。 -この結果、 -.Qq Li foo.bar -と -.Qq Li foobar -は、同一の識別子にマップされてしまいます。 -.El -.Pp -実際に -.Nm -が必要とするのは -.Ic objpaths -だけですが、 -これは -.Ic objdir -と -.Ic objs -から求められ、これらも -.Ic srcdir -から求められます。 -ですから、もし可能なら、初期のパラメータを指定し、あとは -.Nm -に求めさせたほうが便利な場合もあります。 -.Pp -.Nm -が生成する makefile はオプションのターゲット -.Ic objs -を含みます。 -これは、各コンポーネントプログラムのソースディレクトリ内で -.Xr make 1 -を実行してオブジェクトファイルを作成するターゲットです。 -これがうまく動作するためには -.Ic srcdir -および -.Ic objs -パラメータが正しいものでなくてはなりません。 -もしこれらの値があるプログラムに対して不正なものであると、 -.Ic objs -ターゲットではそのプログラムはスキップされてしまいます。 -.Sh 実行例 -.Nm -の入力コンフィギュレーションファイルの例として -.Dq Pa kcopy.conf -の内容を示します。 -.Pp -.Bd -literal -offset indent -srcdirs /usr/src/bin /usr/src/sbin - -progs test cp echo sh fsck halt init mount umount myinstall -progs anotherprog -ln test [ # test は [ として起動することもできる -ln sh -sh # init は argv[0] を "-sh" としてシェルを起動する - -special myprog objpaths /homes/leroy/src/myinstall.o # ソースなし - -special anotherprog -DNO_FOO WITHOUT_BAR=YES - -libs -lutil -lcrypt -.Ed -.Pp -このコンフィギュレーションファイルでは、 -いくつかの基本的なシステムユーティリティと -自家製のインストールプログラム -.Dq Pq myinstall -から成る -小さなクランチバイナリを記述しています。 -ソースディレクトリは全く指定されていませんが、 -オブジェクトファイルは -.Nm special -行で直接指定されています。 -.Pp -さらに、 -.Dq Pa anotherprog -構築時には、引数 -.Pp -.Dl -DNO_FOO WITHOUT_BAR=YES -.Pp -がすべてのビルドターゲットに対して追加されます。 -.Pp -クランチバイナリ -.Dq Pa kcopy -は以下のようにして作成できます: -.Pp -.Bd -literal -offset indent -% crunchgen -m Makefile kcopy.conf # Makefile と kcopy.c 作成 -% make objs # コンポーネントプログラムの *.o 作成 -% make # クランチバイナリ kcopy の作成 -% kcopy sh # シェル sh を起動できるかどうか試すと.. -$ # うまくいった! -.Ed -.Pp -ここまでくれば、バイナリ -.Dq Pa kcopy -をインストールフロッピにコピーし、 -各コンポーネントプログラムの名前でハードリンクを設けることができます。 -.Sh 関連項目 -.Xr crunchide 1 -.Xr make 1 -.Sh 警告 -.Nm -はクランチバイナリ中の各コンポーネントプログラム間のリンク競合を -除去するのに気を配っていますが、依然としてリンクされたライブラリ間で -競合が発生する可能性が残っています。 -ライブラリ順の入れ換えが必要な場合もありますし、 -二つのライブラリ間にどうしても解消できない競合が発生し、 -結局ひとつにまとめられない場合も稀にあります。 -.Pp -.Bx -のバージョンによっては、デフォルトのビルド環境では -単一ソースファイルのプログラムに対して -中間オブジェクトファイルを作成しないことがあります。 -その場合は -.Dq Li make objs -ターゲットを用いてオブジェクトファイルを -作成するか、他の調整を施す必要があります。 -.Sh 作者 -.Nm -は -.An James da Silva Aq jds@cs.umd.edu -によって作成されました。 -.Pp -Copyright (c) 1994 University of Maryland. -All Rights Reserved. |