mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	exts.mk: refine notes [Feature #13302]
* ext/extmk.rb: split notes into header and footer, which are common, from bodies which are unique for each extensions. * template/exts.mk.tmpl: now each notes are not one line, should not unique. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									5651313b85
								
							
						
					
					
						commit
						3ca61bb04e
					
				
					 2 changed files with 27 additions and 20 deletions
				
			
		
							
								
								
									
										13
									
								
								ext/extmk.rb
									
										
									
									
									
								
							
							
						
						
									
										13
									
								
								ext/extmk.rb
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -679,6 +679,8 @@ begin
 | 
			
		|||
    submakeopts << 'UPDATE_LIBRARIES="$(UPDATE_LIBRARIES)"'
 | 
			
		||||
    submakeopts << 'SHOWFLAGS='
 | 
			
		||||
    mf.macro "SUBMAKEOPTS", submakeopts
 | 
			
		||||
    mf.macro "NOTE_MESG", %w[echo]
 | 
			
		||||
    mf.macro "NOTE_NAME", %w[echo]
 | 
			
		||||
    mf.puts
 | 
			
		||||
    targets = %w[all install static install-so install-rb clean distclean realclean]
 | 
			
		||||
    targets.each do |tgt|
 | 
			
		||||
| 
						 | 
				
			
			@ -720,10 +722,14 @@ begin
 | 
			
		|||
    mf.puts "\n""note:\n"
 | 
			
		||||
    unless fails.empty?
 | 
			
		||||
      abandon = false
 | 
			
		||||
      mf.puts %Q<\t@echo "*** Following extensions are not compiled:">
 | 
			
		||||
      mf.puts "note: note-body\n"
 | 
			
		||||
      mf.puts "note-body:: note-header\n"
 | 
			
		||||
      mf.puts "note-header:\n"
 | 
			
		||||
      mf.puts %Q<\t@$(NOTE_MESG) "*** Following extensions are not compiled:">
 | 
			
		||||
      mf.puts "note-body:: note-header\n"
 | 
			
		||||
      fails.each do |ext, (parent, err)|
 | 
			
		||||
        abandon ||= mandatory_exts[ext]
 | 
			
		||||
        mf.puts %Q<\t@echo "#{ext}:">
 | 
			
		||||
        mf.puts %Q<\t@$(NOTE_NAME) "#{ext}:">
 | 
			
		||||
        if parent
 | 
			
		||||
          mf.puts %Q<\t@echo "\tCould not be configured. It will not be installed.">
 | 
			
		||||
          err and err.scan(/.+/) do |ee|
 | 
			
		||||
| 
						 | 
				
			
			@ -734,7 +740,8 @@ begin
 | 
			
		|||
          mf.puts %Q<\t@echo "\tSkipped because its parent was not configured.">
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
      mf.puts %Q<\t@echo "*** Fix the problems, then remove these directories and try again if you want.">
 | 
			
		||||
      mf.puts "note:\n"
 | 
			
		||||
      mf.puts %Q<\t@$(NOTE_MESG) "*** Fix the problems, then remove these directories and try again if you want.">
 | 
			
		||||
      if abandon
 | 
			
		||||
        mf.puts "\t""@exit 1"
 | 
			
		||||
      end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,7 +8,7 @@ ECHO = $(ECHO1:0=@echo)
 | 
			
		|||
require './rbconfig'
 | 
			
		||||
macros = {}
 | 
			
		||||
deps = []
 | 
			
		||||
note = []
 | 
			
		||||
notes = {}
 | 
			
		||||
rubies = []
 | 
			
		||||
exeext = RbConfig::CONFIG['EXEEXT']
 | 
			
		||||
gnumake = false
 | 
			
		||||
| 
						 | 
				
			
			@ -16,10 +16,11 @@ opt = OptionParser.new do |o|
 | 
			
		|||
  o.on('--gnumake=BOOL') {|v| gnumake = v == 'yes'}
 | 
			
		||||
  o.order!(ARGV)
 | 
			
		||||
end
 | 
			
		||||
contpat = /(?>(?>[^\\\n]|\\.)*\\\n)*(?>[^\\\n]|\\.)*/
 | 
			
		||||
Dir.glob("{ext,gems}/*/exts.mk") do |e|
 | 
			
		||||
  gem = /\Agems(?=\/)/ =~ e
 | 
			
		||||
  s = File.read(e)
 | 
			
		||||
  s.scan(/^(extensions|EXT[A-Z]+|MFLAGS)[ \t]*=[ \t]*((?>(?>[^\\\n]|\\.)*\\\n)*(?>[^\\\n]|\\.)*)$/) do |n, v|
 | 
			
		||||
  s.scan(/^(extensions|EXT[A-Z]+|MFLAGS|NOTE_[A-Z]+)[ \t]*=[ \t]*(#{contpat})$/o) do |n, v|
 | 
			
		||||
    v.gsub!(/\\\n[ \t]*/, ' ')
 | 
			
		||||
    next if v.empty?
 | 
			
		||||
    next if gem and n != "extensions"
 | 
			
		||||
| 
						 | 
				
			
			@ -48,12 +49,15 @@ Dir.glob("{ext,gems}/*/exts.mk") do |e|
 | 
			
		|||
           "x) do
 | 
			
		||||
    deps << $&.sub(/ +note$/, '')
 | 
			
		||||
  end
 | 
			
		||||
  s.scan(%r"^note:\n((?:\t.+\n)+)") do |(n)|
 | 
			
		||||
  s.scan(%r"^(note(?:-\w+)?):(:)?[ \t]*(#{contpat})\n((?:\t.+\n)*)"o) do |(t, m, d, n)|
 | 
			
		||||
    note = (notes[t] ||= [[m||""], []])
 | 
			
		||||
    note[0] |= d.split(/(?:\\\n|[ \t])[ \t]*/)
 | 
			
		||||
    n = n.split(/^/)
 | 
			
		||||
    e = (note.pop if /@exit/ =~ note[-1])
 | 
			
		||||
    note.pop if n[-1] == note[-1]
 | 
			
		||||
    note |= n
 | 
			
		||||
    note << e if e
 | 
			
		||||
    if m
 | 
			
		||||
      note[1].concat(n)
 | 
			
		||||
    else
 | 
			
		||||
      note[1] |= n
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
deps.uniq!
 | 
			
		||||
| 
						 | 
				
			
			@ -92,19 +96,13 @@ else
 | 
			
		|||
  mflags = " $(MFLAGS)"
 | 
			
		||||
end
 | 
			
		||||
-%>
 | 
			
		||||
% unless macros["MFLAGS"].empty?
 | 
			
		||||
MFLAGS =<%= macros["MFLAGS"].fold(column) %>
 | 
			
		||||
% macros.each_pair do |k, v|
 | 
			
		||||
<%=k%> =<%= v.fold(column) %>
 | 
			
		||||
% end
 | 
			
		||||
% RbConfig::MAKEFILE_CONFIG.keys.grep(/RM/) do |k|
 | 
			
		||||
<%=k%> = <%=RbConfig::MAKEFILE_CONFIG[k]%>
 | 
			
		||||
% end
 | 
			
		||||
 | 
			
		||||
extensions =<%= macros["extensions"].fold(column) %>
 | 
			
		||||
EXTOBJS =<%= macros["EXTOBJS"].fold(column) %>
 | 
			
		||||
EXTLIBS =<%= macros["EXTLIBS"].fold(column) %>
 | 
			
		||||
EXTSO =<%= macros["EXTSO"].fold(column) %>
 | 
			
		||||
EXTLDFLAGS =<%= macros["EXTLDFLAGS"].fold(column) %>
 | 
			
		||||
EXTINITS =<%= macros["EXTINITS"].fold(column) %>
 | 
			
		||||
SUBMAKEOPTS = DLDOBJS="$(EXTOBJS) $(EXTENCS)" EXTOBJS= \
 | 
			
		||||
	      EXTSOLIBS="$(EXTLIBS)" LIBRUBY_SO_UPDATE=$(LIBRUBY_EXTS) \
 | 
			
		||||
	      EXTLDFLAGS="$(EXTLDFLAGS)" EXTINITS="$(EXTINITS)" \
 | 
			
		||||
| 
						 | 
				
			
			@ -146,5 +144,7 @@ ext/extinit.<%=objext%>:
 | 
			
		|||
extso:
 | 
			
		||||
	@echo EXTSO=$(EXTSO)
 | 
			
		||||
 | 
			
		||||
note:
 | 
			
		||||
<%= note.join("") %>
 | 
			
		||||
% notes.each_pair do |k, (d, n)|
 | 
			
		||||
<%= k %>:<%= d.join(' ') %>
 | 
			
		||||
<%= n.join("") %>
 | 
			
		||||
% end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue