[#10226] 組み込み Ruby — Kazuhiro Yoshida <moriq.kazuhiro@...>

もりきゅうです。

17 messages 2000/07/05
[#10230] Re: 組み込み Ruby — matz@... (Yukihiro Matsumoto) 2000/07/05

まつもと ゆきひろです

[#10231] Re: 組み込み Ruby — Kazuhiro Yoshida <moriq.kazuhiro@...> 2000/07/05

もりきゅうです。

[#10237] Re: 組み込み Ruby — matz@... (Yukihiro Matsumoto) 2000/07/06

まつもと ゆきひろです

[#10278] Re: environment variables — WATANABE Hirofumi <eban@...>

わたなべです.

162 messages 2000/07/11
[#10285] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/07/11

なかだです。

[#10306] Re: environment variables — nobu.nakada@... 2000/07/12

なかだです。

[#10355] Re: environment variables — nobu.nakada@... 2000/07/20

なかだです。

[#10359] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/23

小松です。

[#10360] Re: environment variables — nobu.nakada@... 2000/07/23

なかだです。

[#10361] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/23

小松です。

[#10370] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/07/24

なかだです。

[#10374] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/24

小松です。

[#10376] Re: environment variables — nobu.nakada@... 2000/07/24

なかだです。

[#10380] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/25

小松です。

[#10381] Re: environment variables — matz@... (Yukihiro Matsumoto) 2000/07/25

まつもと ゆきひろです

[#10386] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/07/25

なかだです。

[#10397] Re: environment variables — matz@... (Yukihiro Matsumoto) 2000/07/25

まつもと ゆきひろです

[#10399] Re: environment variables — nobu.nakada@... 2000/07/25

なかだです。

[#10407] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/26

小松です。

[#10409] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/26

小松です。

[#10416] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/07/26

なかだです。

[#10421] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/26

小松です。

[#10435] Re: environment variables — nobu.nakada@... 2000/07/27

なかだです。

[#10442] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/28

小松です。

[#10444] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/07/28

なかだです。

[#10446] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/28

小松です。

[#10453] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/07/31

なかだです。

[#10459] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/31

小松です。

[#10464] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/07/31

なかだです。

[#10466] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/31

小松です。

[#10472] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/01

小松です。

[#10474] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/01

なかだです。

[#10475] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/01

小松です。

[#10476] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/01

小松です。

[#10480] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/01

なかだです。

[#10483] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/01

小松です。

[#10485] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/01

なかだです。

[#10489] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/01

小松です。

[#10490] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/01

なかだです。

[#10491] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/01

小松です。

[#10492] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/01

なかだです。

[#10493] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/01

小松です。

[#10494] Re: environment variables — matz@... (Yukihiro Matsumoto) 2000/08/01

まつもと ゆきひろです

[#10495] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/02

なかだです。

[#10506] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/02

小松です。

[#10507] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/02

なかだです。

[#10508] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/02

小松です。

[#10509] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/02

なかだです。

[#10511] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/02

小松です。

[#10512] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/02

小松です。

[#10515] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/03

なかだです。

[#10516] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/03

小松です。

[#10518] Re: environment variables — matz@... (Yukihiro Matsumoto) 2000/08/03

まつもと ゆきひろです

[#10531] Re: environment variables — "Shigeo Kobayashi" <shigeo@...> 2000/08/03

小林です。

[#10547] Re: environment variables — Satoshi Nojo <nojo@...> 2000/08/03

能條といいます.

[#10549] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/04

なかだです。

[#10555] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/04

なかだです。

[#10558] Re: environment variables — matz@... (Yukihiro Matsumoto) 2000/08/04

まつもと ゆきひろです

[#10364] Re: environment variables — matz@... (Yukihiro Matsumoto) 2000/07/24

まつもと ゆきひろです

[#10365] Re: environment variables — WATANABE Hirofumi <eban@...> 2000/07/24

わたなべです.

[#10368] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/07/24

なかだです。

[#10369] Re: environment variables — WATANABE Hirofumi <eban@...> 2000/07/24

わたなべです.

[#10371] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/07/24

なかだです。

[#10372] Re: environment variables — WATANABE Hirofumi <eban@...> 2000/07/24

わたなべです.

[#10384] ruby 1.4.6 preview — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

24 messages 2000/07/25

[ruby-dev:10306] Re: environment variables

From: nobu.nakada@...
Date: 2000-07-12 22:35:09 UTC
List: ruby-dev #10306
なかだです。

At Tue, 11 Jul 2000 15:28:41 +0900,
Nobuyoshi-Nakada wrote:
> > :  それと、Win95/98 だとあまり環境変数を作られてもうれしくない、どっちか
> > :というとバイナリのインストールされているディレクトリからの相対で見てくれ
> > :た方がいい、ということもあるようです。
> > 
> > それはわからないでもないけど, これは rbconfig.rb にもからん
> > でくるのでたぶんもうちょっと考える必要があります.
> > 現在 rbconfig.rb で得られる Config::CONFIG['sitedir'] 等の値
> > は静的に make 時に決まってしまうためこれをなんとかしないと,
> > あとから拡張ライブラリをインストールするときに困ると思います.
> 
>   うーん、どっちかというとこっちの方が問題かもしれません。スクリプトレベ
> ルでインタプリタ自身のパス名って知る方法ないですよね。

  これは rbconfig.rb からの相対にすることでなんとかできそうな気
がしてきました。

  いっぺんパッチを整理してみます。

  * Windows と DJGPP 環境で、 $(prefix) 以下の make 時に決まる
    ディレクトリを実行ファイルからの相対パスで見るようにする

  * このとき RUBYLIB_PREFIX は見ない

  * prefix は空にしておく(cygwin は configure に --prefix= を付
    ける)

  * prefix が空のとき、Config["prefix"] を rbconfig.rb のパスか
    ら実行時に決定する

というところです。


Index: mkconfig.rb
===================================================================
RCS file: /home/cvs/ruby/mkconfig.rb,v
retrieving revision 1.4
diff -u -2 -p -r1.4 mkconfig.rb
--- mkconfig.rb	2000/06/19 03:37:52	1.4
+++ mkconfig.rb	2000/07/12 22:21:03
@@ -73,7 +73,20 @@ if not has_version
 end
 
+if prefix = v_fast.grep(/"prefix"/)[0] and /""$/ =~ prefix
+  prefix = Regexp.quote(RUBY_VERSION.sub(/\.\d+$/,'')) + '/' + Regexp.quote(RUBY_PLATFORM)
+  print [
+  TOPDIR = __FILE__.sub(%r'/lib/ruby/#{prefix}/[^/]*\\Z', '')
+]
+else
+  prefix = nil
+end
+
 v_fast.collect! do |x|
   if /"prefix"/ === x
-    x.sub(/= /, '= DESTDIR + ')
+    if prefix
+      x.sub(/= (.*)/, '= (prefix = DESTDIR + \1).empty? ? TOPDIR : prefix')
+    else
+      x.sub(/= /, '= DESTDIR + ')
+    end
   else
     x
Index: ruby.c
===================================================================
RCS file: /home/cvs/ruby/ruby.c,v
retrieving revision 1.25
diff -u -2 -p -w -r1.25 ruby.c
--- ruby.c	2000/07/07 03:20:52	1.25
+++ ruby.c	2000/07/12 21:57:46
@@ -889,11 +889,11 @@ ruby_libpath()
 #elif defined(DJGPP)
     extern char *__dos_argv0;
-    strcpy(libpath, __dos_argv0);
+    strncpy(libpath, __dos_argv0, FILENAME_MAX);
 #endif
     p = strrchr(libpath, '\\');
     if (p) {
 	*p = 0;
-	if (!strcasecmp(p-4, "\\bin"))
-	    p -= 4;
+        if (p-libpath > 3 && !strcasecmp(p-4, "\\bin"))
+	    p[-4] = 0;
     } else {
 	strcpy(libpath, ".");
@@ -901,5 +901,4 @@ ruby_libpath()
     }
 
-    strcpy(p, "\\lib");
 #if defined(__CYGWIN32__)
     p = (char *)malloc(strlen(libpath)+10);
@@ -910,5 +909,8 @@ ruby_libpath()
     free(p);
 #else
-    for (p = libpath; *p; p++)
+#ifndef CharNext                /* defined as CharNext[AW] on Windows. */
+#define CharNext(p) ((p) + 1)
+#endif
+    for (p = libpath; *p; p = CharNext(p))
 	if (*p == '\\')
 	    *p = '/';
@@ -921,4 +923,14 @@ void
 ruby_prog_init()
 {
+#if defined(_WIN32) || defined(DJGPP)
+    char *libpath = ruby_libpath();
+    int prefix_len = strlen(libpath);
+
+#define ADDPATH(p) (strncpy(libpath + prefix_len, (p), FILENAME_MAX - prefix_len), \
+                    rb_ary_unshift(rb_load_path, rb_str_new2(libpath)))
+#else
+#define ADDPATH(p) addpath(p)
+#endif
+
     init_ids();
 
@@ -932,19 +944,16 @@ ruby_prog_init()
     rb_define_readonly_variable("$-l", &do_line);
 
-    addpath(RUBY_LIB);
-#if defined(_WIN32) || defined(DJGPP)
-    addpath(ruby_libpath());
-#endif
+    ADDPATH(RUBY_LIB);
 
-    addpath(RUBY_ARCHLIB);
+    ADDPATH(RUBY_ARCHLIB);
 #ifdef RUBY_THIN_ARCHLIB
-    addpath(RUBY_THIN_ARCHLIB);
+    ADDPATH(RUBY_THIN_ARCHLIB);
 #endif
 
-    addpath(RUBY_SITE_LIB);
-    addpath(RUBY_SITE_LIB2);
-    addpath(RUBY_SITE_ARCHLIB);
+    ADDPATH(RUBY_SITE_LIB);
+    ADDPATH(RUBY_SITE_LIB2);
+    ADDPATH(RUBY_SITE_ARCHLIB);
 #ifdef RUBY_SITE_THIN_ARCHLIB
-    addpath(RUBY_SITE_THIN_ARCHLIB);
+    ADDPATH(RUBY_SITE_THIN_ARCHLIB);
 #endif
 
Index: win32/config.h
===================================================================
RCS file: /home/cvs/ruby/win32/config.h,v
retrieving revision 1.7
diff -u -2 -p -w -r1.7 config.h
--- win32/config.h	2000/05/16 15:50:48	1.7
+++ win32/config.h	2000/07/12 22:05:07
@@ -41,10 +41,10 @@
 #define DLEXT ".so"
 #define DLEXT2 ".dll"
-#define RUBY_LIB "/usr/local/lib/ruby/1.5"
-#define RUBY_SITE_LIB "/usr/local/lib/ruby/site_ruby"
-#define RUBY_SITE_LIB2 "/usr/local/lib/ruby/site_ruby/1.5"
+#define RUBY_LIB "/lib/ruby/1.5"
+#define RUBY_SITE_LIB "/lib/ruby/site_ruby"
+#define RUBY_SITE_LIB2 "/lib/ruby/site_ruby/1.5"
 #define RUBY_PLATFORM "i386-mswin32"
-#define RUBY_ARCHLIB "/usr/local/lib/ruby/1.5/i386-mswin32"
-#define RUBY_SITE_ARCHLIB "/usr/local/lib/ruby/site_ruby/1.5/i386-mswin32"
+#define RUBY_ARCHLIB "/lib/ruby/1.5/i386-mswin32"
+#define RUBY_SITE_ARCHLIB "/lib/ruby/site_ruby/1.5/i386-mswin32"
 
 #define SIZEOF_INT   4
Index: win32/config.status
===================================================================
RCS file: /home/cvs/ruby/win32/config.status,v
retrieving revision 1.12
diff -u -2 -p -w -r1.12 config.status
--- win32/config.status	2000/05/31 03:10:07	1.12
+++ win32/config.status	2000/07/12 22:05:07
@@ -10,5 +10,5 @@ s%@LDFLAGS@%-nologo -Ox%g
 s%@LIBS@%user32.lib advapi32.lib wsock32.lib%g
 s%@exec_prefix@%${prefix}%g
-s%@prefix@%/usr/local%g
+s%@prefix@%%g
 s%@program_transform_name@%s,x,x,%g
 s%@bindir@%${exec_prefix}/bin%g


-- 
そうだ 強気に ちょっと インチキに☆彡
    中田 "Bugるくらいがちょうどいいかも;-)" 伸悦

In This Thread