* {bcc32,win32,wince}/setup.mak (-prefix-): separate drive letter as
  DESTDIR if given in prefix.


Index: bcc32/setup.mak
===================================================================
RCS file: /cvs/ruby/src/ruby/bcc32/setup.mak,v
retrieving revision 1.14
diff -U2 -p -r1.14 setup.mak
--- bcc32/setup.mak	19 Apr 2005 22:27:41 -0000	1.14
+++ bcc32/setup.mak	20 Apr 2005 00:42:06 -0000
@@ -31,5 +31,7 @@ i686-$(OS): -prologue- -i686- -epilogue-
 alpha-$(OS): -prologue- -alpha- -epilogue-
 
--prologue-: nul
+-prologue-: -basic-vars- -prefix- -system-vars- -version-
+
+-basic-vars-: nul
 	@echo Creating $(MAKEFILE)
 	@type > $(MAKEFILE) &&|
@@ -55,4 +57,34 @@ $(BANG)endif
 !endif
 |
+
+-prefix-: nul
+	@type > prefix.c &&|
+\#include <ctype.h>
+\#include <stdio.h>
+
+\#define vardef(name, form) "!ifndef " \#name "\n" \#name " = " form "\n!endif\n"
+
+int main(int argc, char **argv)
+{
+    char *prefix = argv[1];
+    if (isalpha(prefix[0]) && prefix[1] == ':') {
+	printf(vardef(DESTDIR, "%c:"), prefix[0]);
+	prefix += 2;
+    }
+    printf(vardef(prefix, "%s"), prefix);
+    return 0;
+}
+|
+	@$(CC) prefix.c > nul
+	@.\prefix "$(prefix:\=/)" >> $(MAKEFILE)
+	@del prefix.*
+
+-system-vars-: -osname-
+
+-osname-: nul
+	@$(APPEND) OS = $(OS)
+	@$(APPEND) RT = $(RT)
+
+-version-: nul
 	@cpp32 -I$(srcdir) -P- -DRUBY_EXTERN="//" -o$(MAKEFILE) > nul &&|
 \#include "version.h"
@@ -110,6 +142,4 @@ $(BANG)endif
 	@type >> $(MAKEFILE) &&|
 
-\# OS = $(OS)
-\# RT = $(RT)
 \# RUBY_INSTALL_NAME = ruby
 \# RUBY_SO_NAME = $$(RT)-$$(RUBY_INSTALL_NAME)$$(MAJOR)$$(MINOR)
Index: win32/setup.mak
===================================================================
RCS file: /cvs/ruby/src/ruby/win32/setup.mak,v
retrieving revision 1.24
diff -U2 -p -r1.24 setup.mak
--- win32/setup.mak	27 Apr 2005 14:42:37 -0000	1.24
+++ win32/setup.mak	28 Apr 2005 04:08:43 -0000
@@ -33,5 +33,5 @@ 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
@@ -39,5 +39,4 @@ alpha-$(OS): -prologue- -alpha- -epilogu
 ### Makefile for ruby $(OS) ###
 srcdir = $(srcdir:\=/)
-prefix = $(prefix:\=/)
 EXTSTATIC = $(EXTSTATIC)
 !if defined(RDOCTARGET)
@@ -49,4 +48,22 @@ EXTOUT = $(EXTOUT)
 <<
 
+-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("DESTDIR = %c:\n", tolower(prefix[0]));
+	prefix += 2;
+    }
+    printf("prefix = %s\n", prefix);
+    return 0;
+}
+<<
+	@.\prefix "$(prefix:\=/)" >> $(MAKEFILE)
+	@del prefix.*
+
 -system-vars-: -osname- -runtime-
 
Index: wince/setup.mak
===================================================================
RCS file: /cvs/ruby/src/ruby/wince/setup.mak,v
retrieving revision 1.10
diff -U2 -p -r1.10 setup.mak
--- wince/setup.mak	19 Apr 2005 22:27:42 -0000	1.10
+++ wince/setup.mak	20 Apr 2005 00:41:27 -0000
@@ -1,4 +1,8 @@
 # -*- makefile -*-
 
+!ifndef RUBY
+RUBY = ruby
+!endif
+
 !if "$(srcdir)" != ""
 WIN32DIR = $(srcdir)/win32
@@ -47,9 +51,10 @@ armv4t-.net41-wince: -prologue- -armv4t-
 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)
@@ -60,4 +65,11 @@ EXTOUT = $(EXTOUT)
 !endif
 <<
+
+-prefix-: nul
+	@$(RUBY) -e 'prefix=ARGV[0]' \
+		 -e 'puts "DESTDIR = #{$$&}" if prefix.sub!(/\A\w:/, "")' \
+		 -e 'puts "prefix = #{prefix}"' "$(prefix:\=/)" >> $(MAKEFILE)
+
+-version-: nul
 	@$(CPP) -I$(srcdir) -DRUBY_EXTERN="//" <<"Creating $(MAKEFILE)" >> $(MAKEFILE)
 #include "version.h"
