カテゴリ別 2003年 | 2004年 | 2005年 | 2006年 | 2007年 | 2008年
知り合いサイト: よんだもの / 暴想 / Linuxでやる夫 / 新宿Vipper / 僕だけが幸せになればいいのに。
XML データベースエンジンの Yggdrasill がオープンソース化したというのでダウンロードしてみました。
製品マニュアルも API リファレンスもあるのだけど、ビルドの仕方に関するドキュメントがなさげ。Makefile を読めということなのでしょう。とりあえず gonzui に一式突っ込んでソースを読みやすくして、ビルドに挑戦してみました。
$ make cd YgEngine; LC_ALL=ja_JP dcc -U../Common -U../XPath -U../YgClient -U../RelaxNG -U../RelaxNG/Datatype -U../RelaxNG/Pattern -U../RelaxNG/Datatype/Pattern -U../RelaxNG/Datatype/Xsd -U../RelaxNG/Datatype/NameClass -U../RelaxNG/NameClass -U../RelaxNG/Datatype/RelaxNG -E. YggdrasillServerE.dpr >/dev/null /bin/sh: dcc: command not found make: *** [YgEngine/YggdrasillServerE] エラー 127
早速つまづく。dcc って Delphi/Kylix のコンパイラかな?
Borland のトライアル版/無償製品版ダウンロードページから Kylix をダウンロード。
$ tar fvxz kylix3_open.tar.gz $ cd kylix3_open # ./setup.sh -m
-m をつけて、rpm を使わずにインストールです。
$ dcc --version dcc (Borland Delphi for Linux) 14.5 Borland Delphi for Linux Version 14.5 Open Edition Copyright (c) 1983,2002 Borland Software Corporation
再び make に挑戦。
$ make cd YgEngine; LC_ALL=ja_JP dcc -U../Common -U../XPath -U../YgClient -U../RelaxNG -U../RelaxNG/Datatype -U../RelaxNG/Pattern -U../RelaxNG/Datatype/Pattern -U../RelaxNG/Datatype/Xsd -U../RelaxNG/Datatype/NameClass -U../RelaxNG/NameClass -U../RelaxNG/Datatype/RelaxNG -E. YggdrasillServerE.dpr >/dev/null YggdrasillTCPServerE.pas(13) Fatal: ファイル 'IdThreadMgr.dcu' が見つかりません make: *** [YgEngine/YggdrasillServerE] エラー 1
Indy コンポーネントを必要とするようです。
Indy9.0 を使うことにします。Download Indy 9.0 から 9.0.17 Source code distribution の Indy_9_00_17_src.tar.gz をダウンロード。
パッケージの使い方がわからないので、↓のようなパッチをあてて、
diff -ru Indy_9_00_17_src/IdLogStream.pas Indy_9_00_17_src-/IdLogStream.pas --- Indy_9_00_17_src.orig/IdLogStream.pas 2002-10-08 12:19:22.000000000 +0900 +++ Indy_9_00_17_src/IdLogStream.pas 2005-12-12 00:59:48.000000000 +0900 @@ -14,7 +14,7 @@ unit IdLogStream; interface -uses classes, IdLogBase; +uses Classes, IdLogBase; type TIdLogStream = class(TIdLogBase) diff -ru Indy_9_00_17_src/IdQOTDUDP.pas Indy_9_00_17_src-/IdQOTDUDP.pas --- Indy_9_00_17_src.orig/IdQOTDUDP.pas 2002-10-08 12:21:16.000000000 +0900 +++ Indy_9_00_17_src/IdQOTDUDP.pas 2005-12-12 01:00:19.000000000 +0900 @@ -14,7 +14,7 @@ unit IdQOTDUDP; interface -uses classes, IdAssignedNumbers, IdUDPBase, IdUDPClient; +uses Classes, IdAssignedNumbers, IdUDPBase, IdUDPClient; type TIdQOTDUDP = class(TIdUDPClient) protected
$dcc `ruby -ne 'if m=/(\w+\.pas)/.match($_);puts m[1];end' indy.dpk`
などとして、dcu ファイルを量産してみました。これを Yggdrasill_1.5E/common にコピー。我ながら適当すぎ。
そしてまた make。
$ make cd YgEngine; LC_ALL=ja_JP dcc -U../Common -U../XPath -U../YgClient -U../RelaxNG -U../RelaxNG/Datatype -U../RelaxNG/Pattern -U../RelaxNG/Datatype/Pattern -U../RelaxNG/Datatype/Xsd -U../RelaxNG/Datatype/NameClass -U../RelaxNG/NameClass -U../RelaxNG/Datatype/RelaxNG -E. YggdrasillServerE.dpr >/dev/null YggdrasillServerE.dpr(170) Warning: コンパイラは 'end.' 以降の文字を無視します Error: Bad file format: 'YggdrasillTCPServerE.dfm' make: *** [YgEngine/YggdrasillServerE] エラー 1
うーん。先は長そう。
最近のコメント:
RSS
![]()
This work is licensed under a
Creative Commons License
(note: text only. w/o web design, citations, (re)distributed softwares).