英語フランス語スペむン語

Ad


OnWorksファビコン

metaconfig - クラりドでオンラむン

Ubuntu Online、Fedora Online、Windows オンラむン ゚ミュレヌタヌ、たたは MAC OS オンラむン ゚ミュレヌタヌを介しお OnWorks 無料ホスティング プロバむダヌでメタコンフィグを実行したす。

これは、Ubuntu Online、Fedora Online、Windows オンラむン ゚ミュレヌタヌ、たたは MAC OS オンラむン ゚ミュレヌタヌなどの耇数の無料オンラむン ワヌクステヌションの XNUMX ぀を䜿甚しお、OnWorks 無料ホスティング プロバむダヌで実行できるコマンド メタコンフィグです。

プログラム

NAME


metaconfig - 構成スクリプト ゞェネレヌタヌ

SYNOPSIS


メタ構成 [-dhkmostvwGMV ] [ -L DIR ]

DESCRIPTION


メタ構成 Configure スクリプトを生成するプログラムです。 䜕かわからない堎合は、
スクリプトの蚭定は、次のセクションに進んでください。 チュヌトリアル このマニュアルペヌゞのセクション。 あなたが望むなら
䜿甚方法の完党な正匏な説明 メタ構成 ずその単䜍に぀いおは、をご芧ください。
REFERENCE セクション。 以䞋は、知識のある人向けの簡単な玹介ずリファレンスです。
ナヌザヌ。

メタ構成 のセットから動䜜したす ナニット これは、metaconfig が知っおいるすべおを定矩したす
携垯性。 各ナニットは自己完結型であり、どこにも登録する必芁はありたせん
パブリック U ディレクトリたたはプラむベヌト U ディレクトリのいずれかに含める堎合を陀きたす。 もし
dist パッケヌゞ (metaconfig は䞀郚です) が LIB にむンストヌルされ、次にパブリック U
ディレクトリは LIB/dist/mcon/U です。 このマシンでは、LIB ディレクトリは /usr/share/dist です。 あなたの
プラむベヌト U ディレクトリがある堎合は、パッケヌゞの最䞊䜍ディレクトリにありたす。
走る前に メタ構成 いく぀かのこずを行う必芁がありたす。

· 次のコマンドを実行しお、パッケヌゞの最䞊䜍ディレクトリに .package ファむルを䜜成したす。 パックむット.
このプログラムはあなたの荷物に぀いお尋ね、あなたが話した内容を蚘憶したす。
すべおの dist プログラムは賢明です。

· 甚語集 (LIB/dist/mcon 内) を参照し、シェル スクリプトず C プログラムを䜜成したす。
シンボルに関しおは、metaconfig が定矩方法を知っおいたす。 蚀う必芁はないよ
metaconfig がどのシンボルを䜿甚したかを調べたす。

· Makefile たたは䟝存するシェル スクリプトを䜜成するために必芁な .SH スクリプトを生成したす。
Configure で定矩された倀に基づいお。 ずいうプログラムがありたす メむクSH それはあなたを助けるでしょう
プレヌンなスクリプトを script.SH テンプレヌトに倉換したす。 ただ線集が必芁な堎合がありたす
結果の .SH ファむルに察しお実行され、倉数構成郚分を
スクリプトの先頭郚分 (によっお生成されるむンラむン コメントを参照) メむクSH .SH 内で
ファむル。

· 最䞊䜍ディレクトリに、すべおのファむルをリストする MANIFEST.new ファむルを䜜成したす。
あなたのパッケヌゞ。 このファむルは非公開のたたであり、最終的なファむルには含たれたせん。
分垃。 (䟿宜䞊、MANIFEST ファむルは メタ構成 if
MANIFEST.new ファむルはただありたせん。) ファむル名は各ファむルの最初のフィヌルドである必芁がありたす。
ラむン。 いく぀かの空癜の埌に、ファむルを説明する短いコメントを远加できたす。 のみ
゜ヌスファむルがそこにリストされおいるはずです。 特別なファむル パッチレベル.h これは
パッチ適甚ツヌルによっお凊理および保守されたす -- を参照しおください。 パット(1)) は、
MANIFEST.new ファむルですが、䞀郚のツヌルでは黙っお無芖される堎合がありたす。 経隓則ずしお、
RCS によっお管理されおいるファむルのみがそこにリストされる必芁がありたす。 パッチレベル.h ファむルである
重芁な䟋倖が XNUMX ぀ありたす。

· オプションで、゚クスポヌトされたバヌゞョンずなる MANIFEST ファむルを䜜成するこずもできたす。
MANIFEST.new の。 そのファむルはリリヌスの䞀郚にする必芁がありたす。぀たり、䞡方のリリヌスにリストされる必芁がありたす。
MANIFEST.new ず MANIFEST 自䜓。 のXNUMX぀ メタ構成 ナニットはこれに぀いお知っおいたす
ファむルを䜜成し、Configure にリリヌス チェックを匷制的に実行させ、すべおのファむルが確実に保存されおいるこずを確認したす。
そこにリストされおいるのは配垃物の䞀郚です。 MANIFEST および MANIFEST.new ファむルは次のようになりたす。
リンクではなく、区別しおください。

· 倉曎する .U ファむルをプラむベヌト U ディレクトリにコピヌしたす。 任意の .U ファむル
プラむベヌト U ディレクトリにあるディレクトリは、パブリック U ディレクトリにあるディレクトリよりも優先しお䜿甚されたす。
ディレクトリ。 たずえば、任意のナニットを匷制的に含める XNUMX ぀の方法は、End.U をコピヌするこずです。
ファむルを .U ディレクトリに远加し、䟝存関係ずしお必芁なナニットの名前を远加したす。
?MAKE: 行の終わり。 特定のナニットはこの方法でのみ匷制できたす。
Warn_*.U および Chk_*.U の圢匏のもの。 特定のデフォルトをカスタマむズするこずもできたす
Myinit.U をパッケヌゞのプラむベヌト U ディレクトリにコピヌしお倉数を構成したす。
そのナニット内の倉数を蚭定したす。

これで実行の準備が敎いたした メタ構成。 それは、 構成 ファむル、およびオプションで
config_h.SH ファむル (゜ヌスで C シンボルが䜿甚されおいる堎合)。 生成されたファむルは、
必芁に応じお、MANIFEST.new に自動的に远加されたす。 忘れずにアップデヌトしおください
ただしMANIFESTファむル。

新しいナニットを䜜成するには、次の手順を実行したす。

· 同様のナニットを新しい .U ファむルにコピヌしたす。 遞択する名前は、
ナニットによっお生成される倉数。ただし、これはナヌザヌにずっお䟿宜的なものであり、機胜を提䟛するものではありたせん。
芁件。 ファむル名が途切れないように、12 文字以䞋にする必芁がありたす。
実際には、RCS を䜿甚したい人が䜿甚できるように、おそらく 10 以䞋にする必芁がありたす。
切り取らずに最埌に .U,v を付けたす。 Metaconfig は最初の文字の倧文字ず小文字を䜿甚しお、
倉数が実際にこのナニットによっお生成されるかどうかを刀断するため、倧文字にしないでください。
シェル倉数を生成するこずになっおいる堎合はナニット名。

· 新しい .U ファむルを必芁に応じお線集したす。 最初の ?MAKE: 行は、
䟝存関係; 最埌のリストの前に、このナニットが定矩するすべおの倉数をコロン付けしたす。
最埌のコロンの埌には、この単䜍が䟝存するすべおの倉数 (たたは他の単䜍) が入りたす。
これらのリストが正確であるこずは非垞に重芁です。 䟝存関係がオプションであり、
デフォルト倀を䜿甚できる堎合は、䟝存関係の前に「+」蚘号を付ける必芁がありたす。 の
本圓に必芁でない限り、察応するナニットはシンボルを蚈算するためにロヌドされたせん。
別のナニットで。

· 可胜な限り、䞊で定矩されたシェル倉数に基づいおナニットをパラメヌタ化したす。
?INIT: 行。 これにより、倉数定矩が Init.U ナニットたで移動されたす。
これらは、Init.U の埌に含たれる Myinit.U の定矩によっおオヌバヌラむドできたす。

· 必芁な C シンボルの定矩を ?H: 行ずしお远加したす。 で始たる行
.U ファむル内の ?H:?%<: は、次の堎合に限り、最終的な config.h ファむルに远加されたす。
metaconfig は、このナニットが必芁であるず刀断したす。 %< はナニットの名前を衚したす。
以䞋に埓った堎合、これはたたたたファむル名でもありたす (.U なし)。
倧䌚。 倉数のいずれかの堎合に備えお、各 ?H: 行に必ずコメントを入れおください。
行の前半で眮換を行うず、コメントを終了せずにコメントが開始されたす。 任意のシェル
d_ で始たる倉数はこれを行う可胜性があるため、泚意しおください。 ?%<: を省略するず、
metaconfig は、定矩が必芁なシンボルを盎感的に理解しようずしたす。
config.h に含めたす。

· 甚語集の定矩を、シェル倉数の堎合は ?S: 行、C の堎合は ?C: 行ずしお远加したす。
プリプロセッサ倉数。 䟋に぀いおは、珟圚の単䜍を参照しおください。 非垞に重芁です
各゚ントリは巊揃えのシンボル名で始たり、各゚ントリは ?C: で終わりたす。 たたは
?S:。 ラむン。 C プリプロセッサのシンボル ゚ントリを倉換するアルゎリズム。
config.h のコメントぞの甚語集はこれに䟝存したす。

・党おの泚文を必ず確認しおください。 ラむンは正しいです。 正しい順序は次のずおりです。

?RCS: および ?X: 基本的には単なるコメントです
?MAKE: メタコンフィグの䟝存関係
?Y: ナニット配眮指什
?S: 甚語集のシェル定矩
?C: 甚語集 C の定矩
?H: config.h の定矩
?M: confmagic.h の定矩
?W: 必芁なシンボル
?V: 可芖シンボル
?F本機で䜜成したファむル
?T: 䜿甚される䞀時シェルシンボル
?D: オプションの䟝存関係のデフォルト倀
?O: 廃止されたナニットをマヌクするために䜿甚されたす。
?LINT: metalint ヒント
?INIT: シェルシンボルの初期化

以䞋に、行の順序ず䜿甚できるさたざたな圢匏を瀺す䟋を瀺したす。

?RCS: $RCS-Id$
?RCS著䜜暩情報
?RCS: $RCS-Log$
バツ
?X: 䞍自然な䟋
バツ
?MAKE:d_one two: three +XNUMX Five
?MAKE: -pick add $@ %
?Y:デフォルト
?S:d_one:
?S: 最初のシェル シンボル。条件付きで ONE を定矩したす。
?S:。
?S:XNUMX:
?S: XNUMX 番目のシェル シンボル、TWO の倀。
?S:。
円錐
?C: 最初の C 蚘号。
?C:。
?Cツヌ
?C: XNUMX 番目の C 蚘号。
?C:。
?H:#$d_one ONE /**/
?H:#define TWO "$two"
?H:#$d_one ONE_TWO "$two"
?H:。
?M:フリップ: HAS_FLIP
?M:#ifndef HAS_FLIP
?M:#define フリップ(x) フロップ(x)
?M:#endif
?M。
?W:%<:one_two
?V:p_one p_two:p_three
?F:ファむル ./ftest !tmp
?T:tmp 倉数
?D:two='undef'
?LINT: XNUMX ぀倉曎
?INIT:two_init='2'
: ナニットを実装するシェルコヌドは次のずおりです
p_one='XNUMX'
p_two='XNUMX'
p_three=""

もう䞀床蚀っおおきたすが、䞊蚘の単䜍定矩は 停 のみを衚瀺するもの
さたざたな可胜性。 いずれにせよ、そのようなナニットはほずんど圹に立ちたせん... さらに詳しく
高床な機胜に぀いおはここでは説明したせん。 を参照しおください。 REFERENCE 詳现に぀いおはセクション
完党な情報。

· 必芁に応じお、ナニットをパブリックたたはプラむベヌト U ディレクトリに眮きたす。

・再攟送 メタ構成.

· ナニットを次の宛先に送信しおください [メヌル保護] (Raphael Manfredi) マスタヌコピヌに含めるために、
それが䞀般的な関心事だず思われる堎合。

怜玢する新しいプログラムを远加するには:

· Loc.U を線集し、プログラムの名前を ?MAKE: 行 (
XNUMX ぀のコロン) ず loclist たたは trylist (プログラムが
必須かどうか。

· メタコンフィグを再実行したす。

· 䞀般的な内容だず思われる堎合は、マスタヌ コピヌに含めるためにあなたのナニットを私に送っおください。
関心。

.U ファむルを曞き蟌む堎合の泚意事項:

* デフォルトで rm が察話型になるシステムがあるため、垞に「rm -f」を䜿甚しおください。

* 「--」はすべおのシェルで機胜するわけではないため、「set -- ...」は䜿甚しないでください。 「set x ...;」を䜿甚したす。
シフト"。

* unset は完党に移怍可胜ではないため、「unset ENV」は䜿甚しないでください。 代わりに「ENV=」ず蚀っおください。

* Eunice システムのため、垞に echo " " (スペヌスを含む) を䜿甚しおください。

※䜿甚のみ test -r、-w、-f、たたは -d を䜿甚したす。これは、これらが唯䞀の移怍可胜なスむッチであるためです。 で
特に、「test -x」は避けおください。

* 誰もがそれを持っおいるこずがわかるように、V7 に付属のプログラムのみを䜿甚しおください。

* すべおの grep が結果を返すわけではないため、条件付きで grep を実行する堎合は $contains を䜿甚したす。
劥圓なステヌタス。 '>/dev/null を䜿甚しお、出力を /dev/null にリダむレクトしおください。
2>&1'。

* すべおの sh が埌者の構造を知っおいるわけではないため、「if [...]」ではなく「if test」を䜿甚しおください。

* シェル゚スケヌプずデフォルトを実行できるように、入力に myread スクリプトを䜿甚したす。
評䟡。 䞀般的な圢匏は次のずおりです

ケヌス「$grimble」
'') dflt=452;;
*) dflt="$グリムブル";;
ESAC
rp='グリムブルは䜕個ありたすか?'
。 ./myread
グリンブル=「$ans」

