aboutsummaryrefslogtreecommitdiff
path: root/ja/man/man1/crunchgen.1
diff options
context:
space:
mode:
Diffstat (limited to 'ja/man/man1/crunchgen.1')
-rw-r--r--ja/man/man1/crunchgen.1304
1 files changed, 0 insertions, 304 deletions
diff --git a/ja/man/man1/crunchgen.1 b/ja/man/man1/crunchgen.1
deleted file mode 100644
index db0cc3925c..0000000000
--- a/ja/man/man1/crunchgen.1
+++ /dev/null
@@ -1,304 +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
-.\"
-.Dd September 29, 1997
-.\" jpman %Id: crunchgen.1,v 1.3 1997/07/29 13:43:59 konuma Stab %
-.Dt CRUNCHGEN 1
-.Os BSD 4
-.Sh 名称
-.Nm \&crunchgen
-.Nd クランチバイナリ構築環境を作成する
-.Sh 書式
-.Nm \&crunchgen
-.Op Fl fql
-.Op Fl m Ar makefile-name
-.Op Fl c Ar c-file-name
-.Op Fl e Ar exec-file-name
-.Op Ar conf-file
-.Sh 解説
-
-クランチバイナリ(crunched binary)は、
-たくさんの別々のプログラムをひとつにまとめて
-単一の実行形式にしたプログラムです。
-クランチバイナリの main() 関数は、argv[0] の値をみて、
-どのコンポーネントプログラムが実行されるべきかを決定します。
-複数プログラムをクランチしてひとつにまとめる主たる理由は、
-インストールフロッピあるいはシステム回復フロッピ上に、
-できるだけ多くのプログラムを収納するためです。
-
-.Pp
-.Nm crunchgen
-は
-.Ar conf-file
-に記述されたクランチバイナリのための設定項目を読み込み、
-Makefile とそれに付随するトップレベルの C ソースファイルを生成します。
-これらはビルド時に各コンポーネントプログラムからクランチした実行形式を
-作成します。
-オプションにより、
-.Nm
-は、各コンポーネントプログラムに対して、
-そのソースディレクトリの Makefile から
-プログラムを構成するオブジェクトファイル(.o)を決定することも試みます。
-この情報は実行のたびにキャッシュされます。
-.Nm
-は関連するもうひとつのプログラム
-.Nm crunchide
-を用い、全ての不要なシンボルを隠すことで
-コンポーネントプログラム間のリンク時のシンボル競合を防ぎます。
-
-.Pp
-.Nm
-実行後、 ``make -f <conf-name>.mk'' を実行することで
-クランチバイナリを作成できます。
-コンポーネントプログラムのオブジェクトファイルは既に作成されている
-必要があります。
-出力される makefile に含まれる ``objs'' ターゲットは、
-各コンポーネントプログラムのソースディレクトリで make を実行し、
-ユーザのためにオブジェクトファイルを作成してくれます。
-しかしこのターゲットは自動的には実行されません。
-リリースエンジニアリング環境では、オブジェクトを他のディレクトリで
-修正するのは一般に望ましくないからです。
-
-.Pp
-オプションは以下の通りです:
-.Bl -tag -width indent
-.It Fl c Ar c-file-name
-出力する C のファイル名を
-.Ar c-file-name
-とします。デフォルトの名前は ``<conf-name>.c'' です。
-.It Fl e Ar exec-file-name
-クランチバイナリの実行形式ファイルの名前を
-.Ar exec-file-name
-とします。デフォルトの名前は ``<conf-name>'' です。
-.It Fl f
-キャッシュを消去し、キャッシュされていたパラメータを強制的に再計算します。
-.It Fl l
-名前の表示。このバイナリが対応する名前を一覧表示します。
-.It Fl m Ar makefile-name
-出力する Makefile の名前を
-.Ar makefile-name
-とします。デフォルトの名前は ``<conf-name>.mk'' です。
-.It Fl q
-静粛処理モード。状況報告メッセージを抑制します。
-.El
-.Sh CRUNCHGEN コンフィギュレーションファイルコマンド
-
-.Nm
-は、クランチバイナリのコンポーネントについて記述した設定項目を
-.Ar conf-file
-から読み取ります。
-最も単純な場合は、各コンポーネントプログラム名を、
-そのソースファイルが置かれたトップレベルのディレクトリ名とともに、
-単に列挙するだけです。
-次に
-.Nm
-は(ソースの makefile によって)オブジェクトファイルリストと
-その位置を求め、それをキャッシュします。
-もっと特殊な場合には、
-.Nm
-が必要とするあらゆるパラメータを、ユーザが手動で指定することができます。
-.Pp
-.Ar conf-file
-のコマンドは以下の通りです:
-.Bl -tag -width indent
-.It Nm srcdirs Ar dirname ...
-コンポーネントプログラムのソースディレクトリがあるソースツリーのリスト。
-これらのディレクトリは BSD の ``<source-dir>/<progname>/'' 方式を
-用いて検索されます。
-.Nm srcdirs
-行は複数あってもよく、ディレクトリは記述された順に検索されます。
-.It Nm progs Ar progname ...
-クランチバイナリを構成するプログラムのリスト。
-.Nm progs
-行は複数あっても構いません。
-.It Nm libs Ar libspec ...
-クランチバイナリのリンク時に含めるライブラリ指定のリスト。
-.Nm libs
-行は複数あっても構いません。
-.It Nm ln Ar progname linkname
-argv[0] に
-.Ar linkname
-が現われたときはいつも
-.Ar progname
-を起動するよう、クランチバイナリに要請します。
-これにより、起動時の名前によって振る舞いを変えるようなプログラムも
-正しく動作するようにできます。
-.El
-
-特別な状況、例えば
-ソースファイルがないとか、
-従来の Makefile によらないビルドを行うといった
-場合に対応するため、以下に述べる
-.Nm special
-コマンドを用いてコンポーネントプログラムの
-.Nm
-パラメータを指定できます。
-.Bl -tag -width indent
-.It Nm special Ar progname Nm srcdir Ar pathname
-プログラム
-.Ar progname
-のソースディレクトリを指定します。
-通常は指定されたディレクトリ
-.Nm srcdirs
-内の
-.Ar progname
-ディレクトリを検索して決定されます。
-.It Nm special Ar progname Nm objdir Ar pathname
-プログラム
-.Ar progname
-のオブジェクトディレクトリを指定します。
-通常はディレクトリ
-.Ar srcdir
-内の
-.Dq Pa obj
-という名前のディレクトリを探し、もし見つからなければ、ディレクトリ
-.Ar srcdir
-自身が
-.Ar objdir
-となります。
-.It Nm special Ar progname Nm objs Ar object-file-name ...
-プログラム
-.Ar progname
-のオブジェクトファイルのリストを指定します。
-通常は、
-.Dq Nm srcdir / Pa Makefile
-をインクルードし $(OBJS) の値を出力するような一時 makefile を構築する
-ことで決定されます。
-.It Nm special Ar progname Nm objpaths Ar full-pathname-to-object-file ...
-プログラム
-.Ar progname
-のオブジェクトファイルのパス名を指定します。
-通常は
-.Nm objs
-リスト中の各ファイルのパス名の先頭に
-.Nm objdir
-を付加することで決定されます。
-.It Nm special Ar progname Nm keep Ar symbol-name ...
-プログラム
-.Ar progname
-の保持リストに、指定するシンボルのリストを追加します。
-各シンボルの前にはアンダスコアが付加され、
-.Xr crunchide 1
-フェーズでは
-.Fl k
-オプションの引数となります
-このオプションはシンボルが衝突するときの最後の拠所ですが、
-シンボル解決の唯一の方法である場合もあります。
-.El
-
-.Pp
-実際に
-.Nm
-が必要とするのは
-.Nm objpaths
-だけですが、
-これは
-.Nm objdir
-と
-.Nm objs
-から求められ、これらも
-.Nm srcdir
-から求められます。
-ですから、もし可能なら、初期のパラメータを指定し、あとは
-.Nm
-に求めさせたほうが便利な場合もあります。
-
-.Pp
-.Nm
-が生成する makefile はオプションのターゲット
-.Ar objs
-を含みます。
-これは、各コンポーネントプログラムのソースディレクトリ内で make を実行して
-オブジェクトファイルを作成するターゲットです。
-これがうまく動作するためには
-.Nm srcdir
-および
-.Nm objs
-パラメータが正しいものでなくてはなりません。
-もしこれらの値があるプログラムに対して不正なものであると、
-.Ar objs
-ターゲットではそのプログラムはスキップされてしまいます。
-.Sh 実行例
-.Nm
-の入力コンフィギュレーションファイルの例として
-.Dq Pa kcopy.conf
-の内容を示します。
-.Pp
-.nf
- srcdirs /usr/src/bin /usr/src/sbin
-
- progs test cp echo sh fsck halt init mount umount myinstall
- ln test [ # test は [ として起動することもできる
- ln sh -sh # init は argv[0] を "-sh" としてシェルを起動する
-
- special myprog objpaths /homes/leroy/src/myinstall.o # ソースなし
-
- libs -lutil -lcrypt
-.fi
-.Pp
-このコンフィギュレーションファイルでは、
-いくつかの基本的なシステムユーティリティと
-自家製のインストールプログラム ``myinstall'' から成る
-小さなクランチバイナリを記述しています。
-ソースディレクトリは全く指定されていませんが、
-オブジェクトファイルは
-.Nm special
-行で直接指定されています。
-.Pp
-クランチバイナリ ``kcopy'' は以下のようにして作成できます:
-.Pp
-.nf
- % crunchgen -m Makefile kcopy.conf # Makefile と kcopy.c 作成
- % make objs # コンポーネントプログラムの *.o 作成
- % make # クランチバイナリ kcopy の作成
- % kcopy sh # シェル sh を起動できるかどうか試すと..
- $ # うまくいった!
-.fi
-.Pp
-ここまでくれば、バイナリ ``kcopy'' をインストールフロッピにコピーし、
-各コンポーネントプログラムの名前でハードリンクを設けることができます。
-.Sh 関連項目
-.Xr crunchide 1
-.Sh 警告
-.Nm crunch
-はクランチバイナリ中の各コンポーネントプログラム間のリンク競合を
-除去するのに気を配っていますが、依然としてリンクされたライブラリ間で
-競合が発生する可能性が残っています。
-ライブラリ順の入れ換えが必要な場合もありますし、
-二つのライブラリ間にどうしても解消できない競合が発生し、
-結局ひとつにまとめられない場合も稀にあります。
-.Pp
-BSD のバージョンによっては、デフォルトのビルド環境では
-単一ソースファイルのプログラムに対して
-中間オブジェクトファイルを作成しないことがあります。
-その場合は ``make objs'' ターゲットを用いてオブジェクトファイルを
-作成するか、他の調整を施す必要があります。
-.Sh 作者
-.Nm crunch
-は
-.An James da Silva Aq jds@cs.umd.edu
-によって作成されました。
-.sp 0
-Copyright (c) 1994 University of Maryland. All Rights Reserved.