ページ更新: 2004-06-14 (月) (5241日前)

2004-03-04 作成。

Cygwinにはtreeコマンドがなかったので、入れてみた。

Windowsのtreeコマンド (%WINDIR%\system32\tree.com) を使い、 パスはcygpathで変換してもいいけど、せっかくなので。

[編集]

入手方法 #

  1. Debian には入っていたので、まずはhttp://packages.debian.org からパッケージを探して
  2. http://packages.debian.org/stable/utils/tree が見つかった。
  3. オリジナルのソースコード tree_1.3.orig.tar.gzを入手。
  4. http://packages.debian.org/changelogs/pool/main/t/tree/tree_1.3-2/copyright でオリジナルの入手先 ftp://mama.indstate.edu/linux/tree/ が判明。
  5. 展開して、READMEを見て、そこからtree-1.4b3.tgzも入手。
[編集]

tree-1.3 #

tree-1.3をCygwin上でmakeしてみた。 errorあり。

$ LANG= make
gcc -O2 -Wall -fomit-frame-pointer    -c -o tree.o tree.c
tree.c:25:24: missing terminating " character
tree.c:28: error: `BR' undeclared here (not in a function)
tree.c:28: error: `suggestions' undeclared here (not in a function)
tree.c:28: error: syntax error before "to"
tree.c:28: error: stray '\' in program
tree.c: In function `listdir':
tree.c:456: warning: suggest explicit braces to avoid ambiguous `else'
tree.c: In function `parse_dir_colors':
tree.c:1025: warning: deprecated use of label at end of compound statement
make: *** [tree.o] Error 1

以下の行の末尾に \ を追加して、

<BR>This software is experimental. Send commends and/or

再度、コンパイル。

$ LANG= make
gcc -O2 -Wall -fomit-frame-pointer    -c -o tree.o tree.c
tree.c: In function `listdir':
tree.c:456: warning: suggest explicit braces to avoid ambiguous `else'
tree.c: In function `parse_dir_colors':
tree.c:1025: warning: deprecated use of label at end of compound statement
gcc -s -o tree tree.o

warningは残っているが、'suggest'なので無視した。

[編集]

tree-1.4b3 #

tree-1.4b3 もmakeしてみた。

とりあえず、Makefileを次のように修正して、

CC=gcc
CFLAGS=-O2 -Wall -fomit-frame-pointer
LDFLAGS=-s

コンパイル。

$ LANG= make
gcc -O2 -Wall -fomit-frame-pointer   -c -o tree.o tree.c
tree.c: In function `listdir':
tree.c:515: warning: long int format, different type arg (arg 3)
tree.c: In function `url_encode':
tree.c:1086: warning: deprecated use of label at end of compound statement
gcc -s -o tree tree.o

インストール。

$ make install
install -d /usr/local/bin
install -d /usr/local/man/man1
if [ -e tree ]; then \
        install -s tree /usr/local/bin/tree; \
fi
install tree.1 /usr/local/man/man1/tree.1