From a26972d26f38e6c023a955a1073c2801cbf6357b Mon Sep 17 00:00:00 2001 From: eban Date: Wed, 5 Jul 2000 14:12:27 +0000 Subject: [PATCH] eban git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@814 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 ++++++++ cygwin/GNUmakefile.in | 27 ++++++++++++++++++--------- ext/extmk.rb.in | 5 +++-- lib/mkmf.rb | 5 +++-- 4 files changed, 32 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index f8ea0a65a7..6876cb92de 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Wed Jul 5 22:27:56 2000 WATANABE Hirofumi + + * cygwin/GNUmakefile: use ruby.def to make rubycw.dll. + + * ext/extmk.rb.in: create target.def. + + * lib/mkmf.rb: ditto. + Wed Jul 5 01:02:53 2000 WATANABE Hirofumi * ext/extmk.rb.in: join ' ' -> join(' '). diff --git a/cygwin/GNUmakefile.in b/cygwin/GNUmakefile.in index 7994e22fde..e1b1f7c6e6 100644 --- a/cygwin/GNUmakefile.in +++ b/cygwin/GNUmakefile.in @@ -5,22 +5,31 @@ ENABLE_SHARED=@ENABLE_SHARED@ ifneq (,$(findstring no, $(ENABLE_SHARED))) DLL = dummy.exe - DLLNAME = ruby.exe - RUBYEXP = --output-exp=ruby.exp - MAINOBJ := ruby.exp $(MAINOBJ) + DLLNAME = $(RUBY_INSTALL_NAME)$(EXEEXT) + RUBYEXP = --output-exp=$(RUBY_INSTALL_NAME).exp + MAINOBJ := $(RUBY_INSTALL_NAME).exp $(MAINOBJ) LIBRUBYARG := lib$(RUBY_INSTALL_NAME)s.a else ifneq (,$(findstring mingw, $(ARCH))) - DLL = rubymg.dll - DLLNAME = rubymg.dll + DLL = $(RUBY_INSTALL_NAME)mg.dll + DLLNAME = $(RUBY_INSTALL_NAME)mg.dll else - DLL = rubycw.dll - DLLNAME = rubycw.dll + DLL = $(RUBY_INSTALL_NAME)cw.dll + DLLNAME = $(RUBY_INSTALL_NAME)cw.dll endif RUBYEXP = endif +RUBYDEF = $(RUBY_INSTALL_NAME).def + miniruby$(EXEEXT): $(DLL) -$(DLL): $(OBJS) dmyext.o - $(LDSHARED) $(DLDFLAGS) -o $(DLL) --output-lib=$(LIBRUBY_SO) --dllname=$(DLLNAME) --add-stdcall-alias $(RUBYEXP) $(OBJS) dmyext.o $(LIBS) +$(DLL): $(OBJS) dmyext.o $(RUBYDEF) + $(LDSHARED) $(DLDFLAGS) -o $(DLL) --output-lib=$(LIBRUBY_SO) \ + --dllname=$(DLLNAME) --add-stdcall-alias --def=$(RUBYDEF) \ + $(RUBYEXP) $(OBJS) dmyext.o $(LIBS) + +$(RUBYDEF): $(OBJS) dmyext.o + echo EXPORTS > $(RUBYDEF) + @NM@ --extern-only --defined-only $(OBJS) dmyext.o | \ + sed -n '/^........ [CDT] _\(.*\)$$/s//\1/p' >> $(RUBYDEF) diff --git a/ext/extmk.rb.in b/ext/extmk.rb.in index b1eab87a03..6efcf45986 100644 --- a/ext/extmk.rb.in +++ b/ext/extmk.rb.in @@ -351,9 +351,10 @@ def create_makefile(target) defflag = '' if RUBY_PLATFORM =~ /cygwin|mingw/ and not $static - if File.exist? target + ".def" - defflag = "--def=" + target + ".def" + open(target + '.def', 'wb') do |f| + f.print "EXPORTS\n", "Init_", target, "\n" end + defflag = "--def=" + target + ".def" end $srcdir = $top_srcdir + "/ext/" + $mdir diff --git a/lib/mkmf.rb b/lib/mkmf.rb index 38b93f5b65..c042561e13 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -352,9 +352,10 @@ def create_makefile(target) defflag = '' if RUBY_PLATFORM =~ /cygwin|mingw/ - if File.exist? target + ".def" - defflag = "--def=" + target + ".def" + open(target + '.def', 'wb') do |f| + f.print "EXPORTS\n", "Init_", target, "\n" end + defflag = "--def=" + target + ".def" end unless $objs then