Just another Ruby porter,

〜2003年3月上旬〜


<Prev(,) | Next(.)> | Recent(/)>> | RDF

2003-03-01 (Sat)

2月のspam

442通。bsprocのために残しておこう。

[Ruby] prefix対応

mswin32で試しててたら、やはり /usr/usrになってしまった。 つまり今まではprefixの設定ができなかったので、 DESTDIRで代用していたというのが真相か?

!if !defined(prefix)
prefix = /usr
!endif
!if !defined(DESTDIR)
DESTDIR =
!endif

と変更するのが筋だと思うけど、これだと

> nmake DESTDIR=c:/ruby install

と実行するとc:/ruby/usrにインストールされてしまう。これからは

> nmake DESTDIR=c:/ruby prefix= install

と実行する必要があるけど、いいよね?あ、それだけじゃだめだ。

> nmake prefix=
> nmake DESTDIR=c:/ruby prefix= install

としないといけない。となると受け入れ難いか?

!if !defined(prefix)
prefix =
!endif
!if !defined(DESTDIR)
DESTDIR = /usr
!endif

と変更すれば今まで通りだけど、なんか変だよね。 おそらく/usrにインストールする人はあまりいないと思うので、

!if !defined(prefix)
prefix =
!endif
!if !defined(DESTDIR)
DESTDIR =
!endif

と何も設定しないほうがよさそう。 って、じゃあ、この6行はなくてもいいじゃん。

ここで改めてwin32/README.win32を読んでみると

