aboutsummaryrefslogtreecommitdiffstats
path: root/tool
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-11-26 19:08:56 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-11-26 21:49:42 +0900
commit7db719c51652f0de6cae079c6ce0723dd00a9939 (patch)
tree49068885d9f173347c20afc65b3f58f01cccee4c /tool
parent8b208293963cafa1469947a9957b59ce68895af1 (diff)
downloadruby-7db719c51652f0de6cae079c6ce0723dd00a9939.tar.gz
Write rbinc files to the source directory
Update the target file itself of the dependency on this script. Fall back to the current working directory if unwritable.
Diffstat (limited to 'tool')
-rw-r--r--tool/mk_builtin_loader.rb14
1 files changed, 11 insertions, 3 deletions
diff --git a/tool/mk_builtin_loader.rb b/tool/mk_builtin_loader.rb
index efb2d7d0fb..87eb042145 100644
--- a/tool/mk_builtin_loader.rb
+++ b/tool/mk_builtin_loader.rb
@@ -57,12 +57,18 @@ end
def mk_builtin_header file
base = File.basename(file, '.rb')
- ofile = "#{base}.rbinc"
+ ofile = "#{file}inc"
# bs = { func_name => argc }
collect_builtin(base, RubyVM::InstructionSequence.compile_file(file, false).to_a, bs = {}, inlines = [])
- open(ofile, 'w'){|f|
+ begin
+ f = open(ofile, 'w')
+ rescue Errno::EACCESS
+ # Fall back to the current directory
+ f = open(File.basename(ofile), 'w')
+ end
+ begin
f.puts "// -*- c -*-"
f.puts "// DO NOT MODIFY THIS FILE DIRECTLY."
f.puts "// auto-generated file"
@@ -120,7 +126,9 @@ def mk_builtin_header file
f.puts " rb_load_with_builtin_functions(#{base.dump}, #{table});"
f.puts "}"
- }
+ ensure
+ f.close
+ end
end
ARGV.each{|file|