ASFilesでDrag and Drop

ASFilesっていうFileManagerをmakeしたときの話し。もう半年近くも前のことなんだが、メモが出てきたから書いておこう。

ASFilesってのは、AfterStepで使うのに適した、xfmをベースにしたFileManagerだ。Drag and Dropなんかもサポートしている。まずは何はなくともアーカイブを取ってくる必要がある。オレの場合はftp.jaist.co.jpからASFiles-1.0.tar.gzを取ってきて展開した。

./configureすると、OffiXのパッケージのdndライブラリが必要とか言われて通らねぇじゃねぇか! ったく。よくREADMEを読めよ>オレ てなわけで、sunsiteからOffiX-2.1.ELF.gzを持ってきてインストールしてみる。確かにDrag and Dropをサポートしてくれるんだが、いまひとつ見た目が地味で、AfterStep的な面白さがないんだなぁ。ワープロやら表計算やらのツール類には必要も感じないし。というわけで、ライブラリとヘッダファイルだけ残して後は消した。で、再び./configureすると今度はO.K。よしよし。

makeすると順調に進んでいくが、今度は最後のリンクの段階でDndSourceWindowというシンボルが未定義で解決できないとかおっしゃるでわないか。なんなんだ手こずるなぁ。nm /usr/local/bin/libDnd.a | grep Source などとすると、確かに見あたらない。

またしてもftp.jaist.co.jpのお世話になり、xarchieでlibdnd_1.0.orig.tar.gzを 持ってきた。ついでにlibdnd_1.0-4.diff.gzというパッチも持ってきてみた。さらにlibdnd_1.0-7.diff.gzというのもあったのだが、linuxはlinuxでもdebian用だったのであまり高度なパッチを欲張ってもかえっていかんかと思って1.0-7は見送ることにした。

libdnd_1.0.orig.tar.gzを展開しすると、libdnd-1.0.origができる。そこでパッチをあて、./configureしてmakeしてみると、その下のDNDlibにサクッとlibDnd.aができあがっていた。さっそくnm /usr/local/bin/libDnd.a | grep Source としてみると…

00000c74 T DndSourceWidget
00000c94 T DndSourceWindow

おぉ!ちゃんとあるでわないか。そもそもASFilesのREADMEに、you need dnd libraryとかアバウトに描かずに、libDnd 1.04 or later とかハッキリ書いて欲しいよなぁ。結局役に立たなかったOffiXのパッケージは、ライブラリからなにから全部消して捨てたぜ(笑)。

ASFiles-1.0のconfigureを見ると、libDndがあるかどうかを
for offix_dir in /usr/local/include $offix_this_dir/../DND/DNDlib ; \
などと調べているので、ASFiles-1.0と同じ階層にDNDを掘って、そこにそのままcp -r DNDlib DNDなどとやってディレクトリごとコピーする。

ASFiles-1.0の./configureからやり直し、makeすると、できました!

ASFiles-1.0/src/filesというのがそうらしい。./filesとして試しに動かすと…
おぉ!かっこいいじゃん!!
さっそくsuしてmake installしておしまい。

メール 前へ 次へ 戻る