From 2d03f7274f84ab5abf8825c8e0c339caa659c27a Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 20 Jan 2009 06:32:36 +0000 Subject: * Makefile.in (miniruby): renames and then removes, to get rid of EPERM on cygwin and mingw. * Makefile.in ($(LIBRUBY_SO)): use wildcard option of objcopy. * configure.in (DLDFLAGS): do not export all symbols. * cygwin/GNUmakefile.in (RUBYDEF): rejects symbols prefixex with Init_. * win32/mkexports.rb (Exports::Mingw): includes all symbols except for prefixed with Init_ as well as mswin32. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- cygwin/GNUmakefile.in | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'cygwin/GNUmakefile.in') diff --git a/cygwin/GNUmakefile.in b/cygwin/GNUmakefile.in index 91a5e73c88..9a0601d264 100644 --- a/cygwin/GNUmakefile.in +++ b/cygwin/GNUmakefile.in @@ -5,7 +5,7 @@ ENABLE_SHARED=@ENABLE_SHARED@ DLLWRAP = @DLLWRAP@ --target=@target_os@ ifeq (@target_os@,cygwin) - DLL_BASE_NAME := $(subst .dll,,$(LIBRUBY_SO)) + DLL_BASE_NAME := $(LIBRUBY_SO:.dll=) else DLL_BASE_NAME := $(RUBY_SO_NAME) DLLWRAP += -mno-cygwin @@ -29,7 +29,7 @@ WPROGRAM = $(RUBYW_INSTALL_NAME)$(EXEEXT) SOLIBS := $(DLL_BASE_NAME).res.@OBJEXT@ $(SOLIBS) EXTOBJS += $(if $(filter-out $(RUBYW_INSTALL_NAME),$(@:$(EXEEXT)=)),$(RUBY_INSTALL_NAME),$(@:$(EXEEXT)=)).res.$(OBJEXT) RCFILES = $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(DLL_BASE_NAME).rc -RUBYDEF = $(RUBY_SO_NAME).def +RUBYDEF = $(DLL_BASE_NAME).def ruby: $(PROGRAM) rubyw: $(WPROGRAM) @@ -63,22 +63,25 @@ GNUmakefile: $(srcdir)/cygwin/GNUmakefile.in ifeq (@target_os@,mingw32) $(OBJS) $(MAINOBJ): win32.h +endif $(LIBRUBY_SO): $(RUBYDEF) $(RUBYDEF): $(LIBRUBY_A) $(PREP) $(RBCONFIG) +ifeq (@target_os@,cygwin) + @NM@ --extern --defined $(LIBRUBY_A) | \ + $(MINIRUBY) -n -e 'BEGIN{puts "VERSION $(MAJOR).$(MINOR)","EXPORTS"}' \ + -e 'puts $$1 if / [CDT] _((?!Init_).*)$$/' > $@ +else $(MINIRUBY) $(srcdir)/win32/mkexports.rb -output=$@ $(LIBRUBY_A) +endif clean-local:: @$(RM) $(RUBYDEF) -endif ifeq (@target_os@,cygwin) -cygwin-$(RUBY_INSTALL_NAME)$(MAJOR)$(MINOR)$(TEENY).dll: $(LIBRUBY_A) - @NM@ --extern --defined $(LIBRUBY_A) | \ - $(MINIRUBY) -ne 'BEGIN{puts "VERSION $(MAJOR).$(MINOR)","EXPORTS"}; puts $$1+"=$(@F)."+$$1 if / [CDT] _(.*)$$/' >rubydll.def - @DLLWRAP@ -s --def=rubydll.def -o $@ - @rm -f rubydll.def +cygwin-$(RUBY_INSTALL_NAME)$(MAJOR)$(MINOR)$(TEENY).dll: $(LIBRUBY_A) $(RUBYDEF) + @DLLWRAP@ -s --def=$(RUBYDEF) -o $@ endif clean-local:: -- cgit v1.2.3