From a5c0e5a382d577b900c9a49fa09547dbf602e16c Mon Sep 17 00:00:00 2001 From: usa Date: Sat, 9 Jun 2001 07:41:44 +0000 Subject: * ext/extmk.rb.in: Use -F and -T for mswin32 because cl.exe doesn't support -o officially and cl.exe considers that *.cc and *.cxx are OBJs. * lib/mkmf.rb: ditto. * win32/Makefile.sub: Use del instead of rm. All these changes are derived from Nobuyoshi Nakada's patch. Thanks. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1519 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- win32/Makefile.sub | 84 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 62 insertions(+), 22 deletions(-) (limited to 'win32/Makefile.sub') diff --git a/win32/Makefile.sub b/win32/Makefile.sub index 42100a5d92..44f7840e72 100644 --- a/win32/Makefile.sub +++ b/win32/Makefile.sub @@ -18,6 +18,13 @@ RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME)w !ifndef RUBY_SO_NAME RUBY_SO_NAME = rubymw !endif +!if !defined(icondirs) && defined(ICONDIRS) +icondirs=$(ICONDIRS) +!endif +!if defined(icondirs) +icondirs=$(icondirs:\=/) +iconinc=-I$(icondirs) +!endif ############### VPATH = $(srcdir):$(srcdir)/missing @@ -31,7 +38,7 @@ AUTOCONF = autoconf prefix = /usr CFLAGS = -nologo -DNT=1 -Zi -MD -O2b2xg- -G5 -CPPFLAGS = -I$(srcdir) -I$(srcdir)/missing +CPPFLAGS = -I. -I$(srcdir) -I$(srcdir)/missing -DLIBRUBY_SO=\"$(LIBRUBY_SO)\" LDFLAGS = $(CFLAGS) -Fm XLDFLAGS = #EXTLIBS = @@ -102,7 +109,7 @@ OBJS = array.obj \ all: miniruby$(EXEEXT) rbconfig.rb ext/extmk.rb \ $(LIBRUBY) $(MISCLIBS) - set LIB=../..;$(ORGLIBPATH) + set LIB=..\..;$(ORGLIBPATH) @.\miniruby$(EXEEXT) -Cext extmk.rb ruby: $(PROGRAM) @@ -110,6 +117,9 @@ rubyw: $(WPROGRAM) lib: $(LIBRUBY) dll: $(LIBRUBY_SO) +config.h config.status: $(srcdir)/win32/$$@.in + @type $(srcdir:/=\)\win32\$@.in > $@ + ext/extmk.rb: $(srcdir)/ext/extmk.rb.in config.status @echo Creating ext/extmk.rb @.\miniruby$(EXEEXT) $(srcdir)/ext/configsub.rb \ @@ -121,15 +131,15 @@ ext/extmk.rb: $(srcdir)/ext/extmk.rb.in config.status miniruby$(EXEEXT): $(OBJS) $(MAINOBJ) $(EXTOBJS) @echo $(EXTOBJS) @echo $(LIBS) - $(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) $(EXTOBJS) $(OBJS) $(LIBS) -o $@ + $(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) $(EXTOBJS) $(OBJS) $(LIBS) -Fe$@ $(PROGRAM): $(MAINOBJ) $(LIBRUBY_SO) $*.res $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ) $*.res \ - -o $@ $(LIBRUBYARG) -link /STACK:$(STACK) + -Fe$@ $(LIBRUBYARG) -link -stack:$(STACK) -incremental:no $(WPROGRAM): $(MAINOBJ) $(WINMAINOBJ) $(LIBRUBY_SO) $*.res $(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) $(WINMAINOBJ) $*.res \ - -o $@ $(LIBRUBYARG) -link /STACK:$(STACK) /SUBSYSTEM:Windows + -Fe$@ $(LIBRUBYARG) -link -stack:$(STACK) -subsystem:Windows -incremental:no $(LIBRUBY_A): $(OBJS) dmyext.obj lib -nologo /OUT:$@ $(OBJS) dmyext.obj @@ -138,9 +148,9 @@ $(LIBRUBY): $(RUBYDEF) lib -nologo /OUT:$@ /DEF:$(RUBYDEF) $(LIBRUBY_SO): $(LIBRUBY_A) $(EXTOBJS) $(RUBYDEF) $@.res - set LIB=./win32;$(ORGLIBPATH) + set LIB=.\win32;$(ORGLIBPATH) $(CC) $(LDFLAGS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBY_A) $@.res $(LIBS) \ - -o $@ -link /DLL /DEF:$(RUBYDEF) + -Fe$@ -link -dll -def:$(RUBYDEF) !if "$(LIBRUBY_SO)" != "rubymw.dll" rubymw.dll: $(LIBRUBY) @@ -153,21 +163,50 @@ $(RUBYDEF): $(LIBRUBY_A) miniruby$(EXEEXT) install: rbconfig.rb .\miniruby.exe $(srcdir)/instruby.rb $(DESTDIR) -clean:; @rm -f $(OBJS) $(LIBRUBY_A) $(MAINOBJ) rbconfig.rb - @rm -f ext/extinit.c ext/extinit.obj ext/vc*.pdb *.obj *.res +clean: + @if exist $(LIBRUBY_A) del $(LIBRUBY_A) + @if exist $(MAINOBJ) del $(MAINOBJ) + @if exist rbconfig.rb del rbconfig.rb + @if exist ext\extinit.c del ext\extinit.c + @if exist ext\extinit.obj del ext\extinit.obj + @if exist ext\vc*.pdb del ext\vc*.pdb + @if exist *.obj del *.obj + @if exist *.res del *.res @-.\miniruby$(EXEEXT) -Cext extmk.rb clean distclean: clean - @rm -f Makefile ext/extmk.rb config.h - @rm -f ext/config.cache config.cache config.log config.status - @rm -f *~ core *.core gmon.out y.tab.c y.output ruby.imp - @rm -f *.map *.pdb *.ilk *.exp $(RUBYDEF) - @rm -f $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(LIBRUBY_SO).rc - @rm -f $(PROGRAM) $(WPROGRAM) $(LIBRUBY_SO) $(LIBRUBY) miniruby$(EXEEXT) + @if exist Makefile del Makefile + @if exist ext\extmk.rb del ext\extmk.rb + @if exist config.h del config.h + @if exist ext\config.cache del ext\config.cache + @if exist config.cache del config.cache + @if exist config.log del config.log + @if exist config.status del config.status + @if exist *~ del *~ + @if exist *.bak del *.bak + @if exist *.stackdump del *.stackdump + @if exist *.core del *.core + @if exist gmon.out del gmon.out + @if exist y.tab.c del y.tab.c + @if exist y.output del y.output + @if exist *.map del *.map + @if exist *.pdb del *.pdb + @if exist *.ilk del *.ilk + @if exist *.exp del *.exp + @if exist $(RUBYDEF) del $(RUBYDEF) + @if exist $(RUBY_INSTALL_NAME).rc del $(RUBY_INSTALL_NAME).rc + @if exist $(RUBYW_INSTALL_NAME).rc del $(RUBYW_INSTALL_NAME).rc + @if exist $(LIBRUBY_SO).rc del $(LIBRUBY_SO).rc + @if exist $(PROGRAM) del $(PROGRAM) + @if exist $(WPROGRAM) del $(WPROGRAM) + @if exist $(LIBRUBY_SO) del $(LIBRUBY_SO) + @if exist $(LIBRUBY) del $(LIBRUBY) + @if exist ext\nul if not exist ext\* rmdir ext + @if exist miniruby$(EXEEXT) del miniruby$(EXEEXT) realclean: distclean - @rm -f parse.c - @rm -f lex.c + @if exist parse.c del parse.c + @if exist lex.c del lex.c test: miniruby$(EXEEXT) @.\miniruby$(EXEEXT) $(srcdir)/rubytest.rb @@ -188,16 +227,16 @@ $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(LIBRUBY_SO).rc: rbconfig.rb # $(SHELL) ./config.status --recheck {$(srcdir)/missing}.c.obj: - $(CC) $(CFLAGS) -I. -I$(