summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--cygwin/GNUmakefile.in27
-rw-r--r--ext/extmk.rb.in5
-rw-r--r--lib/mkmf.rb5
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 <eban@os.rim.or.jp>
+
+ * 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 <eban@os.rim.or.jp>
* 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