crunchgen.1 1.11.2.1

ppp.8 1.209.2.13
This commit is contained in:
Kazuo Horikawa 2000-11-17 03:19:53 +00:00
parent eeb803f1dc
commit 395d10ef21
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=8384
2 changed files with 77 additions and 33 deletions
ja_JP.eucJP/man

View file

@ -22,7 +22,7 @@
.\" 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 2000/03/01 14:08:47 sheldonh Exp %
.\" %FreeBSD: src/usr.sbin/crunch/crunchgen/crunchgen.1,v 1.11.2.1 2000/11/15 18:38:48 joe Exp %
.\"
.Dd September 29, 1997
.\" jpman %Id: crunchgen.1,v 1.3 1997/07/29 13:43:59 konuma Stab %
@ -33,14 +33,13 @@
.Nd クランチバイナリ構築環境を作成する
.Sh 書式
.Nm \&crunchgen
.Op Fl fql
.Op Fl foql
.Op Fl h Ar makefile-header-name
.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)は、
たくさんの別々のプログラムをひとつにまとめて
単一の実行形式にしたプログラムです。
@ -49,9 +48,8 @@
複数プログラムをクランチしてひとつにまとめる主たる理由は、
インストールフロッピあるいはシステム回復フロッピ上に、
できるだけ多くのプログラムを収納するためです。
.Pp
.Nm crunchgen
.Nm
.Ar conf-file
に記述されたクランチバイナリのための設定項目を読み込み、
@ -69,7 +67,31 @@ Makefile
.Nm crunchide
を用い、全ての不要なシンボルを隠すことで
コンポーネントプログラム間のリンク時のシンボル競合を防ぎます。
.Pp
.Nm
は特殊な要件をパッケージの
.Pa Makefiles
に課しており、このことが原因で
.Pa Makefiles
が非 BSD ソース用に使えなくなっています。
特に、
.Nm Makefile
はターゲット
.Ar depend
を含むことが必要であり、全オブジェクトファイルを変数
.Ar OBJS
で定義することが必要です。
場合によっては、偽の
.Pa Makefile
を使えるでしょう。
.Nm
は、ソースディレクトリ
.Pa foo
中の
.Pa Makefile
を見る前に、現在のディレクトリ中の
.Pa Makefile.foo
を見ます。
.Pp
.Nm
実行後、 ``make -f <conf-name>.mk'' を実行することで
@ -82,7 +104,6 @@ Makefile
しかしこのターゲットは自動的には実行されません。
リリースエンジニアリング環境では、オブジェクトを他のディレクトリで
修正するのは一般に望ましくないからです。
.Pp
オプションは以下の通りです:
.Bl -tag -width indent
@ -99,7 +120,7 @@ Makefile
.It Fl l
名前の表示。このバイナリが対応する名前を一覧表示します。
.It Fl h Ar makefile-header-name
.Nm crunchgen
.Nm
が生成する Makefile の先頭に含めるファイルの名前を設定します。
make の変数を定義するのに便利です。
これには、make の動作に影響を与え、環境変数を介してでは面倒である、
@ -109,11 +130,12 @@ make
出力する Makefile の名前を
.Ar makefile-name
とします。デフォルトの名前は ``<conf-name>.mk'' です。
.It Fl o
各プログラムの make ターゲットに対し、``make obj'' ルールを追加します。
.It Fl q
静粛処理モード。状況報告メッセージを抑制します。
.El
.Sh CRUNCHGEN コンフィギュレーションファイルコマンド
.Nm
は、クランチバイナリのコンポーネントについて記述した設定項目を
.Ar conf-file
@ -146,6 +168,8 @@ make
クランチバイナリのリンク時に含めるライブラリ指定のリスト。
.Nm libs
行は複数あっても構いません。
.It Nm buildopts Ar buildopts ...
各 make ターゲットに追加追加される、ビルドオプションのリスト。
.It Nm ln Ar progname linkname
argv[0] に
.Ar linkname
@ -155,7 +179,6 @@ argv[0]
これにより、起動時の名前によって振る舞いを変えるようなプログラムも
正しく動作するようにできます。
.El
特別な状況、例えば
ソースファイルがないとか、
従来の Makefile によらないビルドを行うといった
@ -196,6 +219,12 @@ argv[0]
自身が
.Ar objdir
となります。
.It Nm special Ar progname Nm buildopts Ar buildopts
ビルドオプション集合を定義します。
.Ar progname
処理時には、
.Nm buildopts
で指定されたものに加え、これらが追加されてターゲットが作成されます。
.It Nm special Ar progname Nm objs Ar object-file-name ...
プログラム
.Ar progname
@ -225,7 +254,6 @@ argv[0]
このオプションはシンボルが衝突するときの最後の拠所ですが、
シンボル解決の唯一の方法である場合もあります。
.El
.Pp
実際に
.Nm
@ -242,7 +270,6 @@ argv[0]
ですから、もし可能なら、初期のパラメータを指定し、あとは
.Nm
に求めさせたほうが便利な場合もあります。
.Pp
.Nm
が生成する makefile はオプションのターゲット
@ -264,17 +291,20 @@ argv[0]
.Dq Pa kcopy.conf
の内容を示します。
.Pp
.nf
srcdirs /usr/src/bin /usr/src/sbin
.Bd -literal -offset indent
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" としてシェルを起動する
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 myprog objpaths /homes/leroy/src/myinstall.o # ソースなし
libs -lutil -lcrypt
.fi
special anotherprog -DNO_FOO WITHOUT_BAR=YES
libs -lutil -lcrypt
.Ed
.Pp
このコンフィギュレーションファイルでは、
いくつかの基本的なシステムユーティリティと
@ -285,15 +315,19 @@ argv[0]
.Nm special
行で直接指定されています。
.Pp
さらに、``anotherprog'' 構築時には、引数
.Ar -DNO_FOO WITHOUT_BAR=YES
がすべてのビルドターゲットに対して追加されます。
.Pp
クランチバイナリ ``kcopy'' は以下のようにして作成できます:
.Pp
.nf
% crunchgen -m Makefile kcopy.conf # Makefile と kcopy.c 作成
% make objs # コンポーネントプログラムの *.o 作成
% make # クランチバイナリ kcopy の作成
% kcopy sh # シェル sh を起動できるかどうか試すと..
$ # うまくいった!
.fi
.Bd -literal -offset indent
% crunchgen -m Makefile kcopy.conf # Makefile と kcopy.c 作成
% make objs # コンポーネントプログラムの *.o 作成
% make # クランチバイナリ kcopy の作成
% kcopy sh # シェル sh を起動できるかどうか試すと..
$ # うまくいった!
.Ed
.Pp
ここまでくれば、バイナリ ``kcopy'' をインストールフロッピにコピーし、
各コンポーネントプログラムの名前でハードリンクを設けることができます。

