[#7779] http-access-0.0.2 patch — TAKAHASHI Masayoshi <maki@...>
英文メールの書き方を勉強中の高橋です。ごぶさたしてます。
11 messages
1999/09/01
[#7780] Re: http-access-0.0.2 patch
— Takahiro Maebashi <maebashi@...>
1999/09/01
前橋です。
[#7788] Re: http-access-0.0.2 patch
— TAKAHASHI Masayoshi <maki@...>
1999/09/02
高橋征義です。
[#7817] Re: http-access-0.0.2 patch
— setsura <setsura@...>
1999/09/07
はじめまして str です。
[#7822] Re: http-access-0.0.2 patch
— "NAKAMURA, Hiroshi" <nakahiro@...>
1999/09/08
なひです.
[#7824] Re: http-access-0.0.2 patch
— setsura <setsura@...>
1999/09/08
[#7825] Re: http-access-0.0.2 patch
— "NAKAMURA, Hiroshi" <nakahiro@...>
1999/09/09
なひです.
[#7785] rb2c — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
28 messages
1999/09/02
[#7790] Re: rb2c
— Kazuhiro HIWADA <hiwada@...>
1999/09/02
ひわだです。こんばんは。
[#7786] Re: rb2c
— WATANABE Hirofumi <watanabe@...>
1999/09/02
わたなべです.
[#7791] Re: rb2c
— Kazuhiro HIWADA <hiwada@...>
1999/09/02
ひわだです。
[#7840] socket and buffering — Masaki Fukushima <fukusima@...>
福嶋です。
12 messages
1999/09/13
[#7842] Re: socket and buffering
— matz@... (Yukihiro Matsumoto)
1999/09/13
まつもと ゆきひろです
[#7844] Re: socket and buffering
— Masaki Fukushima <fukusima@...>
1999/09/14
福嶋です。
[#7847] Re: socket and buffering
— matz@... (Yukihiro Matsumoto)
1999/09/15
まつもと ゆきひろです
[#7858] Re: socket and buffering
— Masaki Fukushima <fukusima@...>
1999/09/17
福嶋です。
[#7845] [Q] irb and SizedQueue — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
14 messages
1999/09/15
[#7848] Re: [Q] irb and SizedQueue
— matz@... (Yukihiro Matsumoto)
1999/09/15
まつもと ゆきひろです
[#7853] Re: [Q] irb and SizedQueue
— keiju@... (石塚圭樹)
1999/09/16
けいじゅ@日本ラショナルソフトウェアです.
[#7850] Re: [Q] irb and SizedQueue
— matz@... (Yukihiro Matsumoto)
1999/09/15
まつもと ゆきひろです
[#7846] newline code and __END__, here document — nobu.nakada@...
なかだです。
5 messages
1999/09/15
[#7886] fnmatch (Re: Dir.glob) — WATANABE Hirofumi <eban@...>
わたなべです.
5 messages
1999/09/20
[#7895] SOCKS5 — とみたまさひろ <tommy@...>
とみたです。
7 messages
1999/09/22
[#7902] toy JIT compiler — Kazuhiro HIWADA <hiwada@...>
ひわだです。どうも。
7 messages
1999/09/22
[#7914] SEGV at st.c — Kazuhiro Yoshida <moriq@...2.seikyou.ne.jp>
もりきゅうです.
7 messages
1999/09/25
[#7915] Re: SEGV at st.c — Kazuhiro Yoshida <moriq@...2.seikyou.ne.jp>
もりきゅうです.
1 message
1999/09/25
[#7917] [PATCH] strftime "%z", timezone — WATANABE Hirofumi <eban@...>
わたなべです.
12 messages
1999/09/25
[#7919] Re: [PATCH] strftime "%z", timezone
— matz@... (Yukihiro Matsumoto)
1999/09/25
まつもと ゆきひろです
[#7924] Re: [PATCH] strftime "%z", timezone
— WATANABE Hirofumi <eban@...>
1999/09/26
わたなべです.
[ruby-dev:7944] rbconfig.rb
From:
nobu.nakada@...
Date:
1999-09-28 12:45:04 UTC
List:
ruby-dev #7944
なかだです。
いくつか拡張ライブラリとかツールを RPM 化してみて疑問に思ったの
ですが、rbconfig.rb の Config::CONFIG の値は Makefile 用なのでしょ
うか、Ruby 用なのでしょうか。mkconfig.rb の中でわざわざ ${var} を
展開しているところを見ると Ruby 用にも思えますが、いくつかは
$(var) 形式のまま残っている部分があります。できれば、Makefile 用
にマクロ形式のままのものが欲しいのですが。
なんで RPM と Makefile が関連するのか、RPM を使っていない方は分
からないでしょうからちょっと説明しますと、RPM はコンパイル後、テ
ンポラリディレクトリを作ってそこに一度仮想的にインストールします。
で、そのためにディレクトリ関連のマクロはある程度抽象化している必要が
あります。つまり、現状
exec_prefix = /usr
libdir = /usr/lib
とか直接指定された形になっているものが、できれば
exec_prefix = $(prefix)
libdir = $(exec_prefix)/lib
のようにマクロになっていた方が望ましいわけです。
とりあえず以下のようなパッチを作ってみました。Makefile の生成に
使われることが多いと思うのですがどうでしょうか。
* Config::CONFIG はマクロをそのまま残す
* Config::RBCONFIG は CONFIG の値をマクロはすべて展開した形で返す
diff -ru2 dist/Makefile.in build/Makefile.in
--- dist/Makefile.in Tue Sep 28 14:04:36 1999
+++ build/Makefile.in Tue Sep 28 14:04:49 1999
@@ -122,5 +122,5 @@
@./miniruby$(EXEEXT) $(srcdir)/rubytest.rb
-rbconfig.rb: miniruby$(EXEEXT)
+rbconfig.rb: miniruby$(EXEEXT) $(srcdir)/mkconfig.rb config.status
@./miniruby$(EXEEXT) $(srcdir)/mkconfig.rb rbconfig.rb
diff -ru2 dist/mkconfig.rb build/mkconfig.rb
--- dist/mkconfig.rb Fri Aug 13 14:45:06 1999
+++ build/mkconfig.rb Tue Sep 28 21:04:52 1999
@@ -21,5 +21,5 @@
]
-print " CONFIG = {}\n"
+print " CONFIG = {\n"
v_fast = []
v_others = []
@@ -29,13 +29,11 @@
if /^s%@program_transform_name@%s,(.*)%g$/
ptn = $1.sub(/\$\$/, '$').split(/,/) #'
- v_fast << " CONFIG[\"ruby_install_name\"] = \"" + "ruby".sub(ptn[0],ptn[1]) + "\"\n"
+ v_fast << " \"ruby_install_name\" => \"" + "ruby".sub(ptn[0],ptn[1]) + "\",\n"
elsif /^s%@(\w+)@%(.*)%g/
name = $1
val = $2 || ""
next if name =~ /^(INSTALL|DEFS|configure_input|srcdir|top_srcdir)$/
- v = " CONFIG[\"" + name + "\"] = " +
- val.sub(/^\s*(.*)\s*$/, '"\1"').gsub(/\$\{?([^(){}]+)\}?/) {
- "\#{CONFIG[\\\"#{$1}\\\"]}"
- } + "\n"
+ v = " \"" + name + "\" => \"" +
+ val.strip.gsub(/\$\{?([^(){}]+)\}?/) {"$(#{$1})"} + "\",\n"
if fast[name]
v_fast << v
@@ -53,12 +51,12 @@
val.sub! /^\s*(.*)\s*$/, '"\1"'
end
- print " CONFIG[\"#{key}\"] = #{val}\n"
+ print " \"#{key}\" => #{val},\n"
end
end
end
elsif /^ac_given_srcdir=(.*)/
- v_fast << " CONFIG[\"srcdir\"] = \"" + File.expand_path($1) + "\"\n"
+ v_fast << " \"srcdir\" => \"" + File.expand_path($1) + "\",\n"
elsif /^ac_given_INSTALL=(.*)/
- v_fast << " CONFIG[\"INSTALL\"] = " + $1 + "\n"
+ v_fast << " \"INSTALL\" => " + $1 + ",\n"
end
# break if /^CEOF/
@@ -67,7 +65,7 @@
if not has_version
VERSION.scan(/(\d+)\.(\d+)\.(\d+)/) {
- print " CONFIG[\"MAJOR\"] = \"" + $1 + "\"\n"
- print " CONFIG[\"MINOR\"] = \"" + $2 + "\"\n"
- print " CONFIG[\"TEENY\"] = \"" + $3 + "\"\n"
+ print " \"MAJOR\" => \"" + $1 + "\",\n"
+ print " \"MINOR\" => \"" + $2 + "\",\n"
+ print " \"TEENY\" => \"" + $3 + "\",\n"
}
end
@@ -75,13 +73,20 @@
print v_fast, v_others
print <<EOS
- CONFIG["compile_dir"] = "#{Dir.pwd}"
- CONFIG.each_value do |val|
- val.gsub!(/\\$\\(([^()]+)\\)/) do |var|
- key = $1
- if CONFIG.key? key
- "\#{CONFIG[\\\"\#{key}\\\"]}"
- else
- var
+ "compile_dir" => "#{Dir.pwd}"
+ }
+
+ class << RBCONFIG = {}
+ def [](key)
+ (val = super).nil? or return val
+ if val = CONFIG[key]
+ self[key] = false # to avoid infinite recusion
+ self[key] = val.gsub(/\\$\\(([^()]+)\\)/) {|var| self[$1] || var}
end
+ end
+ def keys
+ super | CONFIG.keys
+ end
+ def each
+ keys.each {|key| yield key, self[key]} and self # completed or breaked
end
end
--
そうだ 強気に ちょっと インチキに☆彡
中田 "Bugるくらいがちょうどいいかも;-)" 伸悦