<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -14,7 +14,13 @@ Dir['tasks/**/*.rake'].each { |rake| load rake }
 
 task :default =&gt; :spec
 
-Rake::ExtensionTask.new('thin_parser', Thin::GemSpec)
+Rake::ExtensionTask.new('thin_parser', Thin::GemSpec) do |ext|
+  ext.cross_compile = true                # enable cross compilation (requires cross compile toolchain)
+  ext.cross_platform = 'i386-mswin32'     # forces the Windows platform instead of the default one
+                                          # configure options only for cross compile
+end
+
+CLEAN.include %w(**/*.{o,bundle,jar,so,obj,pdb,lib,def,exp,log} ext/*/Makefile ext/*/conftest.dSYM)
 
 desc &quot;Compile the Ragel state machines&quot;
 task :ragel do
@@ -25,3 +31,6 @@ task :ragel do
     raise &quot;Failed to compile Ragel state machine&quot; unless File.exist? target
   end
 end
+
+desc &quot;Release version #{Thin::VERSION::STRING} gems to rubyforge&quot;
+task :release =&gt; [:clean, :cross, :native, :gem, :tag, &quot;gem:upload&quot;]
\ No newline at end of file</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 require 'rake/gempackagetask'
 require 'yaml'
 
-WIN_SUFFIX = ENV['WIN_SUFFIX'] || 'i386-mswin32'
+WIN_SUFFIX = ENV['WIN_SUFFIX'] || 'x86-mswin32'
 
 task :clean =&gt; :clobber_package
 
@@ -64,19 +64,11 @@ namespace :gem do
     File.open(&quot;thin.gemspec&quot;, 'w') { |f| f &lt;&lt; YAML.dump(Thin::GemSpec) }
   end
   
-  namespace :upload do
-    desc 'Upload the precompiled win32 gem to code.macournoyer.com'
-    task :win do
-      upload &quot;pkg/#{Thin::GemSpec.full_name}-#{WIN_SUFFIX}.gem&quot;, 'gems'
-      system 'ssh macournoyer@code.macournoyer.com &quot;cd code.macournoyer.com &amp;&amp; gem generate_index&quot;'
-    end    
-
-    desc 'Upload gems (ruby &amp; win32) to rubyforge.org'
-    task :rubyforge =&gt; :gem do
-      sh 'rubyforge login'
-      sh &quot;rubyforge add_release thin thin #{Thin::VERSION::STRING} pkg/#{Thin::GemSpec.full_name}.gem&quot;
-      sh &quot;rubyforge add_file thin thin #{Thin::VERSION::STRING} pkg/#{Thin::GemSpec.full_name}.gem&quot;
-      sh &quot;rubyforge add_file thin thin #{Thin::VERSION::STRING} pkg/#{Thin::GemSpec.full_name}-#{WIN_SUFFIX}.gem&quot;
-    end
+  desc 'Upload gems (ruby &amp; win32) to rubyforge.org'
+  task :upload =&gt; :gem do
+    sh 'rubyforge login'
+    sh &quot;rubyforge add_release thin thin #{Thin::VERSION::STRING} pkg/#{Thin::GemSpec.full_name}.gem&quot;
+    sh &quot;rubyforge add_file thin thin #{Thin::VERSION::STRING} pkg/#{Thin::GemSpec.full_name}.gem&quot;
+    sh &quot;rubyforge add_file thin thin #{Thin::VERSION::STRING} pkg/#{Thin::GemSpec.full_name}-#{WIN_SUFFIX}.gem&quot;
   end
 end</diff>
      <filename>tasks/gem.rake</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>9d4f025692e1668d6566725ecc91ec9d0036f9e9</id>
    </parent>
  </parents>
  <author>
    <name>macournoyer</name>
    <email>macournoyer@gmail.com</email>
  </author>
  <url>http://github.com/macournoyer/thin/commit/4ad001ceab5f8e2142e0a66906889e32263880f0</url>
  <id>4ad001ceab5f8e2142e0a66906889e32263880f0</id>
  <committed-date>2009-09-05T19:47:52-07:00</committed-date>
  <authored-date>2009-09-05T19:47:52-07:00</authored-date>
  <message>Make cross compiling to win32 work under OS X, w00t!
Automate release process some more.</message>
  <tree>5be91b83d43bda98588caacff73b7a3a6c54c55f</tree>
  <committer>
    <name>macournoyer</name>
    <email>macournoyer@gmail.com</email>
  </committer>
</commit>
