メモ: lndirコマンド

ひと月前の作業を再開。

Xをビルドしようとしています。

ソースコードについてくる「Building and Installing the X Window System」というマニュアルを読むと、"1台以上のマシンでビルドするときは、lndirを実行してシンボリックリンクツリーを作れ"と書いてありました。

コードツリーは分かるけど、リンクツリーって何?

lnは使うけど、lndirって何?

まあ、大体想像はつくけれども。

よく知らないので、調べました。

lndir

lndirは、指定したディレクトリ(fromdir)以下のソースコードへのリンクを、指定したディレクトリ(todir)以下に作成します。

たとえば、fromdirにソースコードがあるとき、

  1. todirでlndirコマンドを実行する
  2. ソースコードへのリンクがtodir以下に作成される
  3. todir側で(fromdirのコードをシンボリックリンクを介して参照して)ビルドを実行できる

といったことができます。

ignorelinksオプション

「-ignorelinks」オプションで、コピー元にあるシンボリックリンクの扱いを変えられます。

デフォルトでは、fromdirにあるのがシンボリックリンクなら、そのリンクが参照するファイルへのシンボリックリンクが、todirに作られます。(図の緑矢印)

ignorelinksオプションでは、fromdirにあるのがファイルかシンボリックリンクかにかかわらず、それ(ファイル or リンク)を指すシンボリックリンクが、todirに作られます。(図の紫矢印)

lndirのコードを読んでみる…けど

lndir.cのコードは短いです。コメントを除けば300行だけ。

でも、stat関数というのが出てきて、またしても、知らんがなというカンジなので、続きは今度。

  • sys/stat.hをincludeする
  • lstat、fstatの兄弟がいる

…というのは、把握しました。