* オプションのファむル パス名を芁求する堎合は、getfile スクリプトを䜿甚したす。
~名前の拡匵ず健党性チェック。 完党な説明に぀いおは、Getfile.U ナニットを参照しおください。

* を必ず入れおください

$startsh

によっお起動たたは゜ヌスされるすべおの生成されたスクリプトの先頭に
構成.

* オブゞェクト ファむルが次の文字で終わるずいう䞀般的な UNIX 䞻矩を決しお想定しないでください。 .o &
ラむブラリ名が次で終わるこず .a。 䜿甚 $_o & $_a 代わりに倉数を䜿甚したす (「
Unix.U)。

* コンパむル、リンク、実行のテストを行う堎合は、垞に次のように蚘述したす。

$cc $ccflags $ldflags try.c -o $libs を詊しおください

䞀郚のシステムでは、コンパむルされる前にリンク フラグを指定する必芁があるためです。
タヌゲット (末尟のリンク ラむブラリを陀く)。

* '>&4' を䜿甚しお出力をリダむレクトし、ファむル蚘述子 #4 で重芁なメッセヌゞを発行したす。
これらのメッセヌゞのみが衚瀺されたす。 -s スむッチが䞎えられる 構成
コマンドラむンサむレントモヌド。

* 機胜が存圚するかどうかを最も具䜓的な方法で垞に刀断しようずしたす。そうしないでください。
libc を grep できるずきに「if bsd」ず蚀いたす。 䞖の䞭にはハむブリッドシステムがたくさんありたすが、
各機胜は単独で立぀か倒れる必芁がありたす。

* 最も䞀般的な方法で機胜が存圚するかどうかを垞に刀断しようずしたす。
他のパッケヌゞでもあなたのナニットを䜿甚できたす。

* 疑問がある堎合は、デフォルトを蚭定しお質問しおください。 䜕も想定しないでください。

* ナヌザヌが間違っおいるず思う堎合は、ナヌザヌが正しいかもしれないずいう事実を考慮しおください。 のために
たずえば、䜿甚するシステムずは別のシステムで Configure を実行しおいる可胜性がありたす。
最終補品が完成したす。

Metaconfig はディレクトリ内に次の名前を予玄したす。そのような名前を䜿甚するず、
砎壊されたり、その他の予期せぬ圱響が発生したりする可胜性がありたす。

.MT/*
構成
欲しいです
廃止された
configure
config_h.SH
confmagic.h
う/*
マニフェスト.new

さらに、Configure が実行されおいるディレクトリ内のこれらの名前を䞊曞きする可胜性がありたす。

UU/*
config.sh
config.h

OPTIONS


次のオプションはによっお認識されたす メタ構成:

-d デバッグモヌドをオンにしたす。 デバッグしない限りあたり圹に立ちたせん メタ構成
そのもの。

-h ヘルプメッセヌゞを印刷しお終了したす。

-k 䞀時ディレクトリを保存しおおくず、䜿甚される䜜業ファむルを調べるこずができたす。
メタ構成 あなたを構築する 構成 脚本。 デバッグする堎合にのみ圹立ちたす。
単䜍

-m 倧量のメモリずスワップ領域を想定したす。 これにより、シンボルの怜玢が高速化されたす。
゜ヌス ファむルの読み蟌みにかなりの時間がかかり、メモリが消費されたす
消費...

-o 廃止されたシンボルを新しいシンボルにマッピングしたす。 ただ残っおいる堎合は、このスむッチを䜿甚しおください
゜ヌスコヌド内に叀いシンボルがあり、削陀したくないたたは削陀できない
今のずころ圌ら。 それ以倖の堎合、廃止されたシンボルは無芖されたすが、
から譊告を発したす メタ構成.

-s サむレントモヌドをオンにしたす。

-t シンボルが芋぀かったらトレヌスしたす。

-v 詳现モヌドをオンにしたす。

-w 求められおいるファむルは最新であるず仮定したす。 これにより時間ず蚘憶がスキップされたす
゜ヌス コヌド スキャンの消費段階で、既知のシンボルを探したす。 これを䜿っお
゜ヌスファむルが倉曎されおいないこずがわかっおいる堎合にのみ、
のプヌル メタ構成 䜿甚される蚘号。

-G GNUも提䟛したす configure生成されたフロント゚ンドのようなもの 構成
スクリプトもディストリビュヌションに含たれる予定です。 これは単なるラッパヌです
呚りに 構成 スクリプトは自然ですが、これにより、人々は
新しいディストリビュヌションに盎面したずきに倱われないようにするための GNU ツヌル。

-L DIR デフォルトのラむブラリの堎所を䞊曞きしたす。 通垞はメタコンフィグにのみ圹立ちたす
メンテナは、開発䞭のナニットをロヌカルで䜿甚できたす。
公的に入手可胜なもの。 の DIR 指定されたものは単䜍を含むものです
U ディレクトリにありたす。

-M の生産を蚱可する confmagic.h ファむルを䜿甚しお、いく぀かのりェルを自動的に再マッピングしたす。
既知のシンボルを他の代替手段に眮き換える bコピヌ() 再マッピング䞭
透過的に memcpy() 利甚できないずき。 このオプションはオンになっおいたす
自動的に confmagic.h ファむルは最䞊䜍ディレクトリに存圚したす。
このオプションを氞久に無効にしたい堎合は、そのファむルを削陀しおください。

-V バヌゞョン番号を出力しお終了したす。

チュヌトリアル


この (長い) セクションは、 メタ構成、そこで私たちはすべおを孊びたす
基本。 すでに䜿い方を知っおいる堎合 メタ構成、次ぞ安党にスキップできたす
のセクションから無料でダりンロヌドできたす。

抂芁
通垞、特定のプラットフォヌムでコンパむルする゜ヌス パッケヌゞを取埗したい堎合は、
メむンの Makefile を線集するには (それがあるず仮定しお!)、C コンパむラを遞択しおください。
適切なラむブラリを甚意しおから、 make 指瀺。 パッケヌゞが合理的であれば
よく曞かれおいるので、コンパむルできたす (オプションの譊告なしで :-)。 それ自䜓は最埌に
珟圚利甚可胜なさたざたな UNIX プラットフォヌムを考慮するず、この文は本物のパフォヌマンスです。
そしおフレヌバヌの倚様性、それはパッケヌゞの䜜者が深く远求したこずを意味したす
暙準的な詊行、掚枬、混乱を考慮するず、正しい遞択を芋぀けるのに苊劎する
システムのむンクルヌドずタむプに぀いお説明したす。

しかし、これだけの才胜にもかかわらず、著者は、あるシステムに
システムコヌルが壊れおいるか、システム構造の䞀郚に暙準フィヌルドが XNUMX ぀欠けおいる、たたは
単に指定されたむンクルヌド ファむルが存圚するかどうかだけです。 そしお私は暗黙のこずを考慮しおいたせん
によっお返される型などの仮定 malloc 機胜たたはその存圚
リネヌム() いく぀か䟋を挙げるず、システムコヌルです。 しかし、その知識は本圓のこずを達成するために必芁です
移怍性。

今、自分自身を虐埅しないようにしたしょう。 その情報を䜿甚するには、より高床なスキルが必芁ですが、
システムに䟝存しない方法で蚘述されるため、より移怍性の高いプログラムが可胜になりたす。
ある仮定が特定のシステム䞊で真か停であるずいう事実のみに䟝存したす。
それぞれの仮定は互いに無関係です。 ぀たり、私たちは「私たちはにいたす」ずは蚀いたせん。
BSD システム、たたは USG システムを䜿甚しおいたす。 ずにかく今では曖昧すぎたす。 いいえ、そうしたいです
゜ヌス コヌドにこう蚀いたす: このシステムには リネヌム() システムコヌルず malloc
を返す 空所 *) の倀です。

Metaconfig はたさにそれを可胜にするツヌルですが、次のような利点もありたす。
すべおがうたくいった堎合は、Makefile を手動で線集する必芁がありたす。 走るこずで メタ構成を䜜成するず、
ずいう名前のシェルスクリプト 構成。 Configure スクリプトには倚倧な劎力が費やされたした。
珟時点で利甚可胜な既存のシェルの 99% で動䜜するこずを保蚌するための内郚構造
曞き蟌み。 Configure はタヌゲット システムを調査し、疑問がある堎合は質問したす。
すべおの回答を XNUMX ぀のシェル ファむルに収集し、これを次の目的に䜿甚できたす。
蚭定された Makefile ず C むンクルヌド ファむルを自動的に生成したす。

シェル スクリプトで䜿甚できるシンボルのセットは限られおいたす (ただし、かなり倧きい)。
そしおCプログラム。 これらはすべお甚語集ファむルに文曞化されおいたす。 必芁なのは孊ぶこずだけです
それらに぀いお説明し、移怍性ず構成の問題に察凊するためにそれらを䜿甚し始めおください。 それから、
実行するこずにより メタ構成を遞択するず、パッケヌゞに適した構成スクリプトが生成されたす。

構成スクリプトは耇数のナニット (300 以䞊) で構築されおおり、各ナニットは
少数のシェルおよび/たたは C シンボルの定矩を担圓したす。 ナニットが組み立おられおいたす
䟝存関係グラフを尊重しお、最終段階で䞀緒に実行したす (XNUMX ぀のナニットが結果を必芁ずする堎合がありたす)
他のいく぀かのナニットはスクリプトの前に配眮されたす)。

シンボル
シンボルはその䞭で最も重芁なものです メタ構成 䞖界。 圌らは最も小さいです
認識された゚ンティティ (通垞は単語) であり、蚭定の最埌に倀を付䞎できたす。
実行。 たずえば、C プリプロセッサ シンボル HAS_RENAME   メタ構成 それを象城する
が定矩されるこずが保蚌されるのは、 リネヌム() システムコヌルが存圚したす。 同じく、
  $ranlib シェル倉数は、
に電話する ランリブ ラむブラリファむルを泚文するにはプログラムが必芁です。 これがどのように機胜するかはそうではありたせん
珟時点では重芁ですが、重芁なのは、これらのシンボルには次のような性質が䞎えられおいるこずを理解するこずです。 生掻
(぀たり倀) 構成 実行。

シンボルの䜿甚は比范的簡単です。 C ゜ヌス ファむルでは、単に次のシンボルを䜿甚したす。
プリプロセッサ ディレクティブずしおの倀 (たずえば: #ifdef HAS_RENAME) たたは、蚘号の堎合
value は文字列です。C でマクロを䜿甚する堎合ず同様に、シェル ファむルたたは
Makefile では、シェル シンボルを盎接参照できたす。

実際のずころ、私は嘘を぀いおいたす。なぜなら、それは前の段萜ほど完党に魔法ではないからです。
聞こえるかもしれない。 C ファむルには、Configure で生成された config.h ファむル、および
シェル スクリプトたたは Makefile を .SH ファむルでラップする必芁があり、シェルを参照するこずもできたす。
シンボルは、その .SH ファむルの倉数眮換郚分にのみ含たれたす。 これに぀いおは埌で詳しく説明したす。

゜ヌス
シンボルは、限られた゜ヌス ファむルのセットにのみ衚瀺される堎合がありたす。 メタ構成 のみ
既知のシンボルを探すずきにそれらをスキャンし、必芁な単䜍を把握しようずしたす。
C ゜ヌス ファむル、぀たり、 .c, .h, .y or .l 拡匵、および
シェル シンボルは .SH ファむル内でのみ怜玢されたす。

シンボルの倀を取埗するには、C ファむルに特別な config.h
ファむル、によっお䜜成されたす 構成 C シンボルが存圚する堎合。 そしお、.SHファむルが実行されたす
シェルを介しお新しいファむルを䜜成したす。 ただし、.SH ファむルの先頭セクションでは、
特別 config.sh ファむル (実行によっおも生成されたす) 構成) は゜ヌスであり、倉数です
代替品が適甚されたす。 実は、 config.h を実行するこずによっお生成されたす メタ構成 - 生産された
config_h.SH ファむルを再床倉数眮換を䜿甚しお䜜成したす。 それでは、それを芋おいきたす
ここが党䜓の䞭心なので、もう少し詳しく芋おみたしょう の監芖 スキヌム...

倉数 眮換
ずいうシェル構造がありたす こちら ドキュメント コマンドが入力を取埗できるようにしたす
スクリプト自䜓の䞭で指定されたす。 その入力はシェルによっお double-
ヒアドキュメントの圢匏に応じお匕甚笊で囲たれた文字列たたは䞀重匕甚笊で囲たれた文字列
仕様。

ヒアドキュメントを指定するには、「<<」トヌクンの埌に単䞀の識別子を䜿甚したす。 から
その埌、残りのスクリプト行がコマンドの入力を圢成し、ここたで続きたす。
ドキュメントが単独で行䞊に芋぀かりたす。 シェル眮換シェル倉数を含む
眮換) は、識別子が䞀重匕甚笊で囲たれおいない限り実行されたす。 䟋えば

var='最初'
tar='秒'
echo "--> 最初のここのドキュメント:"
猫<
var='$var'
tar='$tar'
EOM
echo "--> ここの XNUMX 番目のドキュメント:"
猫 <<'EOM'
$varを゚コヌする
$tarを゚コヌする
EOM
゚コヌ「-->終了」。

シェルを通しお実行するず、次のものが生成されたす。

--> 最初のドキュメントは次のずおりです。
var='最初'
tar='秒'
--> XNUMX 番目のドキュメント:
$varを゚コヌする
$tarを゚コヌする
--> 終了。

最初のヒアドキュメントの内容は解釈され、XNUMX 番目のドキュメントはそのたた出力されたす。
これから説明するように、どちらも .SH スクリプトで圹立ちたす。

䜿い方 。NS スクリプト
.SH スクリプトは通垞、次のコマンドを実行するこずによっお生成されたす。 MakeSH 既存のファむル以倖のスクリプト、
倉換 file ファむル.SH。 䞀぀の䟋を挙げおみたしょう。 ここに小さなスクリプトがありたす
それを呌びたしょう むンサむズ) 単䞀のメッセヌゞを出力したす。 int型 C のデヌタ型。
残念ながら、それには倀が組み蟌たれおいるため、次のようになりたす。

#!/bin/sh
intsize='4'
echo "このマシンでは、int 型は $intsize バむトです"

走ろう メむクSH 「」ず入力しおその䞊でメむクSH むンサむズ'。 シングルを手に入れたす intsize.SH そのファむル
次のようになりたす。

$CONFIG の堎合
''
if テスト -f config.sh; 次に TOP=.;
elif テスト -f ../config.sh; 次に TOP=..;
elif テスト -f ../../config.sh; 次にTOP=../ ..;
elif テスト -f ../../../config.sh; 次にTOP=../../.。;
elif テスト -f ../../../../config.sh; 次にTOP=../../../.。;
ほかに
echo "config.sh が芋぀かりたせん。"; 出口1
fi
。 $TOP/config.sh
;;
ESAC
: これにより、SH ファむルは匷制的に SH ファむルず同じディレクトリにタヌゲットを䜜成したす。
: これは、make depend が垞に SH 導関数がどこにあるかを知るためです。
ケヌス「$0」
*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
ESAC
echo "intsize を抜出しおいたす (倉数眮換あり)"
: ファむルのこのセクションでは倉数眮換が行われたす。
: 蚭定サブスクラむブが必芁なものはすべお !NO!SUBS! から移動したす。 !GROK!THIS! たでのセクション。
: 解釈されたくないドル蚘号ずバッククォヌトを保護したす。
: 前にバックスラッシュを眮きたす。 これらのコメントは削陀しおも構いたせん。
$spitshell >intsize <
$startsh
!グロッ!これ!

: 以䞋のドルずバッククォヌトでは、䜙分なバックスラッシュは必芁ありたせん。
$spitshell >>intsize <<'!NO!SUBS!'
intsize='4'
echo "このマシンでは、int 型は $intsize バむトです"
!いいえ!サブス!
chmod 755 intsize
$eunicefix intsize

このスクリプトの最初の郚分 ( 堎合 ステヌトメント) を芋぀けようずしおいたす config.sh
ファむルを゜ヌスするために。 の $CONFIG 倉数はデフォルトでは false ですが、次の堎合は true になりたす。
config.sh すでに゜ヌスされおいたす (このファむルがから実行された堎合に圓おはたりたす)
以内 構成 それ自䜓ですが、ここで問題を混同しないようにしたしょう)。

䞀床 config.sh ファむルは゜ヌスであり、によっお定矩されたすべおのシェル シンボルが含たれおいたす。 構成  
セット。 XNUMX 番目の case ステヌトメントに到達したこずがわかりたす。これは、珟圚のディレクトリを倉曎するために䜿甚されたす。
このプログラムに到達するためにパスを䜿甚する必芁がありたす (たずえば、「sh ../scripts/intsize.SH'、 私たちは
最初に実行するのは 'cd ../スクリプト続行する前に)。 これを理解できない堎合は、しないでください
心配しおください。

ここで興味深いこずが起こりたす。 このスクリプトでは、 $スピットシェル 倉数ですが、そうではありたせん
私たちが知っおいるこずは...ただありたす。 甚語集ファむルを芋るず、次のこずがわかりたす。
これはによっお知られる倉数です メタ構成。 このファむルをディストリビュヌションの䞀郚にするず、
(これを MANIFEST.new ファむルに含めるこずにより、埌で説明したす) を実行したす。
メタ構成、 そうしお 構成 スクリプトはこの倉数に適切な倀を決定したす
そしおそれはに蚭定されたす config.sh。 同じこずが蚀えたす $startsh そしお神秘的な $eunicefix at
終わり。 合理的なシステムでは、 config.sh 次のようになりたす:

spitshell='猫'
startsh='#!/bin/sh'
ナニスフィックス=':'

ああ そこに近づいおいたす。 今では芋慣れたものに芋えたす。 私たちはシングルに盎面しおいたす cat 誰のコマンド
入力は倉数補間されたヒアドキュメントから取埗され、その出力はにリダむレクトされたす。
むンサむズ。 倀は次のようになりたす。 $startsh、぀たり「#!」/bin/sh'。 ここたでは倧䞈倫です。

次に、スクリプトの残りを取埗するために、XNUMX 番目のヒア ドキュメント展開に到達したす。 これ
ヒアドキュメントのシンボルは䞀重匕甚笊で囲たれおいるため、内容は次のようになりたす。
に逐語的に远加されたした むンサむズ ファむル。 したがっお、「」を実行するず、sh intsize.SH' を取埗したす。
次の出力:

intsize の抜出 (倉数眮換あり)

生成された intsize ファむルを芋るず、次のこずがわかりたす。

#!/bin/sh
intsize='4'
echo "このマシンでは、int 型は $intsize バむトです"

それはたさに私たちが最初に持っおいたものです。 ここたでは無操䜜手順です...
しかし、䜕ず玠晎らしいこずでしょう。 それはたたたたですたったくの偶然です、信じおください。 メタ構成 知っおいる
箄 $intsize シェルのシンボル。 intsize の初期化を倉数に移動するこずで、
.SH スクリプトの補間領域ずそれを䜿甚した初期化 構成- 蚈算された倀、
によっお远加された䞍芁なコメントを削陀したす メむクSH、 我々が埗る

$CONFIG の堎合
''
if テスト -f config.sh; 次に TOP=.;
elif テスト -f ../config.sh; 次に TOP=..;
elif テスト -f ../../config.sh; 次にTOP=../ ..;
elif テスト -f ../../../config.sh; 次にTOP=../../.。;
elif テスト -f ../../../../config.sh; 次にTOP=../../../.。;
ほかに
echo "config.sh が芋぀かりたせん。"; 出口1
fi
。 $TOP/config.sh
;;
ESAC
ケヌス「$0」
*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
ESAC
echo "intsize を抜出しおいたす (倉数眮換あり)"
$spitshell >intsize <
$startsh
intsize='$intsize'
!グロッ!これ!

$spitshell >>intsize <<'!NO!SUBS!'
echo "このマシンでは、int 型は $intsize バむトです"
!いいえ!サブス!
chmod 755 intsize
$eunicefix intsize

もちろん、シェルを通じおこのスクリプトを実行するず、同じスクリプトが再床出力されたす。 しかし、もし
私たちは走る 構成 マシン䞊で int型 64 ビット量ずしお保存されたす。 config.sh 意志
セッションに むンサむズ 8ず むンサむズ スクリプトには正しい倀が含たれ、次のように出力されたす。

このマシンでは int 型は 8 バむトです

どちらが正しい。 おめでずう シェルスクリプトを蚭定したした!!

プロデュヌス config.h
今、その道を芋おみたしょう config.h から生産されたす config_h.SH。 私達はこずを知っおいたす
ランニング 構成 を生成したす config.sh スクリプト (これがどのように正確に行われるかは厳密にはわかりたせん)
ここに関連したすが、興味がある方のために、これはここでの別のドキュメントの眮換です。
構成 自䜓。 の config_h.SH それ自䜓はによっお構築されたす メタ構成 同時に
構成 ただし、゜ヌス内で少なくずも XNUMX ぀の C シンボルを䜿甚する堎合に限りたす。

ランダムに芋おみたしょう config_h.SH 実際に䜕が起こるかを確認するには、次のファむルを䜿甚したす。

$CONFIG の堎合
''
if テスト -f config.sh; 次に TOP=.;
elif テスト -f ../config.sh; 次に TOP=..;
elif テスト -f ../../config.sh; 次にTOP=../ ..;
elif テスト -f ../../../config.sh; 次にTOP=../../.。;
elif テスト -f ../../../../config.sh; 次にTOP=../../../.。;
ほかに
echo "config.sh が芋぀かりたせん。"; 出口1
fi
。 $TOP/config.sh
;;
ESAC
ケヌス「$0」
*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
ESAC
echo "config.h を抜出しおいたす (倉数眮換あり)"
セド< config.h -e 's!^#undef!/define!' -e 's!^#un-def!#undef!'
/*
* このファむルは config_h.SH スクリプトを実行するこずによっお生成されたした。
* config.sh から倀を取埗したす。config.sh は通垞、次のように生成されたす。
* 構成を実行䞭。
*
※必芁に応じお自由に修正しおください。 ただし、泚意しおください。
* config.h.SH を再床実行するず、行った倉曎はすべお消去されたす。
* より氞続的な倉曎を行うには、config.sh を線集し、config.h.SH を再実行したす。
*/

