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