summaryrefslogtreecommitdiff
path: root/enc/make_encmake.rb
diff options
context:
space:
mode:
Diffstat (limited to 'enc/make_encmake.rb')
-rwxr-xr-xenc/make_encmake.rb31
1 files changed, 12 insertions, 19 deletions
diff --git a/enc/make_encmake.rb b/enc/make_encmake.rb
index bc0597e3f4..96d1944bcb 100755
--- a/enc/make_encmake.rb
+++ b/enc/make_encmake.rb
@@ -121,39 +121,32 @@ ENCS, ENC_DEPS = target_encodings
ATRANS, TRANS = target_transcoders
if File.exist?(depend = File.join($srcdir, "depend"))
- if ERB.instance_method(:initialize).parameters.assoc(:key) # Ruby 2.6+
- erb = ERB.new(File.read(depend), trim_mode: '%')
- else
- erb = ERB.new(File.read(depend), nil, '%')
- end
+ erb = ERB.new(File.read(depend), trim_mode: '%')
erb.filename = depend
tmp = erb.result(binding)
- dep = "\n#### depend ####\n\n" << depend_rules(tmp).join
+ dep = "\n#### depend ####\n\n" + depend_rules(tmp).join
else
dep = ""
end
mkin = File.read(File.join($srcdir, "Makefile.in"))
-mkin.gsub!(/@(#{CONFIG.keys.join('|')})@/) {CONFIG[$1]}
-open(ARGV[0], 'wb') {|f|
+# Variables that should not be expanded in Makefile.in to allow
+# overriding inherited variables at make-time.
+not_expand_vars = %w(CFLAGS)
+mkin.gsub!(/@(#{RbConfig::CONFIG.keys.join('|')})@/) do
+ not_expand_vars.include?($1) ? CONFIG[$1] : RbConfig::CONFIG[$1]
+end
+File.open(ARGV[0], 'wb') {|f|
f.puts mkin, dep
}
if MODULE_TYPE == :static
filename = "encinit.c.erb"
- if ERB.instance_method(:initialize).parameters.assoc(:key) # Ruby 2.6+
- erb = ERB.new(File.read(File.join($srcdir, filename)), trim_mode: '%-')
- else
- erb = ERB.new(File.read(File.join($srcdir, filename)), nil, '%-')
- end
+ erb = ERB.new(File.read(File.join($srcdir, filename)), trim_mode: '%-')
erb.filename = "enc/#{filename}"
tmp = erb.result(binding)
begin
Dir.mkdir 'enc'
rescue Errno::EEXIST
end
- File.open("enc/encinit.c", "w") {|f|
- f.puts "/* Automatically generated from enc/encinit.c.erb"
- f.puts " * Do not edit."
- f.puts " */"
- f.puts tmp
- }
+ require 'tool/lib/output'
+ Output.new(path: "enc/encinit.c", ifchange: true).write(tmp)
end