/* 構成時間: $cf_time
* 構成者: $cf_by
* 察象システム: $myuname
*/

#ifndef _config_h_
#define _config_h_

/* bコピヌ:
* bcopy() ルヌチンが存圚しない堎合、このシンボルは memcpy にマップされたす。
* 文字列をコピヌできたす。
*/
/* HAS_BCOPY:
* このシンボルは、bcopy() ルヌチンが利甚可胜な堎合に定矩されたす。
* メモリのブロックをコピヌしたす。 この蚘号は以䞋の環境では䜿甚しないでください。
* 通垞の状況では、代わりに bcopy() を盎接䜿甚したす。
* bcopy が䜿甚できない堎合は、memcpy() にマップされたす。
*/
#$d_bcopy HAS_BCOPY /**/
#ifndef HAS_BCOPY
#ifdef bcopy
#un-def bcopy
#endif
#define bcopy(s,d,l) memcpy((d),(s),(l)) /* memcpy にマップされる */
#endif

/* HAS_DUP2:
* このシンボルが定矩されおいる堎合、dup2 ルヌチンが
* ファむル蚘述子の耇補に䜿甚できたす。
*/
#$d_dup2 HAS_DUP2 /**/

/* I_STRING:
* このシンボルが定矩されおいる堎合、C プログラムに察しお次のこずを瀺したす。
* 含む(USG システム) の代わりに(BSD システム)。
*/
#$i_string I_STRING /**/

#endif
!グロッ!これ!

ファむルの先頭で、すでに甚意されおいる暙準の .SH 構造を認識したす。
詳しく勉匷したした。 次に、ヒアドキュメントを介しおファむル自䜓を抜出したす。
倉数の眮換。 ただし、ここではプレヌンは䜿甚したせん。 cat しかし、 sed 代わりに、
さらにその堎で線集を行う必芁がありたす。 理由は埌ほどわかるので忘れたしょう
今それに぀いお。

ここで先頭のコメントに到達し、ファむルには蚭定時間のタグが付けられおいたす。
タヌゲット システムなど... (これらの倉数は゜ヌスから取埗されたす) config.sh ファむルは
によっお蚭定されたした 構成。 そのコメントヘッダヌの埌には、「#ifndef」保護が続きたす。
このファむルの耇数のむンクルヌドに察しお。 次に、ファむルの䞭心郚分が来たす...

そのこずを知るのに圹立ちたす $d_* & $i_* 倉数は次のいずれかに蚭定されたす。定矩したす'たたは'未定矩' による
構成関数たたはむンクルヌド ファむルがシステム䞊に存圚するかどうかに応じお、
ない。 それは次のこずを意味したす:

#$d_bcopy HAS_BCOPY /**/

行は次のいずれかに展開されたす。

#define HAS_BCOPY /**/

$d_bcopy 倉数が「define」に蚭定されおいる堎合、たたは:

#undef HAS_BCOPY /**/

$d_bcopy が 'undef' に蚭定されおいる堎合、その機胜は存圚したせんでした。 しかし、そうではありたせん
に䜕が曞かれおいるか config.h ファむルのため sed すでに芋たフィルタヌ、
これにより、XNUMX 番目の圢匏が次のように倉換されたす。

/*#define HAS_BCOPY /**/

これは埌で線集するのに䟿利なフォヌムです config.h を削陀するだけでよいため、
䞊曞きする堎合は先頭に「/*」を付けたす 構成さんの遞択。 同様に、単䞀のを远加するこずもできたす
特定のシンボルの定矩を回避するには、「#define」行の先頭に「/*」を䜿甚したす。
このため、各シンボル定矩は先頭のシンボルを閉じるために末尟の「/**/」で保護されおいたす。
コメントは '/*' によっお開かれたす (コメントは C ではネストされたせん)。

'#undef' を '/*#define' に倉換するのは良いこずですが、実際に
「#undef」、私たちは行き詰たっおいたす...「#un-def」ず曞いお蚱可しない限り、 sed それを「#undef」に修正しおください
制䜜䞭 config.h、これがここで実際に行われおいるこずです。

同じような掚論が次の XNUMX 行にも圓おはたりたす。

#$d_dup2 HAS_DUP2 /**/
#$i_string I_STRING /**/

そしお仮定するず config.sh 定矩したす:

d_dup2='定矩'
i_string='undef'

私たちは生産されたものに入りたす config.h:

#define HAS_DUP2 /**/
/*#I_STRING を定矩 /**/

流氎のように透明ですか 良い

これで、次のこずが明らかになるはずです。 config.h すべおの C ゜ヌス ファむルで、次のこずを行うこずができたす。
䜕を知っおいる 構成 あなたのシステムを掚枬したした。 実際、これらの蚘号を䜿甚するず、
蚭定された C コヌドを蚘述するため、 メタ構成 それらのシンボルが必芁であるこずがわかり、
適切なものを生成する config_h.SH ファむルず必芁なすべおのコヌド 構成 〜ぞ
(関連するシェル倉数に倀を割り圓おるこずによっお) それらの適切な倀を蚈算したす。

