diff --git a/Rakefile b/Rakefile index 484c88fbdfc0cefb4449ff9520c3cd7cf9e5b485..2e068315f4e5135f8d24ef244dcaeb547a74a43d 100755 --- a/Rakefile +++ b/Rakefile @@ -92,10 +92,6 @@ end # c:/ruby-1.8.6-p383-preview2/devkit/msys/1.0.11/usr/local/share/swig/1.3.22 # before running swig on MinGW. namespace :swig do - def wrapper_src_file_path(wrapper_src_file_name) - File.join("..", "ext", "fox16", wrapper_src_file_name) - end - def sed(wrapper_src_file_name) results = [] IO.readlines(wrapper_src_file_name).each do |line| @@ -114,20 +110,21 @@ namespace :swig do end def swig(swig_interface_file_name, wrapper_src_file_name) - system "#{SWIG} #{SWIGFLAGS} -o #{wrapper_src_file_path(wrapper_src_file_name)} #{swig_interface_file_name}" - sed wrapper_src_file_path(wrapper_src_file_name) + cmd = "#{SWIG} #{SWIGFLAGS} -o #{wrapper_src_file_name} #{swig_interface_file_name}" + puts cmd + system cmd + sed wrapper_src_file_name end task :swig_librb => ["ext/fox16/librb.c"] - file "ext/fox16/librb.c" do - Dir.chdir "swig-interfaces" do - File.open(wrapper_src_file_path("librb.c"), "w") do |io| - io.puts "#define SWIG_GLOBAL 1" - io.write(IO.read(File.join(SWIG_LIB, "ruby", "precommon.swg"))) - io.write(IO.read(File.join(SWIG_LIB, "common.swg"))) - io.write(IO.read(File.join(SWIG_LIB, "ruby", "rubyhead.swg"))) - io.write(IO.read(File.join(SWIG_LIB, "ruby", "rubydef.swg"))) - end + file "ext/fox16/librb.c" do |task| + puts "generate #{task.name}" + File.open(task.name, "w") do |io| + io.puts "#define SWIG_GLOBAL 1" + io.write(IO.read(File.join(SWIG_LIB, "ruby", "precommon.swg"))) + io.write(IO.read(File.join(SWIG_LIB, "common.swg"))) + io.write(IO.read(File.join(SWIG_LIB, "ruby", "rubyhead.swg"))) + io.write(IO.read(File.join(SWIG_LIB, "ruby", "rubydef.swg"))) end end @@ -140,10 +137,8 @@ namespace :swig do file cppfile_path => [ifile, 'macros.i', 'common.i', 'fxdefs.i', 'ruby-typemaps.i', 'markfuncs.i', 'exceptions.i', 'freefuncs.i', 'macros.i', 'handlers.i' - ].map{|f| File.join("swig-interfaces", f) } do - Dir.chdir "swig-interfaces" do - swig(ifile, cppfile) - end + ].map{|f| File.join("swig-interfaces", f) } do |task| + swig(File.join("swig-interfaces", ifile), cppfile_path) end end end @@ -181,9 +176,7 @@ namespace :fxruby do end def make_impl - Dir.chdir "ext/fox16" do - ruby "make_impl.rb" - end + ruby '-Cext/fox16', "make_impl.rb" end task :configure => [:scintilla, :setversions, :generate_kwargs_lib]