diff --git a/third-party/Makefile.am b/third-party/Makefile.am index 59252362..4cdfb400 100644 --- a/third-party/Makefile.am +++ b/third-party/Makefile.am @@ -54,7 +54,10 @@ EXTRA_DIST += build_config.rb mruby/* .PHONY: all-local clean mruby mruby: - MRUBY_CONFIG="${srcdir}/build_config.rb" \ + mkdir -p "${abs_builddir}/mruby/build" + diff "${srcdir}/build_config.rb" "${abs_builddir}/mruby/build/build_config.rb" >& /dev/null || \ + cp "${srcdir}/build_config.rb" "${abs_builddir}/mruby/build" + MRUBY_CONFIG="${abs_builddir}/mruby/build/build_config.rb" \ BUILD_DIR="${abs_builddir}/mruby/build" \ INSTALL_DIR="${abs_builddir}/mruby/build/install/bin" \ CC="${CC}" CXX="$(firstword $(CXX))" LD="${LD}" \ @@ -66,7 +69,7 @@ mruby: all-local: mruby clean-local: - MRUBY_CONFIG="${srcdir}/build_config.rb" \ + MRUBY_CONFIG="${abs_builddir}/mruby/build/build_config.rb" \ BUILD_DIR="${abs_builddir}/mruby/build" \ "${srcdir}/mruby/minirake" -f "${srcdir}/mruby/Rakefile" clean diff --git a/third-party/build_config.rb b/third-party/build_config.rb index 706e8741..9e66958c 100644 --- a/third-party/build_config.rb +++ b/third-party/build_config.rb @@ -1,6 +1,6 @@ MRuby::Build.new do |conf| - # TODO use same compilers configured in configure script - toolchain :clang + toolchain :clang if ENV['CC'].include? "clang" + toolchain :gcc if ENV['CC'].include? "gcc" # C++ project needs this. Without this, mruby exception does not # properly destory C++ object allocated on stack.