diff options
-rw-r--r-- | common.mk | 2 | ||||
-rw-r--r-- | template/exts.mk.tmpl | 12 |
2 files changed, 12 insertions, 2 deletions
@@ -279,7 +279,7 @@ $(EXTS_MK): ext/configure-ext.mk $(srcdir)/template/exts.mk.tmpl \ EXTLDFLAGS="$(EXTLDFLAGS)" srcdir="$(srcdir)" $(ECHO) generating makefile $@ $(Q)$(MINIRUBY) $(tooldir)/generic_erb.rb -o $@ -c \ - $(srcdir)/template/exts.mk.tmpl --gnumake=$(gnumake) + $(srcdir)/template/exts.mk.tmpl --gnumake=$(gnumake) --configure-exts=ext/configure-ext.mk ext/configure-ext.mk: $(PREP) all-incs $(MKFILES) $(RBCONFIG) $(LIBRUBY) \ $(srcdir)/template/configure-ext.mk.tmpl diff --git a/template/exts.mk.tmpl b/template/exts.mk.tmpl index 521b9b2708..5a72912839 100644 --- a/template/exts.mk.tmpl +++ b/template/exts.mk.tmpl @@ -12,10 +12,16 @@ notes = {} rubies = [] exeext = RbConfig::CONFIG['EXEEXT'] gnumake = false +confexts = nil opt = OptionParser.new do |o| o.on('--gnumake=BOOL') {|v| gnumake = v == 'yes'} + o.on('--configure-exts=FILE') {|v| confexts = v} o.order!(ARGV) end +confexts &&= File.read(confexts).scan(/^exts: (.*\.mk)/).flatten rescue nil +confexts ||= [] +macros["old_extensions"] = [] + contpat = /(?>(?>[^\\\n]|\\.)*\\\n)*(?>[^\\\n]|\\.)*/ Dir.glob("{ext,.bundle/gems}/*/exts.mk") do |e| gem = /\Agems(?=\/)/ =~ e @@ -24,6 +30,7 @@ Dir.glob("{ext,.bundle/gems}/*/exts.mk") do |e| v.gsub!(/\\\n[ \t]*/, ' ') next if v.empty? next if gem and n != "extensions" + n = "old_extensions" if n == "extensions" and !confexts.include?(e) v = v.split m = macros[n] ||= [] case n @@ -128,7 +135,8 @@ libencs: ext/extinit.<%=objext%>: $(Q)$(MAKE)<%=mflags%> V=$(V) EXTINITS="$(EXTINITS)" $@ -% exts = macros["extensions"].map {|e|e.chomp("/.")}.sort +% exts = (macros["extensions"] + macros["old_extensions"]) +% exts.map! {|e|e.chomp("/.")}.sort % targets.each do |tgt| % exts.each do |d| % t = "#{d}/#{tgt}" @@ -158,3 +166,5 @@ extso: <%= k %>:<%= d.join(' ') %> <%= n.join("") %> % end + +remove-old-extensions: $(old_extensions:/.=/distclean) |