Cygwinにtreeコマンド入れる


Windowsのコマンドプロンプトだとtreeコマンドあるんだけど、普段Cygwin(ConEmuで)使ってるのでtreeの為だけにコマンドプロンプト使いたくない。

ってことでCygwinでtreeコマンド使えるようにインストールする。

$ curl -LO http://mama.indstate.edu/users/ice/tree/src/tree-1.6.0.tgz
$ tar xzfv tree-1.6.0.tgz
$ cd tree-1.6.0.tgz

MakefileをCygwin用に修正する。

Makefile
 # Linux defaults:
 #CFLAGS=-ggdb -Wall -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-CFLAGS=-O4 -Wall  -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-LDFLAGS=-s
+#CFLAGS=-O4 -Wall  -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
+#LDFLAGS=-s

 # Uncomment for FreeBSD:
 #CFLAGS=-O2 -Wall -fomit-frame-pointer
 @@ -47,10 +47,10 @@ LDFLAGS=-s
 #MANDIR=${prefix}/share/man/man1

 # Uncomment for Cygwin:
-#CFLAGS=-O2 -Wall -fomit-frame-pointer -DCYGWIN
-#LDFLAGS=-s
-#TREE_DEST=tree.exe
-#OBJS+=strverscmp.o
+CFLAGS=-O2 -Wall -fomit-frame-pointer -DCYGWIN
+LDFLAGS=-s
+TREE_DEST=tree.exe
+OBJS+=strverscmp.o

 # Uncomment for OS X:
 #CC=cc

Makefileを修正したらmakeしてインストールする。

$ make
$ make install

error while loading shared libraries: cygmpc-3.dll: cannot open shared object file: No such file or directory ってエラーが出たけどgccを再インストールしたらなおった。

$ apt-cyg remove gcc-core
$ apt-cyg install gcc-core

ちゃんと使える。

$ tree
.
├── CHANGES
├── color.c
├── doc
│   ├── tree.1
│   ├── tree.1.fr
│   └── xml.dtd
├── hash.c
├── html.c
├── INSTALL
├── LICENSE
├── Makefile
├── README
├── strverscmp.c
├── TODO
├── tree.c
├── tree.h
├── unix.c
└── xml.c

1 directory, 17 files