summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorKOBAYASHI Shuji <[email protected]>2021-01-28 18:42:19 +0900
committerKOBAYASHI Shuji <[email protected]>2021-01-28 18:42:19 +0900
commitc858cba3e95f820a956f72607c9af494f70b9304 (patch)
treebd8c01bb114f356df823a473ae425f0256a6dfa0
parent56842628b9968d2786be7b9c772ee8f8fb51248d (diff)
downloadmruby-c858cba3e95f820a956f72607c9af494f70b9304.tar.gz
mruby-c858cba3e95f820a956f72607c9af494f70b9304.zip
Refine `preprocess_options`; ref d95ffb036
If we modify an option that may have been specified by users, we may make unintended changes, so it is better not to modify it as much as possible, IMO.
-rw-r--r--build_config/default.rb2
-rw-r--r--lib/mruby/build/command.rb2
-rw-r--r--tasks/toolchains/gcc.rake4
-rw-r--r--tasks/toolchains/openwrt.rake3
4 files changed, 6 insertions, 5 deletions
diff --git a/build_config/default.rb b/build_config/default.rb
index 894f1055b..6cdb868ec 100644
--- a/build_config/default.rb
+++ b/build_config/default.rb
@@ -24,7 +24,7 @@ MRuby::Build.new do |conf|
# cc.defines = %w()
# cc.option_include_path = %q[-I"%s"]
# cc.option_define = '-D%s'
- # cc.compile_options = %Q[%{flags} -MMD -o "%{outfile}" -c "%{infile}"]
+ # cc.compile_options = %Q[%{flags} -MMD -MF "%{outfile}".d -o "%{outfile}" -c "%{infile}"]
# end
# mrbc settings
diff --git a/lib/mruby/build/command.rb b/lib/mruby/build/command.rb
index e88b5ace7..9362a9d95 100644
--- a/lib/mruby/build/command.rb
+++ b/lib/mruby/build/command.rb
@@ -92,7 +92,7 @@ module MRuby
opts = compile_options
else
label = "CPP"
- opts = preprocess_options.gsub(/-MMD -MF .* -o/, "-o")
+ opts = preprocess_options
flags << " -DMRB_PRESYM_SCANNING"
end
_pp label, infile.relative_path, outfile.relative_path
diff --git a/tasks/toolchains/gcc.rake b/tasks/toolchains/gcc.rake
index 8714e1854..a39f087ba 100644
--- a/tasks/toolchains/gcc.rake
+++ b/tasks/toolchains/gcc.rake
@@ -3,7 +3,7 @@ MRuby::Toolchain.new(:gcc) do |conf, params|
compiler_flags = %w(-g -O3 -Wall -Wundef)
c_mandatory_flags = %w(-std=gnu99)
cxx_invalid_flags = %w(-Werror-implicit-function-declaration)
- compile_opt = '%{flags} -MMD -MF "%{outfile}.d" -o "%{outfile}" "%{infile}"'
+ compile_opt = '%{flags} -o "%{outfile}" "%{infile}"'
[conf.cc, conf.objc, conf.asm, conf.cxx].each do |compiler|
if compiler == conf.cxx
@@ -15,7 +15,7 @@ MRuby::Toolchain.new(:gcc) do |conf, params|
end
compiler.option_include_path = %q[-I"%s"]
compiler.option_define = '-D%s'
- compiler.compile_options = "-c #{compile_opt}"
+ compiler.compile_options = %|-MMD -MF "%{outfile}.d" -c #{compile_opt}|
compiler.preprocess_options = "-E -P #{compile_opt}"
compiler.cxx_compile_flag = '-x c++ -std=gnu++03'
compiler.cxx_exception_flag = '-fexceptions'
diff --git a/tasks/toolchains/openwrt.rake b/tasks/toolchains/openwrt.rake
index d5763d8de..a903ddd49 100644
--- a/tasks/toolchains/openwrt.rake
+++ b/tasks/toolchains/openwrt.rake
@@ -11,7 +11,8 @@ MRuby::Toolchain.new(:openwrt) do |conf|
end
cc.option_include_path = %q[-I"%s"]
cc.option_define = '-D%s'
- cc.compile_options = %q[%{flags} -MMD -MF "%{outfile}.d" -o "%{outfile}" -c "%{infile}"]
+ cc.compile_options = '%{flags} -MMD -MF "%{outfile}.d" -o "%{outfile}" -c "%{infile}"'
+ cc.preprocess_options = '%{flags} -o "%{outfile}" -E -P "%{infile}"'
end
conf.linker do |linker|