[Groonga-commit] groonga/groonga at c9f862a [master] mruby: extract mruby build code to Ruby to share

Back to archive index

Kouhei Sutou null+****@clear*****
Thu Mar 5 00:24:08 JST 2015


Kouhei Sutou	2015-03-05 00:24:08 +0900 (Thu, 05 Mar 2015)

  New Revision: c9f862aa9eb0bae9f615db03e55101619616a9c2
  https://github.com/groonga/groonga/commit/c9f862aa9eb0bae9f615db03e55101619616a9c2

  Message:
    mruby: extract mruby build code to Ruby to share

  Added files:
    vendor/mruby/mruby_build.rb
  Modified files:
    vendor/mruby/Makefile.am

  Modified: vendor/mruby/Makefile.am (+6 -19)
===================================================================
--- vendor/mruby/Makefile.am    2015-03-05 00:23:24 +0900 (5b13703)
+++ vendor/mruby/Makefile.am    2015-03-05 00:24:08 +0900 (4e8e6d4)
@@ -1,5 +1,6 @@
 EXTRA_DIST =					\
 	build_config.rb				\
+	mruby_build.rb				\
 	mruby_build.timestamp
 
 DEFAULT_INCLUDES =				\
@@ -36,26 +37,12 @@ mruby-io/src/mruby_io_gem.c: mruby_build.timestamp
 
 MRUBY_CONFIG = $(abs_srcdir)/build_config.rb
 MRUBY_BUILD_DIR = $(abs_top_builddir)/vendor/mruby-build
-MRUBY_ONIG_REGEXP_DIR = $(MRUBY_BUILD_DIR)/mrbgems/mruby-onig-regexp
-MRUBY_IO_DIR = $(MRUBY_BUILD_DIR)/mrbgems/mruby-io
 mruby_build.timestamp: build_config.rb
-	rm -rf $(MRUBY_BUILD_DIR)
-	cd $(srcdir)/../mruby-source &&		\
-	  $(RUBY) minirake			\
-	    MRUBY_BUILD_DIR=$(MRUBY_BUILD_DIR)	\
-	    MRUBY_CONFIG=$(MRUBY_CONFIG)
-	touch $@
-	cp $(MRUBY_BUILD_DIR)/host/src/y.tab.c parse.c
-	cp $(MRUBY_BUILD_DIR)/host/mrblib/mrblib.c ./
-	(							\
-	  cat $(MRUBY_BUILD_DIR)/host/mrbgems/gem_init.c;	\
-	  cat $(MRUBY_BUILD_DIR)/host/mrbgems/*/gem_init.c;	\
-	) > mrbgems_init.c
-	$(MKDIR_P) mruby-onig-regexp/
-	cp -r $(MRUBY_ONIG_REGEXP_DIR)/src/ mruby-onig-regexp/
-	$(MKDIR_P) mruby-io/
-	cp -r $(MRUBY_IO_DIR)/include/ mruby-io/
-	cp -r $(MRUBY_IO_DIR)/src/ mruby-io/
+	$(RUBY) "$(srcdir)/mruby_build.rb"	\
+	  "$(srcdir)/build_config.rb"		\
+	  "$(srcdir)/../mruby-source"		\
+	  "$(builddir)/../mruby-build"		\
+	  "mruby_build.timestamp"
 
 CLEANFILES = *.gcno *gcda
 MAINTAINERCLEANFILES = mruby-build.timestamp

  Added: vendor/mruby/mruby_build.rb (+45 -0) 100755
===================================================================
--- /dev/null
+++ vendor/mruby/mruby_build.rb    2015-03-05 00:24:08 +0900 (8eb89a9)
@@ -0,0 +1,45 @@
+#!/usr/bin/env ruby
+
+if ARGV.size != 4
+  puts("Usage: #{$0} BUILD_COFNIG.RB MRUBY_SOURCE_DIR MRUBY_BUILD_DIR TIMESTAMP_FILE")
+  exit(false)
+end
+
+require "rbconfig"
+require "fileutils"
+
+build_config_rb = File.expand_path(ARGV.shift)
+mruby_source_dir = ARGV.shift
+mruby_build_dir = File.expand_path(ARGV.shift)
+timestamp_file = File.expand_path(ARGV.shift)
+
+FileUtils.rm_rf(mruby_build_dir)
+
+Dir.chdir(mruby_source_dir) do
+  unless system(RbConfig.ruby,
+                "minirake",
+                "MRUBY_CONFIG=#{build_config_rb}",
+                "MRUBY_BUILD_DIR=#{mruby_build_dir}")
+    exit(false)
+  end
+end
+
+FileUtils.touch(timestamp_file)
+
+FileUtils.cp("#{mruby_build_dir}/host/src/y.tab.c", "parse.c")
+FileUtils.cp("#{mruby_build_dir}/host/mrblib/mrblib.c", "./")
+
+File.open("mrbgems_init.c", "w") do |mrbgems_init|
+  Dir.glob("#{mruby_build_dir}/host/mrbgems/**/gem_init.c") do |gem_init|
+    mrbgems_init.puts(File.read(gem_init))
+  end
+end
+
+mruby_onig_regexp_dir = "#{mruby_build_dir}/mrbgems/mruby-onig-regexp"
+FileUtils.mkdir_p("mruby-onig-regexp/")
+FileUtils.cp_r("#{mruby_onig_regexp_dir}/src/", "mruby-onig-regexp/")
+
+mruby_io_dir = "#{mruby_build_dir}/mrbgems/mruby-io"
+FileUtils.mkdir_p("mruby-io/")
+FileUtils.cp_r("#{mruby_io_dir}/include/", "mruby-io/")
+FileUtils.cp_r("#{mruby_io_dir}/src/", "mruby-io/")
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index