diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-01-20 06:32:36 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-01-20 06:32:36 +0000 |
commit | 2d03f7274f84ab5abf8825c8e0c339caa659c27a (patch) | |
tree | 2b6b103bcb45293472970a8d048db8840e42d475 /cygwin | |
parent | e77a0b7b246b4f0fcb751d6897b7c9ba0c277d55 (diff) | |
download | ruby-2d03f7274f84ab5abf8825c8e0c339caa659c27a.tar.gz |
* 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
Diffstat (limited to 'cygwin')
-rw-r--r-- | cygwin/GNUmakefile.in | 19 |
1 files changed, 11 insertions, 8 deletions
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:: |