ruby-changes:20110
From: akr <ko1@a...>
Date: Sat, 18 Jun 2011 08:24:29 +0900 (JST)
Subject: [ruby-changes:20110] akr:r32157 (trunk): * common.mk: dependencies updated.
akr 2011-06-18 08:15:47 +0900 (Sat, 18 Jun 2011) New Revision: 32157 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=32157 Log: * common.mk: dependencies updated. * tool/update-deps: new file to assist update dependencies in common.mk. Added files: trunk/tool/update-deps Modified files: trunk/ChangeLog trunk/common.mk Index: ChangeLog =================================================================== --- ChangeLog (revision 32156) +++ ChangeLog (revision 32157) @@ -1,3 +1,10 @@ +Sat Jun 18 08:12:54 2011 Tanaka Akira <akr@f...> + + * common.mk: dependencies updated. + + * tool/update-deps: new file to assist update dependencies in + common.mk. + Sat Jun 18 07:27:27 2011 Tanaka Akira <akr@f...> * internal.h: declare internal functions here. Index: common.mk =================================================================== --- common.mk (revision 32156) +++ common.mk (revision 32157) @@ -580,78 +580,93 @@ ENCODING_H_INCLUDES= {$(VPATH)}encoding.h {$(VPATH)}oniguruma.h ID_H_INCLUDES = {$(VPATH)}id.h {$(VPATH)}vm_opts.h VM_CORE_H_INCLUDES = {$(VPATH)}vm_core.h {$(VPATH)}thread_$(THREAD_MODEL).h \ - {$(VPATH)}node.h {$(VPATH)}method.h $(ID_H_INCLUDES) + {$(VPATH)}node.h {$(VPATH)}method.h {$(VPATH)}atomic.h \ + $(ID_H_INCLUDES) -array.$(OBJEXT): {$(VPATH)}array.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h -bignum.$(OBJEXT): {$(VPATH)}bignum.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h +array.$(OBJEXT): {$(VPATH)}array.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \ + $(ENCODING_H_INCLUDES) +bignum.$(OBJEXT): {$(VPATH)}bignum.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \ + {$(VPATH)}internal.h class.$(OBJEXT): {$(VPATH)}class.c $(RUBY_H_INCLUDES) \ - $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h + $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h \ + {$(VPATH)}constant.h compar.$(OBJEXT): {$(VPATH)}compar.c $(RUBY_H_INCLUDES) -complex.$(OBJEXT): {$(VPATH)}complex.c $(RUBY_H_INCLUDES) +complex.$(OBJEXT): {$(VPATH)}complex.c $(RUBY_H_INCLUDES) \ + {$(VPATH)}internal.h dir.$(OBJEXT): {$(VPATH)}dir.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \ - $(ENCODING_H_INCLUDES) + $(ENCODING_H_INCLUDES) \ + {$(VPATH)}internal.h dln.$(OBJEXT): {$(VPATH)}dln.c {$(VPATH)}dln.h $(RUBY_H_INCLUDES) dln_find.$(OBJEXT): {$(VPATH)}dln_find.c {$(VPATH)}dln.h $(RUBY_H_INCLUDES) dmydln.$(OBJEXT): {$(VPATH)}dmydln.c $(RUBY_H_INCLUDES) dmyext.$(OBJEXT): {$(VPATH)}dmyext.c dmyencoding.$(OBJEXT): {$(VPATH)}dmyencoding.c $(RUBY_H_INCLUDES) \ {$(VPATH)}regenc.h {$(VPATH)}util.h $(ENCODING_H_INCLUDES) \ - {$(VPATH)}encoding.c + {$(VPATH)}encoding.c {$(VPATH)}internal.h encoding.$(OBJEXT): {$(VPATH)}encoding.c $(RUBY_H_INCLUDES) \ - $(ENCODING_H_INCLUDES) {$(VPATH)}regenc.h {$(VPATH)}util.h + $(ENCODING_H_INCLUDES) {$(VPATH)}regenc.h {$(VPATH)}util.h \ + {$(VPATH)}internal.h enum.$(OBJEXT): {$(VPATH)}enum.c $(RUBY_H_INCLUDES) {$(VPATH)}node.h \ {$(VPATH)}util.h $(ID_H_INCLUDES) enumerator.$(OBJEXT): {$(VPATH)}enumerator.c $(RUBY_H_INCLUDES) error.$(OBJEXT): {$(VPATH)}error.c {$(VPATH)}known_errors.inc \ $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) $(ENCODING_H_INCLUDES) \ - {$(VPATH)}debug.h + {$(VPATH)}debug.h \ + {$(VPATH)}internal.h eval.$(OBJEXT): {$(VPATH)}eval.c {$(VPATH)}eval_intern.h {$(VPATH)}vm.h \ $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}eval_error.c \ - {$(VPATH)}eval_jump.c {$(VPATH)}debug.h {$(VPATH)}gc.h {$(VPATH)}iseq.h + {$(VPATH)}eval_jump.c {$(VPATH)}debug.h {$(VPATH)}gc.h {$(VPATH)}iseq.h \ + $(ENCODING_H_INCLUDES) {$(VPATH)}internal.h load.$(OBJEXT): {$(VPATH)}load.c {$(VPATH)}eval_intern.h \ {$(VPATH)}util.h $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) \ - {$(VPATH)}dln.h {$(VPATH)}debug.h + {$(VPATH)}dln.h {$(VPATH)}debug.h \ + {$(VPATH)}internal.h file.$(OBJEXT): {$(VPATH)}file.c $(RUBY_H_INCLUDES) {$(VPATH)}io.h \ - $(ENCODING_H_INCLUDES) {$(VPATH)}util.h {$(VPATH)}dln.h + $(ENCODING_H_INCLUDES) {$(VPATH)}util.h {$(VPATH)}dln.h \ + {$(VPATH)}internal.h gc.$(OBJEXT): {$(VPATH)}gc.c $(RUBY_H_INCLUDES) {$(VPATH)}re.h \ {$(VPATH)}regex.h $(ENCODING_H_INCLUDES) $(VM_CORE_H_INCLUDES) \ {$(VPATH)}gc.h {$(VPATH)}io.h {$(VPATH)}eval_intern.h {$(VPATH)}util.h \ - {$(VPATH)}debug.h {$(VPATH)}internal.h {$(VPATH)}atomic.h -hash.$(OBJEXT): {$(VPATH)}hash.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h -inits.$(OBJEXT): {$(VPATH)}inits.c $(RUBY_H_INCLUDES) + {$(VPATH)}debug.h {$(VPATH)}internal.h {$(VPATH)}constant.h +hash.$(OBJEXT): {$(VPATH)}hash.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \ + $(ENCODING_H_INCLUDES) +inits.$(OBJEXT): {$(VPATH)}inits.c $(RUBY_H_INCLUDES) \ + {$(VPATH)}internal.h io.$(OBJEXT): {$(VPATH)}io.c $(RUBY_H_INCLUDES) {$(VPATH)}io.h \ - {$(VPATH)}util.h $(ENCODING_H_INCLUDES) {$(VPATH)}dln.h + {$(VPATH)}util.h $(ENCODING_H_INCLUDES) {$(VPATH)}dln.h {$(VPATH)}internal.h main.$(OBJEXT): {$(VPATH)}main.c $(RUBY_H_INCLUDES) {$(VPATH)}debug.h \ {$(VPATH)}node.h marshal.$(OBJEXT): {$(VPATH)}marshal.c $(RUBY_H_INCLUDES) {$(VPATH)}io.h \ $(ENCODING_H_INCLUDES) {$(VPATH)}util.h {$(VPATH)}internal.h -math.$(OBJEXT): {$(VPATH)}math.c $(RUBY_H_INCLUDES) +math.$(OBJEXT): {$(VPATH)}math.c $(RUBY_H_INCLUDES) \ + {$(VPATH)}internal.h node.$(OBJEXT): {$(VPATH)}node.c $(RUBY_H_INCLUDES) \ - $(VM_CORE_H_INCLUDES) + $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h numeric.$(OBJEXT): {$(VPATH)}numeric.c $(RUBY_H_INCLUDES) \ - {$(VPATH)}util.h $(ENCODING_H_INCLUDES) + {$(VPATH)}util.h $(ENCODING_H_INCLUDES) {$(VPATH)}internal.h object.$(OBJEXT): {$(VPATH)}object.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \ - {$(VPATH)}internal.h + {$(VPATH)}internal.h {$(VPATH)}constant.h pack.$(OBJEXT): {$(VPATH)}pack.c $(RUBY_H_INCLUDES) {$(VPATH)}encoding.h \ {$(VPATH)}oniguruma.h parse.$(OBJEXT): {$(VPATH)}parse.c $(RUBY_H_INCLUDES) {$(VPATH)}node.h \ $(ENCODING_H_INCLUDES) $(ID_H_INCLUDES) {$(VPATH)}regenc.h \ {$(VPATH)}regex.h {$(VPATH)}util.h {$(VPATH)}lex.c \ {$(VPATH)}defs/keywords {$(VPATH)}id.c {$(VPATH)}parse.y \ - {$(VPATH)}parse.h + {$(VPATH)}parse.h \ + {$(VPATH)}internal.h proc.$(OBJEXT): {$(VPATH)}proc.c {$(VPATH)}eval_intern.h \ $(RUBY_H_INCLUDES) {$(VPATH)}gc.h $(VM_CORE_H_INCLUDES) \ - {$(VPATH)}debug.h {$(VPATH)}internal.h + {$(VPATH)}debug.h {$(VPATH)}internal.h {$(VPATH)}iseq.h process.$(OBJEXT): {$(VPATH)}process.c $(RUBY_H_INCLUDES) \ {$(VPATH)}util.h {$(VPATH)}io.h $(ENCODING_H_INCLUDES) {$(VPATH)}dln.h \ - $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h + $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h random.$(OBJEXT): {$(VPATH)}random.c $(RUBY_H_INCLUDES) range.$(OBJEXT): {$(VPATH)}range.c $(RUBY_H_INCLUDES) \ - $(ENCODING_H_INCLUDES) -rational.$(OBJEXT): {$(VPATH)}rational.c $(RUBY_H_INCLUDES) + $(ENCODING_H_INCLUDES) {$(VPATH)}internal.h +rational.$(OBJEXT): {$(VPATH)}rational.c $(RUBY_H_INCLUDES) {$(VPATH)}internal.h re.$(OBJEXT): {$(VPATH)}re.c $(RUBY_H_INCLUDES) {$(VPATH)}re.h \ {$(VPATH)}regex.h $(ENCODING_H_INCLUDES) {$(VPATH)}util.h \ - {$(VPATH)}regint.h {$(VPATH)}regenc.h + {$(VPATH)}regint.h {$(VPATH)}regenc.h {$(VPATH)}internal.h regcomp.$(OBJEXT): {$(VPATH)}regcomp.c {$(VPATH)}regparse.h \ {$(VPATH)}regint.h {$(VPATH)}regenc.h {$(VPATH)}oniguruma.h \ $(RUBY_H_INCLUDES) @@ -668,35 +683,34 @@ {$(VPATH)}regenc.h {$(VPATH)}oniguruma.h $(RUBY_H_INCLUDES) ruby.$(OBJEXT): {$(VPATH)}ruby.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \ $(ENCODING_H_INCLUDES) {$(VPATH)}eval_intern.h $(VM_CORE_H_INCLUDES) \ - {$(VPATH)}dln.h {$(VPATH)}debug.h + {$(VPATH)}dln.h {$(VPATH)}debug.h {$(VPATH)}internal.h safe.$(OBJEXT): {$(VPATH)}safe.c $(RUBY_H_INCLUDES) \ $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h signal.$(OBJEXT): {$(VPATH)}signal.c $(RUBY_H_INCLUDES) \ - $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}atomic.h + $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h sprintf.$(OBJEXT): {$(VPATH)}sprintf.c $(RUBY_H_INCLUDES) {$(VPATH)}re.h \ {$(VPATH)}regex.h {$(VPATH)}vsnprintf.c $(ENCODING_H_INCLUDES) -st.$(OBJEXT): {$(VPATH)}st.c {$(VPATH)}config.h {$(VPATH)}defines.h \ - {$(VPATH)}st.h {$(VPATH)}ruby.h {$(VPATH)}missing.h {$(VPATH)}intern.h -strftime.$(OBJEXT): {$(VPATH)}strftime.c {$(VPATH)}ruby.h \ - {$(VPATH)}config.h {$(VPATH)}defines.h {$(VPATH)}missing.h \ - {$(VPATH)}intern.h {$(VPATH)}st.h {$(VPATH)}timev.h +st.$(OBJEXT): {$(VPATH)}st.c $(RUBY_H_INCLUDES) +strftime.$(OBJEXT): {$(VPATH)}strftime.c $(RUBY_H_INCLUDES) \ + {$(VPATH)}timev.h string.$(OBJEXT): {$(VPATH)}string.c $(RUBY_H_INCLUDES) {$(VPATH)}re.h \ - {$(VPATH)}regex.h $(ENCODING_H_INCLUDES) + {$(VPATH)}regex.h $(ENCODING_H_INCLUDES) {$(VPATH)}internal.h struct.$(OBJEXT): {$(VPATH)}struct.c $(RUBY_H_INCLUDES) {$(VPATH)}internal.h thread.$(OBJEXT): {$(VPATH)}thread.c {$(VPATH)}eval_intern.h \ $(RUBY_H_INCLUDES) {$(VPATH)}gc.h $(VM_CORE_H_INCLUDES) \ - {$(VPATH)}debug.h {$(VPATH)}thread_$(THREAD_MODEL).c {$(VPATH)}atomic.h + {$(VPATH)}debug.h {$(VPATH)}thread_$(THREAD_MODEL).c $(ENCODING_H_INCLUDES) \ + {$(VPATH)}internal.h {$(VPATH)}io.h transcode.$(OBJEXT): {$(VPATH)}transcode.c $(RUBY_H_INCLUDES) \ - $(ENCODING_H_INCLUDES) {$(VPATH)}transcode_data.h + $(ENCODING_H_INCLUDES) {$(VPATH)}transcode_data.h {$(VPATH)}internal.h cont.$(OBJEXT): {$(VPATH)}cont.c $(RUBY_H_INCLUDES) \ $(VM_CORE_H_INCLUDES) {$(VPATH)}gc.h {$(VPATH)}eval_intern.h \ - {$(VPATH)}debug.h {$(VPATH)}atomic.h + {$(VPATH)}debug.h {$(VPATH)}internal.h time.$(OBJEXT): {$(VPATH)}time.c $(RUBY_H_INCLUDES) \ - $(ENCODING_H_INCLUDES) {$(VPATH)}timev.h + $(ENCODING_H_INCLUDES) {$(VPATH)}timev.h {$(VPATH)}internal.h util.$(OBJEXT): {$(VPATH)}util.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h variable.$(OBJEXT): {$(VPATH)}variable.c $(RUBY_H_INCLUDES) \ {$(VPATH)}node.h {$(VPATH)}util.h {$(VPATH)}encoding.h \ - {$(VPATH)}oniguruma.h {$(VPATH)}internal.h + {$(VPATH)}oniguruma.h {$(VPATH)}internal.h {$(VPATH)}constant.h version.$(OBJEXT): {$(VPATH)}version.c $(RUBY_H_INCLUDES) \ {$(VPATH)}version.h $(srcdir)/version.h $(srcdir)/revision.h {$(VPATH)}config.h dmyversion.$(OBJEXT): {$(VPATH)}dmyversion.c version.$(OBJEXT) @@ -704,49 +718,51 @@ compile.$(OBJEXT): {$(VPATH)}compile.c {$(VPATH)}iseq.h \ $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}insns.inc \ {$(VPATH)}insns_info.inc {$(VPATH)}optinsn.inc {$(VPATH)}debug.h \ - {$(VPATH)}optunifs.inc {$(VPATH)}opt_sc.inc {$(VPATH)}insns.inc + {$(VPATH)}optunifs.inc {$(VPATH)}opt_sc.inc {$(VPATH)}insns.inc \ + {$(VPATH)}internal.h iseq.$(OBJEXT): {$(VPATH)}iseq.c {$(VPATH)}gc.h {$(VPATH)}iseq.h \ $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}insns.inc \ - {$(VPATH)}insns_info.inc {$(VPATH)}node_name.inc {$(VPATH)}debug.h + {$(VPATH)}insns_info.inc {$(VPATH)}node_name.inc {$(VPATH)}debug.h {$(VPATH)}internal.h vm.$(OBJEXT): {$(VPATH)}vm.c {$(VPATH)}gc.h {$(VPATH)}iseq.h \ {$(VPATH)}eval_intern.h $(RUBY_H_INCLUDES) $(ENCODING_H_INCLUDES) \ $(VM_CORE_H_INCLUDES) {$(VPATH)}vm_method.c {$(VPATH)}vm_eval.c \ {$(VPATH)}vm_insnhelper.c {$(VPATH)}vm_insnhelper.h {$(VPATH)}vm_exec.c \ {$(VPATH)}vm_exec.h {$(VPATH)}insns.def {$(VPATH)}vmtc.inc \ {$(VPATH)}vm.inc {$(VPATH)}insns.inc {$(VPATH)}debug.h \ - {$(VPATH)}internal.h + {$(VPATH)}internal.h {$(VPATH)}vm.h {$(VPATH)}constant.h vm_dump.$(OBJEXT): {$(VPATH)}vm_dump.c $(RUBY_H_INCLUDES) \ - $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h + $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}addr2line.h debug.$(OBJEXT): {$(VPATH)}debug.c $(RUBY_H_INCLUDES) \ $(ENCODING_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}eval_intern.h \ {$(VPATH)}util.h {$(VPATH)}debug.h id.$(OBJEXT): {$(VPATH)}id.c $(RUBY_H_INCLUDES) $(ID_H_INCLUDES) miniprelude.$(OBJEXT): {$(VPATH)}miniprelude.c $(RUBY_H_INCLUDES) \ - $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h + $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h prelude.$(OBJEXT): {$(VPATH)}prelude.c $(RUBY_H_INCLUDES) \ - $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h + $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h golf_prelude.$(OBJEXT): {$(VPATH)}golf_prelude.c $(RUBY_H_INCLUDES) \ - $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h + $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h goruby.$(OBJEXT): {$(VPATH)}goruby.c {$(VPATH)}main.c $(RUBY_H_INCLUDES) \ {$(VPATH)}debug.h {$(VPATH)}node.h ascii.$(OBJEXT): {$(VPATH)}ascii.c {$(VPATH)}regenc.h {$(VPATH)}config.h \ - {$(VPATH)}defines.h {$(VPATH)}oniguruma.h + {$(VPATH)}oniguruma.h {$(VPATH)}missing.h us_ascii.$(OBJEXT): {$(VPATH)}us_ascii.c {$(VPATH)}regenc.h \ - {$(VPATH)}config.h {$(VPATH)}defines.h {$(VPATH)}oniguruma.h + {$(VPATH)}config.h {$(VPATH)}oniguruma.h {$(VPATH)}missing.h unicode.$(OBJEXT): {$(VPATH)}unicode.c {$(VPATH)}regint.h \ {$(VPATH)}config.h {$(VPATH)}defines.h {$(VPATH)}regenc.h \ {$(VPATH)}oniguruma.h {$(VPATH)}st.h {$(VPATH)}ruby.h \ - {$(VPATH)}missing.h {$(VPATH)}intern.h {$(VPATH)}enc/unicode/name2ctype.h + {$(VPATH)}missing.h {$(VPATH)}intern.h {$(VPATH)}enc/unicode/name2ctype.h \ + {$(VPATH)}subst.h utf_8.$(OBJEXT): {$(VPATH)}utf_8.c {$(VPATH)}regenc.h {$(VPATH)}config.h \ - {$(VPATH)}defines.h {$(VPATH)}oniguruma.h + {$(VPATH)}oniguruma.h {$(VPATH)}missing.h newline.c: $(srcdir)/enc/trans/newline.trans $(srcdir)/tool/transcode-tblgen.rb $(Q) $(BASERUBY) "$(srcdir)/tool/transcode-tblgen.rb" -vo newline.c $(srcdir)/enc/trans/newline.trans newline.$(OBJEXT): {$(VPATH)}newline.c {$(VPATH)}defines.h \ {$(VPATH)}intern.h {$(VPATH)}missing.h {$(VPATH)}st.h \ - {$(VPATH)}transcode_data.h {$(VPATH)}ruby.h {$(VPATH)}config.h + {$(VPATH)}transcode_data.h {$(VPATH)}ruby.h {$(VPATH)}config.h {$(VPATH)}subst.h $(OBJS): {$(VPATH)}config.h {$(VPATH)}missing.h Index: tool/update-deps =================================================================== --- tool/update-deps (revision 0) +++ tool/update-deps (revision 32157) @@ -0,0 +1,139 @@ +#!/usr/bin/ruby + +# tool/update-deps assists you to update dependencies in common.mk. + +# This script uses preprocessed source files (*.i) to extract +# dependencies. +# It is possible to generate *.i using gcc with -save-temps option as: +# +# ./configure CFLAGS='-save-temps' +# make all golf +# +# After that, tool/update-deps generate common.mk with up-to-date dependencies. +# Currently, the result is not perfect around version.o, compile.o, etc. +# So you must see each changes and incorporate right changes. +# +# ./tool/update-deps > z +# wdiff =(sed -e 's/\\$//' common.mk ) =(sed -e 's/\\$//' z) |less -j 5 -p '\{\+|\+\}|\[-|-\]' +# vi common.mk + +src = File.read("common.mk") + +includes_macro = {} +src.scan(/^([A-Z_]+_H_INCLUDES)[ \t]*=(([^\\\n]|\\(.|\n))*)\n/) { + name = $1 + vals = $2 + #STDERR.puts vals.inspect + vals.gsub!(/\\\n/, ' ') + vals.gsub!(/\{\$\(VPATH\)\}/, '') + vals.gsub!(/thread_\$\(THREAD_MODEL\)/, 'thread_pthread') + vals = vals.strip.split(/\s+/) + includes_macro[name] = vals + #STDERR.puts [name, vals].inspect +} + +begin + again = false + includes_macro.each {|name, vals| + vals.map! {|val| + if /\A\$\((.*_H_INCLUDES)\)\z/ =~ val + again = true + includes_macro.fetch($1) + else + val + end + } + vals.flatten! + } +end while again + +src.gsub!(/^([0-9a-z._]+)\.\$\(OBJEXT\):(.*\n(?:[ ].*\n)*)/) { + #STDERR.puts $&.inspect + matched = $& + basename = $1 + deps = $2 + dd = deps.dup + dd.gsub!(/\{\$\(VPATH\)\}/, '') + dd.gsub!(/\\\n/, ' ') + dd.gsub!(/thread_\$\(THREAD_MODEL\)/, 'thread_pthread') + used_imacro = {} + includes_macro.each {|k, v| + if dd.sub!(/\$\(#{Regexp.escape k}\)/) { v.join(' ') } + used_imacro[k] = true + end + } + dd = dd.strip.split(/\s+/) + if !File.file?("#{basename}.o") + warn "#{basename}.o not found." + else + unless File.file? "#{basename}.i" + puts "#{basename}.i not found." + next + end + incs = [] + File.foreach("#{basename}.i") {|line| + next unless /^# \d+ "([^"]*)"/ =~ line + inc = $1 + next if %r{\A[/<]} =~ inc + inc.sub!(%r{\A\./}, '') + inc.sub!(%r{\Ainclude/ruby/}, '') or + inc.sub!(%r{\Ainclude/}, '') or + inc.sub!(%r{\A\.ext/include/[^/]+/ruby/}, '') or + inc.sub!(%r{\Aenc/}, '') or + inc.sub!(%r{\Amissing/}, '') + #p inc + incs << inc + } + incs.uniq! + incs = incs.sort_by {|inc| [(dd.index(inc) || dd.length), incs.index(inc)] } + add = incs - dd + if !add.empty? || true + if incs[0] != dd[0] + raise "first file not matched: #{incs[0].inspect} v.s. #{dd[0].inspect}" + end + depline = "#{basename}.$(OBJEXT):" + used_imacro.each_key {|k| + if includes_macro[k].all? {|v| incs.include? v } + im = "$(#{k})" + incs.map! {|inc| + if includes_macro[k].include? inc + im0 = im + im = nil + im0 + else + inc + end + } + incs.compact! + else + needless = includes_macro[k].reject {|v| incs.include? v } + STDERR.puts "#{basename}.$(OBJEXT) can't use #{k}. #{needless.join(' ')} is not used." + end + } + + incs.each {|inc| + inc = inc.sub(/\Athread_pthread/, 'thread_$(THREAD_MODEL)') + if /_INCLUDES\)\z/ =~ inc + # use $(RUBY_H_INCLUDES) as is. + elsif inc == 'revision.h' + inc = '$(srcdir)/revision.h' + else + inc = "{$(VPATH)}#{inc}" + end + depline << " #{inc}" + } + lines = [] + while 72 < depline.length && depline.sub!(/\A(.{0,72}|.{72}.*?) /, '') + lines << $& + end + lines << depline + matched = lines.join("\\\n ") + matched << "\n" + end + end + #STDERR.puts matched.inspect + matched +} + +puts src + Property changes on: tool/update-deps ___________________________________________________________________ Added: svn:eol-style + LF Added: svn:executable + * -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/