Running: メタ構成
に焊点を圓おたしょう メタ構成 しばらくプログラムを実行しお、その単䜍がどのように䜿甚されるかを理解したす。
゜ヌス コヌドを䜿甚しお、必芁なすべおの構成ファむルを生成したす。 新しく曞こうず思ったら
単䜍を取埗するには、党䜓のスキヌムをよく理解する必芁がありたす。

MANIFEST.newファむルがない堎合は、 メタ構成 代わりに MANIFEST ファむルを䜿甚しようずしたす。
䟿宜䞊。 MANIFEST.new に぀いお蚀及しおいる箇所はどこでも、MANIFEST ずしお理解できたす。
パッケヌゞのルヌトに MANIFEST.new ファむルが芋぀からない堎合に限りたす。

MANIFEST.new ファむルが適切に蚭定されおおり、必芁なすべおの゜ヌス ファむルがリストされおいるず仮定したす。
蚭定し、実行したこずを確認したす パケット ルヌト゜ヌスディレクトリに
。パッケヌゞ ファむルを実行しおください メタ構成 するず以䞋が埗られたす:

$メタコンフィグ
ナニットを怜玢䞭...
312 ナニットから䟝存関係リストを抜出しおいたす...
MANIFEST.new からファむル名 (*.[chyl] および *.SH) を抜出しおいたす...
手配䞭のファむルを構築しおいたす...
.[chyl] ファむルのシンボルをスキャンしおいたす...
.SH ファむルのシンボルをスキャンしおいたす...
最適な䟝存関係グラフを蚈算しおいたす...
プラむベヌトメむクファむルを構築しおいたす...
ロヌド可胜なナニットを決定䞭...
メむクファむルを曎新しおいたす...
ナニットの正しい順序を決定しおいたす...
構成を䜜成しおいたす...
完了したした。

最初のフェヌズでは、パブリック ディレクトリ内のすべおのナニット ファむル (.U で終わる) を怜玢したす。
最初に、次にあなたのプラむベヌトで。 プラむベヌト U ディレクトリにパブリック ファむルをコピヌする堎合
(぀たり、パッケヌゞの最䞊䜍にある U ずいう名前のディレクトリ)、パブリック ディレクトリをオヌバヌラむドしたす。
バヌゞョン。 利甚可胜なすべおのナニットのリストを取埗するず、それらを解析しおすべおのナニットを抜出したす。
?MAKE: 行を参照するず、䟝存関係ず既知のシェル シンボルに぀いお知るこずができたす。 たた
?H: 行に焊点を圓おお、C シンボルずどのシェル シンボルが必芁かを孊習したす。
その C シンボルの適切な倀を取埗するために蚈算されたす (したがっお、別のレベルの䟝存関係が存圚したす)
ここに。

次に、適切なファむル名が MANIFEST.new ファむルから抜出され、 欲しいです ファむルは
build: このファむルには、そのパッケヌゞに必芁なすべおの C シンボルずシェル シンボルがリストされおいたす。 私たちは
たず C タむプ ファむルをスキャンしお C シンボルを探し、次に䟝存関係をそれらのファむルに䌝播したす。
関連するシェル シンボル (?H: 行から収集)。 次に .SH ファむルがスキャンされ、最埌に
すべおのシェル シンボルがわかっおいたす。

䞀時的な Makefile が構築され、metaconfig が詊行されたす。 make 衚瀺されるすべおのシェル シンボル
どのコマンド (XNUMX 番目の ?MAKE: 行にリストされおいる) が実行されるか、したがっおどのナニットが実行されるか
本圓に必芁です。 他に必芁のないオプションのナニットは削陀され、XNUMX 番目の Makefile が䜜成されたす。
生成された。 今回は、すべおのナニットずそのそれぞれの順序、オプションに぀いお知っおいたす。
ナニットは削陀され、シェル シンボルのデフォルト倀が蚈算されたす。 の
構成 スクリプトを生成できたす。 config_h.SH。 終わったね。

衚蚘
プロセス党䜓を健党なものにするためには、適切な芏則に埓う必芁がありたす。 堎合がありたす
単䜍の芏則ず倉数の呜名芏則。

特殊なナニットでない限り、すべおのナニットの最初の文字は小文字にする必芁がありたす。 による
特別な、぀たり、それらは実際には、
ナヌザヌは .SH ファむル内に蚘述されたすが、むしろナニットがスクリプトやシェル倉数を生成したす。
によっお内郚的に䜿甚される 構成 脚本。 兞型的な䟋ずしおは、 初期化U ファむルは
メむン倉数の初期化、たたは Myread.U を生み出すのは 私の読み取り ほが䜿われおいるスクリプト
どこでも 構成 ナヌザヌに質問するずき。

特殊でないナニットは、倉数を定矩するナニットずいう XNUMX ぀の異なるグルヌプに现分されたす。
C シンボルず独自のシェル倉数を定矩するナニットに関連付けられおいたす。 最初のグルヌプ
むンクルヌド ファむルに関連する倉数にさらに分割されたす (名前は i_ず
他の定矩に関連する倉数で始たる名前 d_。 XNUMX番目のグルヌプは、
たずえば、名前自䜓がそれ自䜓を衚す cc.U を定矩したす $cc 倀が次のようなシェル倉数
䜿甚する C コンパむラ。

特殊ナニットは、事前に定矩された倉数を予玄し、「結果」を返す堎合がありたす。
他のよく知られた倉数でも。 たずえば、 私の読み取り Myread.U が䜜成したスクリプト
のプロンプトが期埅されたす $rp、のデフォルトの答え $dflt ナヌザヌの回答を次の堎所に眮きたす $ans.
これはこのマニュアル ペヌゞには蚘茉されおいたせん。ナニット自䜓を調べお確認する必芁がありたす。
どの倉数が䜿甚されるか、単䜍がどのように䜿甚されるかを理解したす。

䜿い方   甚語解説
甚語集ファむルは、 メむクグロス スクリプト、
?S:、?C:、および ?MAKE: 行からの情報をアルファベット順に再フォヌマットしたす。
分類された甚語集。 自分のシンボルに぀いお知るために甚語集を読むこずが重芁です
䜿甚が蚱可されおいたす。 ただし、甚語集ではその䜿甚方法に぀いおは説明されおいたせん。 通垞、それは
あなた次第。

い぀か、あなたもおそらく独自の単元を䜜成し、次のこずに぀いお十分に知るこずになるでしょう。 メタ構成
それを迅速か぀効率的に行うために。 ただし、䜜業内容を適切に文曞化するこずを決しお忘れないでください。
?S: 行ず ?C: 行、たたは他の人がそれを再利甚するこずはできたせん。 に぀いお芚えおおいおください
甚語集ずこのマニュアル ペヌゞだけがあれば始められる時代でした。

たずめ
今あなたが知っおいる メタ構成 基本的には、読んでください。 DESCRIPTION セクション、その埌
にスキップしおください REFERENCE セクションでは、蚱可されおいるものなど、すべおの悲惚な詳现に぀いお孊びたす。
ナニット制埡行 (「?」で始たる行) たたは個別の MAKE コマンドの構文
䜿甚するこずが蚱可されおいたす。

REFERENCE


このセクションでは、 メタ構成、基本的に単䜍構文、特殊な
知っおおくべきナニットずヒントファむル。

ナニット 構文
メタ構成ナニットは XNUMX ぀の異なる郚分に分割されたす。 ヘッダヌ セクション (次の行から始たる)
'?' 付き) ずシェル セクション ( 構成 脚本。 それは
ナニット内のどこにでも「?X:」コメントを远加できたすが、他の「?」コメントは远加できたせん。 行たた
呌ばれたす コントロヌル ラむン) には厳栌な泚文ポリシヌがありたす。

制埡行が長すぎる堎合は、最埌の行を゚スケヌプするこずで継続を䜿甚できたす。
バックスラッシュを含む改行ず次の行ぞの継続 (その埌、むンデントする必芁がありたす)
スペヌスたたはタブで区切りたす)。

以䞋は、各制埡線の正匏な説明です。 明蚘されおいない限り
それ以倖の堎合は、このプレれンテヌションの順序が単元内で䜿甚される順序になりたす。

?RCS: 無料です。 큎띌우드 êž°ë°˜ AI/ML및 고성능 컎퓚팅을 통한 디지턞 튞윈의 Ʞ쎈 – Edward Hsu, Rescale CPO 많은 엔지니얎링 쀑심 Ʞ업에게 큎띌우드는 R&D디지턞 전환의 첫 닚계음 뿐입니닀. 큎띌우드 자원을 활용핎 엔지니얎링 팀의 제앜을 핎결하는 닚계륌 넘얎, 시뮬레읎션 욎영을 통합하고 최적화하며, 궁극적윌로는 몚덞 Ʞ반의 협업곌 의사 결정을 지원하여 신제품을 결정할 때 데읎터 êž°ë°˜ 엔지니얎링을 적용하고자 합니닀. Rescale은 읎러한 혁신을 돕Ʞ 위핎 컎퓚팅 추천 엔진, 통합 데읎터 팹뾌멭, 메타데읎터 ꎀ늬 등을 개발하고 있습니닀. 읎번 자늬륌 빌렀 비슈니슀 겜쟁력 제고륌 위한 디지턞 튞윈 및 디지턞 슀레드 전략 개발 방법에 대한 읞사읎튞륌 나누고자 합니닀.
ナニットの䞊郚にある RCS コメントに䜿甚されたす。

バツ どれか 큎띌우드 êž°ë°˜ AI/ML및 고성능 컎퓚팅을 통한 디지턞 튞윈의 Ʞ쎈 – Edward Hsu, Rescale CPO 많은 엔지니얎링 쀑심 Ʞ업에게 큎띌우드는 R&D디지턞 전환의 첫 닚계음 뿐입니닀. 큎띌우드 자원을 활용핎 엔지니얎링 팀의 제앜을 핎결하는 닚계륌 넘얎, 시뮬레읎션 욎영을 통합하고 최적화하며, 궁극적윌로는 몚덞 Ʞ반의 협업곌 의사 결정을 지원하여 신제품을 결정할 때 데읎터 êž°ë°˜ 엔지니얎링을 적용하고자 합니닀. Rescale은 읎러한 혁신을 돕Ʞ 위핎 컎퓚팅 추천 엔진, 통합 데읎터 팹뾌멭, 메타데읎터 ꎀ늬 등을 개발하고 있습니닀. 읎번 자늬륌 빌렀 비슈니슀 겜쟁력 제고륌 위한 디지턞 튞윈 및 디지턞 슀레드 전략 개발 방법에 대한 읞사읎튞륌 나누고자 합니닀.
䞀般的な目的のコメント。 ナニット内のどこにでも出珟できたすが、䞡端揃えで配眮する必芁がありたす。
RCS コメントに぀いおは、?RCS: コメント フォヌムを䜿甚しおください。

䜜るシンボル リスト: 䟝存関係 リスト [+オプション]
これは最初の䟝存関係行です。 最初 シンボル リスト すべおのシンボルをリストする必芁がありたす
このナニットによっお構築されたす (぀たり、その倀はナニットのシェル セクションによっお蚈算されたす)。
蚘号はスペヌスで区切る必芁がありたす。 定矩されたシンボルが内郚䜿甚のみを目的ずしおおり、
生成されたファむルには衚瀺されないはずです config.sh ファむルの堎合、その前に
'+' (今埌定矩されるオプションの䟝存関係ず混同しないでください)。 二番目
リストの䞀郚 (䞭倮の「:」以降) は単䜍の䟝存関係です。 すべおリストされるはずです
必芁な特殊単䜍ず、シェルで䜿甚されるすべおのシンボル
実装。 シンボルがネッディングされおいるが、その蚭定倀が重芁ではない堎合、
の前に「+」を付けるこずができたす。この堎合、条件付き䟝存関係ず呌ばれたす。
察応するナニットは、そのシンボルが実際にそうでない堎合にのみロヌドされたす。
欲しかった; それ以倖の堎合は、デフォルト倀が䜿甚されたす。

䜜るタブ command
最初の䟝存関係行の埌に XNUMX ぀以䞊のコマンド ラむンが存圚する堎合がありたす。 それらの
コマンドは、ナニットがコマンドをロヌドしたいずきに実行されたす。 構成。 芋る
詳现に぀いおは、make コマンドに関する段萜を参照しおください。 先頭の タブ
の前に文字が必芁です command.

?Y:レむアりト
このナニットのレむアりトディレクティブを宣蚀したす。 そのディレクティブは文字列の XNUMX ぀である可胜性がありたす
top, デフォルト or ボトム (倧文字ず小文字は関係ありたせん。掚奚されるスタむルは、それらを詳しく説明するこずです
倧文字)。 省略した堎合は、 デフォルト 想定されたす。

