makedepend - クラウドでオンライン

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド makedepend です。

プログラム:

NAME


makedepend - makefile に依存関係を作成する

SYNOPSIS


依存する [ -D=def ] [ -D ] [ -I含まれる ] [ -Y含まれる ] [ -a ] [ -fメイクファイル
] [ -含める file ] [ -oオブジェクトサフィックス ] [ -pオブジェクト接頭辞 ] [ -s文字列 ] [ -w ] [ -v ] [ -m ]
[- その他のオプション -] ソースファイル ...

DESCRIPTION


  依存する プログラムはそれぞれを読み取ります ソースファイル 順番に実行し、C のように解析します。
プリプロセッサ、すべてを処理 #含む、 #定義、 #undef、 #ifdef、 #ifndef、 #endif、 #もしも、
#エリフ および #その他 ディレクティブを使用して、どのディレクティブがどれであるかを正しく伝えることができます。 #含む、 指令は
コンピレーションで使用されます。 どれでも #含む、 ディレクティブは、他のファイルを持つファイルを参照できます。
#include ディレクティブ、およびこれらのファイルでも解析が行われます。

すべてのファイル ソースファイル 直接的または間接的に含まれるもの 依存する を呼び出す
依存。 これらの依存関係は、 メイクファイル そのような方法で make(1)
依存関係が変更されたときにどのオブジェクト ファイルを再コンパイルする必要があるかを認識します。

デフォルトでは、 依存する その出力をという名前のファイルに配置します メイクファイル 存在する場合、
さもないと Makefile。 代替のmakefileは、 -f オプション。 それが最初です
行のメイクファイルを検索します

# この行は削除しないでください -- make depend はそれに依存します。

またはで提供されるもの -s 依存関係出力の区切り文字としてのオプション。 見つかった場合
これに続くすべてをメイクファイルの最後まで削除し、出力を配置します
この行の後。 見つからない場合、プログラムはその文字列を末尾に追加します。
makefile を作成し、その後に出力を配置します。 それぞれについて ソースファイル に登場する
コマンドライン、 依存する フォームのメイクファイルに行を挿入します

ソースファイル.o: dfile ...

場所 ソースファイル.o コマンドラインからの名前で、サフィックスが「.o」に置き換えられたものです。
および dファイル で発見された依存関係です。 #include 解析中のディレクティブ ソースファイル or
それに含まれるファイルの XNUMX つ。

実施例


通常は、 依存する makefile ターゲットで使用されるため、「make depend」と入力すると、
makefileの依存関係を最新の状態にします。 例えば、
SRCS = file1.c file2.c..。
CFLAGS = -O -DHACK -I ../ foobar -xyz
それによる:
makedepend -- $(CFLAGS) -- $(SRCS)

OPTIONS


プログラムは理解できないオプションを無視するため、
あなたが求めるのと同じ引数 ccとします。

-D=def or -D
定義。 これにより、次の定義が配置されます。 in makedepend の シンボルテーブル。 それなし
=def シンボルは「1」として定義されます。

-I含まれる
ディレクトリを含めます。 このオプションは、 依存する 先頭に付ける 含まれる そのリストに
に遭遇したときに検索するディレクトリ #include 指令。 デフォルトでは、
依存する 標準のインクルード ディレクトリのみを検索します (通常は / usr / include および
おそらくコンパイラ依存のディレクトリ)。

-Y含まれる
すべての標準インクルード ディレクトリを、指定された XNUMX つのインクルードに置き換えます。
ディレクトリ; を省略できます 含まれる 単純に標準の検索を防止するため
ディレクトリを含めます。

-a 依存関係を置き換えるのではなく、ファイルの末尾に追加します。

-fメイクファイル
ファイル名。 これにより、代替のmakefileを指定できます。 依存する できる
その出力を配置します。 ファイル名に「-」を指定すると(つまり、 -NS-) 出力をに送信します
既存のファイルを変更する代わりに、標準出力を使用します。

-含める file
ファイルを入力として処理し、結果の出力をすべて含めてから、
通常の入力ファイル。 これは、指定されたファイルがインクルードである場合と同じ効果があります
通常の入力ファイルの最初の行の前にあるステートメント。

