aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man1/crunchgen.1
diff options
context:
space:
mode:
Diffstat (limited to 'ja_JP.eucJP/man/man1/crunchgen.1')
-rw-r--r--ja_JP.eucJP/man/man1/crunchgen.1466
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.