Author: marvin
Date: Fri Mar 16 17:53:25 2012
New Revision: 1301669
URL: http://svn.apache.org/viewvc?rev=1301669&view=rev
Log:
Traverse dirs and clean more thoroughly.
During both compilation and cleanup phases for building CFC, recurse into
directory structures rather than search only one level or hit individual
files.
Add some files to cleanup which had been missed before.
Modified:
incubator/lucy/trunk/clownfish/ruby/Rakefile
Modified: incubator/lucy/trunk/clownfish/ruby/Rakefile
URL:
http://svn.apache.org/viewvc/incubator/lucy/trunk/clownfish/ruby/Rakefile?rev=1301669&r1=1301668&r2=1301669&view=diff
==============================================================================
--- incubator/lucy/trunk/clownfish/ruby/Rakefile (original)
+++ incubator/lucy/trunk/clownfish/ruby/Rakefile Fri Mar 16 17:53:25 2012
@@ -34,7 +34,7 @@ end
desc "Build Clownfish"
task :clownfish => [:parse_y_files] do
- Dir.glob(File.join(CLOWNFISH_SRC_DIR, '*.c')).each do|c_file|
+ Dir.glob(File.join(CLOWNFISH_SRC_DIR, '**', '*.c')).each do|c_file|
obj_file = c_file.ext(rbconfig['OBJEXT'])
command = "#{cc_command} #{includes} #{extra_ccflags} -o #{obj_file} -c
#{c_file}"
puts command
@@ -45,6 +45,12 @@ task :clownfish => [:parse_y_files] do
Rake::Task['cfc_ext'].invoke
end
+# Clean up compiled object files.
+obj_glob = File.join(CLOWNFISH_SRC_DIR, '**', '*.' + rbconfig['OBJEXT'])
+Dir.glob(obj_glob).each do |file|
+ CLEAN.include(file);
+end
+
desc "Build CFC Ext"
task :cfc_ext => [:clownfish] do
Dir.chdir(RUBY_EXT_CFC) do
@@ -55,13 +61,22 @@ task :cfc_ext => [:clownfish] do
end
end
+# Clean up Ruby extension.
+Dir.glob(File.join('ext', '**', '*.' + rbconfig['OBJEXT'])).each do |file|
+ CLEAN.include(file);
+end
+Dir.glob(File.join('ext', '**', '*.' + rbconfig['DLEXT'])).each do |file|
+ CLEAN.include(file);
+end
+CLEAN.include(File.join('ext', 'Clownfish', 'Makefile'))
+
desc "Lemonize the y file"
task :parse_y_files => [:build_lemon] do
puts "Parsing y files"
- Dir.glob("#{CLOWNFISH_SRC_DIR}/*.y").each do |y_file|
- c_file = y_file.gsub(/\.y$/,'.c')
- h_file = y_file.gsub(/\.y$/,'.h')
- report_file = y_file.gsub(/\.y$/,'.out')
+ Dir.glob(File.join(CLOWNFISH_SRC_DIR, '**', '*.y')).each do |y_file|
+ c_file = y_file.ext('c')
+ h_file = y_file.ext('h')
+ report_file = y_file.ext('out')
command = File.join(LEMON_SRC_DIR,'lemon') + ' -c ' + y_file
puts command
if system(command).nil?
@@ -70,6 +85,13 @@ task :parse_y_files => [:build_lemon] do
end
end
+# Clean up after Lemonized files.
+Dir.glob(File.join(CLOWNFISH_SRC_DIR, '**', '*.y')).each do |y_file|
+ CLEAN.include(y_file.ext('c'))
+ CLEAN.include(y_file.ext('h'))
+ CLEAN.include(y_file.ext('out'))
+end
+
task :default => [:clownfish]
def cc_command
@@ -144,9 +166,4 @@ def run_make(dir, params)
chdir(current_dir) if dir
end
-CLEAN.include(File.join(CLOWNFISH_SRC_DIR, 'CFCParseHeader.out'))
-CLEAN.include(File.join(CLOWNFISH_SRC_DIR, 'CFCParseHeader.c'))
-CLEAN.include(File.join(CLOWNFISH_SRC_DIR, 'CFCParseHeader.h'))
-CLEAN.include(File.join(RUBY_EXT_CFC, 'CFC').ext(rbconfig['OBJEXT']))
-CLEAN.include(File.join(RUBY_EXT_CFC, 'CFC').ext(rbconfig['DLEXT']))