summaryrefslogtreecommitdiff
path: root/tool/transcode-tblgen.rb
diff options
context:
space:
mode:
Diffstat (limited to 'tool/transcode-tblgen.rb')
-rw-r--r--tool/transcode-tblgen.rb8
1 files changed, 6 insertions, 2 deletions
diff --git a/tool/transcode-tblgen.rb b/tool/transcode-tblgen.rb
index 4e7cbc516f..3459bd8bf1 100644
--- a/tool/transcode-tblgen.rb
+++ b/tool/transcode-tblgen.rb
@@ -565,7 +565,11 @@ dir = File.dirname(arg)
$:.unshift dir unless $:.include? dir
src = File.read(arg)
src.force_encoding("ascii-8bit") if src.respond_to? :force_encoding
+this_script = File.read(__FILE__)
+this_script.force_encoding("ascii-8bit") if this_script.respond_to? :force_encoding
+
base_signature = "/* autogenerated. */\n"
+base_signature << "/* #{make_signature(File.basename(__FILE__), this_script)} */\n"
base_signature << "/* #{make_signature(File.basename(arg), src)} */\n"
if !force_mode && output_filename && File.readable?(output_filename)
@@ -574,14 +578,14 @@ if !force_mode && output_filename && File.readable?(output_filename)
old_signature.each_line {|line|
if %r{/\* src="([0-9a-z_.-]+)",} =~ line
name = $1
- next if name == File.basename(arg)
+ next if name == File.basename(arg) || name == File.basename(__FILE__)
path = File.join(dir, name)
if File.readable? path
chk_signature << "/* #{make_signature(name, File.read(path))} */\n"
end
end
}
- if old_signature == chk_signature && File.mtime(__FILE__) < File.mtime(output_filename)
+ if old_signature == chk_signature
now = Time.now
File.utime(now, now, output_filename)
STDERR.puts "already up-to-date: #{output_filename}" if VERBOSE_MODE