Skip to content

Commit

Permalink
enc: Expand substitution variables in Makefile.in by default
Browse files Browse the repository at this point in the history
This change makes `make_encmake.rb` expand all substitution variables
when replacing them in `enc/Makefile.in` to avoid propagating all
possibly referenced variables to the generated Makefile. The old
behavior, which don't expand make variables when generating Makefile,
was useful to temporarily override inherited variables like `cflags` in
`CFLAGS` at make-time. However, it's not a common use case and it
requires to propagate all possibly referenced variables properly
considering key name duplication between `enc/Makefile.in` and
`RbConfig::CONFIG`.
  • Loading branch information
kateinoigakukun committed Mar 3, 2024
1 parent 072761b commit 0d9a681
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion enc/make_encmake.rb
Expand Up @@ -129,7 +129,12 @@ def target_transcoders
dep = ""
end
mkin = File.read(File.join($srcdir, "Makefile.in"))
mkin.gsub!(/@(#{CONFIG.keys.join('|')})@/) {CONFIG[$1]}
# 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
}
Expand Down

0 comments on commit 0d9a681

Please sign in to comment.