[#24705] yaiba (blade clone) 0.0.1 — Hideto ISHIBASHI <hideto-i@...4u.or.jp>
石橋秀仁です。こんにちは。
高橋征義です。遅いフォローですみません。
石橋秀仁です。高橋さん、フォローありがとうございます。
高橋征義です。
石橋秀仁です。
高橋です。
石橋秀仁です。高橋さん、メールありがとうございます。
高橋征義です。さらにYaiba読み中……。
石橋秀仁です。
[#24711] win32 で RDtool — Kazuhiro NISHIYAMA <zn@...>
http://www.geocities.co.jp/SiliconValley-Bay/4076/
いろいろ教えてもらって一応使えるようになったのですが、
なかだです。
nobu.nakada@nifty.ne.jp wrote:
なかだです。
message "[ruby-list:24715] Re: win32 で RDtool"
新井です。
From: Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
こんにちは、時田です。
なかだです。
From: Tokita Kousui <ktokita@where-i.net>
こんにちは、時田です。
From: Tokita Kousui <ktokita@where-i.net>
rubikitch <rubikitch@ruby-lang.org> wrote:
ども、時田です。
Tokita Kousui <ktokita@where-i.net> wrote:
ども、時田です。
Toshです。
なひです.
Wed, Sep 06, 2000 at 02:08:21AM +0900 において
From: Tokita Kousui <ktokita@where-i.net>
こんにちは、時田です
In message <20000907183039.A15360@sv.where-i.net>
はじめまして、渡辺@京大情報学です。
ども、時田です。
Toshです。
Toshiro Kuwabara <toshirok@yb3.so-net.ne.jp> wrote:
From: Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
[#24729] Net::IMAP — Shugo Maeda <shugo@...>
前田です。
ただただしです。
前田です。
ただただしです。
前田です。
[#24731] win32 Time zone — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。
まつもと ゆきひろです
In message <E13VsUr-0006Cd-00@ev.netlab.zetabits.co.jp>
まつもと ゆきひろです
In message <E13VyUD-0006Un-00@ev.netlab.zetabits.co.jp>
参考までに、 FreeBSD では以下のようになりました。問題ないです。
[#24804] ruby-mode (Re: [ruby-dev:10833] Re: ruby 1.6.0 preview2) — Ryunosuke Ohshima <ryu@...>
大島と申します。ruby-listの方がふさわしいと思うので、動かしました。
[#24904] UDPSocket の送信元ポート番号の指定 — HiroshiSaito@...
こんにちは、サイトウです。
[#24911] PostgreSQL In CGI — Takayuki Tanaka <tanaka@...>
こんにちは Tanです。
[#24926] win32 版での TCPServer#addr, peeraddr の挙動 — OGATA Daisuke <Daisuke.Ogata@...>
緒方大介と申します.
[#24958] Installer test: ruby-1.6.0-preview — ARIMA Yasuhiro <fit0298@...>
有馬です。
小沢です。
有馬です。
小沢です。
有馬です。
有馬です。
小沢です。
有馬です。
小沢です。
有馬です。
わたなべです.
有馬です。
わたなべです.
小沢です。Win98でテストしてます。
有馬です。
小沢です。
再インストールの再報告です。
有馬です。
小沢です。
有馬です。
小沢です。
有馬です。
In-Reply-To: <200009201101.AA00851@fit0298.fitec.co.jp>
[#24968] media watch 2000.09.18 — Noritsugu Nakamura <nnakamur@...>
まつもと ゆきひろです
[#24969] UDPsocket#send <boradcast> でエラー — Hiroshi Saito <HiroshiSaito@...>
こんばんは、サイトウです。
[#24973] How to check all Thread fin ? — Sakae Kobayashi <sakae@...>
小林栄と申します。
前田です。
In message <87k8c9m2az.wl@studly.netlab.co.jp>
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
高橋征義です。
小林 栄です。
[#24991] Windows 環境での、 mod_ruby の作り方。 — ohara@...
小原ともうします。
[#25013] file separator for Ruby in Windows — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
まつもと ゆきひろです
高橋征義です。
まつもと ゆきひろです
こんにちは。
高橋征義です。
まつもと ゆきひろです
高橋征義です。
artonです。
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
artonです。
[#25025] build 1.6.0 on Tru64 (zipped SJIS file attached) — maili31s@... (SugHimsi)
すぎむし%Tru64 UNIX(Alpha マシン)で
[#25036] install guide draft for IRIX64 — Katsuyuki Komatsu <komatsu@...>
小松です。
[#25040] Re: file separator for Ruby in Windows — 小野工場設計部 <ind.onosetu1@...>
おがたといいます。
[#25055] What is this animal? — OZAWA -Crouton- Sakuro <crouton@...>
さくです。
[#25077] Ruby Entry Package ( ruby-1.6.1-mingw ) — ARIMA Yasuhiro <fit0298@...>
有馬です。
[#25084] configure で --with-sitedir が効かなくなる — Tatsuya BIZENN <bizenn@...>
備前と申します。
[#25092] http-access の get_data の指定サイズ — Makoto Ozawa <ozawa@...>
rubyの皆様、こんばんは。小沢です。
[#25109] assoc to rubyw.exe — ARIMA Yasuhiro <fit0298@...>
有馬です。
[#25143] ruby cal.rb on win32 — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。
[#25147] media watch 2000.08.24 — Noritsugu Nakamura <nnakamur@...>
すぎむし。
高橋征義です。
[#25169] priority & ThreadGroup (Re: [ruby-dev:9438] Re: $SAFE) — Masatoshi SEKI <m_seki@...>
まつもと ゆきひろです
前田です。
前田です。
In message <87k8bn6dyy.wl@studly.netlab.co.jp>
なかだです。
[#25172] round method — WATABE Eiji <eiji@...>
はじめまして、わたべと申します。
[#25210] Find module — Ryuichi Tamura <tam@...>
田村と申します。
[#25222] Programming Ruby — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
[#25230] mswinでのワイルドカード — "M_Otake" <masaota@...>
はじめまして。大竹といいます。
[#25253] 256 倍本邪道編 — Noritsugu Nakamura <nnakamur@...>
[ruby-list:24798] (RDP) mkmf.rb
新井です。
mkmf.rb です。ちょっと大きいですが多くの人に見てもらうために
そのまま載せてしまいます。
これを書いていて疑問に思ったことが何点かあります。
・make distclean は、なんでカレントディレクトリに ruby があ
ればこれも削除するの?
・have_library は、Winのための何かしらの考慮があるのですが、
find_library にはありません。
・create_header()で、extconf.h に反映した値 -DXXX は $defs
から取り除くべきではなかろうか?
みなさまからのご意見をお待ちしております。
--
新井康司 (Koji Arai)
=begin
= mkmf.rb
Ruby の拡張ライブラリのための Makefile を作成するライブラリです。通常
extconf.rb と呼ばれる ruby スクリプトの中で require され、このスクリプ
トを実行することで Makefile を作成するのが慣習となっています。
拡張ライブラリの作り方(extconf.rbの書き方)に関しては ruby のアーカイブ
に含まれる (({README.EXT})) (日本語版は (({README.EXT.jp})))も参照して
ください。
== 使い方
架空の拡張ライブラリ foo.so を作成することを考えます。この拡張ライブラ
リを作成するためには、ヘッダファイル bar.h とライブラリ libbar.a の関
数 baz() が必要だとします。このための extconf.rb は以下のように書きま
す。
require 'mkmf.rb'
dir_config('bar')
if have_header('bar.h') and have_library('bar', 'baz')
create_makefile('foo')
end
そして、拡張ライブラリを作成、インストールするには以下のようにします。
$ ruby extconf.rb
$ make
$ make site-install
== configure オプション
ここでの configure オプションとは ruby インタプリタ作成時に指定された
configure スクリプトのオプション、または extconf.rb 実行時のオプショ
ンのことです。extconf.rb の作成者は任意のオプションを定義できます。
(((<arg_config>)) を参照)。
また、以下のオプションがデフォルトで利用可能です。
: --with-opt-include=((|directory|))
ヘッダファイルを探索するディレクトリ ((|directory|)) を追加します。
: --with-opt-lib=((|directory|))
ライブラリファイルを探索するディレクトリ ((|directory|)) を追加します。
: --with-opt-dir=((|directory|))
ヘッダファイル、ライブラリファイルを探索するディレクトリ
((|directory|))/include、((|directory|))/lib をそれぞれ追加します。
: --with-((|target|))-include=((|directory|))
extconf.rb の中で ((<dir_config>))(((|target|))) を実行していればこ
のオプションを指定できます。
ヘッダファイルを探索するディレクトリ ((|directory|)) を追加します。
: --with-((|target|))-lib=((|directory|))
extconf.rb の中で ((<dir_config>))(((|target|))) を実行していればこ
のオプションを指定できます。
ライブラリを探索するディレクトリ ((|directory|)) を追加します。
: --with-((|target|))-dir=((|directory|))
extconf.rb の中で ((<dir_config>))(((|target|))) を実行していればこ
のオプションを指定できます。
ヘッダファイル、ライブラリファイルを探索するディレクトリ
((|directory|))/include、((|directory|))/lib をそれぞれ追加します。
== depend ファイル
カレントディレクトリに depend という名前のファイルがあればこの内容は生
成される Makefile の最後に追加されます。
このファイルは、ソースファイルの依存関係を記述するために使用します。例
えば、拡張ライブラリのソース foo.c が foo.h をインクルードしていれば
foo.h が更新されたときにも foo.c を再コンパイルしたくなります。
このような依存関係を記述するには depend ファイルに以下を書きます。
foo.o: foo.c foo.h
これは、foo.o が foo.c と foo.h に依存し、これらが更新されれば foo.o
は再作成されることを示します。
C コンパイラによっては、このような出力を自動生成することができます。こ
のためのオプションは -M として知られています。
cc -M *.c > depend
は、上記の出力を得ます。
gcc では、さらに -MM というオプションがあります。これは(通常更新するこ
とのないstdio.hなど)システムのヘッダファイルを依存ファイルとみなしませ
ん。(#include <...> の形式で参照されるヘッダファイルをシステムのヘッダ
ファイルとみなすようです)
gcc -MM *.c > depend
のように使います。
depend ファイルを他の用途で使用しては行けません。mkmf.rb はこの内容を
Makefile に出力する際に多少の加工を行う場合があります。
== make ターゲット
extconf.rb が生成した Makefile には以下のターゲットが定義されています。
: all
拡張ライブラリを作成します。
: clean
作成した拡張ライブラリ、オブジェクトファイルなどを削除します。
: distclean
: realclean
clean に加えて Makefile extconf.h(((<create_header>))参照) core ruby
などを削除します。
: install
作成した拡張ライブラリを ((<$archdir>)) にインストールします。カレン
トディレクトリにディレクトリ lib があればその配下の ruby スクリプト
(.rb ファイル)をディレクトリ階層ごと ((<$libdir>)) にインストールし
ます。
: site-install
((<install>)) と同様ですが、拡張ライブラリは ((<$sitearchdir>)) に、
ruby スクリプトは ((<$sitelibdir>)) にインストールされます。
== 関数
以下は、extconf.rb を記述するのに有用な関数です。ヘッダファイルの存在
チェック、ライブラリの存在チェックなど、システム間の差異を調べシステム
に適した Makefile を生成するためにこれらの関数が必要となります。
=end *コメント開始*
--- rm_f(files...)
ファイル ((|files|)) を削除します。((|files|)) には shell のワイル
ドカードを指定することができます。
--- xsystem(command)
ruby の組み込み関数 ((<system>))() と同じですが、コマンドの出力は
(標準出力、標準エラー出力ともに)捨てられます。
ruby をデバッグオプション((({-d})))付きで実行した場合は、コマンド
を表示した後に((<system>))(((|command|))) を実行します。
--- try_link0(src[, opt])
((<try_link>)) の実体です。
=begin
--- try_link(src[, opt])
C ソース ((|src|)) をコンパイル、リンクします。リンクの結果が正常
かどうかを true または false で返します。
((|opt|))が指定されていればリンク時のコマンド引数として渡されます。
このメソッドは、((<$CFLAGS>))、((<$LDFLAGS>)) の値もコンパイラ、リ
ンカに渡します。
((|src|)) には直接 C ソースを文字列で書きます。
--- try_cpp(src[, opt])
C ソース ((|src|)) をプリプロセスし、その結果が正常かどうかを true
または false で返します。
(({((<$CFLAGS>)) ((|opt|))})) をプリプロセッサの引数に渡します。
((|src|)) には直接 C ソースを文字列で書きます。
このメソッドはヘッダファイルの存在チェックなどに使用します。
--- egrep_cpp(pat, src[, opt])
C ソース ((|src|)) をプリプロセスし、その結果が正規表現 ((|pat|))
にマッチするかどうかを判定します。((|pat|)) には、((*egrepの*))正
規表現を文字列で指定します。
(({ ((<CPP>)) ((<$CFLAGS>)) ((|opt|)) (({| egrep})) ((|pat|)) }))
を実行し、その結果が正常かどうかを true または false で返します。
((|src|)) には直接 C ソースを文字列で書きます。
このメソッドはヘッダファイルに関数などの宣言があるかどうかを検
査するのに使用します。
--- try_run(src[, opt])
C ソース ((|src|)) をコンパイルし、生成された実行ファイルを実行し
た結果が正常かどうかを true または false で返します。
((|src|)) には直接 C ソースを文字列で書きます。
=end *コメント開始*
--- install_rb(mfile, dest[, srcdir])
((* このメソッドは、((<create_makefile>)) が使用します *))
ディレクトリ ((|srcdir|))(({/lib})) 配下の ruby スクリプト
((({.rb}))ファイル)を((|dest|)) にインストールするための Makefile
規則を ((|mfile|)) に出力します。((|mfile|)) は ((<IO>)) クラスの
インスタンスです。
((|srcdir|))(({/lib})) のディレクトリ構造はそのまま ((|dest|)) 配
下に反映されます。
引数 ((|srcdir|)) のデフォルトは "." です。
=begin
--- append_library(libs, lib)
ライブラリ ((|lib|)) をライブラリのリスト ((|libs|)) の先頭に追加
した結果を返します。
引数 ((|libs|)) とこのメソッドの戻り値はリンカに渡す引数形式の文字
列です。これは UNIX では、
"-lfoo -lbar"
であり、MS-Windows などでは
"foo.lib bar.lib"
です。引数 ((|lib|)) は、この例での (({"foo"})) や (({"bar"})) に
あたります。
--- have_library(lib[, func])
ライブラリ ((|lib|)) がシステムに存在し、関数((|func|)) が定義され
ているかどうかを検査します。検査に成功すれば ((<$libs>)) に
((|lib|)) を追加し true を返します。そうでなければ false を返しま
す。
((|func|)) の指定を省略した場合、単純にライブラリ ((|lib|)) が存在
するかどうかだけを検査します。
((|func|)) が nil または空文字列("") であれば特に何も検査をせずに、
((|lib|)) を追加します。
--- find_library(lib, func[, path1[, path2[, ...]]])
関数 ((|func|)) が定義されたライブラリ ((|lib|)) を探します。最初
にパス指定なしで検査し、次に((|path1|))を指定、ダメなら((|path2|))
を指定・・・といったように順にリンク可能なライブラリを探索します。
検査に成功すれば ((|lib|)) を ((<$libs>)) に追加し、見つかったパス
を ((<$LDFLAGS>)) に追加して true を返します。指定されたすべての
パスを検査してもライブラリ ((|lib|)) が見つからなければ false を返
します。
((|path|)) の指定がなければ((<have_library>))と同じです。
--- have_func(func[, header])
関数 ((|func|)) が存在するかどうかを検査します。
((|func|)) が存在すれば ((<$defs>)) に (({-DHAVE_((|func|))}))
(((|func|)) は大文字に変換されます)を追加して true を返します。そ
うでなければ false を返します。
((|header|)) には、関数((|func|))を使用するのに必要なヘッダファイ
ル名を指定します。これは引数の型チェックのためではなく(そのような
検査はこのメソッドでは行われません)関数が実際にはマクロで定義され
ている場合などのために使用します。
--- have_header(header)
ヘッダファイル ((|header|)) が存在するかどうかを検査します。
((|header|)) が存在すれば ((<$defs>)) に、
(({-DHAVE_((|header|))})) (((|header|)) は実際には大文字に変換され
文字 "-", "." が、"_" に置き換えられます)を追加して true を返しま
す。そうでなければ false を返します。
--- arg_config(config[, default])
((<configure オプション>)) --((|config|)) の値を返します。値が設定
されていなければ ((|default|)) を返します。
extconf.rb の場合、
ruby extconf.rb --foo --bar=baz
と実行すれば
arg_config("foo") の値は true、arg_config("bar") の値は "baz"
です。
--- with_config(config[, default])
((<arg_config>)) と同じですが、(({--with-((|config|))})) オプショ
ンの値だけを参照します。
--- enable_config(config[, default])
((<arg_config>)) と同じですが、(({--enable-((|config|))})) オプショ
ン、または(({--disable-((|config|))})) オプションの値だけを参照しま
す。
--- create_header()
((<have_func>))などの検査結果を元に
#define HAVE_FUNC 1
#define HAVE_HEADER_H 1
などを定義した extconf.h ファイルを生成します。
--- dir_config(target[, default])
--- dir_config(target[, idefault, ldefault])
システムに標準では存在しないヘッダファイルやライブラリがあるディレ
クトリを extconf.rb の利用者が指定できるようにします。
最初の形式では、((<configure オプション>))
(({--with-((|target|))-dir=((|path|))})) が指定されていれば、
((<$CFLAGS>)) に "-I((|path|))/include" を ((<$LDFLAGS>)) に
"-L((|path|))/lib" を追加します。
(({--with-((|target|))-dir})) の代わりに ((<configure オプション>))
(({--with-((|target|))-include}))、(({--with-((|target|))-lib}))
が指定されていれば、これらの値を (({$CFLAGS}))、(({$LDFLAGS})) に
それぞれ追加します。
((<configure オプション>))がいずれも指定されていなければ、省略可能な引数
((|deafult|))、((|idefault|))、((|ldefault|)) が使用されます。最初
の形式では、(({"-I((|default|))/include"}))、
(({"-L((|default|))/lib"})) をそれぞれ追加し、二番目の形式では
(({"-I((|idefault|))"}))、(({"-L((|ldefault|))"})) をそれぞれ追加
します。
--- create_makefile(target)
((<have_library>))などの各種検査の結果を元に Makefile を生成し
ます。
extconf.rb は普通このメソッドの呼び出しで終ります。
== 定数
--- CONFIG
((<rbconfig.rd/Config::MAKEFILE_CONFIG>)) と同じです。
=end *コメント開始*
--- CFLAGS
この値は、Makefileにも反映されます。
--- LINK
リンクを検査するときのコマンドラインのフォーマットです。
((<try_link>))などが使用します。
--- CPP
プリプロセスを検査するときのコマンドラインのフォーマットです。
((<try_cpp>))などが使用します。
=begin
== グローバル変数
=end *コメント開始*
--- $config_cache
この変数は obsolete です。現在使用されていません。
=begin
--- $srcdir
ruby インタプリタを make したときのソースディレクトリです。
--- $libdir
ruby のライブラリを置くディレクトリです。
通常 (({/usr/local/lib/ruby/((|version|))})) です。
--- $archdir
マシン固有のライブラリを置くディレクトリです。
通常 (({/usr/local/lib/ruby/((|version|))/((|arch|))})) です。
--- $sitelibdir
サイト固有のライブラリを置くディレクトリです。
通常 (({/usr/local/lib/ruby/site_ruby/((|version|))})) です。
--- $sitearchdir
サイト固有でかつマシン固有のライブラリを置くディレクトリです。
通常 (({/usr/local/lib/ruby/site_ruby/((|version|))/((|arch|))})) です。
--- $hdrdir
ruby のヘッダファイル (({ruby.h})) が存在するディレクトリです。
通常 (({/usr/local/lib/ruby/((|version|))/((|arch|))})) です。
--- $topdir
拡張ライブラリを make するためのヘッダファイル、ライブラリ等が存在
するディレクトリです。
通常 (({/usr/local/lib/ruby/((|version|))/((|arch|))})) です。
--- $defs
拡張ライブラリをコンパイルするときのマクロ定義を指定する配列です。
((<have_func>))、((<have_header>)) の検査結果はこの配列の要素になり
["-DHAVE_FUNC", "-DHAVE_HEADER_H"]
といった値になります。
((<create_header>)) は、この変数の値を参照してヘッダファイルを生成
します。
--- $libs
拡張ライブラリをリンクするときに一緒にリンクされるライブラリを指定
する文字列です。
((<have_library>))、((<find_library>)) の検査結果はこの文字列に
"-lfoo -lbar"
のように間に空白を置いて連結されます。
--- $CFLAGS
拡張ライブラリをコンパイルするときの C コンパイラのオプション、ヘッ
ダファイルのディレクトリを指定する文字列です。
((<dir_config>)) はこの変数に値 "-Idir" を追加します。
--- $LDFLAGS
拡張ライブラリをリンクするときのリンカのオプション、ライブラリファ
イルのディレクトリを指定する文字列です。
((<find_library>))、((<dir_config>)) はこの変数に値 "-Ldir" を追加
します。
=end *コメント開始 おそらくユーザに解放されていない変数です*
--- $LOCAL_LIBS
ライブラリを指定する文字列です。
--- $local_flags
リンカオプションを指定する文字列です。
=begin
=end