<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,7 +1,7 @@
 = Amalgalite Changelog
-== Version 
+== Version 0.10.0 
 
-=== Enhacnements 
+=== Enhancements 
 
 * Update to Sqlite 3.6.15
 ** fix errors returned by define_aggregate and define_function based upon 3.6.15 update</diff>
      <filename>HISTORY</filename>
    </modified>
    <modified>
      <diff>@@ -57,5 +57,8 @@ Rake.application.tasks.each do |t|
   if t.name =~ /:clobber/ then
     task :clobber =&gt; [t.name] 
   end 
+  if t.name =~ /:clean/ then
+    task :clean =&gt; [t.name]
+  end
 end
 </diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -25,6 +25,7 @@ Amalgalite::GEM_SPEC = Gem::Specification.new do |spec|
   spec.add_development_dependency(&quot;rake&quot;, &quot;~&gt; 0.8.4&quot;)
   spec.add_development_dependency(&quot;configuration&quot;, &quot;~&gt; 0.0.5&quot;)
   spec.add_development_dependency(&quot;rspec&quot;, &quot;~&gt; 1.2.2&quot;)
+  spec.add_development_dependency(&quot;rake-compiler&quot;, &quot;~&gt; 0.5.0&quot;)
 
   if ext_conf = Configuration.for_if_exist?(&quot;extension&quot;) then
     spec.extensions &lt;&lt;  ext_conf.configs
@@ -51,6 +52,5 @@ end
 Amalgalite::GEM_SPEC_WIN = Amalgalite::GEM_SPEC.clone
 Amalgalite::GEM_SPEC_WIN.platform = ::Gem::Platform.new( &quot;i386-mswin32_60&quot; )
 Amalgalite::GEM_SPEC_WIN.extensions = []
-Amalgalite::GEM_SPEC_WIN.files +=  [&quot;lib/amalgalite3.so&quot;]
 
 Amalgalite::SPECS = [ Amalgalite::GEM_SPEC, Amalgalite::GEM_SPEC_WIN ]</diff>
      <filename>gemspec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -17,11 +17,11 @@ namespace :announce do
       mail.puts
       mail.puts info[:title]
       mail.puts
