Misc Change Log

`OpenBSD で scheme のアプリ開発' みたいなことをやってます。

2005-04-25

arc - the arc build tool project

http://www.eyestep.org/arc.html

via: c.l.s

Scheme で autoconf, automake, libtool, make の代替になるツールを作成するプロジェクト。

INSTALL によれば、scm, guile 1.3以降, または ksi で動作とのこと。 自前のインタプリタ asc もあるらしい。

せっかくなので、--scheme=asc で configure してみる。

で、ビルドなのだが、configure が OS の判定しているので OpenBSD だとこける、ので、 FreeBSD のマネをしてみる。 あとは strcat, strcpy がアレなので細々と訂正(arc-20050425.diff) 。てか、今気づいたけど、$HOME あふれ攻撃できるな。これ。

とりあえずインストールまではこれでオッケー。

お約束の hello.c のビルド。

$ cat src/hello.c
main()
{
	printf("hello,world");
}

Makefile に相当するのが Arcfile で、こんな感じ。

$ cat Arcfile
(project sample-project
         basedir: "src/"
         default: 'link)

(stmt build-dir
      "_build")

(stmt init
      (mkdir dir: (-> build-dir)))

(stmt c-sources
      (fileset pattern: "*.c"))

(stmt compile
      depends: 'init
      (c-compile sources: (-> c-sources)
                 shared?: #t
                 outdir: (-> build-dir) ))

(stmt link
      (link files: (-> compile)
            shared?: #t
            appnm: "hello"))

arc の README に書いてある例が out of date な気がする。 doc/ 以下の方が -current を反映しているらしいので texinfo 必須。

使ってみて思ったけど、なんというか、m4 の地獄マクロよりはマシ、mk の手抜き Makefile よりは不便かなあ。 S 式じゃなくてインデント形式にしたら、プロパティをタグごとに付けられる Makefile だった、 とかいうオチもありうる。

それと、細木数子じゃないけど、名前がよくないよな。 アーカイバの arc とモロに名前が衝突しているんですけど。 あ、Paul Graham のインタプリタもそうか。

arc のプログラムを arc でインストールして arc で圧縮して配布、とか。

もっと問題なのはぐぐっても出てこないことか。名前重要。

Posted at 11:14 | Permalink | Category | Comments

日本語で abcde を使う

http://d.hatena.ne.jp/...

押し売りをしてしまったので、責任を取ってまとめ。

abcde とはコンソールベースの CD リッパー、エンコーダ。 非常に手軽に使えるので(ほとんど Enter 押すだけ)、 HDD の肥やしの大量生成を可能にしてくれる素敵なソフトである。

で、もちろん日本語での細かい事情なんて知らないので、 そのままだと日本語タイトルの CD のエンコーディングはうまくいかない。

abcde 自体はシェルスクリプトなのでまあ問題はない(SJIS なファイル名とかでなければ)。 OpenBSD だと e?grep がマルチバイトを通さないので、

# cd /usr/ports/audio/abcde
# make extract
# cd w-abcde-2.2.0/abcde-2.2.0
# perl -i -p -e "s/grep/grep -a/" abcde cddb-tool

-a オプションで無理矢理対応。

次は日本語 EUC で返す CDDB を ~/.abcde.conf にセット。

CDDBURL="http://freedbtest.dyndns.org/~cddb/cddbeuc.cgi"

あとは id3 の SJIS 強制変換パッチを作成したので当てる: (id3-0.12-id3.c.diff)。

これで EUC のファイル名、id3tag が SJIS の mp3 ファイルが作成されるはず。

余談だけど、id3 はジャンルに Japan Rock が存在しないので Jpop あたりで編集し直さないといかん。ううむ。

Posted at 01:21 | Permalink | Category | Comments