(6) Run `((%nmake DESTDIR=<install_directory> install%))'

と書いてあった。やはりprefix = /usrはだめだな。 何も設定しないのが無難か。


2003-03-02 (Sun)

[Ruby] xtemplate 0.5.2

更新。

[Ruby] oocp 2.00.00

更新。

[Ruby] Borland makeの謎

prefix対応の確認のためbccwin32でも試してみたが、なんか変だ。

!ifndef prefix
prefix = /usr
!endif
all:
        @echo $(prefix)

というMakefileを作って

% bmake prefix=

と実行するとなぜか1と表示する。この1はどこから来るのだ?

helpを見ると

-Dマクロ             1文字でマクロを定義する。これを行うとメイクファ
                     イルに記述された式!ifdefマクロは真を返す
[-D]マクロ=[文字列]  文字列でマクロを定義する。文字列にスペースやタ
                     ブを含める場合は文字列を引用符で囲む。-Dは省略
                     可能

とあった。つまり文字列を指定しなかった場合は真にするために1にしてるんだろう。 -Dというオプション名からしてCPPと同じ考え方だ。

ext/extmk.rbで無条件にDESTDIR=を追加するのをやめよう。

それはそれとして、もしbcc32/Makefile.subで

!ifndef prefix
prefix = /usr
!endif

としてしまうとmakeの引数でprefixを空にすることはできないということになる。 といった意味でもなくしたほうがよさそうだ。

[Ruby] bmake

上のbmakeは実はshell scriptで

#! /bin/sh
case "${0##*/}" in
  bmake) cmd=make;;
  *) cmd=${0##*/};;
esac
PATH=/c/borland/bcc55/bin:$PATH exec $cmd "$@"

としてる。bcc32は

% ls -l bcc32
lrwxrwxrwx    1 watanabe ruby           90 Jan  2 16:41 bcc32 -> bmake

てな感じで。makeの中からしか呼ばないならこのsymlinkは要らないんだけど。

[Ruby] prefix対応

mingw32のほうでmake DESTDIR=c:/fooとしてもだめだということに気づいた。 ext/**/Makefileは

prefix = $(DESTDIR)/usr/local

となっていても、topdirのMakefileは

prefix = /usr/local

なので、prefix対応するとext/**/Makefileでの設定は無効になるから。 preview2に入れるのは見送ろう。単純にtopdirのMakefileのほうも

prefix = $(DESTDIR)/usr/local

にすればいいかどうか、もうちょっと確認が必要だな。

一応今日までの変更を ここに置いておこう。

[花粉症] スギ抗原米

「実用化のめどは2006年です」と言ってました。


2003-03-03 (Mon)

[Ruby] Ruby 1.8.0 preview2

区切りということで、あまり意味はない。 その昔、Nemacsのひなまつりバージョンってのがあったなあ。


2003-03-04 (Tue)

[Ruby] prefix対応

いろいろ考えてみたけど、topdirのprefixでDESTDIRを展開して、 その結果を各ext/**/Makefileが使うようになればいいんだよね。 つまりext/extmk.rbではDESTDIRを扱う必要なし。

[Ruby] uClibc?

スタティックにリンクすればuClibcじゃなくても依存しないはず。

[Linux] uClibc 0.9.19

更新。


2003-03-05 (Wed)

[Ruby] narray 0.5.7

更新。

[Ruby] druby 2.0.2

更新。

[Ruby] CFLAGS

考えてみると

% make CFLAGS=-O3

とかしたくなるんだから、 CFLAGSは-gと-O関係ぐらいにしといたほうがいいのかもしれない。 そうするとLDFLAGSも同じか?


2003-03-06 (Thu)

[Ruby] ext/Win32API/Win32API.c

asm statementに比べれば無駄が多いが、 たぶんコンパイラの挙動にはもう影響は受けないだろうという変更にした。 構造体を引数で渡してるだけなんだけど。

[Ruby] Linkavailable

kogさんが二人いるけど、 *Messages*のほうはSHIMADAさんだよね。


2003-03-07 (Fri)

[Ruby] QDBM対応

RubyでQDBMを使えるように、とりあえずNDBM互換APIで対応してみた。 と言ってもext/dbm/extconf.rbに"qdbm" => ["relic.h"]を追加しただけなんだけど。


2003-03-08 (Sat)

[Ruby] bRubyパッチ

bRubyを動かすにはparse.yとeval.cにパッチをあてないといけない。 というわけで、Ruby binariesもパッチをあててからmakeすることにした。

まず最初に作ったのがこんなMakefile。

all: parse.y eval.c
eval.c: ../ruby16/eval.c ../eval.c.patch
        patch -o eval.c ../ruby16/eval.c ../eval.c.patch
parse.y: ../ruby16/parse.y ../parse.y.patch
        patch -o parse.y ../ruby16/parse.y ../parse.y.patch

$<とか$@を使えばコマンド部分は

patch -o $@ $< ../$(<F).patch

と書けそうだ。これとStatic Pattern Ruleを使ってまとめると

all: parse.y eval.c
parse.y eval.c: % : ../ruby16/% ../%.patch
        patch -o $@ $< ../$(<F).patch

となる。


2003-03-09 (Sun)

[Spam] Eban, sick of spam? here is solution

anti-spam toolを買わないかというspamが来た。 その商売に矛盾を感じないのか?

[Ruby] 1.8のRuby Binaries

とりあえず各々1.8/を作ってそこに置くことにした。 拡張ライブラリはアルファベット順に作る。 あ、ディレクトリは違うけど同じファイル名になってしまうなあ。 Rubyのバージョンを含めるべきか? うささんのバイナリは-i586-mswin32-1.6.zipという感じか。 じゃ-i386-*-1.8.tar.gzにしよう。

[Ruby] bdb 0.4.0

amrita, aspectr, bdbと進めて、 bdb 0.4.0を作る前にBerkeley DBを4.1.25に上げようとしていたことを思い出した。 4.1.24のビルドディレクトリは残っていたので、それを参考に4.1.25を作った。 時間はかかるが作業は簡単。

と思ったらdb_version_4000がundefinedに。これはdb_versionでよさそうだ。


2003-03-10 (Mon)

[Ruby] 1.8のRuby Binaries

ところどころ抜けはあるが ruby-googleまで完。

[Ruby][Cygwin] setup.ini

foo-1.0-i386-cygwin-1.8.tar.gzという名前だと、 結局fooというパッケージのversion 1.0なので、 setup.exeにとっては変化がない。setup.iniで

@ foo-1.8

にすればいいのかなあ。あとcategoryとして無理矢理Rubyとしたらどうなるんだろう? なんかよさげだ。

[Ruby] rdoc 0.9.0

rdocがやっとbetaが取れた。

[Ruby] rdtool 0.6.13

更新。

[Ruby] Config::CONFIG['libdir']

うーむ。/usr/local/mingw/libなってた。まずいなあ。


<Prev(,) | Next(.)> | Recent(/)>> | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!