Changeset 934
- Timestamp:
- 12/29/07 01:41:59 (8 months ago)
- Files:
-
- branches/stable_1-0/Rakefile (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/stable_1-0/Rakefile
r836 r934 1 1 2 2 require 'rubygems' 3 gem 'echoe', '>=2. 6.4'3 gem 'echoe', '>=2.7.5' 4 4 require 'echoe' 5 FORCE_PURE = ENV['FORCE_PURE'] || false 5 6 6 7 e = Echoe.new("mongrel") do |p| 7 8 p.summary = "A small fast HTTP library and server that runs Rails, Camping, Nitro and Iowa apps." 8 9 p.author ="Zed A. Shaw" 9 p.clean_pattern = ['ext/http11/*.{bundle,so,o,obj,pdb,lib,def,exp}', ' ext/http11/Makefile', 'pkg', 'lib/*.bundle', '*.gem', 'site/output', '.config', 'lib/http11.jar', 'ext/http11_java/classes', 'coverage']10 p.rdoc_pattern = ['README', 'LICENSE', 'C OPYING', 'lib/**/*.rb', 'doc/**/*.rdoc']10 p.clean_pattern = ['ext/http11/*.{bundle,so,o,obj,pdb,lib,def,exp}', 'lib/*.{bundle,so,o,obj,pdb,lib,def,exp}', 'ext/http11/Makefile', 'pkg', 'lib/*.bundle', '*.gem', 'site/output', '.config', 'lib/http11.jar', 'ext/http11_java/classes', 'coverage'] 11 p.rdoc_pattern = ['README', 'LICENSE', 'CHANGELOG', 'COPYING', 'lib/**/*.rb', 'doc/**/*.rdoc'] 11 12 p.ignore_pattern = /^(pkg|site|projects|doc|log)|CVS|\.log/ 12 p.ruby_version = '>= 1.8.4' 13 p.dependencies = ['gem_plugin >=0.2.3', 'cgi_multipart_eof_fix >=2.4'] 14 13 p.ruby_version = '>=1.8.4' 14 p.dependencies = ['gem_plugin >=0.2.3'] 15 p.extension_pattern = nil 16 p.certificate_chain = ['~/p/configuration/gem_certificates/mongrel/mongrel-public_cert.pem', 17 '~/p/configuration/gem_certificates/evan_weaver-mongrel-public_cert.pem'] 18 15 19 p.need_tar_gz = false 16 20 p.need_tgz = true 17 21 18 case RUBY_PLATFORM 19 when /mswin/ 20 p.certificate_chain = ['~/gem_certificates/mongrel-public_cert.pem', 21 '~/gem_certificates/luislavena-mongrel-public_cert.pem'] 22 case RUBY_PLATFORM 23 when /mswin/ 24 p.certificate_chain = [ 25 '~/projects/gem_certificates/mongrel-public_cert.pem', 26 '~/projects/gem_certificates/luislavena-mongrel-public_cert.pem' 27 ] 28 when /java/ 29 else 30 p.extension_pattern = ["ext/**/extconf.rb"] 31 end 32 33 unless FORCE_PURE 34 p.eval = proc do 35 case RUBY_PLATFORM 36 when /mswin/ 37 self.files += ['lib/http11.so'] 38 self.platform = Gem::Platform::CURRENT 39 add_dependency('cgi_multipart_eof_fix', '>= 2.4') 40 when /java/ 41 self.files += ['lib/http11.jar'] 42 self.platform = 'jruby' 43 else 44 add_dependency('daemons', '>= 1.0.3') 45 add_dependency('fastthread', '>= 1.0.1') 46 add_dependency('cgi_multipart_eof_fix', '>= 2.4') 47 end 48 end 22 49 else 23 p.certificate_chain = ['~/p/configuration/gem_certificates/mongrel/mongrel-public_cert.pem', 24 '~/p/configuration/gem_certificates/evan_weaver-mongrel-public_cert.pem'] 25 end 26 27 p.eval = proc do 28 case RUBY_PLATFORM 29 when /mswin/ 30 extensions.clear 31 self.files += ['lib/http11.so'] 32 self.platform = Gem::Platform::WIN32 33 when /java/ 34 extensions.clear 35 self.files += ['lib/http11.jar'] 36 self.platform = 'jruby' 37 else 38 add_dependency('daemons', '>= 1.0.3') 39 add_dependency('fastthread', '>= 1.0.1') 40 end 41 end 42 50 p.extension_pattern = ["ext/**/extconf.rb"] 51 end 43 52 end 44 53 … … 61 70 end 62 71 63 #### XXX Hack around JRuby test/unit interaction problems 64 65 desc "Run each test suite in isolation on JRuby" 66 task :test_java do 67 e.test_pattern.each do |f| 68 sh "/opt/local/jruby/bin/jruby -w -Ilib:ext:bin:test -e 'require \"#{f}\"'" rescue nil 69 end 70 end 71 72 #### XXX Hack around RubyGems and Echoe for pre-compiled extensions. 72 #### Pre-compiled extensions for alternative platforms 73 73 74 74 def move_extensions 75 Dir["ext/**/*.#{Config::CONFIG['DLEXT']}"].each { |file| cpfile, "lib/" }76 end 77 78 def java_classpath_arg 75 Dir["ext/**/*.#{Config::CONFIG['DLEXT']}"].each { |file| mv file, "lib/" } 76 end 77 78 def java_classpath_arg 79 79 # A myriad of ways to discover the JRuby classpath 80 80 classpath = begin 81 require 'java' 81 require 'java' 82 82 # Already running in a JRuby JVM 83 83 Java::java.lang.System.getProperty('java.class.path') … … 92 92 filename = "lib/http11.so" 93 93 file filename do 94 Dir.chdir("ext/http11") do 94 Dir.chdir("ext/http11") do 95 95 ruby "extconf.rb" 96 96 system(PLATFORM =~ /mswin/ ? 'nmake' : 'make') 97 97 end 98 98 move_extensions 99 end 99 end 100 100 task :compile => [filename] 101 101 102 102 when /java/ 103 104 # Avoid JRuby in-process launching problem 105 begin 106 require 'jruby' 107 JRuby.runtime.instance_config.run_ruby_in_process = false 108 rescue LoadError 109 end 110 103 111 filename = "lib/http11.jar" 104 112 file filename do … … 108 116 sh "javac -target 1.4 -source 1.4 -d #{build_dir} #{java_classpath_arg} #{sources}" 109 117 sh "jar cf lib/http11.jar -C #{build_dir} ." 110 move_extensions 111 end 118 move_extensions 119 end 112 120 task :compile => [filename] 113 121 … … 119 127 targets.each do |target| 120 128 Dir.chdir "projects/#{project}" do 121 sh %{rake --trace #{target.to_s} } 129 unless RUBY_PLATFORM =~ /mswin/ 130 sh("rake #{target.to_s}") # --trace 131 end 122 132 end 123 133 end … … 133 143 sub_project("mongrel_console", :package) 134 144 sub_project("mongrel_cluster", :package) 135 sub_project("mongrel_service", :package) if RUBY_PLATFORM =~ /mswin/ 145 136 146 sh("rake java package") unless RUBY_PLATFORM =~ /java/ 147 148 # XXX Broken by RubyGems 0.9.5 149 # sub_project("mongrel_service", :package) if RUBY_PLATFORM =~ /mswin/ 137 150 # sh("rake mswin package") unless RUBY_PLATFORM =~ /mswin/ 138 151 end … … 151 164 sub_project("mongrel_upload_progress", :install) 152 165 sub_project("mongrel_console", :install) 153 sub_project("mongrel_cluster", :install) 166 sub_project("mongrel_cluster", :install) 154 167 sub_project("mongrel_service", :install) if RUBY_PLATFORM =~ /mswin/ 155 168 end … … 162 175 sub_project("mongrel_console", :uninstall) 163 176 sub_project("gem_plugin", :uninstall) 164 sub_project("fastthread", :uninstall) 177 sub_project("fastthread", :uninstall) 165 178 sub_project("mongrel_service", :uninstall) if RUBY_PLATFORM =~ /mswin/ 166 179 end … … 174 187 sub_project("mongrel_upload_progress", :clean) 175 188 sub_project("mongrel_console", :clean) 176 sub_project("mongrel_cluster", :clean) 189 sub_project("mongrel_cluster", :clean) 177 190 sub_project("mongrel_service", :clean) if RUBY_PLATFORM =~ /mswin/ 178 191 end … … 188 201 mkdir_p "pkg/gems" 189 202 mkdir_p "pkg/tars" 190 203 191 204 FileList["**/*.gem"].each { |gem| mv gem, "pkg/gems" } 192 205 FileList["**/*.tgz"].each {|tgz| mv tgz, "pkg/tars" } 193 194 # XXX Hack, because only Luis can package for Win32 right now 195 # sh "cp ~/Downloads/mongrel-#{e.version}-mswin32.gem pkg/gems/" 196 # sh "cp ~/Downloads/mongrel_service-0.3.3-mswin32.gem pkg/gems/" 206 197 207 sh "rm -rf pkg/mongrel*" 198 sh "gem generate_index -d pkg" 199 sh "scp -r CHANGELOG pkg/* rubyforge.org:/var/www/gforge-projects/mongrel/releases/" 208 sh "gem generate_index -d pkg" 209 sh "scp -r CHANGELOG pkg/* rubyforge.org:/var/www/gforge-projects/mongrel/releases/" 200 210 sh "svn log -v > SVN_LOG" 201 sh "scp -r SVN_LOG pkg/* rubyforge.org:/var/www/gforge-projects/mongrel/releases/" 202 rm "SVN_LOG" 203 end 204 211 sh "scp -r SVN_LOG pkg/* rubyforge.org:/var/www/gforge-projects/mongrel/releases/" 212 rm "SVN_LOG" 213 end 214 205 215 desc "Upload the website" 206 216 task :web do 207 # Requires the 'webgem' gem and the 'atom-tools' gem 208 sh "cd site; webgen; webgen; ruby atom.rb > output/feed.atom; rsync -azv --no-perms --no-times output/* rubyforge.org:/var/www/gforge-projects/mongrel/" 209 end 210 217 # Requires the 'webgem' gem 218 sh "cd site; webgen; webgen; curl 'http://feed43.com/mongrel.xml' > output/rss.xml; rsync -azv --no-perms --no-times output/* rubyforge.org:/var/www/gforge-projects/mongrel/" 219 puts "\nMake sure to re-run the site update 6 hours later if you updated the news. This delay is required for Feed43 to pick up the site changes." 220 end 221 211 222 desc "Upload the rdocs" 212 223 task :rdoc => [:doc] do … … 214 225 sh "cd projects/gem_plugin; rake site:rdoc" 215 226 end 216 227 217 228 desc "Upload the coverage report" 218 229 task :coverage => [:rcov] do 219 230 sh "rsync -azv --no-perms --no-times test/coverage/* rubyforge.org:/var/www/gforge-projects/mongrel/coverage/" rescue nil 220 231 end 221 232 222 233 desc "Upload the website, the rdocs, and the coverage report" 223 234 task :all => [:clean, :web, :rdoc, :coverage] 224 225 end 235 236 end