-oオブジェクトサフィックス
オブジェクトファイルの接尾辞。 一部のシステムには、接尾辞が何かであるオブジェクト ファイルがある場合があります。
「.o」以外。 このオプションを使用すると、「.b」などの別のサフィックスを指定できます。
  -ob または「:obj」と -o:オブジェクト 等々。

-pオブジェクト接頭辞
オブジェクトファイルのプレフィックス。 接頭辞はオブジェクト ファイルの名前の先頭に付加されます。 これは
通常、オブジェクト ファイルに別のディレクトリを指定するために使用されます。 デフォルトは
空の文字列。

-s文字列
開始文字列区切り文字。 このオプションを使用すると、次の文字列に別の文字列を指定できます。
依存する メイクファイル内で検索します。

-w
線幅。 通常は、 依存する 書き込むすべての出力行が確実に
読みやすくするために、幅は 78 文字以下になります。 このオプションにより、
この幅を変更するのはあなたです。

-v 冗長な操作。 このオプションにより、 依存する 含まれるファイルのリストを出力するには
各入力ファイルごと。

-m 複数のインクルードについて警告します。 このオプションにより、 依存する 次の場合に警告を生成します
どの入力ファイルにも別のファイルが複数回含まれています。 以前のバージョンでは、
依存する これがデフォルトの動作です。 デフォルトはより良いものに変更されました
複数のインクルードを考慮しない C コンパイラの動作と一致します。
エラーになります。 このオプションは下位互換性のために提供されており、
複数の包含に関連するデバッグの問題。

-- オプション --
If 依存する 引数リストでダブルハイフン(-)が検出された後、
その後に続く認識できない引数は黙って無視されます。 XNUMX 番目の二重ハイフン
この特別扱いを終了します。 この上、 依存する 安全に作ることができる
通常は CFLAGS に含まれる可能性のある難解なコンパイラ引数を無視します。 make
マクロ(を参照してください 実施例 上のセクション)。 すべてのオプション 依存する 認識し、
二重ハイフンの間にある は通常どおり処理されます。

アルゴリズム


このプログラムで使用されているアプローチにより、どのプログラムよりも桁違いに高速に実行できます。
私がこれまでに見た他の「依存関係ジェネレーター」。 今回のパフォーマンスの中心となるのは2つ
仮定: 単一の Makefile によってコンパイルされるすべてのファイルは、おおよその
同じ -I および -D オプション。 単一ディレクトリ内のほとんどのファイルには、主に次のものが含まれることになります。
同じファイルです。

これらの仮定を踏まえると、 依存する メイクファイルごとに XNUMX 回呼び出されることを期待します。
コマンド ラインに表示される makefile によって維持されるソース ファイル。 解析します
各ソース ファイルとインクルード ファイルを XNUMX 回だけ実行し、それぞれの内部シンボル テーブルを維持します。
したがって、コマンドラインの最初のファイルには、
通常の C プリプロセッサにかかる時間。 ただし、後続のファイルでは、
すでに解析済みのインクルード ファイルが見つかった場合は、再度解析しません。

たとえば、XNUMX つのファイルをコンパイルしていると想像してください。 ファイル1.c および ファイル2.c、 それぞれに含まれるもの
ヘッダーファイル header.h、 とファイル header.h 順番にファイルが含まれます def1.h および
def2.h。 コマンドを実行すると

makedepend file1.c file2.c

依存する 解析します ファイル1.c そしてその結果、 header.h その後 def1.h および def2.h。 It
次に、このファイルの依存関係が次のとおりであると判断します。

file1.o: header.h def1.h def2.h

しかし、プログラムが解析すると、 ファイル2.c そして、それには次のものも含まれていることを発見します。 header.h、 します
ファイルを解析せず、単に追加するだけです header.h、 def1.h および def2.h の一覧に
の依存関係 ファイル2.o。

onworks.net サービスを使用してオンラインで makedepend を使用する



最新のLinuxおよびWindowsオンラインプログラム