You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by ma...@apache.org on 2012/06/20 02:05:16 UTC

[lucy-commits] svn commit: r1351904 - /lucy/trunk/ruby/Rakefile

Author: marvin
Date: Wed Jun 20 00:05:16 2012
New Revision: 1351904

URL: http://svn.apache.org/viewvc?rev=1351904&view=rev
Log:
Use meld version of charmonizer.

Modified:
    lucy/trunk/ruby/Rakefile

Modified: lucy/trunk/ruby/Rakefile
URL: http://svn.apache.org/viewvc/lucy/trunk/ruby/Rakefile?rev=1351904&r1=1351903&r2=1351904&view=diff
==============================================================================
--- lucy/trunk/ruby/Rakefile (original)
+++ lucy/trunk/ruby/Rakefile Wed Jun 20 00:05:16 2012
@@ -82,7 +82,8 @@ IS_DISTRO_NOT_DEVEL  = File.directory?('
 AUTOGEN_DIR          = "autogen"
 BASE_DIR             = File.absolute_path(IS_DISTRO_NOT_DEVEL ? '.' : '..')
 CHARMONIZER_ORIG_DIR = File.join(BASE_DIR, "charmonizer")
-CHARMONIZE_EXE_PATH  = exe_path(CHARMONIZER_ORIG_DIR, 'charmonize')
+CHARMONIZE_C_PATH    = File.absolute_path('charmonize.c')
+CHARMONIZE_EXE_PATH  = File.absolute_path(exe_path('charmonize'))
 CLOWNFISH_PATH       = File.join(BASE_DIR,"clownfish","ruby")
 CHARMONY_PATH        = "charmony.h"
 CORE_SOURCE_DIR      = File.join(BASE_DIR, "core")
@@ -111,8 +112,23 @@ end
 desc "Build the charmonize executable"
 task :charmonize do
   puts "Building #{CHARMONIZE_EXE_PATH}...\n"
-  run_make(CHARMONIZER_ORIG_DIR, [])
+  meld_c = File.absolute_path("charmonize.c")
+  charmonize_main = File.join(CHARMONIZER_ORIG_DIR, 'charmonize.c')
+  run_make_args = [ "meld", "FILES=#{charmonize_main}", "OUT=#{meld_c}" ]
+  run_make(CHARMONIZER_ORIG_DIR, run_make_args)
+
+  if !uptodate?(CHARMONIZE_EXE_PATH, [meld_c])
+    outflag = cc_command.match(/cl\b/) ? "/Fe" : "-o "
+    command = "#{cc_command} #{outflag}#{CHARMONIZE_EXE_PATH} #{meld_c}"
+    puts command
+    success = system(command)
+    if !success
+      raise "Failed to write charmony.h"
+    end
+  end
 end
+CLEAN.include(CHARMONIZE_C_PATH)
+CLEAN.include(CHARMONIZE_EXE_PATH)
 
 desc "Run the charmonize executable, creating the charmony.h file"
 task :charmony => [:charmonize] do
@@ -128,6 +144,7 @@ task :charmony => [:charmonize] do
     if ENV["CHARM_VALGRIND"]
       command.unshift("valgrind", "--leak-check=yes")
     end
+    puts command.join(" ")
     success = system(*command);
     if !success
       raise "Failed to write charmony.h"