View file

@ -1,4 +1,4 @@
.\" %FreeBSD: src/usr.sbin/ppp/ppp.8,v 1.209.2.12 2000/10/31 02:26:18 brian Exp %
.\" %FreeBSD: src/usr.sbin/ppp/ppp.8,v 1.209.2.13 2000/11/16 21:52:03 brian Exp %
.\"
.\" jpman %Id: ppp.8,v 1.4 1997/06/08 18:41:58 saeki Stab %
.\"
@ -3087,12 +3087,22 @@ NAT
それらをゲートウェイの後の特定のマシンにマップしたい場合に有用です。
.It nat deny_incoming Op yes|no
yes に設定すると、
ファイアウォールとほぼ同様にパケットを落とすことにより、
このコマンドは全入力接続を拒否します。
エイリアシングリンクがまだ存在しないところでは、
このコマンドは全パケットを拒否します。
.Dq エイリアシングリンク
が何であるかについては、
.Xr libalias 3
.Sx 概念の背景
節を参照してください。
.Pp
このオプションを有効化すると、
libalias が識別不可能な IP パケットを落とすことに注意してください。
これは将来修正される予定です。
どのような状況において
.Xr libalias 3
がエイリアシングリンクを作成したか、気をつける必要があります。
.Dq set filter
または
.Dq nat target
のコマンドを使用して、更にネットワークを保護する必要があるかもしれません。
.It nat help|?
このコマンドは、使用可能な nat コマンドのまとめを表示します。
.It nat log Op yes|no