Repository: lucy-clownfish Updated Branches: refs/heads/master e57c502a8 -> 157cad1bf
Misc fixes to Ruby build Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/157cad1b Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/157cad1b Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/157cad1b Branch: refs/heads/master Commit: 157cad1bf72ca44c8dee62f1f2a2d37d32eea00e Parents: e57c502 Author: Nick Wellnhofer <[email protected]> Authored: Fri Jul 25 13:58:34 2014 +0200 Committer: Nick Wellnhofer <[email protected]> Committed: Fri Jul 25 13:58:34 2014 +0200 ---------------------------------------------------------------------- compiler/ruby/.gitignore | 5 +++++ compiler/ruby/Rakefile | 28 +++++----------------------- compiler/ruby/ext/Clownfish/CFC.c | 2 +- compiler/ruby/ext/Clownfish/extconf.rb | 3 ++- runtime/ruby/.gitignore | 6 ++++++ runtime/ruby/Rakefile | 23 +++-------------------- runtime/ruby/Rakefile.common | 8 ++++++++ runtime/ruby/ext/Clownfish.c | 1 - 8 files changed, 30 insertions(+), 46 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/157cad1b/compiler/ruby/.gitignore ---------------------------------------------------------------------- diff --git a/compiler/ruby/.gitignore b/compiler/ruby/.gitignore new file mode 100644 index 0000000..d5527e5 --- /dev/null +++ b/compiler/ruby/.gitignore @@ -0,0 +1,5 @@ +/Charmony.rb +/charmonizer +/charmony.h +/ext/Clownfish/CFC.bundle +/ext/Clownfish/Makefile http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/157cad1b/compiler/ruby/Rakefile ---------------------------------------------------------------------- diff --git a/compiler/ruby/Rakefile b/compiler/ruby/Rakefile index 0811396..82771b8 100644 --- a/compiler/ruby/Rakefile +++ b/compiler/ruby/Rakefile @@ -35,18 +35,17 @@ CLOWNFISH_RUBY_DIR = File.absolute_path('.') CLOWNFISH_INCLUDE_DIR = File.join(CLOWNFISH_RUBY_DIR,'..','include') CLOWNFISH_RUNTIME = File.join('..','..','runtime','ruby') CLOWNFISH_SRC_DIR = File.join(CLOWNFISH_RUBY_DIR,'..','src') -LEMON_SRC_DIR = File.join('..','..','..','lemon') +LEMON_SRC_DIR = File.join('..','..','lemon') RUBY_EXT_CFC = File.join('.','ext','Clownfish') - desc "Build lemon" -task :build_lemon => [:build_charmonizer_tests] do +task :build_lemon do puts "Building lemon" run_make(LEMON_SRC_DIR,[]) end desc "Build Clownfish" -task :clownfish => [:parse_y_files] do +task :clownfish => [:charmony, :parse_y_files] do Dir.glob(File.join(CLOWNFISH_SRC_DIR, '**', '*.c')).each do|c_file| obj_file = c_file.ext(rbconfig['OBJEXT']) next if uptodate?(obj_file, [c_file]) @@ -110,23 +109,6 @@ task :parse_y_files => [:build_lemon] do puts "Done." end -desc "Building Charmonizer Tests" -task :build_charmonizer_tests => [:charmony] do - puts "Building Charmonizer Tests" - flags = [ - '-fno-common', - '-DFCRUBY', - '-fno-strict-aliasing', - '-pipe', - '-fstack-protector', - '-std=gnu99', - '-D_GNU_SOURCE', - '-I' + Dir.pwd - ].join(" ").gsub(/"/,'\"') - - run_make( CHARMONIZER_ORIG_DIR, [ "DEFS=#{flags}", "tests"]) -end - desc "Build and run charmonizer, creating charmony.h and charmony.rb" task :charmony do # Compile charmonizer executable. @@ -148,7 +130,7 @@ task :charmony do # Prepare arguments to charmonizer. command = [ CHARMONIZER_EXE_PATH, - '--cc=' + quotify(cc_command), + '--cc=' + cc_command, '--enable-c', '--enable-ruby', '--', @@ -161,7 +143,7 @@ task :charmony do # Run charmonizer. puts command.join(" ") if !system(*command) - raise "Failed to run #{CHARMONIZER_EXE_PATH}: " + $? + raise "Failed to run #{CHARMONIZER_EXE_PATH}: " + $?.to_s end end CLEAN.include(CHARMONIZER_EXE_PATH) http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/157cad1b/compiler/ruby/ext/Clownfish/CFC.c ---------------------------------------------------------------------- diff --git a/compiler/ruby/ext/Clownfish/CFC.c b/compiler/ruby/ext/Clownfish/CFC.c index 4910ebf..3ade99e 100644 --- a/compiler/ruby/ext/Clownfish/CFC.c +++ b/compiler/ruby/ext/Clownfish/CFC.c @@ -88,7 +88,7 @@ S_CFC_Binding_Ruby_Init(VALUE self_rb, VALUE params) { VALUE header = rb_hash_aref(params, ID2SYM(rb_intern("header"))); VALUE footer = rb_hash_aref(params, ID2SYM(rb_intern("footer"))); - parcel_obj = CFCParcel_new(StringValuePtr(parcel), NULL, NULL); + parcel_obj = CFCParcel_new(StringValuePtr(parcel), NULL, NULL, 0); Data_Get_Struct(hierarchy, CFCHierarchy, hierarchy_obj); Data_Get_Struct(self_rb, CFCRuby, self); http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/157cad1b/compiler/ruby/ext/Clownfish/extconf.rb ---------------------------------------------------------------------- diff --git a/compiler/ruby/ext/Clownfish/extconf.rb b/compiler/ruby/ext/Clownfish/extconf.rb index e644bcb..3a751fa 100644 --- a/compiler/ruby/ext/Clownfish/extconf.rb +++ b/compiler/ruby/ext/Clownfish/extconf.rb @@ -16,10 +16,11 @@ require 'mkmf' require 'rbconfig' +CLOWNFISH_RUBY_DIR = File.join('..','..') CLOWNFISH_INCLUDE_DIR = File.join('..','..','..','include') CLOWNFISH_SRC_DIR = File.join('..','..','..','src') CLOWNFISH_RUNTIME = File.join('..','..','..','..','runtime','ruby') -$CFLAGS = "-I#{CLOWNFISH_INCLUDE_DIR} -I#{CLOWNFISH_SRC_DIR} -I#{CLOWNFISH_RUNTIME}" +$CFLAGS = "-I#{CLOWNFISH_RUBY_DIR} -I#{CLOWNFISH_INCLUDE_DIR} -I#{CLOWNFISH_SRC_DIR} -I#{CLOWNFISH_RUNTIME}" $objs = ['CFC.' + RbConfig::CONFIG['OBJEXT']] obj_glob = File.join(CLOWNFISH_SRC_DIR, '*.' + RbConfig::CONFIG['OBJEXT']) Dir.glob(obj_glob).each do|o| http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/157cad1b/runtime/ruby/.gitignore ---------------------------------------------------------------------- diff --git a/runtime/ruby/.gitignore b/runtime/ruby/.gitignore new file mode 100644 index 0000000..17ff39b --- /dev/null +++ b/runtime/ruby/.gitignore @@ -0,0 +1,6 @@ +/Charmony.rb +/autogen/ +/charmonizer +/charmony.h +/lib/Bind.bundle +/tmp/ http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/157cad1b/runtime/ruby/Rakefile ---------------------------------------------------------------------- diff --git a/runtime/ruby/Rakefile b/runtime/ruby/Rakefile index f9a821a..b82e733 100644 --- a/runtime/ruby/Rakefile +++ b/runtime/ruby/Rakefile @@ -43,7 +43,7 @@ Rake::ExtensionTask.new do |ext| end desc "Build Clownfish" -task :build_clownfish => [:build_charmonizer_tests] do +task :build_clownfish => [:charmony] do puts "Building Clownfish" old_dir = Dir.pwd chdir(CFC_DIR); @@ -84,23 +84,6 @@ task :build_clownfish => [:build_charmonizer_tests] do end -desc "Building Charmonizer Tests" -task :build_charmonizer_tests => [:charmony] do - puts "Building Charmonizer Tests" - flags = [ - '-fno-common', - '-DFCRUBY', - '-fno-strict-aliasing', - '-pipe', - '-fstack-protector', - '-std=gnu99', - '-D_GNU_SOURCE', - '-I' + Dir.pwd - ].join(" ").gsub(/"/,'\"') - - run_make( CHARMONIZER_ORIG_DIR, [ "DEFS=#{flags}", "tests"]) -end - desc "Build and run charmonizer, creating charmony.h and charmony.rb" task :charmony do # Compile charmonizer executable. @@ -122,7 +105,7 @@ task :charmony do # Prepare arguments to charmonizer. command = [ CHARMONIZER_EXE_PATH, - '--cc=' + quotify(cc_command), + '--cc=' + cc_command, '--enable-c', '--enable-ruby', '--', @@ -135,7 +118,7 @@ task :charmony do # Run charmonizer. puts command.join(" ") if !system(*command) - raise "Failed to run #{CHARMONIZER_EXE_PATH}: " + $? + raise "Failed to run #{CHARMONIZER_EXE_PATH}: " + $?.to_s end end http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/157cad1b/runtime/ruby/Rakefile.common ---------------------------------------------------------------------- diff --git a/runtime/ruby/Rakefile.common b/runtime/ruby/Rakefile.common index 28051eb..cca6c09 100644 --- a/runtime/ruby/Rakefile.common +++ b/runtime/ruby/Rakefile.common @@ -22,6 +22,10 @@ end def all_ccflags ccflags = '-DCFCRUBY ' + if defined?(rbconfig["ARCH_FLAG"]) + ccflags += rbconfig['ARCH_FLAG'] + ' ' + end + if defined?(rbconfig["CFLAGS"]) ccflags += rbconfig['CFLAGS'] + ' ' end @@ -58,6 +62,10 @@ end def extra_ccflags ccflags = '-DCFCRUBY ' + if defined?(rbconfig["ARCH_FLAG"]) + ccflags += rbconfig['ARCH_FLAG'] + ' ' + end + if defined?(rbconfig["CFLAGS"]) ccflags += rbconfig['CFLAGS'] + ' ' end http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/157cad1b/runtime/ruby/ext/Clownfish.c ---------------------------------------------------------------------- diff --git a/runtime/ruby/ext/Clownfish.c b/runtime/ruby/ext/Clownfish.c index 72a703b..972d2db 100644 --- a/runtime/ruby/ext/Clownfish.c +++ b/runtime/ruby/ext/Clownfish.c @@ -16,7 +16,6 @@ #include "ruby.h" -#include "Clownfish/Host.h" #include "Clownfish/Util/Memory.h" #include "Clownfish/Util/StringHelper.h" #include "Clownfish/String.h"