このディレクティブは、ナニットを匷制的に䞊郚たたは䞋郚に配眮する堎合にのみ必芁です。
生成されたの 構成 ナニットの䟝存関係により蚱可されるスクリプト。 重芁
したがっお、最初に質問が匷制される可胜性がありたす。 同じレむアりト クラス内のナニット
d_* および i_* 単䜍の XNUMX ぀の特殊なケヌスを䜿甚しおアルファベット順に゜ヌトされたす。匷制的に
それぞれクラスの最䞊䜍ず最䞋䜍にありたす (ただし、これらは
デフォルトのクラス。

他のすべおのナニットが䟝存関係にあるナニットを先頭に匷制的に配眮するず、
その前に、䜕も興味深いこずは達成されたせん。 したがっお、そのディレクティブは実際には
倚くの機胜に䟝存しない䞀郚の察話型ナニットの優先順䜍を䞊げるために䜿甚されたす。
パス関連の質問など、ナヌザヌに衚瀺されるその他のシンボル。

?S:シンボル名 [(廃止された シンボル リスト)]:
シェルシンボルを導入したす。 この最初の行ではシンボルの名前を指定し、その埌にオプションで
括匧で囲たれたリストず、廃止された同等のリストを瀺したす。 時代遅れのもの
シンボルは新しいシンボルに再マップされたす シンボル名 もし -o オプションが䞎えられたす
メタ構成.

?S:どれか テキスト、 for 甚語解説
基本的にシェル シンボルを説明するコメント。これは次のように抜出されたす。 メむクグロス
甚語集ファむルに远加したす。

?S:。 シェルシンボルのコメントを閉じたす。

?C:シンボル名 [~ alias] [(廃止された シンボル リスト)]:
新しい C 蚘号が導入されたした。 の alias name は、C シンボルが付けられる名前です。
制埡される堎合、぀たり、 alias シンボルが必芁な堎合、その C シンボルが曞き蟌たれたす
セクションに config_h.SH ファむル。 通垞、゚むリアスは単に「%<」ナニット名を衚したすです。
たた、C シンボルを alias。 関連郚分も
?H: 行のうち、「?%<」条件によっお明瀺的に保護されおいたす。 蚘号を参照しおください
詳现に぀いおは、別名段萜を参照しおください。 行の残りはオプションです
廃止された シンボル リスト、新しいものに盞圓する叀いものをリストしたす。 シンボル名.

?C:どれか テキスト、 for 甚語解説 & config_h.SH
基本的には C シンボルを説明するコメントで、次のように抜出されたす。 メむクグロス
甚語集ファむルに远加し、 メタ構成 に config_h.SH シンボルが次の堎合はファむル
必芁な堎合 (たたは、シンボルの゚むリアシングが䜿甚されおいるずきにその゚むリアスが必芁な堎合)。

?C:。 C シンボルのコメントを閉じたす。

?ひ:?シンボル:config_h.SH スタッフ
これは䞀般的な組み蟌みリク゚ストです。 config_h.SH。 この行は次の堎合にのみ曞き蟌たれたす。
è­Šå‚™ シンボル 本圓に求められおいたす。 この䞀般的な圢匏は、C シンボルの堎合に必芁です。
゚むリアシングが䜿甚されたした。 それ以倖の堎合、他の「暙準」圢匏のいずれかを䜿甚する堎合、
ガヌドは自動的に行われたす メタ構成 そのもの。

?H:#$d_var VAR "$ var"
条件付きで定矩したす VAR C蚘号を入力 $ var が「」に蚭定されおいる堎合定矩したす'。 を暗瀺したす。
'?VAR:' ガヌド条件、および メタ構成 自動的にリンクしたす VAR 二぀の殻に
倉数の䟝存関係 (぀たり䞡方 $d_var & $ var ずしおフラグが立おられたす wanted if VAR is
C ゜ヌスで䜿甚されたす)。

?H:#定矩 VAR [任意 큎띌우드 êž°ë°˜ AI/ML및 고성능 컎퓚팅을 통한 디지턞 튞윈의 Ʞ쎈 – Edward Hsu, Rescale CPO 많은 엔지니얎링 쀑심 Ʞ업에게 큎띌우드는 R&D디지턞 전환의 첫 닚계음 뿐입니닀. 큎띌우드 자원을 활용핎 엔지니얎링 팀의 제앜을 핎결하는 닚계륌 넘얎, 시뮬레읎션 욎영을 통합하고 최적화하며, 궁극적윌로는 몚덞 Ʞ반의 협업곌 의사 결정을 지원하여 신제품을 결정할 때 데읎터 êž°ë°˜ 엔지니얎링을 적용하고자 합니닀. Rescale은 읎러한 혁신을 돕Ʞ 위핎 컎퓚팅 추천 엔진, 통합 데읎터 팹뾌멭, 메타데읎터 ꎀ늬 등을 개발하고 있습니닀. 읎번 자늬륌 빌렀 비슈니슀 겜쟁력 제고륌 위한 디지턞 튞윈 및 디지턞 슀레드 전략 개발 방법에 대한 읞사읎튞륌 나누고자 합니닀. ]
垞に定矩したす VAR C シンボルをある倀に蚭定したす。 「?」を意味したす。VAR:' ガヌド条件。
ナニット自䜓に察しお自動的なシェル䟝存関係が䜜成されたす。

?H:#定矩 VAR(x,y,z) $ var
垞にマクロを定矩したす VAR の倀になる $ var 倉数。 それは、
確保する単䜍 $ var 合理的な䟡倀芳を保持しおいたす。 C 間の自動䟝存関係
マクロ VAR シェル倉数が確立され、行党䜓が
暗黙的に「」VAR:'。

?H:#$d_var VAR
条件付きで定矩したす VAR if $d_var に蚭定されおいたす '定矩したす'。 「?」を意味したす。VAR:' ガヌド
状態。 自動的なシェル䟝存関係が生成されたす。 $d_war.

?H:#定矩 VAR "$ var"
構成された倀を VAR Cのシンボル。 「?」を意味したす。VAR:' グレヌディング状態。
リンクするために自動シェル䟝存関係が生成されたす。 VAR & $ var.

?H:。 を閉じたす config_h.SH 含めるリク゚スト。

?M:C シンボル: C 䟝存関係
C シンボルに関するマゞック定矩を導入したす。 confmagic.hを定矩し、
残りの ?M: 定矩の保護蚘号。 この行は暗黙のうちに暗瀺しおいたす
'?W:%<:C シンボル'、぀たり、C 蚘号が衚瀺されるず、ナニットが Configure にロヌドされたす。
C ゜ヌス内では、魔法が䜿甚されおいるかどうかに関係なく。 C の䟝存関係がアクティブ化される
魔法が䜿甚されるずき、その定矩を匷制するために config_h.SH。 しかし、
魔法は 䜿甚されおいたすが、C 蚘号が必芁な C なしで゜ヌスに衚瀺されたす。
䟝存関係がある堎合、Wanted ファむルが構築されるたびに譊告が衚瀺されたす。
移怍性の問題 (たた、ナニットが無条件にロヌドされるため)
他の ?C: 行に関係なく、C シンボルが䜿甚されるたびに蚭定したす。
単䜍。

?M:cpp 定矩
関連する堎合に垞に confmagic.h に導入されるマゞック cpp マッピングを定矩したす。
ずいう蚘号が䜿われおいたす。 暗黙の「?」がありたす。sym「どこを守っおいるのか」 sym はシンボル名です
先頭の ?M: 行によっお定矩されたす。

?M。 を閉じたす confmagic.h 含めるリク゚スト。

?W:shell シンボル リスト:C シンボル リスト
シェル シンボルの運呜を C シンボルの運呜ず結び぀けたす。
リストされおいるシンボルが必芁である堎合、すべおのシェル シンボルが必芁ずしおマヌクされたす。 圹に立぀
䜕らかの C が存圚する堎合、ナニットを匷制的に含めたす (シェル シンボル リストが '%<' に蚭定されおいたす)。
シンボルが怜出されたした。 シェル シンボル リストは、副次的な利点を埗るために空のたたにするこずもできたす。
組み蟌みプリプロセッサ内の C シンボルの䜍眮の圱響 (シンボルは 定矩枈みの
゜ヌス内にある堎合はそのプリプロセッサ甚)。 スペヌスを含むパタヌンを怜玢するには
それらの䞭で、「struct」のように単玔な匕甚笊で囲んだ C シンボルを匕甚する必芁がありたす。
タむムゟヌン」。

?V:読み取り専甚の を瀺すマヌクを远加したした:読み曞き を瀺すマヌクを远加したした
これは メタリント ヒントであり、シェルを゚クスポヌトする特別なナニットでのみ䜿甚する必芁がありたす。
倉数。 䞭倮の「:」より前の倉数は読み取り専甚で゚クスポヌトされたす倉数は倉曎されたす。
は譊告を発したす)、他のシンボルは自由に読み取ったり倉曎したりできたす。

?F:ファむル 䜜成した
この行には XNUMX ぀の目的がありたす。 メタリント ヒント、およびプレヌスホルダヌでもありたす
未来 jmake 䜿甚。 XNUMX 皮類のファむルをリストする必芁がありたす。XNUMX ぀は䞀時ファむルです。
テスト甚に䜜成され、プラむベヌト UU は埌で䜿甚するために UU ディレクトリに䜜成されたす
閲芧可胜なものず、パッケヌゞのルヌト ディレクトリに残されおいる公開されたものです。 䞀時的
ファむルは先頭に「!」を付けおリストする必芁がありたす。 文字 (「いいえ! 再利甚されたせん」の意味)
埌で!")、プラむベヌト UU ファむルの前に「./」を付ける必芁がありたす (意味: それらを䜿甚するには、たずえば
。/ファむルだけではなく、 file)、パブリックなものはそのたたの名前を付ける必芁がありたす。

?T:shell 䞀時的な
別の メタリント ヒント。 この行には、䞀時倉数ずしお䜿甚されるすべおのシェル倉数がリストされたす。
本機のシェル郚内にありたす。

?D:シンボル='倀'
条件付き䟝存関係ずしお䜿甚されるシンボルの初期化倀。 ない堎合、?D: 行は
芋぀かった堎合は、代わりに null 倀が䜿甚されたす。 の メタリント プログラムは、次の堎合に譊告したす。
シンボルは条件付き䟝存関係ずしお少なくずも XNUMX 回䜿甚されおおり、適切な䟝存関係がありたせん。
?D: 初期化。 null の堎合でもこれらの行を远加するこずをお勧めしたす。
初期化は、シンボルのオプションの性質を匷調するためです。

?O:どれか メッセヌゞ 貎瀟 欲しいです
このディレクティブは、このナニットが党䜓ずしお廃止されたこずを瀺したす。 䜕かを䜿甚するたびに、
そのシンボルが䜜成される (たたは䟝存関係を介しお間接的に䜿甚される) ず、メッセヌゞが出力されたす。
画面 (暙準゚ラヌ出力䞊)。 XNUMX ぀以䞊の行を入れるこずができたす。その堎合、各行は次のようになりたす。
順番に印刷されたす。

?糞くず:メタリント ヒント
ゞョブの蚭定方法に぀いおは、 メタリント マニュアルペヌゞには、䜿甚できる個別のヒントの説明が蚘茉されおいたす。
䞭叀。

初期化初期化 コヌド
この行で指定された初期化コヌドは、
構成 ナニットが必芁な堎合はスクリプトを実行したす。

C シンボル ゚むリアシング
頌れないこずもある メタ構成独自のデフォルト遞択 config_h.SH
コメントず C シンボル定矩。 そこで゚むリアシングが登堎したす。 むしろそうなるので、
説明するのは難しいので、基瀎ずなるメカニズムを理解するために䟋を怜蚎したす。

d_const.U ナニットは、C コンパむラがそのこずを認識しおいるかどうかを刀断しようずしたす。 定数
キヌワヌド。 そうでない堎合は、そのキヌワヌドを NULL 文字列に再マッピングしお、
プログラムのコンパむル。 さらに、次の堎合にテストを自動的にトリガヌしたいず考えおいたす。 定数 単語
䜿甚されおいる。

d_const.U ナニットの関連郚分は次のずおりです。

?MAKE:d_const: cat cc ccflags Setvar
?MAKE: -pick add $@ %
?S:d_const:
?S: この倉数は条件付きで HASCONST シンボルを定矩したす。
?S: この C コンパむラが
?S定数型。
?S:。
?C:HASCONST ~ %<:
?C: このシンボルが定矩されおいる堎合、この C コンパむラヌが次のこずを認識しおいるこずを瀺したす。
?C: const 型。 そのシンボルを実際にテストする必芁はありたせん
?C: プログラム内。 「const」キヌワヌドを䜿甚するだけで、
?C: 必芁なテストをトリガヌしたす。
?C:。
?H:?%<:#$d_const HASCONST /**/
?H:?%<:#ifndef HASCONST
?H:?%<:#define const
?H:?%<:#endif
?H:。
?W:%<:const
?LINT: d_const を蚭定したす
?LINT:既知の定数
: const キヌワヌドをチェックしたす
゚コヌ " "
echo 'C コンパむラが "const" に぀いお認識しおいるかどうかを確認しおいたす...' >&4
/ bin / cat >const.c <<'EOCP'
メむン
{
const char *foo;
}
EOCP
if $cc -c $ccflags const.c >/dev/null 2>&1 ; それから
val="$定矩"
゚コヌ「はい、そうです。」
ほかに
val="$undef"
゚コヌ「いいえ、違いたす。」
fi
d_const を蚭定する
eval $setvar

たず、?W: 行が䜿甚されおいるこずに気付きたす。これは基本的に次のように述べおいたす。「このナニットは、
定数 キヌワヌドは C ファむルで䜿甚されおいたす。」条件付きで再マップするには 定数 ヌルに
文字列を入力する config.h、条件付きで定矩するこずにしたした。 ハスコンスト 、 $d_const.

ただし、これには問題が生じたす。 ハスコンスト 蚘号は、
゜ヌスのみ、 定数 トヌクンは。 そしお、?H: 行定矩 ハスコンスト 暗黙的に
「?HASCONST」によっお保護されおいたす。 したがっお、明瀺的に「?%<」制玄を远加しお通知する必芁がありたす。
メタ構成 それらの行を含める必芁があるこず config_h.SH 「%<」蚘号がある堎合は垞に
指名手配されたす (%< はナニットの名前を指したす、ここでは d_const).

?W: 行が必芁ずするため、これはほが完璧です。 d_const たびに 定数 が䜿甚されおいる堎合、
?H: 行は config_h.SH ファむル。 ただし、先頭のコメント (?C:
行) に接続されおいたす ハスコンスト それ自䜓も経由で保護されおいたす ハスコンスト、぀たり、暗黙的な
「?HASCONST」制玄。 したがっお、次の必芁性がありたす。 ゚むリアシング   ハスコンスト 蚘号を「%<」にしたす。

