From a3faa7e2e27c74b8f412de3f4b7d7e7e2c4881b8 Mon Sep 17 00:00:00 2001 From: usa Date: Tue, 10 Sep 2002 08:24:11 +0000 Subject: * win32/Makefile.sub (miniruby): shouldn't link $(EXTOBJS). * win32/Makefile.sub ($(LIBRUBY_A), $(LIBRUBY)): avoid lib.exe's warning. * win32/Makefile.sub: remove unnecessary rules. * win32/configure.bat, win32/setup.mak, win32/README.win32: enable to pass some arguments to configure. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2832 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- win32/Makefile.sub | 43 +++++++++++++++----------------------- win32/README.win32 | 8 +++++--- win32/configure.bat | 45 ++++++++++++++++++++++++++++------------ win32/setup.mak | 59 ++++++++++++++++++++++++++++++++++++++--------------- 4 files changed, 96 insertions(+), 59 deletions(-) (limited to 'win32') diff --git a/win32/Makefile.sub b/win32/Makefile.sub index d48d4bd01a..5a89f8f148 100644 --- a/win32/Makefile.sub +++ b/win32/Makefile.sub @@ -15,9 +15,6 @@ RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME:ruby=rubyw) !if "$(RUBYW_INSTALL_NAME)" == "$(RUBY_INSTALL_NAME)" RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME)w !endif -!ifndef RUBY_SO_NAME -RUBY_SO_NAME = rubymw -!endif !if !defined(icondirs) && defined(ICONDIRS) icondirs=$(ICONDIRS) !endif @@ -36,10 +33,15 @@ CC = cl !if !defined(YACC) YACC = byacc !endif +AR = lib -nologo PURIFY = AUTOCONF = autoconf -!if !defined(PROCESSOR_ARCHITECTURE) || "$(PROCESSOR_ARCHITECTURE)" == "x86" +!if !defined(PROCESSOR_ARCHITECTURE) +PROCESSOR_ARCHITECTURE = x86 +!endif +MACHINE = $(PROCESSOR_ARCHITECTURE) +!if "$(PROCESSOR_ARCHITECTURE)" == "x86" !if !defined(PROCESSOR_LEVEL) PROCESSOR_LEVEL = 5 !endif @@ -62,6 +64,10 @@ OPTFLAGS = -O2b2xg- OS = mswin32 RT = msvcrt +!ifndef RUBY_SO_NAME +RUBY_SO_NAME = $(RT)-$(RUBY_INSTALL_NAME)17 +!endif + !if !defined(prefix) prefix = /usr !endif @@ -155,7 +161,6 @@ OBJS = array.obj \ all: miniruby$(EXEEXT) rbconfig.rb \ $(LIBRUBY) $(MISCLIBS) - set LIB=..\..;$(ORGLIBPATH) @.\miniruby$(EXEEXT) $(srcdir)/ext/extmk.rb ruby: $(PROGRAM) @@ -301,7 +306,7 @@ s,@CC@,$(CC),;t t s,@CPP@,$$(CC) -E,;t t s,@YACC@,$(YACC),;t t s,@RANLIB@,rem,;t t -s,@AR@,lib -nologo,;t t +s,@AR@,$(AR),;t t s,@LN_S@,$(LN_S),;t t s,@SET_MAKE@,$(SET_MAKE),;t t s,@LIBOBJS@, acosh.obj crypt.obj win32.obj isinf.obj isnan.obj,;t t @@ -337,22 +342,15 @@ s,@sitearch@,$(ARCH)-$(RT),;t t s,@sitedir@,$${prefix}/lib/ruby/site_ruby,;t t s,@configure_args@,--with-make-prog=nmake --enable-shared $(configure_args),;t t s,@configure_input@,$$configure_input,;t t + @if not exist $(@D)\nul mkdir $(@D) s,@srcdir@,$(srcdir),;t t s,@top_srcdir@,$(srcdir),;t t << -#ext/extmk.rb: $(srcdir)/ext/extmk.rb.in config.status -# @echo Creating ext/extmk.rb -# @.\miniruby$(EXEEXT) $(srcdir)/ext/configsub.rb \ -# -srcdir=$(srcdir) \ -# -install_name=$(RUBY_INSTALL_NAME) \ -# -so_name=$(RUBY_SO_NAME) \ -# -output=$@ $(srcdir)/ext/extmk.rb.in - -miniruby$(EXEEXT): $(OBJS) $(MAINOBJ) $(EXTOBJS) +miniruby$(EXEEXT): $(OBJS) $(MAINOBJ) dmyext.obj @echo $(EXTOBJS) @echo $(LIBS) - $(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) $(EXTOBJS) $(OBJS) $(LIBS) -Fe$@ + $(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) dmyext.obj $(OBJS) $(LIBS) -Fe$@ $(PROGRAM): $(MAINOBJ) $(LIBRUBY_SO) $*.res $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ) $*.res \ @@ -363,21 +361,15 @@ $(WPROGRAM): $(MAINOBJ) $(WINMAINOBJ) $(LIBRUBY_SO) $*.res -Fe$@ $(LIBRUBYARG) -link -stack:$(STACK) -subsystem:Windows -incremental:no $(LIBRUBY_A): $(OBJS) dmyext.obj - lib -nologo /OUT:$@ $(OBJS) dmyext.obj + $(AR) -out:$@ -machine:$(MACHINE) $(OBJS) dmyext.obj $(LIBRUBY): $(RUBYDEF) - lib -nologo /OUT:$@ /DEF:$(RUBYDEF) + $(AR) -out:$@ -def:$(RUBYDEF) -machine:$(MACHINE) $(LIBRUBY_SO): $(LIBRUBY_A) $(EXTOBJS) $(RUBYDEF) $@.res - set LIB=.\win32;$(ORGLIBPATH) $(CC) $(LDFLAGS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBY_A) $@.res $(LIBS) \ -Fe$@ -link -dll -def:$(RUBYDEF) -!if "$(LIBRUBY_SO)" != "rubymw.dll" -rubymw.dll: $(LIBRUBY) - $(CC) -nologo $(EXTOBJS) $(LIBRUBY) -o $@ -link /DLL /DEF:$(RUBYDEF) -!endif - $(RUBYDEF): $(LIBRUBY_A) miniruby$(EXEEXT) .\miniruby$(EXEEXT) $(srcdir)/win32/mkexports.rb -output=$@ $(LIBRUBY_A) @@ -452,9 +444,6 @@ $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(LIBRUBY_SO).rc: rbconfig.rb -so_name=$(LIBRUBY_SO) \ . $(icondirs) $(srcdir)/win32 -#config.status: $(srcdir)/configure -# $(SHELL) ./config.status --recheck - {$(srcdir)/missing}.c.obj: $(CC) $(CFLAGS) -I. -I$(\lib\ruby\site_ruby\.\ * \man\man1 If Ruby's version is `x.y.z', the ((||)) is `x' and the ((||)) is `y'. - The ((||)) is `(({i386-mswin32}))'. + The default ((||)) is `(({i386-mswin32}))'. == Icons diff --git a/win32/configure.bat b/win32/configure.bat index e35a4c312c..a0398774d7 100755 --- a/win32/configure.bat +++ b/win32/configure.bat @@ -1,13 +1,32 @@ -@echo off -::: Don't set environment variable in batch file other than autoexec.bat -::: to avoid "Out of environment space" problem on Windows 95/98. -::: set TMPMAKE=~tmp~.mak - -echo> ~tmp~.mak #### -echo>> ~tmp~.mak conf = %0 -echo>> ~tmp~.mak $(conf:\=/): nul -echo>> ~tmp~.mak @del ~tmp~.mak -echo>> ~tmp~.mak @-$(MAKE) -l$(MAKEFLAGS) -f $(@D)/setup.mak \ -if not "%1" == "" echo>> ~tmp~.mak srcdir="%1" \ -echo>> ~tmp~.mak WIN32DIR=$(@D) -nmake -alf ~tmp~.mak +@echo off +::: Don't set environment variable in batch file other than autoexec.bat +::: to avoid "Out of environment space" problem on Windows 95/98. +::: set TMPMAKE=~tmp~.mak + +echo> ~tmp~.mak #### +echo>> ~tmp~.mak conf = %0 +echo>> ~tmp~.mak $(conf:\=/): nul +echo>> ~tmp~.mak @del ~tmp~.mak +echo>> ~tmp~.mak @-$(MAKE) -l$(MAKEFLAGS) -f $(@D)/setup.mak \ +:loop +if "%1" == "" goto :end +if "%1" == "--srcdir" goto :srcdir +if "%1" == "srcdir" goto :srcdir +if "%1" == "--target" goto :target +if "%1" == "target" goto :target + echo>> ~tmp~.mak "%1" \ + shift +goto :loop +:srcdir + echo>> ~tmp~.mak "srcdir=%2" \ + shift + shift +goto :loop +:target + echo>> ~tmp~.mak "%2" \ + shift + shift +goto :loop +:end +echo>> ~tmp~.mak WIN32DIR=$(@D) +nmake -alf ~tmp~.mak diff --git a/win32/setup.mak b/win32/setup.mak index d5694c5f6c..88c5822a37 100644 --- a/win32/setup.mak +++ b/win32/setup.mak @@ -9,23 +9,50 @@ srcdir = $(WIN32DIR)/.. !ENDIF OS = mswin32 RT = msvcrt +INCLUDE = !include +MAKEFILE = $(WIN32DIR)/setup.mak -all: ext +!if "$(target)" == "" all: Makefile -all:; @echo type `nmake' to make ruby for mswin32. + @echo type `$(MAKE)' to make ruby for $(OS). +!else +all: $(target) +!endif -Makefile: - @echo ### makefile for ruby $(OS) ###> $@ - @echo srcdir = $(srcdir:\=/)>> $@ - @echo RUBY_INSTALL_NAME = ruby>> $@ - @echo RUBY_SO_NAME = $(RT)-$$(RUBY_INSTALL_NAME)17>> $@ - @echo prefix = /usr>> $@ - @echo CFLAGS = -nologo -MD -DNT=1 $$(DEBUGFLAGS) $$(OPTFLAGS) $$(PROCESSOR_FLAG)>> $@ - @echo CPPFLAGS = -I. -I$$(srcdir) -I$$(srcdir)/missing -DLIBRUBY_SO=\"$$(LIBRUBY_SO)\">> $@ - @echo LDFLAGS = $$(CFLAGS) -Fm>> $@ - @echo XLDFLAGS = >> $@ - @echo RFLAGS = -r>> $@ - @echo EXTLIBS =>> $@ - @echo !INCLUDE $$(srcdir)/win32/Makefile.sub>> $@ +i386-$(OS): + @$(MAKE) -$(MAKEFLAGS) -f $(MAKEFILE) target= \ + PROCESSOR_ARCHITECTURE=x86 PROCESSOR_LEVEL=3 +i486-$(OS): + @$(MAKE) -$(MAKEFLAGS) -f $(MAKEFILE) target= \ + PROCESSOR_ARCHITECTURE=x86 PROCESSOR_LEVEL=4 +i586-$(OS): + @$(MAKE) -$(MAKEFLAGS) -f $(MAKEFILE) target= \ + PROCESSOR_ARCHITECTURE=x86 PROCESSOR_LEVEL=5 +i686-$(OS): + @$(MAKE) -$(MAKEFLAGS) -f $(MAKEFILE) target= \ + PROCESSOR_ARCHITECTURE=x86 PROCESSOR_LEVEL=6 +alpha-$(OS): + @$(MAKE) -$(MAKEFLAGS) -f $(MAKEFILE) target= \ + PROCESSOR_ARCHITECTURE=alpha PROCESSOR_LEVEL= -ext:; @if not exist $@\* mkdir $@ +Makefile: + @echo Creating <<$@ +### Makefile for ruby $(OS) ### +srcdir = $(srcdir:\=/) +!if defined(PROCESSOR_ARCHITECTURE) +PROCESSOR_ARCHITECTURE = $(PROCESSOR_ARCHITECTURE) +!endif +!if defined(PROCESSOR_LEVEL) +PROCESSOR_LEVEL = $(PROCESSOR_LEVEL) +!endif +RUBY_INSTALL_NAME = ruby +RUBY_SO_NAME = $(RT)-$$(RUBY_INSTALL_NAME)17 +prefix = /usr +CFLAGS = -nologo -MD -DNT=1 $$(DEBUGFLAGS) $$(OPTFLAGS) $$(PROCESSOR_FLAG) +CPPFLAGS = -I. -I$$(srcdir) -I$$(srcdir)/missing -DLIBRUBY_SO=\"$$(LIBRUBY_SO)\" +LDFLAGS = $$(CFLAGS) -Fm +XLDFLAGS = +RFLAGS = -r +EXTLIBS = +$(INCLUDE) $$(srcdir)/win32/Makefile.sub +<