-      mail.puts &quot;    #{info[:urls]}&quot;
-      mail.puts
       mail.puts &quot;{{ Release notes for Version #{Amalgalite::VERSION} }}&quot;
-      mail.puts 
+      mail.puts
       mail.puts info[:release_notes]
+      mail.puts 
+      mail.puts &quot;    #{info[:urls]}&quot;
       mail.puts
       mail.puts &quot;=== Installation&quot;
       mail.puts</diff>
      <filename>tasks/announce.rake</filename>
    </modified>
    <modified>
      <diff>@@ -27,7 +27,7 @@ Configuration.for('packaging') {
   proj_conf = Configuration.for('project')
   files {
     bin       FileList[&quot;bin/*&quot;]
-    ext       FileList[&quot;ext/*.{c,h,rb}&quot;]
+    ext       FileList[&quot;ext/amalgalite/*.{c,h,rb}&quot;]
     examples  FileList[&quot;examples/*&quot;]
     lib       FileList[&quot;lib/**/*.rb&quot;]
     test      FileList[&quot;spec/**/*.rb&quot;, &quot;test/**/*.rb&quot;]
@@ -91,8 +91,8 @@ Configuration.for('rdoc') {
 # Extensions
 #-----------------------------------------------------------------------
 Configuration.for('extension') {
-  #configs   Configuration.for('packaging').files.ext.find_all { |x| %w[ mkrf_conf.rb extconf.rb ].include?(File.basename(x)) }
   configs   Configuration.for('packaging').files.ext.find_all { |x| %w[ extconf.rb ].include?(File.basename(x)) }
+  cross_rbconfig YAML.load_file( File.expand_path(&quot;~/.rake-compiler/config.yml&quot;))
 }
 
 #-----------------------------------------------------------------------</diff>
      <filename>tasks/config.rb</filename>
    </modified>
    <modified>
      <diff>@@ -31,23 +31,37 @@ if pkg_config = Configuration.for_if_exist?(&quot;packaging&quot;) then
       puts Amalgalite::GEM_SPEC.to_ruby
     end
 
+    desc &quot;dump gemspec for win&quot;
+    task :gemspec_win do
+      puts Hitimes::GEM_SPEC_WIN.to_ruby
+    end
+
     desc &quot;reinstall gem&quot;
     task :reinstall =&gt; [:uninstall, :repackage, :install]
 
-    desc &quot;package the windows gem&quot;
-    task :package_win =&gt; &quot;ext:build_win&quot; do
-      cp &quot;ext/amalgalite3.so&quot;, &quot;lib&quot;, :verbose =&gt; true
-      Gem::Builder.new( Amalgalite::GEM_SPEC_WIN ).build
+    desc &quot;package up a windows gem&quot;
+    task :package_win =&gt; :clean do
+      Configuration.for(&quot;extension&quot;).cross_rbconfig.keys.each do |rbconfig|
+        v = rbconfig.split(&quot;-&quot;).last
+        s = v.sub(/\.\d$/,'')
+        sh &quot;rake ext:build_win-#{v}&quot;
+        mkdir_p &quot;lib/amalgalite/#{s}&quot;, :verbose =&gt; true
+        cp &quot;ext/amalgalite/amalgalite3.so&quot;, &quot;lib/amalgalite/#{s}/&quot;, :verbose =&gt; true
+      end
+
+      Amalgalite::GEM_SPEC_WIN.files += FileList[&quot;lib/amalgalite/{1.8,1.9}/**.{dll,so}&quot;]
+      Gem::Builder.new( Amalgalite::GEM_SPEC_WIN ).build 
+      mkdir &quot;pkg&quot; unless File.directory?( 'pkg' )
       mv Dir[&quot;*.gem&quot;].first, &quot;pkg&quot;
     end
 
     desc &quot;distribute copiously&quot;
     task :copious =&gt; [:package, :package_win] do
-        gems = Amalgalite::SPECS.collect { |s| &quot;#{s.full_name}.gem&quot; }
-        Rake::SshFilePublisher.new('jeremy@copiousfreetime.org',
+      gems = Amalgalite::SPECS.collect { |s| &quot;#{s.full_name}.gem&quot; }
+      Rake::SshFilePublisher.new('jeremy@copiousfreetime.org',
                                '/var/www/vhosts/www.copiousfreetime.org/htdocs/gems/gems',
                                'pkg', *gems).upload
-        sh &quot;ssh jeremy@copiousfreetime.org rake -f /var/www/vhosts/www.copiousfreetime.org/htdocs/gems/Rakefile&quot;
+      sh &quot;ssh jeremy@copiousfreetime.org rake -f /var/www/vhosts/www.copiousfreetime.org/htdocs/gems/Rakefile&quot;
     end
- end
+  end
 end</diff>
      <filename>tasks/distribution.rake</filename>
    </modified>
    <modified>
      <diff>@@ -36,33 +36,35 @@ if ext_config = Configuration.for_if_exist?('extension') then
       end
     end
 
-    desc &quot;Build the extensions for windows&quot;
-    task :build_win =&gt; :clobber do
-      ext_config.configs.each do |extension|
-        path = Pathname.new( extension )
+    def build_win( version = &quot;1.8.6&quot; )
+      ext_config = Configuration.for(&quot;extension&quot;)
+      rbconfig = ext_config.cross_rbconfig[&quot;rbconfig-#{version}&quot;]
+      raise ArgumentError, &quot;No cross compiler for version #{version}, we have #{ext_config.cross_rbconfig.keys.join(&quot;,&quot;)}&quot; unless rbconfig
+      ruby_exe = if version =~ /1\.8/ then
+                   &quot;ruby&quot;
+                 else
+                   &quot;ruby1.9&quot;
+                 end
+      Amalgalite::GEM_SPEC.extensions.each do |extension|
+        path = Pathname.new(extension)
         parts = path.split
         conf = parts.last
-        mingw_rbconfig = path.dirname.parent.realpath + &quot;rbconfig-mingw.rb&quot;
-        Dir.chdir( path.dirname ) do |d|
-          cp mingw_rbconfig, &quot;rbconfig.rb&quot;
-          sh &quot;ruby -I. extconf.rb&quot;
+        Dir.chdir(path.dirname) do |d| 
+          cp &quot;#{rbconfig}&quot;, &quot;rbconfig.rb&quot;
+          sh &quot;#{ruby_exe} -I. extconf.rb&quot;
           sh &quot;make&quot;
-          rm_f &quot;rbconfig.rb&quot;
         end
       end
     end
 
-    desc &quot;Build the extension for ruby1.9&quot;
-    task :build19 =&gt; :clobber do
-      ext_config.configs.each do |extension|
-        path = Pathname.new( extension )
-        parts = path.split
-        conf = parts.last
-        Dir.chdir( path.dirname ) do |d|
-          sh &quot;ruby1.9 -I. extconf.rb&quot;
-          sh &quot;make&quot;
-        end
- 
+    win_builds = []
+    ext_config.cross_rbconfig.keys.each do |v|
+      s = v.split(&quot;-&quot;).last
+      desc &quot;Build the extension for windows version #{s}&quot;
+      win_bname = &quot;build_win-#{s}&quot;
+      win_builds &lt;&lt; win_bname
+      task win_bname =&gt; :clean do
+        build_win( s )
       end
     end
 
@@ -72,8 +74,9 @@ if ext_config = Configuration.for_if_exist?('extension') then
         parts = path.split
         conf  = parts.last
         Dir.chdir(path.dirname) do |d| 
-          #sh &quot;rake clean&quot;
-          sh &quot;make clean&quot;
+          if File.exist?( &quot;Makfeile&quot; ) then
+            sh &quot;make clean&quot;
+          end
           rm_f &quot;rbconfig.rb&quot;
         end
       end
@@ -85,7 +88,6 @@ if ext_config = Configuration.for_if_exist?('extension') then
         parts = path.split
         conf  = parts.last
         Dir.chdir(path.dirname) do |d| 
-          #sh &quot;rake clobber&quot;
           if File.exist?( &quot;Makefile&quot;) then
             sh &quot;make distclean&quot;
           end</diff>
      <filename>tasks/extension.rake</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>f74546c24b85712a36a6b4c0d92c50969bff23b0</id>
    </parent>
  </parents>
  <author>
    <name>Jeremy Hinegardner</name>
    <email>jeremy@hinegardner.org</email>
  </author>
  <url>http://github.com/copiousfreetime/amalgalite/commit/d3d618051e054d801e3d2d66b8f0fd95272977fb</url>
  <id>d3d618051e054d801e3d2d66b8f0fd95272977fb</id>
  <committed-date>2009-06-28T17:38:14-07:00</committed-date>
  <authored-date>2009-06-28T17:38:14-07:00</authored-date>
  <message>moving to fat binary packaging</message>
  <tree>4ca7a9ad464f7afe93d3ccf4ae95b101a19d87b6</tree>
  <committer>
    <name>Jeremy Hinegardner</name>
    <email>jeremy@hinegardner.org</email>
  </committer>
</commit>