ナニットの残りの郚分シェル郚分は非垞に簡単です。 それは単玔に
を䜿甚しおサンプル C プログラムをコンパむルしようずしたす。 定数 キヌワヌド。 それができるなら、そうなりたす
定矩したす $d_const ビア $setvar 関数 (によっお定矩される) Setvar.U ナニット。 この段萜を参照しおください
詳现に぀いおは、特殊ナニットに぀いおを参照しおください。

アカりントを䜜成し コマンド
?MAKE: コマンド ラむンでは、そのたた実行されるシェル コマンドを蚘述するこずも、
特別 -遞ぶ によっおトラップされるコマンド メタ構成 そしお解析しお、あるべきものを確認したす
終わり。 先頭の「-」は、それを防ぐためにのみ存圚したす。 make コマンドが返されたずきに倱敗しないようにする
れロ以倖のステヌタス -- ' を䜿甚するため、実際には必芁ありたせん。make -n'を解決するには
䟝存関係がありたすが、将来のバヌゞョンで必須になる堎合に備えお保持しおおくこずをお勧めしたす。
の構文は、 遞ぶ コマンドは

-遞ぶ CMD $@ タヌゲットファむル

コラボレヌ $@ 珟圚のタヌゲット (名前) を衚す Makefile 内の暙準マクロです。
構築䞭のナニットの最埌の .U 拡匵子が取り陀かれおいたす)。 の CMD 郚分は
実際の メタ構成 実行するコマンドず、 タヌゲットファむル はさらに別のパラメヌタです。
解釈はによっお異なりたす CMD 自䜓。 たた、最埌の .U 拡匵子も削陀されおおり、
通垞はナニット ファむルを指したすが、「./」で始たる堎合はナニット ファむルを参照したす。
メタ構成 ' 内の制埡ファむル.MT ディレクトリにありたす。

䜿甚可胜なコマンドは次のずおりです。

add を远加したす タヌゲットファむル 〜ぞ 構成.

add.Config_sh
その郚分を埋めたす 構成 の生産 config.sh ファむル。 䜿甚のみ
倉数が远加され、条件付き倉数 (条件付き䟝存関係から) が远加されたす。
スキップしたした。

add.Null 䜿甚するすべおのシェル倉数を空文字列に初期化するセクションを远加したす。

c_h_weed が生成するのは、 config_h.SH ファむル。 必芁な行だけを印刷したす。

cm_h_weed は、 confmagic.h ファむル。 必芁な行だけを印刷したす。 これ
コマンドは、次の堎合にのみ有効になりたす。 -M スむッチが䞎えられたずき、たたは confmagic.h file
もう存圚しおいる。

close.Config_sh
最埌の「EOT」蚘号を単独で行に远加しお、ヒアドキュメントを終了したす。
を生成する構築物 config.sh ファむルに゜フトりェアを指定する必芁がありたす。

prepend タヌゲットのコンテンツを先頭に远加したす。 タヌゲットファむル そのファむルが空でない堎合。

雑草 ナニットを远加したす 構成 のような 加えたす コマンドを䜿甚したすが、远加のテストをいく぀か行いたす
「?」を削陀するにはシンボル' そしお 'シンボル' の行 タヌゲットファむル シンボルの堎合
求められおいない、たたは条件付きで求められおいる。 「%」圢匏は内郚的にのみ䜿甚されたす。
メタ構成 ' 内に独自の .U ファむルを生成しながら、.MT' ディレクトリ。

ワむプず同じ 加えたす 実際はそうなりたすが、远加のマクロ眮換が実行されたす。 の
利甚可胜なマクロに぀いおは、 ハヌドワむダヌ マクロ 段萜。

補足ずしお、 メタ構成 生成する -cond 条件を凊理するための内郚コマンド
䟝存関係。 自分で䜿甚するべきではありたせんが、ファむルをスキャンするず衚瀺されたす。
生成された メヌクファむル セクションに .MT ディレクトリにありたす。

ハヌドワむダヌ マクロ
次のマクロが認識されたす。 ワむプ コマンドに含める前に眮換されたす。
構成:

パッケヌゞの基本リビゞョン番号。次から導出されたす。 。パッケヌゞ.

珟圚の日付。


このパッケヌゞの管理者の電子メヌル アドレス。
。パッケヌゞ.


パッケヌゞの名前。 。パッケヌゞ ファむルに゜フトりェアを指定する必芁がありたす。


パッチレベルは、 メタ構成 プログラム (非掚奚になりたした) 。


の SVN リビゞョン レベル メタ構成 プログラム。

のバヌゞョン番号 メタ構成 プログラム。

これらのマクロは䞻に、 メタ構成 を生成したバヌゞョン
特定の 構成 スクリプトずそれが実行されたパッケヌゞ。 の電子メヌルアドレス
メンテナは䞻芁な呜什に組み蟌たれおいたす。 構成 起動時に印刷されたす。

最近の メタ構成 バヌゞョンは、次の圢匏のより䞀般的な構文を理解したす。

<$倉数>

これは、構成生成時に次の倀に眮き換えられたす。 倉数 あなたから取られた
。パッケヌゞ ファむル。 最終的には、叀い固定マクロ圢匏は消滅し、<$baserev>
亀換したす付属のすべおのナニットで。

スペシャル Units
次の特別な単䜍は、コヌドを因数分解し、より高いレベルを提䟛するために䜿甚されたす。
機胜性。 これらは、゜ヌス可胜なシェル スクリプトを生成するか、シェルを生成したす。
できる倉数 評䟡する線集したした。 パラメヌタの受け枡しは、よく知られた倉数を介しお行われたす。
$1、$2 などの名前付きたたは匿名 (シェル経由で簡単に蚭定できたす) セッションに
オペレヌタヌ。 い぀ 構成 実行するず、 UU ディレクトリなので、すべおの
生成されたスクリプトはそこにあり、パッケヌゞのファむルに干枉したせん。

ここでは、知っおおくべき特殊な単䜍ずその䜿甚方法を玹介したす。

Cppsym.U
このナニットは、ずいうシェル スクリプトを生成したす。 コプシムを決定するために䜿甚できたす。
リスト内のシンボルが C プリプロセッサたたは C コンパむラによっお定矩されおいるかどうか
指定された。 任意のシンボルのステヌタスを決定できたすが、
(属性リスト) をより簡単に決定できたす。

Csym.U
これにより、内郚で䜿甚される $csym シェル倉数が蚭定されたす。 構成 かどうかを確認する
指定された C シンボルが定矩されおいるかどうか。 䞀般的な䜿甚䟋は次のずおりです。

シンボルの結果を蚭定 [-fva] [前ぞ]
評䟡$csym

それは蚭定したす 結果 関数 [-f]、倉数 [-v]、たたは
配列 [-a] が定矩されおいる堎合は 'false' が定矩されおいたす。 以前の倀が䞎えられ、 -r
スむッチが提䟛されたした 構成 参照 構成 オプション 段萜、それから、
倀は問題なく再利甚されたす。

この蚈算が行われる方法は、質問に察するナヌザヌの答えによっお異なりたす。
構成 を実行する必芁があるかどうかを尋ねたす。 nm 抜出か吊か。 もし
抜出が実行された堎合、ナニットは単にシンボルリストを調べたす。それ以倖の堎合は、
そうでない限り、コンパむルリンクテストを実行したす。 -r 以前に蚈算された倀を再利甚するために䞎えられたした
圓然のこずですが...

End.U
このナニットをプラむベヌトにコピヌするこずで、 U ディレクトリず䟝存関係の远加
?MAKE: 行で、指定されたナニットを匷制的にロヌドできたす。 構成 たずえそうでなくおも
それ以倖の堎合は垌望されたす。 䞀郚のナニットは匷制的にのみ可胜です 構成 そうですね。

Fileexp.U
このナニットはシェルスクリプトを生成したす ファむル拡匵子 これにより、次で始たるファむル名が展開されたす。
チルダ。 䞀般的な䜿甚䟋は次のずおりです。

exp_name=`./fileexp $name`

展開されたファむル名を割り圓おるには exp_name.

Findhdr.U
このナニットは、 hdrを芋぀ける ヘッダヌ ファむルを芋぀けるために䜿甚されるスクリプト
$usrinc たたは cpp 機胜を䜿甚する他の芋知らぬ堎所。 スクリプトには
「stdio.h」や「sys/file.h」などのファむルベヌス名を含めるず、そのフルパスが返されたす。
むンクルヌド ファむルず、芋぀かった堎合はれロのステヌタス、たたは空の文字列ずれロ以倖のステヌタス
ファむルが芋぀からなかった堎合。

Getfile.U
このナニットは、ファむルを取埗するために゜ヌスする必芁があるシェル コヌドを生成したす。
名前を付けお健党性チェックを行いたす。 オプションで、~name 展開が実行されたす。

本機を䜿甚するには、 $rp & $dflt 質問ずデフォルトの回答を保持する必芁がありたす。
にそのたた枡されたす 私の読み取り スクリプト (今埌の予定を参照) Myread.U。 ザ $fn
倉数が操䜜を制埡し、結果が返されたす。 $ans.

ファむルたたはディレクトリを芋぀けるには、「f」たたは「d」を入力したす。 ふ〜/。 「~」が衚瀺される堎合は、~name
眮換は蚱可されおいたす。 「/」が衚瀺される堎合は、絶察パス名のみが受け入れられたす。
~name 眮換は、返される前に垞に展開されたす。 「+」を指定するず、
存圚チェックはスキップされたす。 䞭に「n」が入っおいる堎合 $fn、その埌、ナヌザヌは次のこずが蚱可されたす
「なし」ず答えおください。

通垞、移怍性を芁求しない限り、芁求されたずきに ~name 眮換が行われたす。
ただし、移怍性をバむパスしお匷制的に実行したい堎合もありたす。
眮換。 これを行うには、「e」文字 (展開) を䜿甚できたす。

特殊な「l」䜍眮特定タむプが䜿甚されおいる堎合、 $fn 倉数は「:」で終わる必芁がありたす。
その埌にファむルのベヌス名が続きたす。 答えがディレクトリの堎合、ファむルのベヌス名は次のようになりたす。
ファむルの存圚をテストする前に远加されたす。 これは、怜玢圢匏の質問に圹立ちたす
このような

dflt='~ニュヌス/lib'
: 'l' を䜿甚する堎合は 'd' たたは 'f' を指定する必芁はありたせん
fn='l~:アクティブ'
rp='アクティブなファむルはどこですか?'
。 ./getfile
アクティブ = "$ans"

さらに、「p」パス文字を「l」ず組み合わせお䜿甚​​しお、
ファむルの取埗 '/' が含たれおいない回答は受け入れられるず仮定しお、
この倀が必芁になる時点で、党員の PATH に存圚する必芁がありたす。

受け入れられるべき回答のリストを指定できるこずも䟿利です
逐語的に、すべおのチェックをバむパスしたす。 このリストは括匧ず項目で囲む必芁がありたす
スペヌスを挟たずにカンマで区切る必芁がありたす。 匕甚するこずを忘れないでください
かっこはシェルにずっお意味があるため、結果の文字列になりたす。 䟋えば

dflt='/bin/install'
fn='/fe~(むンストヌル,./むンストヌル)'
rp='どのむンストヌル プログラムを䜿甚したすか?'
。 ./getfile
むンストヌル = "$ans"

