diff options
Diffstat (limited to 'Rakefile')
-rw-r--r-- | Rakefile | 101 |
1 files changed, 32 insertions, 69 deletions
@@ -1,48 +1,46 @@ require 'rubygems' -gem 'echoe', '>=2.7.5' +gem 'echoe', '>=2.7.11' require 'echoe' e = Echoe.new("mongrel") do |p| p.summary = "A small fast HTTP library and server that runs Rails, Camping, Nitro and Iowa apps." - p.author ="Zed A. Shaw" - 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'] + p.author = "Zed A. Shaw" + p.email = "mongrel-development@rubyforge.org" + 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', 'test_*.log', 'log', 'doc'] p.url = "http://mongrel.rubyforge.org" - p.rdoc_pattern = ['README', 'LICENSE', 'CHANGELOG', 'COPYING', 'lib/**/*.rb', 'doc/**/*.rdoc'] + p.rdoc_pattern = ['README', 'LICENSE', 'CONTRIBUTORS', 'CHANGELOG', 'COPYING', 'lib/**/*.rb', 'doc/**/*.rdoc'] + p.docs_host = 'mongrel.cloudbur.st:/home/eweaver/www/mongrel/htdocs/web' p.ignore_pattern = /^(pkg|site|projects|doc|log)|CVS|\.log/ p.ruby_version = '>=1.8.4' p.dependencies = ['gem_plugin >=0.2.3'] p.extension_pattern = nil - p.certificate_chain = case ENV['USER'] + p.certificate_chain = case (ENV['USER'] || ENV['USERNAME']).downcase when 'eweaver' ['~/p/configuration/gem_certificates/mongrel/mongrel-public_cert.pem', '~/p/configuration/gem_certificates/evan_weaver-mongrel-public_cert.pem'] - when 'luislavena' - ['~/gem_certificates/mongrel-public_cert.pem', - '~/gem_certificates/luislavena-mongrel-public_cert.pem'] + when 'luislavena', 'luis' + ['~/projects/gem_certificates/mongrel-public_cert.pem', + '~/projects/gem_certificates/luislavena-mongrel-public_cert.pem'] end p.need_tar_gz = false p.need_tgz = true - if RUBY_PLATFORM !~ /mswin|java/ + unless Platform.windows? or Platform.java? p.extension_pattern = ["ext/**/extconf.rb"] end p.eval = proc do - case RUBY_PLATFORM - when /mswin/ + if Platform.windows? self.files += ['lib/http11.so'] self.platform = Gem::Platform::CURRENT - add_dependency('cgi_multipart_eof_fix', '>= 2.4') - when /java/ + elsif Platform.java? self.files += ['lib/http11.jar'] self.platform = 'jruby' # XXX Is this right? else add_dependency('daemons', '>= 1.0.3') - add_dependency('fastthread', '>= 1.0.1') - add_dependency('cgi_multipart_eof_fix', '>= 2.4') end end @@ -55,13 +53,13 @@ task :ragel do Dir.chdir "ext/http11" do target = "http11_parser.c" File.unlink target if File.exist? target - sh "ragel http11_parser.rl | rlgen-cd -G2 -o #{target}" + sh "ragel http11_parser.rl -C -G2 -o #{target}" raise "Failed to build C source" unless File.exist? target end Dir.chdir "ext/http11" do target = "../../ext/http11_java/org/jruby/mongrel/Http11Parser.java" File.unlink target if File.exist? target - sh "ragel -J http11_parser.java.rl | rlgen-java -o #{target}" + sh "ragel http11_parser.rl -J -o #{target}" raise "Failed to build Java source" unless File.exist? target end end @@ -84,19 +82,18 @@ def java_classpath_arg classpath ? "-cp #{classpath}" : "" end -case RUBY_PLATFORM -when /mswin/ +if Platform.windows? filename = "lib/http11.so" file filename do Dir.chdir("ext/http11") do ruby "extconf.rb" - system(PLATFORM =~ /mswin/ ? 'nmake' : 'make') + system(Platform.make) end move_extensions end task :compile => [filename] -when /java/ +elsif Platform.java? # Avoid JRuby in-process launching problem begin @@ -123,13 +120,17 @@ end def sub_project(project, *targets) targets.each do |target| Dir.chdir "projects/#{project}" do - unless RUBY_PLATFORM =~ /mswin/ - sh("rake #{target.to_s}") # --trace - end + sh("#{Platform.rake} #{target.to_s}") # --trace end end end +desc "Compile all the projects" +task :compile_all => [:compile] do + sub_project("fastthread", :compile) + sub_project("mongrel_service", :compile) +end + desc "Package Mongrel and all subprojects" task :package_all => [:package] do sub_project("gem_plugin", :package) @@ -141,11 +142,9 @@ task :package_all => [:package] do sub_project("mongrel_cluster", :package) sub_project("mongrel_experimental", :package) - sh("rake java package") unless RUBY_PLATFORM =~ /java/ + sh("rake java package") unless Platform.windows? - # XXX Broken by RubyGems 0.9.5 - # sub_project("mongrel_service", :package) if RUBY_PLATFORM =~ /mswin/ - # sh("rake mswin package") unless RUBY_PLATFORM =~ /mswin/ + sub_project("mongrel_service", :package) if Platform.windows? end task :install_requirements do @@ -163,7 +162,7 @@ task :install => [:install_requirements] do sub_project("mongrel_console", :install) sub_project("mongrel_cluster", :install) # sub_project("mongrel_experimental", :install) - sub_project("mongrel_service", :install) if RUBY_PLATFORM =~ /mswin/ + sub_project("mongrel_service", :install) if Platform.windows? end desc "for Mongrel and all its subprojects" @@ -175,11 +174,11 @@ task :uninstall => [:clean] do sub_project("gem_plugin", :uninstall) sub_project("fastthread", :uninstall) # sub_project("mongrel_experimental", :uninstall) - sub_project("mongrel_service", :uninstall) if RUBY_PLATFORM =~ /mswin/ + sub_project("mongrel_service", :uninstall) if Platform.windows? end desc "for Mongrel and all its subprojects" -task :clean do +task :clean_all => [:clean] do sub_project("gem_plugin", :clean) sub_project("cgi_multipart_eof_fix", :clean) sub_project("fastthread", :clean) @@ -188,50 +187,14 @@ task :clean do sub_project("mongrel_console", :clean) sub_project("mongrel_cluster", :clean) sub_project("mongrel_experimental", :clean) - sub_project("mongrel_service", :clean) if RUBY_PLATFORM =~ /mswin/ + sub_project("mongrel_service", :clean) if Platform.windows? end #### Site upload tasks namespace :site do - - desc "Package and upload .gem files and .tgz files for Mongrel and all subprojects to http://mongrel.rubyforge.org/releases/" - task :source => [:package_all] do - rm_rf "pkg/gems" - rm_rf "pkg/tars" - mkdir_p "pkg/gems" - mkdir_p "pkg/tars" - - FileList["**/*.gem"].each { |gem| mv gem, "pkg/gems" } - FileList["**/*.tgz"].each {|tgz| mv tgz, "pkg/tars" } - - sh "rm -rf pkg/mongrel*" - sh "gem generate_index -d pkg" - sh "scp -r CHANGELOG pkg/* rubyforge.org:/var/www/gforge-projects/mongrel/releases/" - sh "svn log -v > SVN_LOG" - sh "scp -r SVN_LOG pkg/* rubyforge.org:/var/www/gforge-projects/mongrel/releases/" - rm "SVN_LOG" - end - - desc "Upload the website" - task :web do - # Requires the 'webgem' gem - 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/" - 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." - end - - desc "Upload the rdocs" - task :rdoc => [:doc] do - sh "rsync -azv --no-perms --no-times doc/* rubyforge.org:/var/www/gforge-projects/mongrel/rdoc/" - sh "cd projects/gem_plugin; rake site:rdoc" - end - desc "Upload the coverage report" task :coverage => [:rcov] do - sh "rsync -azv --no-perms --no-times test/coverage/* rubyforge.org:/var/www/gforge-projects/mongrel/coverage/" rescue nil + sh "rsync -azv --no-perms --no-times test/coverage/* mongrel.cloudbur.st:/home/eweaver/www/mongrel/htdocs/web/coverage" rescue nil end - - desc "Upload the website, the rdocs, and the coverage report" - task :all => [:clean, :web, :rdoc, :coverage] - end |