summaryrefslogtreecommitdiff
path: root/cygwin/GNUmakefile.in
diff options
context:
space:
mode:
Diffstat (limited to 'cygwin/GNUmakefile.in')
-rw-r--r--cygwin/GNUmakefile.in27
1 files changed, 18 insertions, 9 deletions
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)