osx:commandlinetools
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
osx:commandlinetools [2024/03/05 11:35] – [ 基本の手作業] kimi | osx:commandlinetools [2024/03/05 12:07] – [ロードモジュールの作成] kimi | ||
---|---|---|---|
行 2: | 行 2: | ||
===== 基本の手作業 ===== | ===== 基本の手作業 ===== | ||
- | 例えばtreeをインストールすることを考えよう。 | + | 例えば'' |
- ソースコードを入手する | - ソースコードを入手する | ||
- ロードモジュールを作る | - ロードモジュールを作る | ||
行 8: | 行 8: | ||
という手順が必要になる。 | という手順が必要になる。 | ||
==== ソースコードの入手 ==== | ==== ソースコードの入手 ==== | ||
- | treeみたいなあまりに基本的なコマンドはここのところが初心者には最もハードルが高い。もっとも私のようなロートルにとっても昔知ってたftpサイトの類がまったくつながらないなど、そこそこ面倒。そもそも最近のmacosには素のftpコマンドがついていない。今回は[[https:// | + | '' |
+ | |||
+ | ==== ロードモジュールの作成 ==== | ||
+ | '' | ||
+ | |||
+ | - ダウンロードしてきた'' | ||
+ | - 作成された'' | ||
+ | - 内容を確認する。 | ||
+ | <code sh> | ||
+ | $ tar zxf tree-2.1.1.tgz | ||
+ | $ cd tree-2.1.1 | ||
+ | $ ls | ||
+ | CHANGES README file.c info.c tree.c | ||
+ | INSTALL TODO filter.c json.c tree.h | ||
+ | LICENSE color.c hash.c list.c unix.c | ||
+ | Makefile doc html.c strverscmp.c xml.c | ||
+ | $ | ||
+ | </ | ||
+ | ここで'' | ||
+ | <code sh> | ||
+ | kimi@persimmon tree-2.1.1 % make -n | ||
+ | gcc -ggdb -std=c11 -pedantic -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c -o tree.o tree.c | ||
+ | gcc -ggdb -std=c11 -pedantic -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c -o list.o list.c | ||
+ | . | ||
+ | . | ||
+ | . | ||
+ | gcc -ggdb -std=c11 -pedantic -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c -o html.o html.c | ||
+ | gcc -ggdb -std=c11 -pedantic -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c -o strverscmp.o strverscmp.c | ||
+ | gcc -o tree tree.o list.o hash.o color.o file.o filter.o info.o unix.o xml.o json.o html.o strverscmp.o | ||
+ | kimi@persimmon tree-2.1.1 % | ||
+ | $ | ||
+ | </ | ||
+ | なんてことをやってみる。'' | ||
+ | <code sh> | ||
+ | $ make | ||
+ | gcc -ggdb -std=c11 -pedantic -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c -o tree.o tree.c | ||
+ | In file included from tree.c: | ||
+ | ./ | ||
+ | char *gnu_getcwd(); | ||
+ | ^ | ||
+ | | ||
+ | ./ | ||
+ | . | ||
+ | . | ||
+ | . | ||
+ | 2 warnings generated. | ||
+ | gcc -ggdb -std=c11 -pedantic -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c -o strverscmp.o strverscmp.c | ||
+ | strverscmp.c: | ||
+ | | ||
+ | ^ | ||
+ | strverscmp.c: | ||
+ | #endif | ||
+ | ^ | ||
+ | 2 warnings generated. | ||
+ | gcc -o tree tree.o list.o hash.o color.o file.o filter.o info.o unix.o xml.o json.o html.o strverscmp.o | ||
+ | $ | ||
+ | </ | ||
+ | ウォーニングがちょっと出てるけどほとんどがプロトタイプ宣言が無いという類なので、まあよかろう。後はコメントにUTF-8使ってるってやつで、だからプログラムはコメントまで含めて米語だけで書けといつも言ってるんだ。最後のやつは、まあ大丈夫だろう。 | ||
+ | |||
+ | ==== コマンドのインストール ==== | ||
+ | |||
+ | <code sh> | ||
+ | $ make install -n | ||
+ | install -d / | ||
+ | install -d / | ||
+ | install tree / | ||
+ | install -m 644 doc/tree.1 / | ||
+ | $ sudo make install | ||
+ | </ | ||
+ | '' | ||
+ | |||
+ | 試しに実行してみるとこんな感じ。 | ||
+ | <code sh> | ||
+ | $ tree tree-2.1.1 | ||
+ | tree-2.1.1 | ||
+ | ├── CHANGES | ||
+ | ├── INSTALL | ||
+ | ├── LICENSE | ||
+ | ├── Makefile | ||
+ | ├── README | ||
+ | ├── TODO | ||
+ | ├── color.c | ||
+ | ├── doc | ||
+ | │ ├── global_info | ||
+ | │ ├── tree.1 | ||
+ | │ └── xml.dtd | ||
+ | ├── file.c | ||
+ | ├── filter.c | ||
+ | ├── hash.c | ||
+ | ├── html.c | ||
+ | ├── info.c | ||
+ | ├── json.c | ||
+ | ├── list.c | ||
+ | ├── strverscmp.c | ||
+ | ├── tree.c | ||
+ | ├── tree.h | ||
+ | ├── unix.c | ||
+ | └── xml.c | ||
+ | |||
+ | 2 directories, | ||
+ | </ | ||
===== MacPorts版 ===== | ===== MacPorts版 ===== | ||
- MacPortsのインストール([[https:// | - MacPortsのインストール([[https:// |
osx/commandlinetools.txt · 最終更新: 2024/03/05 12:10 by kimi