From 58396030b3fa36ee82effbd46682d1991521523f Mon Sep 17 00:00:00 2001 From: usa Date: Thu, 8 Nov 2012 05:39:34 +0000 Subject: merge revision(s) 36815,36816,36818,37414,37426,37427: [Backport #7217] Thu Nov 8 14:16:53 2012 Nobuyoshi Nakada * lib/mkmf.rb (MakeMakefile#timestamp_file): use .-. instead of !, a special character of NMAKE and BSD make. [Bug #7265] Thu Nov 8 14:16:53 2012 Nobuyoshi Nakada * lib/mkmf.rb (MakeMakefile#timestamp_file): use ! instead of %, a GNU make special character. Thu Nov 8 14:16:53 2012 Nobuyoshi Nakada * lib/mkmf.rb (create_makefile): use timestamp for destination directories to make them before making or copying files there. [ruby-dev:46067] [Bug #6904] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@37553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 16 ++++++++++++++++ lib/mkmf.rb | 30 +++++++++++++++++++++--------- version.h | 2 +- 3 files changed, 38 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 625af14191..2e2510fb74 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,19 @@ +Thu Nov 8 14:16:53 2012 Nobuyoshi Nakada + + * lib/mkmf.rb (MakeMakefile#timestamp_file): use .-. instead of !, a + special character of NMAKE and BSD make. [Bug #7265] + +Thu Nov 8 14:16:53 2012 Nobuyoshi Nakada + + * lib/mkmf.rb (MakeMakefile#timestamp_file): use ! instead of %, a GNU + make special character. + +Thu Nov 8 14:16:53 2012 Nobuyoshi Nakada + + * lib/mkmf.rb (create_makefile): use timestamp for destination + directories to make them before making or copying files there. + [ruby-dev:46067] [Bug #6904] + Thu Nov 8 14:13:53 2012 Nobuyoshi Nakada * configure.in (visibility_option): visibility attribute is not diff --git a/lib/mkmf.rb b/lib/mkmf.rb index 9adaafc065..f4f84a6d71 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -1726,6 +1726,7 @@ INSTALL = #{config_string('INSTALL', &possible_command) || '@$(RUBY) -run -e ins INSTALL_PROG = #{config_string('INSTALL_PROG') || '$(INSTALL) -m 0755'} INSTALL_DATA = #{config_string('INSTALL_DATA') || '$(INSTALL) -m 0644'} COPY = #{config_string('CP', &possible_command) || '@$(RUBY) -run -e cp -- -v'} +TOUCH = exit > #### End of system configuration section. #### @@ -1742,6 +1743,11 @@ preload = #{defined?($preload) && $preload ? $preload.join(' ') : ''} end mk end + +def timestamp_file(name) + name = name.gsub(/(\$[({]|[})])|(\/+)|[^-.\w]+/) {$1 ? "" : $2 ? ".-." : "_"} + "./.#{name}.time" +end # :startdoc: # creates a stub Makefile. @@ -2003,18 +2009,20 @@ static: $(STATIC_LIB)#{$extout ? " install-rb" : ""} if target f = "$(DLLIB)" dest = "#{dir}/#{f}" - mfile.puts dir, "install-so: #{dest}" + mfile.puts dest if $extout mfile.print "clean-so::\n" - mfile.print "\t@-$(RM) #{fseprepl[dest]}\n" - mfile.print "\t@-$(RMDIRS) #{fseprepl[dir]}#{$ignore_error}\n" + mfile.print "\t-$(Q)$(RM) #{fseprepl[dest]}\n" + mfile.print "\t-$(Q)$(RMDIRS) #{fseprepl[dir]}#{$ignore_error}\n" else - mfile.print "#{dest}: #{f}\n\t@-$(MAKEDIRS) $(@D#{sep})\n" + mfile.print "#{dest}: #{f}\n\t-$(Q)$(MAKEDIRS) $(@D#{sep})\n" mfile.print "\t$(INSTALL_PROG) #{fseprepl[f]} $(@D#{sep})\n" if defined?($installed_list) mfile.print "\t@echo #{dir}/#{File.basename(f)}>>$(INSTALLED_LIST)\n" end end + mfile.print "clean-static::\n" + mfile.print "\t-$(Q)$(RM) $(STATIC_LIB)\n" else mfile.puts "Makefile" end @@ -2027,7 +2035,7 @@ static: $(STATIC_LIB)#{$extout ? " install-rb" : ""} for dir, *files in files unless dirs.include?(dir) dirs << dir - mfile.print "pre-install-rb#{sfx}: #{dir}\n" + mfile.print "pre-install-rb#{sfx}: #{timestamp_file(dir)}\n" end for f in files dest = "#{dir}/#{File.basename(f)}" @@ -2056,7 +2064,10 @@ static: $(STATIC_LIB)#{$extout ? " install-rb" : ""} end end dirs.unshift(sodir) if target and !dirs.include?(sodir) - dirs.each {|d| mfile.print "#{d}:\n\t$(Q) $(MAKEDIRS) $@\n"} + dirs.each do |d| + t = timestamp_file(d) + mfile.print "#{t}:\n\t$(Q) $(MAKEDIRS) #{d}\n\t$(Q) $(TOUCH) $@\n" + end mfile.print <<-SITEINSTALL @@ -2089,10 +2100,11 @@ site-install-rb: install-rb mfile.print "$(RUBYARCHDIR)/" if $extout mfile.print "$(DLLIB): " mfile.print "$(DEFFILE) " if makedef - mfile.print "$(OBJS) Makefile\n" + mfile.print "$(OBJS) Makefile" + mfile.print " #{timestamp_file('$(RUBYARCHDIR)')}" if $extout + mfile.print "\n" mfile.print "\t$(ECHO) linking shared-object #{target_prefix.sub(/\A\/(.*)/, '\1/')}$(DLLIB)\n" - mfile.print "\t@-$(RM) $(@#{sep})\n" - mfile.print "\t@-$(MAKEDIRS) $(@D)\n" if $extout + mfile.print "\t-$(Q)$(RM) $(@#{sep})\n" link_so = LINK_SO.gsub(/^/, "\t$(Q) ") if srcs.any?(&%r"\.(?:#{CXX_EXT.join('|')})\z".method(:===)) link_so = link_so.sub(/\bLDSHARED\b/, '\&XX') diff --git a/version.h b/version.h index da845ea467..aa93aec515 100644 --- a/version.h +++ b/version.h @@ -1,5 +1,5 @@ #define RUBY_VERSION "1.9.3" -#define RUBY_PATCHLEVEL 309 +#define RUBY_PATCHLEVEL 310 #define RUBY_RELEASE_DATE "2012-11-08" #define RUBY_RELEASE_YEAR 2012 -- cgit v1.2.3