[ruby-dev:26059] Re: bcc32、win32 での install-doc の動作
From:
"H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
Date:
2005-04-14 10:44:59 UTC
List:
ruby-dev #26059
山本です。
コミットしてから気づいたんですが、
DESTDIR => e:/temp のとき
File.join("e:/temp", "/lib") #=> "e:/temp//lib"
となるために Dir[] が働いてませんでした。仕方ないので重複するスラッシュを
削除するようにしました。
# でも、これって File.join の仕様としてはどうなんでしょう。
また、DESTDIR=e: だと相対パスとして扱われてエラーになるので、デフォルトの
DESTDIR を e:/ のようにスラッシュ付きにしました。こうすると e://temp のように
スラッシュが重複してしまうのですが、動いているようなので良しとしました。
cp -r ./.ext/. E:/ruby-cvs/bcc32/temp/lib/ruby/1.9
../ruby/lib/fileutils.rb:479:in `mkdir': No such file or directory (Errno::ENOEN
T)
- E:/ruby-cvs/bcc32/temp/lib/ruby/1.9 from ../ruby/lib/fileutils.rb:479:in `_c
opy_entry'
from ../ruby/lib/fileutils.rb:460:in `copy_entry'
from ../ruby/lib/fileutils.rb:459:in `preserve'
from ../ruby/lib/fileutils.rb:459:in `copy_entry'
from ../ruby/lib/fileutils.rb:385:in `cp_r'
from ../ruby/lib/fileutils.rb:383:in `fu_traverse'
from ../ruby/lib/fileutils.rb:383:in `cp_r'
from ../ruby/lib/fileutils.rb:381:in `fu_each_src_dest'
from ../ruby/lib/fileutils.rb:947:in `fu_each_src_dest0'
from ../ruby/lib/fileutils.rb:947:in `fu_each_src_dest'
from ../ruby/lib/fileutils.rb:381:in `cp_r'
from ../ruby//ext/extmk.rb:365
** error 1 ** deleting do-install-ext
いまひとつ自信が持てないので、コミットは明日にします。
Index: bcc32/Makefile.sub
===================================================================
RCS file: /src/ruby/bcc32/Makefile.sub,v
retrieving revision 1.71
diff -u -w -b -p -r1.71 Makefile.sub
--- bcc32/Makefile.sub 3 Mar 2005 09:44:32 -0000 1.71
+++ bcc32/Makefile.sub 14 Apr 2005 10:00:04 -0000
@@ -428,7 +428,7 @@ $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_
post-install-ext::
$(MINIRUBY) -I$(srcdir)lib -rrbconfig -rfileutils \
- -e 'FileUtils.rm_f(Dir[File.join(Config::CONFIG["archdir"],"**","*.tds")])'
+ -e 'puts(Dir[File.join(ARGV+[Config::CONFIG["archdir"],"**","*.tds"]).gsub(/\/\/+/, "/")])' "$(DESTDIR)"
clean-local::
@$(RM) ext\extinit.c ext\extinit.$(OBJEXT) *.tds *.il? $(RUBY_SO_NAME).lib
Index: bcc32/setup.mak
===================================================================
RCS file: /src/ruby/bcc32/setup.mak,v
retrieving revision 1.13
diff -u -w -b -p -r1.13 setup.mak
--- bcc32/setup.mak 16 Nov 2004 08:37:59 -0000 1.13
+++ bcc32/setup.mak 14 Apr 2005 10:20:12 -0000
@@ -30,17 +30,41 @@ i586-$(OS): -prologue- -i586- -epilogue-
i686-$(OS): -prologue- -i686- -epilogue-
alpha-$(OS): -prologue- -alpha- -epilogue-
--prologue-: nul
+-prologue-: -basic-vars- -prefix- -version-
+
+-basic-vars-: nul
@echo Creating $(MAKEFILE)
@type > $(MAKEFILE) &&|
\#\#\# Makefile for ruby $(OS) \#\#\#
srcdir = $(srcdir:\=/)
-prefix = $(prefix:\=/)
EXTSTATIC = $(EXTSTATIC)
!if defined(RDOCTARGET)
RDOCTARGET = $(RDOCTARGET)
!endif
|
+
+-prefix-: nul
+ @type >prefix.c &&|
+#include <ctype.h>
+#include <stdio.h>
+int main(int argc, char **argv)
+{
+ char *prefix = argv[1];
+ if (isalpha(prefix[0]) && prefix[1] == ':') {
+ printf("!ifndef DESTDIR\n");
+ printf("DESTDIR = %c:/\n", prefix[0]);
+ printf("!endif\n");
+ prefix += 2;
+ }
+ printf("prefix = %s\n", prefix);
+ return 0;
+}
+|
+ @$(CC) prefix.c > nul
+ @.\prefix "$(prefix:\=/)" >> $(MAKEFILE)
+ @del prefix.*
+
+-version-: nul
@cpp32 -I$(srcdir) -P- -DRUBY_EXTERN="//" -o$(MAKEFILE) > nul &&|
\#include "version.h"
MAJOR = RUBY_VERSION_MAJOR
Index: win32/setup.mak
===================================================================
RCS file: /src/ruby/win32/setup.mak,v
retrieving revision 1.22
diff -u -w -b -p -r1.22 setup.mak
--- win32/setup.mak 13 Apr 2005 10:25:41 -0000 1.22
+++ win32/setup.mak 14 Apr 2005 10:20:29 -0000
@@ -32,18 +32,37 @@ i586-$(OS): -prologue- -i586- -epilogue-
i686-$(OS): -prologue- -i686- -epilogue-
alpha-$(OS): -prologue- -alpha- -epilogue-
--prologue-: -basic-vars- -system-vars- -version-
+-prologue-: -basic-vars- -prefix- -system-vars- -version-
-basic-vars-: nul
@type << > $(MAKEFILE)
### Makefile for ruby $(OS) ###
srcdir = $(srcdir:\=/)
-prefix = $(prefix:\=/)
EXTSTATIC = $(EXTSTATIC)
!if defined(RDOCTARGET)
RDOCTARGET = $(RDOCTARGET)
!endif
<<
+
+-prefix-: nul
+ @$(CC) <<prefix.c > nul
+#include <ctype.h>
+#include <stdio.h>
+int main(int argc, char **argv)
+{
+ char *prefix = argv[1];
+ if (isalpha(prefix[0]) && prefix[1] == ':') {
+ printf("!ifndef DESTDIR\n");
+ printf("DESTDIR = %c:/\n", prefix[0]);
+ printf("!endif\n");
+ prefix += 2;
+ }
+ printf("prefix = %s\n", prefix);
+ return 0;
+}
+<<
+ @.\prefix "$(prefix:\=/)" >> $(MAKEFILE)
+ @del prefix.*
-system-vars-: -osname- -runtime-
Index: wince/setup.mak
===================================================================
RCS file: /src/ruby/wince/setup.mak,v
retrieving revision 1.9
diff -u -w -b -p -r1.9 setup.mak
--- wince/setup.mak 2 Apr 2005 13:35:02 -0000 1.9
+++ wince/setup.mak 14 Apr 2005 10:21:02 -0000
@@ -1,5 +1,9 @@
# -*- makefile -*-
+!ifndef RUBY
+RUBY = ruby
+!endif
+
!if "$(srcdir)" != ""
WIN32DIR = $(srcdir)/win32
!elseif "$(WIN32DIR)" == "win32"
@@ -46,16 +50,28 @@ armv4-.net41-wince: -prologue- -armv4- -
armv4t-.net41-wince: -prologue- -armv4t- -.net41- -epilogue-
armv4i-sig3-wince: -prologue- -armv4i- -sig3- -epilogue-
--prologue-: nul
+-prologue-: -basic-vars- -prefix- -version-
+
+-basic-vars-: nul
@type << > $(MAKEFILE)
### Makefile for ruby $(OS) ###
srcdir = $(srcdir:\=/)
-prefix = $(prefix:\=/)
EXTSTATIC = $(EXTSTATIC)
!if defined(RDOCTARGET)
RDOCTARGET = $(RDOCTARGET)
!endif
<<
+
+-prefix-: nul
+ @$(RUBY) -e 'prefix=ARGV[0]' \
+ -e 'if prefix.sub!(/\A\w:/, "")' \
+ -e ' puts "!ifndef DESTDIR"' \
+ -e ' puts "DESTDIR = #{$$&}/"' \
+ -e ' puts "!endif"' \
+ -e 'end' \
+ -e 'puts "prefix = #{prefix}"' "$(prefix:\=/)" >> $(MAKEFILE)
+
+-version-: nul
@$(CPP) -I$(srcdir) -DRUBY_EXTERN="//" <<"Creating $(MAKEFILE)" >> $(MAKEFILE)
#include "version.h"
MAJOR = RUBY_VERSION_MAJOR