summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreban <eban@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-06-11 10:26:13 +0000
committereban <eban@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-06-11 10:26:13 +0000
commit7f80a1800f7b13e63227fb6202bee55a81cd506b (patch)
tree496113b37257388826e3f424239daa1271da64c0
parent65caf01223b8bdd538d52d3075573a9a2f006741 (diff)
* configure.in (LIBRUBY): rename to lib$(LIBRUBY_SO).a on Cygwin/MinGW.
* configure.in, cygwin/GNUmakefile: use dllwrap when --disable-shared is specified. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog7
-rw-r--r--configure.in6
-rw-r--r--cygwin/GNUmakefile.in21
3 files changed, 24 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index fb7819ceb3..e2496421ab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Tue Jun 11 19:20:34 2002 WATANABE Hirofumi <eban@ruby-lang.org>
+
+ * configure.in (LIBRUBY): rename to lib$(LIBRUBY_SO).a on Cygwin/MinGW.
+
+ * configure.in, cygwin/GNUmakefile: use dllwrap when --disable-shared
+ is specified.
+
Tue Jun 11 13:18:47 2002 Shugo Maeda <shugo@ruby-lang.org>
* lib/net/ftp.rb (noop): new method.
diff --git a/configure.in b/configure.in
index dfe138e7f6..08739d5926 100644
--- a/configure.in
+++ b/configure.in
@@ -104,6 +104,7 @@ case "$target_os" in
cygwin*|mingw*)
AC_CHECK_TOOL(NM, nm)
AC_CHECK_TOOL(WINDRES, windres)
+ AC_CHECK_TOOL(DLLWRAP, dllwrap)
target_cpu=`echo $target_cpu | sed s/i.86/i386/`
: ${enable_shared=yes}
;;
@@ -1044,13 +1045,14 @@ case "$target_os" in
if test x"$enable_shared" = xyes; then
LIBRUBY_SO='$(RUBY_SO_NAME)'.dll
LIBRUBY_DLDFLAGS='-Wl,--out-implib=$(LIBRUBY) $(RUBYDEF)'
+ LIBRUBY='lib$(LIBRUBY_SO).a'
else
LIBRUBY_SO=dummy
- LIBRUBY_DLDFLAGS='-Wl,--output-exp=$(RUBY_INSTALL_NAME).exp,--out-implib=$(LIBRUBY) $(RUBYDEF)'
+ LIBRUBY_DLDFLAGS=''
+ LIBRUBY='lib$(RUBY_SO_NAME).a'
fi
LIBRUBY_ALIASES=''
LIBRUBY_A='lib$(RUBY_INSTALL_NAME)s.a'
- LIBRUBY='lib$(RUBY_SO_NAME).a'
LIBRUBYARG='-L. -l$(RUBY_SO_NAME)'
FIRSTMAKEFILE=GNUmakefile:cygwin/GNUmakefile.in
SOLIBS='$(LIBS)'
diff --git a/cygwin/GNUmakefile.in b/cygwin/GNUmakefile.in
index 4fc628f4da..3fd5b5ad53 100644
--- a/cygwin/GNUmakefile.in
+++ b/cygwin/GNUmakefile.in
@@ -2,24 +2,25 @@ include Makefile
ENABLE_SHARED=@ENABLE_SHARED@
-ifneq (,$(findstring no, $(ENABLE_SHARED)))
- EXTOBJS = $(RUBY_INSTALL_NAME).exp
- LIBRUBYARG = $(LIBRUBY_A)
-else
+ifeq ($(ENABLE_SHARED),yes)
CPPFLAGS += -DLIBRUBY_SO=\"$(LIBRUBY_SO)\"
+else
+ RUBY_EXP = $(RUBY_INSTALL_NAME).exp
+ EXTOBJS = $(RUBY_EXP)
+ LIBRUBYARG = $(LIBRUBY_A)
endif
-ifneq (,$(findstring ruby, $(RUBY_INSTALL_NAME)))
- RUBYW_INSTALL_NAME = $(subst ruby,rubyw,$(RUBY_INSTALL_NAME))
-else
+ifeq ($(RUBY_INSTALL_NAME),ruby)
RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME)w
+else
+ RUBYW_INSTALL_NAME = $(subst ruby,rubyw,$(RUBY_INSTALL_NAME))
endif
WPROGRAM = $(RUBYW_INSTALL_NAME)$(EXEEXT)
RUBYDEF = $(RUBY_INSTALL_NAME).def
SOLIBS := $(LIBRUBY_SO).res.@OBJEXT@ $(SOLIBS)
EXTOBJS += $(@:$(EXEEXT)=.res.@OBJEXT@)
-$(LIBRUBY_SO): $(RUBYDEF) $(LIBRUBY_SO).res.@OBJEXT@
+$(LIBRUBY_SO): $(RUBYDEF) $(LIBRUBY_SO).res.@OBJEXT@ $(RUBY_EXP)
$(LIBRUBY): $(LIBRUBY_SO)
%.res.@OBJEXT@: %.rc
@@ -41,3 +42,7 @@ $(RUBYDEF): $(LIBRUBY_A)
echo EXPORTS > $(RUBYDEF)
@NM@ --extern-only --defined-only $(LIBRUBY_A) | \
@MINIRUBY@ -ne 'puts $$1 if / [CDT] _(.*)$$/' >> $(RUBYDEF)
+$(RUBY_EXP): $(RUBYDEF)
+ @DLLWRAP@ --output-exp=$(RUBY_EXP) --output-lib=$(LIBRUBY) \
+ --def=$(RUBYDEF) $(LIBRUBY_A) $(LIBS) -o $(PROGRAM)
+ rm $(PROGRAM)