ナヌザヌは既存のファむルを参照する完党修食パスのみを指定できたす。
ただし、特殊な "install" および "./install" の応答はそのたた蚱可されたす (
もちろん、圌らはそうするので、チェヌンの埌半で特別に䜕かがそれらに察凊したす。
䞀般的に予想されるフレヌムずは䞀臎したせん。

質問に察する答えが「なし」の堎合、存圚チェックはスキップされ、
空の文字列が返されたす。 以降に泚意しおください ファむルの取埗 呌び出し 私の読み取り 内郚的には、すべお
で利甚できる機胜 私の読み取り ここに申請しおください。

完党に展開された倀が必芁な堎合 (たずえば Makefile 内)、次を䜿甚できたす。
  $ansexp によっお垞に適切に蚭定される倉数 ファむルの取埗 拡匵されたものずしお
のバヌゞョン $ans。 もちろん、~name が蚱可されおいない堎合は展開されたせん。
のXNUMX䜍 $fn 倉数に保存したす

Inhdr.U
このナニットが生み出すのは、 $inhdr シェル倉数。内郚で䜿甚されたす。 構成 チェックする
ヘッダヌのセットが存圚するかどうか。 䞀般的な䜿甚䟋は次のずおりです。

ヘッダヌを蚭定 i_header [ header2 i_header2 ... ]
評䟡 $inhdr

これにより、ヘッダヌが芋぀かったかどうかを瀺すメッセヌゞが出力され、
i_header それに応じお倉化したす。 耇数のヘッダヌが指定され、最初のヘッダヌが指定された堎合、
ヘッダヌが芋぀からない堎合は、リストが空になるか、ヘッダヌが芋぀かるたで、次のヘッダヌが詊行されたす。

Inlibc.U
このナニットが生み出すのは、 $inlibc シェル倉数。内郚で䜿甚されたす。 構成 チェックする
特定の C 関数が定矩されおいるかどうか。 䞀般的な䜿甚䟋は次のずおりです。

関数 d_func を蚭定したす
評䟡$inlibc

関数が芋぀かったかどうかを瀺すメッセヌゞが衚瀺され、蚭定されたす。
$d_func それに応じお。 内郚的には、 $csym ルヌチン。

Loc.U
この重芁なナニットはシェル スクリプトを生成したす LOC 堎所を芋぀けるために䜿甚できたす
ディレクトリのリストに指定されたファむルが存圚したす。 最初の匕数でファむルを指定したす。
XNUMX 番目の匕数は怜玢が倱敗した堎合に返されるもので、
残りの匕数は、ファむルが怜玢されるディレクトリのリストです。 のために
むンスタンス

dflt=`./loc sendmail.cf X / usr / lib /var/lib/sendmail / lib`

蚭定したす $dflt 〜ぞ X いいえの堎合 sendmail.cf リストされたディレクトリの䞋にファむルが芋぀かりたした。
たたは䜕かのような /usr/lib/sendmail.cf 䞀郚のシステムでは。 こちらも参照 Getfile.U.

MailAuthor.U
䜜成するには、このナニットを独自のプラむベヌト End.U の ?MAKE: 行に含める必芁がありたす。
それに 構成。 ナヌザヌはオプションで著者に自分自身を登録するこずができたす。
新しいパッチが到着するず通知されるか、発行時に自動的に受信されたす。
あなたはむンストヌルする必芁がありたす メヌル゚ヌゞェント これを行うには (少なくずもバヌゞョン 3.0)。

メヌルリスト.U
䜜成するには、このナニットを独自のプラむベヌト End.U の ?MAKE: 行に含める必芁がありたす。
それに 構成。 ナヌザヌにメヌリングリストの賌読たたは賌読解陀を提案したす。
パッケヌゞに関する議論が行われおいる堎所。 走らなければなりたせん パックむット
メヌリング リストに関連する質問に答えお、適切な倉数を蚭定したす。
。パッケヌゞ このナニットが動䜜する前に。

Myinit.U
このナニットをプラむベヌトにコピヌしたす U ディレクトリに独自のデフォルト倀を远加する
内郚倉数。 このナニットはにロヌドされおいたす 構成 結局デフォルト
初期化が行われおいたす。

Myread.U
このナニットが生み出すのは、 私の読み取り 実行するために゜ヌスする必芁があるシェル スクリプト
読む。 シェル゚スケヌプ、デフォルトの割り圓お、およびパラメヌタの評䟡が可胜です。
Instruct.U ナニットに文曞化されおいたす。 たた、 -d オプション、
これは残りのスクリプト実行に䜿甚されたす。

本機を䜿甚するには、 $rp 質問を保留しなければなりたせん、そしお $dflt デフォルトを含める必芁がありたす
答え。 質問はスクリプト自䜓によっお出力され、結果が返されたす。
セクションに $ans 倉数に保存したす

䞀般的な䜿甚䟋は次のずおりです。

dflt='y'
rp='質問?'
。 ./myread
倀 = "$ans"

詳现に぀いおは、ナニット自䜓を参照しおください。

Oldconfig.U
䞀郚のナニットが詊行するずき、このナニットは䟝存関係の ?MAKE: 行の䞀郚である必芁がありたす。
叀いシンボル倀を再利甚したす。 このナニットは叀い答えを取埗する責任がありたす
から config.sh たたは、特定のプラットフォヌムで実行するずきに圹立぀ヒントを提䟛したす。
初めお。 を参照しおください。 構成 ヒント ヒントの詳现に぀いおは、この段萜を参照しおください。

Prefixit.U
このナニットの目的は、むンストヌル プレフィックス ディレクトリの倉曎を怜出するこずです。
以前の回答から適切なデフォルトを自動的に再蚈算したす。 それは、
の倀 $oldprefix 前のプレフィックス ディレクトリを保持する倉数
倉曎されおおり、それ以倖の堎合は空です。 たずえば、プレフィックスが次から倉曎された堎合、 / opt 〜ぞ
/ usr / localの堎合、以前のバむナリのむンストヌル ディレクトリは から倉曎されたす。
/ opt / bin 〜ぞ / usr / local / bin、たたは、たずえば、次の堎合は倉曎されたせん。 / binに.

電話する必芁がありたす セッションに 発行する前に 評䟡する on $prefixit、のような

dflt var [ディレクトリ]を蚭定したす
eval $prefixit

どちらが蚭定したすか $dflt 〜ぞ $ var or $プレフィックス/ディレクトリ プレフィックスが残っおいるかどうかに応じお
同じかどうか。 もし DIR 文字列です なし、単䞀のスペヌス倀 $dflt ずしお保存されたす-
぀たり、プレフィックスが倉わった堎合でも同様です。 もし DIR 省略された堎合 $dflt 空に蚭定されおいたす
プレフィックスが倉曎された堎合は文字列に $ var さもないず。

Prefixup.U
このナニットの目的は Prefixit.U の目的ず䌌おいたす。぀たり、
プレフィックスの倉曎に察応するデフォルトの文字列。 ただし、シェル倉数 $prefixup,
評䟡されるず、~name の展開のみが埩元されたす。プレフィックスにはそのような゚スケヌプを䜿甚する必芁がありたす
機構。 次のように䜿甚したす。

dfltを蚭定する
eval $prefixup

プロンプトを衚瀺する前に ファむルの取埗 䟋えば。 プレフィックスが ~name を䜿甚しない堎合
展開した堎合、䞊蚘は䜕も行われたせん。 y 圓然、倉化したす。

Typedef.U
このナニットが生み出すのは、 $typedef シェル倉数。内郚で䜿甚されたす。 構成 チェックする
typedef が存圚するかどうか。 䞀般的な䜿甚䟋は次のずおりです。

typedef val_t のデフォルトを蚭定 [むンクルヌド]
評䟡$typedef

これにより、倉数が蚭定されたす val_t の倀に デフォルト typedef が芋぀からなかった堎合
リストされたむンクルヌド ファむルの䞭から、たたは typedef 芋぀かったら。 むンクルヌド ファむルがない堎合は、
指定するず、ナニットは以䞋を調べたす のみ。 いく぀かのむンクルヌドを指定した堎合のみ、
それらは芋られおいたす。

Unix.U
この単元の目的は、倉数を介しお最も䞀般的な UNIX 䞻矩のいく぀かを定矩するこずです。
これはコマンドラむンから、たたは適切なヒントファむルを介しお倉曎できたす。 特に、
$_exe, $_o & $_a 蚭定されおいたす。 すべおのナニットが参照する必芁がありたす $_o そしおしない .o 盎接。
「。」 はこれらの倉数の䞀郚です。

Setvar.U
このナニットは、内郚で䜿甚される倉数を生成したす。 構成 蚭定する
定矩したす/undef 倀を指定されたシンボルに蚭定し、倀が突然倉化したずきに譊告を発したす。
以前の倀から。 䟋えば

val="$定矩"
d_倉数を蚭定したす
eval $setvar

以前の堎合 $d_倉数 倀が null ではなく、 $val 違うよ、「おっ」
譊告が発せられたす。

おっず、U
このナニットが生み出すのは、 ã‚Šã‚¢ スクリプトは、次の堎合に譊告を発したす。 倀 倉数内
誰の名前は $ var に保持されおいる叀い以前の倀ず同じではありたせん $ was。 に
戻り、 $td & $tu 適切な倀を保持しおください 定矩したす or 未定矩 倉数。 芋る
の䟋 Inlibc.U.

ビルトむン プリプロセッサ
収録される各ナニット 構成 組み蟌みのプリプロセッサを通じお実行されたす。 プレ
プロセッサヌ・ステヌトメントは「@」文字によっお導入されたす (「#」はシェルのコメントです)
キャラクタヌ。 C プリプロセッサず同じように機胜したすが、シェルや Perl も䜿甚できたす。
逃げる。 利甚可胜な機胜は次のずおりです。

@もしも 衚珟
If 衚珟 が true の堎合、@end、@elsif、たたは @else たでコヌドの読み蟌みを続けたす。

@゚ルシフ 衚珟
別の遞択肢。 もし 衚珟 true の堎合、@end たでコヌドの読み蟌みを続けたす。
別の @elsif たたは @else。

@else @if の堎合にロヌドされるデフォルトのコヌド 衚珟 は虚停であり、どれも
オプションの @elsif が䞀臎したした。 @endたでロヌドしたす。

@end @if で開いた条件付き読み蟌みステヌトメントを閉じたす。

@定矩する シンボル
プリプロセッサに次のこずを䌝えたす シンボル これから定矩されたす。

条件付き 衚珟 シンボル名を含めるこずができたす (シンボルが必芁な堎合、倀は true です。
経由で定矩 @定矩する たたはシェル/Perl ゚スケヌプ。 これらの原子は、
埓来のブヌル挔算子「!」 吊定の堎合は「&&」、論理積の堎合は「||」 論理的な
たたは。

単䞀のブラケットで囲たれたテキストはシェル テストであり、二重ブラケット間のテキストはシェル テストです。
パヌルのテスト。 ぀たり、次の匏です。

{ shell 큎띌우드 êž°ë°˜ AI/ML및 고성능 컎퓚팅을 통한 디지턞 튞윈의 Ʞ쎈 – Edward Hsu, Rescale CPO 많은 엔지니얎링 쀑심 Ʞ업에게 큎띌우드는 R&D디지턞 전환의 첫 닚계음 뿐입니닀. 큎띌우드 자원을 활용핎 엔지니얎링 팀의 제앜을 핎결하는 닚계륌 넘얎, 시뮬레읎션 욎영을 통합하고 최적화하며, 궁극적윌로는 몚덞 Ʞ반의 협업곌 의사 결정을 지원하여 신제품을 결정할 때 데읎터 êž°ë°˜ 엔지니얎링을 적용하고자 합니닀. Rescale은 읎러한 혁신을 돕Ʞ 위핎 컎퓚팅 추천 엔진, 통합 데읎터 팹뾌멭, 메타데읎터 ꎀ늬 등을 개발하고 있습니닀. 읎번 자늬륌 빌렀 비슈니슀 겜쟁력 제고륌 위한 디지턞 튞윈 및 디지턞 슀레드 전략 개발 방법에 대한 읞사읎튞륌 나누고자 합니닀. }
{{ パヌル 큎띌우드 êž°ë°˜ AI/ML및 고성능 컎퓚팅을 통한 디지턞 튞윈의 Ʞ쎈 – Edward Hsu, Rescale CPO 많은 엔지니얎링 쀑심 Ʞ업에게 큎띌우드는 R&D디지턞 전환의 첫 닚계음 뿐입니닀. 큎띌우드 자원을 활용핎 엔지니얎링 팀의 제앜을 핎결하는 닚계륌 넘얎, 시뮬레읎션 욎영을 통합하고 최적화하며, 궁극적윌로는 몚덞 Ʞ반의 협업곌 의사 결정을 지원하여 신제품을 결정할 때 데읎터 êž°ë°˜ 엔지니얎링을 적용하고자 합니닀. Rescale은 읎러한 혁신을 돕Ʞ 위핎 컎퓚팅 추천 엔진, 통합 데읎터 팹뾌멭, 메타데읎터 ꎀ늬 등을 개발하고 있습니닀. 읎번 자늬륌 빌렀 비슈니슀 겜쟁력 제고륌 위한 디지턞 튞윈 및 디지턞 슀레드 전략 개발 방법에 대한 읞사읎튞륌 나누고자 합니닀. }}

は次のように翻蚳されたす。

if shell 큎띌우드 êž°ë°˜ AI/ML및 고성능 컎퓚팅을 통한 디지턞 튞윈의 Ʞ쎈 – Edward Hsu, Rescale CPO 많은 엔지니얎링 쀑심 Ʞ업에게 큎띌우드는 R&D디지턞 전환의 첫 닚계음 뿐입니닀. 큎띌우드 자원을 활용핎 엔지니얎링 팀의 제앜을 핎결하는 닚계륌 넘얎, 시뮬레읎션 욎영을 통합하고 최적화하며, 궁극적윌로는 몚덞 Ʞ반의 협업곌 의사 결정을 지원하여 신제품을 결정할 때 데읎터 êž°ë°˜ 엔지니얎링을 적용하고자 합니닀. Rescale은 읎러한 혁신을 돕Ʞ 위핎 컎퓚팅 추천 엔진, 통합 데읎터 팹뾌멭, 메타데읎터 ꎀ늬 등을 개발하고 있습니닀. 읎번 자늬륌 빌렀 비슈니슀 겜쟁력 제고륌 위한 디지턞 튞윈 및 디지턞 슀레드 전략 개발 방법에 대한 읞사읎튞륌 나누고자 합니닀. >/dev/null 2>&1; 次に 0 を終了したす。 それ以倖の堎合は 1 を終了したす。 フィ
もしパヌル 큎띌우드 êž°ë°˜ AI/ML및 고성능 컎퓚팅을 통한 디지턞 튞윈의 Ʞ쎈 – Edward Hsu, Rescale CPO 많은 엔지니얎링 쀑심 Ʞ업에게 큎띌우드는 R&D디지턞 전환의 첫 닚계음 뿐입니닀. 큎띌우드 자원을 활용핎 엔지니얎링 팀의 제앜을 핎결하는 닚계륌 넘얎, 시뮬레읎션 욎영을 통합하고 최적화하며, 궁극적윌로는 몚덞 Ʞ반의 협업곌 의사 결정을 지원하여 신제품을 결정할 때 데읎터 êž°ë°˜ 엔지니얎링을 적용하고자 합니닀. Rescale은 읎러한 혁신을 돕Ʞ 위핎 컎퓚팅 추천 엔진, 통합 데읎터 팹뾌멭, 메타데읎터 ꎀ늬 등을 개발하고 있습니닀. 읎번 자늬륌 빌렀 비슈니슀 겜쟁력 제고륌 위한 디지턞 튞윈 및 디지턞 슀레드 전략 개발 방법에 대한 읞사읎튞륌 나누고자 합니닀. ) {出口 0;} else {出口 1;}

終了ステヌタスはブヌル倀を取埗する暙準的な方法で䜿甚されたす。぀たり、0 は true、
それ以倖はすべお停です。 Perl で衚珟できるのは単玔な条件だけであるこずに泚意しおください。
いく぀かの耇雑なコヌドを内郚にロヌドできたす メタ構成 そしお実行されたした。

内蔵プリプロセッサを䜿甚しお䞀郚のナニットを埮調敎できたす「 d_gethname.U のために
耇雑な䟋) プログラムたたはファむルで実際に䜿甚されるシンボルに応じお
ディストリビュヌションに存圚したす。 たずえば、 Oldconfig.U 次のようなテストを䜿甚したす。

@if {テスト -d ../ヒント}

& 構成 がある堎合にのみ、ヒント䟝存のコヌドが含たれたす。 ヒント のディレクトリ
パッケヌゞの最䞊䜍ディレクトリ。 テストは ' 内から実行されるこずに泚意しおください。.MT' ディレクトリ、
したがっお、テストには「../」が必芁です。

プリプロセッサは、シンボルが正しくない堎合に無駄なコヌドの挿入を避けるためにも䜿甚できたす。
定矩されおいたす。 耇数のシンボルを定矩しおいるナニットは、その方法で保護できたす (ナニットは
@if/@end ペア内のシンボル䟝存コヌドを収集するこずで、党䜓ずしおロヌドされたす。 のために
むンスタンス

@if I_TIME || || I_SYS_TIME || I_SYS_TIME_KERNEL
need_time_h='true'
@それ以倖
need_time_h='false'
@終わり

゜ヌス コヌドが制埡する XNUMX ぀のシンボルのいずれかを䜿甚しおいるかどうかをテストしたす。
  時間.h or sys/time.h むンクルヌドを远加し、それに応じおシェル シンボルを定矩したす。 それは䞎える
構成 ゜ヌスが必芁ずするものに぀いおのフィヌドバックず、修正による欠点の回避
凍結されたナニット。

「?W:」行を䜿甚するず、興味深い組み合わせを取埗できたす。 たずえば、 i_time.U 単䜍
C ゜ヌスが 構造 タむムゟヌン タむプ。 したがっお、
この線

?W::タむムゟヌン

シンボルを定矩するずいう副䜜甚のために䜿甚されたす。 タむムゟヌン プリプロセッサ甚。 の
ナニットコヌドは次のように蚀えたす:

@ifタむムゟヌン
'-DS_TIMEZONE' の s_timezone の堎合 ''; する
@それ以倖
s_timezone=''
@終わり

... s_timezone を䜿甚したコヌド ...

@ifタむムゟヌン
行われ
@終わり

の XNUMX ぀の連続する倀を詊す远加のルヌプがありたす。 s_timezone 倉数ですが、
必芁に応じお。

廃止された シンボル
叀いシンボルぞの移行を容易にするために、廃止されたシンボルが保存されたす。 メタ構成 単䜍。 ない限り
  -o スむッチが枡される メタ構成 それらは無芖されたす。 ただし、 廃止された ファむルは
どのファむルがそれらの廃止されたシンボルを䜿甚しおいるのか、そしお䜕を䜿甚しおいるのかを通知する情報が生成されたす。
は、䜿甚される新しいシンボルです。

廃止されたシンボルの有効期間は XNUMX 回の完党なリビゞョンです。぀たり、シンボルは次の時点で削陀されたす。
次の基本リビゞョンが発行されたす (もちろん、パッチのアップグレヌドはカりントされたせん)。 したがっお、それは
できるだけ早く゜ヌスを翻蚳し、新しいシンボルの䜿甚を開始するこずが賢明です。

構成 ヒント
内郚構成ロ​​ゞックが間違った遞択をする堎合がありたす。 のために
たずえば、あるプラットフォヌムでは、 vfork() システムコヌルは存圚したすが壊れおいるため、
䜿甚しないでください。 その知識を単元自䜓に組み蟌むこずはできたせん。
それは䞀時的な問題であり、ベンダヌが最終的に修正するか、たたは
新しい OS のアップグレヌドによっお導入されたした。

ずにかく、システム固有すぎるこれらの小さな小さな問題すべおに぀いおは、 メタ構成
ヒント ファむルのサポヌトを提䟛したす。 これを䜿甚するには、 ヒント のディレクトリ
パッケヌゞの最䞊䜍ディレクトリ。実行時にそれが保存されたす。 メタ構成。 それはロヌドしたす
のヒント関連郚分 Oldconfig.U.

それ以降、いく぀かのシェル倉数を事前に蚭定できたす。 構成 OS 固有の甚途
.sh ファむル。 コヌドが入っおいたす Oldconfig.U どのヒント ファむルが必芁かを掚枬しようずしたす
システムの OS 名、カヌネル名、リリヌスに基づいお暙準名を蚈算したす。
番号など...この情報は急速に倉曎される可胜性があるため、文曞化しおいたせん。
ここ。 コヌドをリバヌス゚ンゞニアリングする必芁がありたす Oldconfig.U.

パッケヌゞを初めおリリヌスするずきは、ヒント ファむル ディレクトリは空である必芁がありたす。 もし
あなたのパッケヌゞのナヌザヌは、次の問題があるず䞍満を抱いおいたす。 構成 デフォルトでは
特定のシステムの堎合、これがプラットフォヌム固有の問題なのか、それずも問題なのかを確認する必芁がありたす。
䞀般的なもの。 前者の堎合、新しいヒント ファむルを導入したす。
埌者に぀いおは、察応する単䜍を改蚂する必芁がありたす。

たずえば、SGI システムには壊れた機胜があるこずが知られおいたす。 vfork() システムコヌル、珟時点では
曞き蟌み。 察応するヒント ファむル名は次のずおりです。 sgi.sh。 だからあなたがしなければならないのは䜜成するこずだけです
a ヒント/sgi.sh 以䞋を蚘述するファむル:

d_vfork="$define"

垞に再マップされたす vフォヌク on フォヌク 参照しおください d_vfork.U。 SGI システム䞊で実行しおいる堎合、
初めお、 構成 があるこずを怜出したす ヒント/sgi.sh ファむル、そしお私たちが進んでいるこず
IRIX マシン (カヌネル名は /irix であるこずが倚い) であるため、 sgi ずしお
考えられるヒント。 ナヌザヌがそれを受け入れた堎合、 $d_vfork 倀は、
$setvar 電話、 うわあ 倀を䞊曞きしようずしおいるこずを譊告するために発行されたす
によっお蚈算される 構成.

提䟛する必芁はないこずに泚意しおください を によっお知られおいるヒント Oldconfig.U。 ヒントファむルがある堎合、
欠萜しおいる堎合、可胜な遞択肢ずしお提案されたせん。 蚈算するためにヒュヌリスティックテストが実行されたした
考えられるヒントの候補は䞍安定です。 新しい倀や異なるテストがある堎合は、
それらを私に送っおください...

オヌバヌラむド 遞択肢
䜜成する堎合 config.over 最䞊䜍ディレクトリにあるファむル、 構成 どうか尋ねたす
これをロヌドしおデフォルト倀をオヌバヌラむドしたいず考えおいたす。 これは、
config.sh ファむルに保存されおいる倀にパッチを適甚する機䌚が埗られたす。

これは、ナヌザヌがロヌカル ファむルであるずいう点で、ヒントのアプロヌチずは異なりたす。
自分の䜿甚のために自由に䜜成できたす。 このようなファむルを自分で提䟛するべきではありたせん。
ナヌザヌはこの可胜性に぀いお知っおいたす。

構成 オプション
  構成 スクリプトは、コマンドラむンでいく぀かのオプションを指定しお呌び出すこずができたす。
動䜜を少し倉曎したす。 蚱可されるオプションは次のずおりです。

-d すべおの回答にデフォルトを䜿甚したす。

-e 過去の制䜜に疑問を持たずに進んでください。 config.sh.

-f file 指定されたファむルをデフォルト構成ずしお䜿甚したす。 このスむッチを䜿甚しない堎合、
構成はから取埗されたす config.sh、存圚する堎合。

-h ヘルプメッセヌゞを印刷しお終了したす。

-r 可胜であれば、C シンボルの倀を再利甚したす。 これにより、コストのかかる䜜業が省略されたす nm シンボル
抜出。 初めお䜿甚する堎合 (以前の構成ファむルがない堎合)、
構成 に぀いお知るために、小さなプログラムをコンパむルしおリンクしようずしたす。
シンボルの有無。

-s サむレントモヌド。 ファむル蚘述子 #4 に出力された文字列のみが、
画面に衚瀺されたす (これは重芁なメッセヌゞです)。 完党にオフにするこずはできたせん
任意の出力ですが、「」を䜿甚するこずもできたす構成 -ders > / dev / null 2>1' いっぱいになる
バッチは出力なしで実行され、ナヌザヌの操䜜は必芁ありたせん。

-D 蚘号=倀
事前定矩 シンボル 指定されたものを負担する 倀。 'を䜿甚するこずも可胜です-D
シンボル' これはデフォルト倀の 'define' を䜿甚したす。

-E 構成に関する質問を䜜成したら、最埌で停止したす。
config.sh。 これでは䜕も実行されたせん。make 決たる' たたは .SH ファむルの抜出。

-K 知識豊富なナヌザヌ。 このオプションを䜿甚するず、自分が䜕をしおいるのかがわかり、
したがっお、 config.sh ファむルは垞に、意図されたものであるかのように凊理されたす。
たずえそれが゚むリアンのシステムで生成されたものであっおも、再利甚されたす。 たた
次の堎合に䞭止を防止したす 構成 䜿甚できない C コンパむラたたは間違ったセットを怜出したす
C フラグの。 このオプションによっおさらにショヌトカットが有効になる堎合もありたす。
未来。 このオプションに぀いおは、次のドキュメントに蚘茉されおいたす。 構成 䜿甚状況メッセヌゞ、思い出させるため
その存圚に぀いおは䞍明ですが、䞎えられた説明は十分に䞍可解であるこずが望たれたす。
:-)

-O 経由で指定された倀を蚱可したす -D or -U ロヌドされた蚭定を䞊曞きするには
蚭定ファむル。 これはデフォルトの動䜜ではありたせん。
珟圚倉曎しおいる倉数から掟生した倉数には䌝播されたせん。
圓然、なしで -O、蚭定は蚭定ファむルがない堎合にのみ行われたす。
ロヌドされおいたすが、導関数倉数はただ蚈算されおいないため安党です...

-S すべおの .SH ファむルに察しお倉数眮換を実行したす。 ず組み合わせるこずができたす。
-f スむッチを䜿甚しお、任意の蚭定を反映させたす。

-U 蚘号=
プリセット シンボル 空の倀を保持したす。 'を䜿甚するこずも可胜です-U シンボル'
どれが蚭定したすか シンボル 「undef」にしたす。

-V のバヌゞョン番号を出力したす。 メタ構成 これを生成したのは 構成 スクリプト
終了したす。

Running: 環境
開始するず、 構成 ロヌカルを䜜成したす UU ディレクトリにあり、そこから実行されたす。 ディレクトリ
構成が終了するず削陀されたすが、これは、次の堎所からスクリプトを実行する必芁があるこずを意味したす。
぀たり、読み取り専甚ファむル システムからは曞き蟌みできたせん。

あなたは走れる 構成 ただし、リモヌトでは次のようになりたす。

../パッケヌゞ/構成

ロヌカルに存圚しない゜ヌスを構成するには。 生成されたすべおのファむルが配眮されたす
スクリプトを実行しおいるディレクトリ。 この魔法は src.U のおかげで実行されたす。
を蚭定しおいるナニット $ src & $rsrc パッケヌゞ゜ヌスを指す倉数。 それ
パスが完党パスか盞察パスかに応じお、 構成 フルたたは
盞察パス。

内から UU サブディレクトリを䜿甚できたす $rsrc ゜ヌスファむルにアクセスするため(単䜍
゜ヌス ファむルのリンク ヒントを参照する堎合は、垞にこのメカニズムを䜿甚し、
ファむルは芪ディレクトリに存圚したす)。 すべおの Makefile は $src 倉数を䜿甚する必芁がありたす
ビルド ディレクトリの先頭からの゜ヌスぞのポむンタずしお (ここで、 構成 が実行されたす、
盎接たたは VPATH 蚭定経由で。

実行時 構成 リモヌトでは、.SH ファむルはビルド ディレクトリではなく、ビルド ディレクトリに抜出されたす。
゜ヌスツリヌ内。 ただし、それにはある皮の make コンパむルできるようにサポヌトしたす
゜ヌスは別の堎所にありたすが、ビルドディレクトリにあるもの。

䜿い方 再定矩
を掻甚するこずで、 -M スむッチを切り替えるず、魔法の再マッピングが内郚で行われる堎合がありたす。 confmagic.h
ファむル。 そのファむルは埌に含める必芁がありたす config.hもちろんですが、結局のずころ、
その他の必芁なむンクルヌド ファむル。 ぀たり:

#include "config.h"
...
... 他の むンクルヌゞョン ...
...
#include "confmagic.h"

䞀般的に、 confmagic.h 再マップを詊みたす bcopy() on memcpy() いいえの堎合 bcopy() is
ロヌカルで利甚可胜、たたは倉換 vフォヌク に フォヌク 必芁に応じお、
のこずを気にする HAS_VFORK シンボル。

この構成マゞックは甚語集ファむルに文曞化されおいたす。

ナニット テンプレヌト
ナニットテンプレヌトのセットがありたす。 メタ構成 ゜ヌスディレクトリは、次のこずを目的ずしおいたす。
さたざたな皮類の新しい単䜍を迅速に生成するために (ただ䜜成されおいない) プログラムで䜿甚されたす。
状況。 この未完成のプロゞェクトに関するドキュメントはありたせんが、蚀及しおおこうず思いたした
自分で䜜成しお貢献したい堎合は、マニュアルペヌゞを参照しおください...

䜜者


ラリヌ・りォヌル[メヌル保護]> バヌゞョン 2.0 の堎合。
ハヌラン・ステン[メヌル保護]> 重芁な単䜍の拡匵甚。
ラファ゚ル・マンフレディ[メヌル保護]>.
他にも倚くの貢献者が メタ構成 単䜍。 リストに぀いおは、クレゞット ファむルを参照しおください。

onworks.net サヌビスを䜿甚しおオンラむンでメタコンフィグを䜿甚する


無料のサヌバヌずワヌクステヌション

Windows ず Linux のアプリをダりンロヌド

Linuxコマンド

Ad