maya's blog

About programming, aws and ubuntu

ls コードリーディング⓪

前回はlsのソースコードを探すところから始まり、どこから取得すれば良いのか検討がついた。 今回はApple Source Browserから閲覧・取得できるソースコードを利用する。

ブラウザからソースコードを直接読めるが、ローカルにdownloadして慣れ親しんだエディタで見たかった。 ファイルごとにボタンぽちぽちしてコードをコピー・ペーストしてファイルに保存というのはめんどくさい。 ヘッダファイルやMakefileも同じディレクトリだけで完結しそうにもなさそうだったしな。 そこで一括でダウンロードできないかと調べたところ、 wget - Download source code from Apple's website - Stack Overflow に同じ悩みを持った人がいて、Apple Source Browserがtarで提供しているらしい。

lscat等のコマンドのソースコードfile_cmds-*というディレクトリにあるらしく、suffixにverらしきもが付いている。 例えばfile_cmds-184とか。 どうやらverらしき番号が大きいのはfile_cmds-272だったので、今回はこれをリーディング対象にする。 https://opensource.apple.com/tarballs/file_cmds/ からtarで提供されており、それぞれのverのソースコードをdownloadできる。

file_cmds-272.tar.gzをdownload & 解凍してlsのディレクトリを見たけれど、Makefileがないだと... 他のverはどうかとfile_cmds-184.tar.gzのlsを見るとMakefileはあるが、他のMakefileを必要としているらしく、その依存Makefileがないとのこと。 結構めんどくさそうだな...buildから躓くとは...