From: nobu.nokada@... Date: 2005-04-02T13:05:12+09:00 Subject: Re: Building HEAD is semi-broken for win32 Hi, At Sat, 2 Apr 2005 02:45:11 +0900, Nathaniel Talbott wrote in [ruby-core:04649]: > Recent changes to the win32 build process broke my build. Basically, > the default prefix changed from "" to "/usr", and while the tools were > partially extended to allow the specification of prefix, it appears to > be incomplete. So, two things: first, there is a patch below that I > had to apply to allow me to specify a prefix (I'm not sure it's the > *right* patch, but it works). Second, I'd rather the default prefix > didn't change, since "/usr" doesn't really make any sense for win32, > except under cygwin. Sorry, I forgot to backport setup.mak files, and quirkiness about prefix in 1.8 on win{32,ce}, bcc32. Does this patch work fine? Index: bcc32/Makefile.sub =================================================================== RCS file: /cvs/ruby/src/ruby/bcc32/Makefile.sub,v retrieving revision 1.42.2.13 diff -U2 -p -r1.42.2.13 Makefile.sub --- bcc32/Makefile.sub 30 Mar 2005 14:45:03 -0000 1.42.2.13 +++ bcc32/Makefile.sub 2 Apr 2005 03:02:48 -0000 @@ -293,5 +293,5 @@ s,@LDFLAGS@,,;t t s,@LIBS@,$(LIBS),;t t s,@exec_prefix@,$${prefix},;t t -s,@prefix@,$(prefix),;t t +s,@prefix@,,;t t s,@program_transform_name@,s,,,,;t t s,@bindir@,$${exec_prefix}/bin,;t t Index: bcc32/setup.mak =================================================================== RCS file: /cvs/ruby/src/ruby/bcc32/setup.mak,v retrieving revision 1.6.2.5 diff -U2 -p -r1.6.2.5 setup.mak --- bcc32/setup.mak 16 Nov 2004 08:36:10 -0000 1.6.2.5 +++ bcc32/setup.mak 2 Apr 2005 03:54:15 -0000 @@ -10,5 +10,7 @@ srcdir = $(bcc32dir:/bcc32/=/) srcdir = $(bcc32dir)../ !endif - +!ifndef prefix +prefix = /usr +!endif OS = bccwin32 RT = $(OS) @@ -34,4 +36,9 @@ alpha-$(OS): -prologue- -alpha- -epilogu \#\#\# Makefile for ruby $(OS) \#\#\# srcdir = $(srcdir:\=/) +prefix = $(prefix:\=/) +EXTSTATIC = $(EXTSTATIC) +!if defined(RDOCTARGET) +RDOCTARGET = $(RDOCTARGET) +!endif | @cpp32 -I$(srcdir) -DRUBY_EXTERN="//" -P- -o$(MAKEFILE) > nul &&| @@ -78,5 +85,4 @@ PROCESSOR_LEVEL = $(PROCESSOR_LEVEL) \# RUBY_INSTALL_NAME = ruby \# RUBY_SO_NAME = $$(RT)-$$(RUBY_INSTALL_NAME)$$(MAJOR)$$(MINOR) -\# prefix = /usr \# CFLAGS = -q $$(DEBUGFLAGS) $$(OPTFLAGS) $$(PROCESSOR_FLAG) -w- -wsus -wcpt -wdup -wext -wrng -wrpt -wzdi \# CPPFLAGS = -I. -I$$(srcdir) -I$$(srcdir)missing -DLIBRUBY_SO=\"$$(LIBRUBY_SO)\" @@ -87,5 +93,4 @@ PROCESSOR_LEVEL = $(PROCESSOR_LEVEL) $(INCLUDE) $$(srcdir)bcc32/Makefile.sub | - @if exist config.h del config.h - @if exist config.status del config.status + @$(srcdir:/=\)\win32\rm.bat config.h config.status @echo type "`$(MAKE)'" to make ruby for $(OS). Index: win32/Makefile.sub =================================================================== RCS file: /cvs/ruby/src/ruby/win32/Makefile.sub,v retrieving revision 1.59.2.15 diff -U2 -p -r1.59.2.15 Makefile.sub --- win32/Makefile.sub 30 Mar 2005 14:45:04 -0000 1.59.2.15 +++ win32/Makefile.sub 2 Apr 2005 03:01:36 -0000 @@ -291,5 +291,5 @@ s,@LDFLAGS@,,;t t s,@LIBS@,$(LIBS),;t t s,@exec_prefix@,$${prefix},;t t -s,@prefix@,$(prefix),;t t +s,@prefix@,,;t t s,@program_transform_name@,s,,,,;t t s,@bindir@,$${exec_prefix}/bin,;t t Index: win32/setup.mak =================================================================== RCS file: /cvs/ruby/src/ruby/win32/setup.mak,v retrieving revision 1.13.2.4 diff -U2 -p -r1.13.2.4 setup.mak --- win32/setup.mak 28 Dec 2004 03:28:10 -0000 1.13.2.4 +++ win32/setup.mak 2 Apr 2005 03:57:31 -0000 @@ -10,4 +10,7 @@ srcdir = $(WIN32DIR:/win32=) srcdir = $(WIN32DIR)/.. !endif +!ifndef prefix +prefix = /usr +!endif OS = mswin32 RT = msvcrt @@ -21,4 +24,5 @@ MAKEFILE = Makefile ARCH = PROCESSOR_ARCHITECTURE CPU = PROCESSOR_LEVEL +CPP = cl -nologo -EP all: -prologue- -generic- -epilogue- @@ -33,9 +37,11 @@ alpha-$(OS): -prologue- -alpha- -epilogu ### Makefile for ruby $(OS) ### srcdir = $(srcdir:\=/) +prefix = $(prefix:\=/) +EXTSTATIC = $(EXTSTATIC) !if defined(RDOCTARGET) RDOCTARGET = $(RDOCTARGET) !endif << - @cl -nologo -EP -I$(srcdir) -DRUBY_EXTERN="//" <<"Creating $(MAKEFILE)" >> $(MAKEFILE) + @$(CPP) -I$(srcdir) -DRUBY_EXTERN="//" <<"Creating $(MAKEFILE)" >> $(MAKEFILE) #include "version.h" MAJOR = RUBY_VERSION_MAJOR @@ -77,5 +83,4 @@ $(CPU) = $(PROCESSOR_LEVEL) # RUBY_INSTALL_NAME = ruby # RUBY_SO_NAME = $$(RT)-$$(RUBY_INSTALL_NAME)$$(MAJOR)$$(MINOR) -# prefix = /usr # CFLAGS = -nologo -MD $$(DEBUGFLAGS) $$(OPTFLAGS) $$(PROCESSOR_FLAG) # CPPFLAGS = -I. -I$$(srcdir) -I$$(srcdir)/missing -DLIBRUBY_SO=\"$$(LIBRUBY_SO)\" @@ -88,5 +93,4 @@ $(CPU) = $(PROCESSOR_LEVEL) $(INCLUDE) $$(srcdir)/win32/Makefile.sub << - @if exist config.h del config.h - @if exist config.status del config.status + @$(srcdir:/=\)\win32\rm.bat config.h config.status @echo type `$(MAKE)' to make ruby for $(OS). Index: wince/Makefile.sub =================================================================== RCS file: /cvs/ruby/src/ruby/wince/Makefile.sub,v retrieving revision 1.16.2.11 diff -U2 -p -r1.16.2.11 Makefile.sub --- wince/Makefile.sub 30 Mar 2005 14:45:05 -0000 1.16.2.11 +++ wince/Makefile.sub 2 Apr 2005 03:03:13 -0000 @@ -317,5 +317,5 @@ s,@LDFLAGS@,,;t t s,@LIBS@,$(LIBS),;t t s,@exec_prefix@,$${prefix},;t t -s,@prefix@,$(prefix),;t t +s,@prefix@,,;t t s,@program_transform_name@,s,,,,;t t s,@bindir@,$${exec_prefix}/bin,;t t Index: wince/setup.mak =================================================================== RCS file: /cvs/ruby/src/ruby/wince/setup.mak,v retrieving revision 1.5.2.3 diff -U2 -p -r1.5.2.3 setup.mak --- wince/setup.mak 16 Nov 2004 08:36:11 -0000 1.5.2.3 +++ wince/setup.mak 2 Apr 2005 03:58:48 -0000 @@ -10,4 +10,7 @@ srcdir = $(WIN32DIR:/win32=) srcdir = $(WIN32DIR)/.. !endif +!ifndef prefix +prefix = /usr +!endif OS = mswince RT = msvcrt @@ -48,4 +51,9 @@ armv4i-sig3-wince: -prologue- -armv4i- - ### Makefile for ruby $(OS) ### srcdir = $(srcdir:\=/) +prefix = $(prefix:\=/) +EXTSTATIC = $(EXTSTATIC) +!if defined(RDOCTARGET) +RDOCTARGET = $(RDOCTARGET) +!endif << @$(CPP) -I$(srcdir) -DRUBY_EXTERN="//" <<"Creating $(MAKEFILE)" >> $(MAKEFILE) @@ -217,5 +225,4 @@ RUBY_SO_NAME = $(RUBY_SO_NAME) # RUBY_SO_NAME = $$(RT)-$$(RUBY_INSTALL_NAME)$$(MAJOR)$$(MINOR) !endif -# prefix = /usr # CFLAGS = -nologo $$(DEBUGFLAGS) $$(OPTFLAGS) $$(PROCESSOR_FLAG) CPPFLAGS = -I. -I$$(srcdir) -I$$(srcdir)/missing -I$$(srcdir)/wince \ @@ -231,5 +238,4 @@ CPPFLAGS = -I. -I$$(srcdir) -I$$(srcdir) $(INCLUDE) $$(srcdir)/wince/Makefile.sub << - @if exist config.h del config.h - @if exist config.status del config.status + @$(srcdir:/=\)\win32\rm.bat config.h config.status @echo type `$(MAKE)' to make ruby for $(OS). -- Nobu Nakada