Changeset 934

Show
Ignore:
Timestamp:
12/29/07 01:41:59 (8 months ago)
Author:
luislavena
Message:

Big ugly hack to Rakefile, FORCE_PURE is just garbage, but worked for now.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/stable_1-0/Rakefile

    r836 r934  
    11 
    22require 'rubygems' 
    3 gem 'echoe', '>=2.6.4
     3gem 'echoe', '>=2.7.5
    44require 'echoe' 
     5FORCE_PURE = ENV['FORCE_PURE'] || false 
    56 
    67e = Echoe.new("mongrel") do |p| 
    78  p.summary = "A small fast HTTP library and server that runs Rails, Camping, Nitro and Iowa apps." 
    89  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', 'COPYING', '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'] 
    1112  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   
    1519  p.need_tar_gz = false 
    1620  p.need_tgz = true 
    1721 
    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 
    2249  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 
    4352end 
    4453 
     
    6170end 
    6271 
    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 
    7373 
    7474def move_extensions 
    75   Dir["ext/**/*.#{Config::CONFIG['DLEXT']}"].each { |file| cp file, "lib/" } 
    76 end 
    77  
    78 def java_classpath_arg  
     75  Dir["ext/**/*.#{Config::CONFIG['DLEXT']}"].each { |file| mv file, "lib/" } 
     76end 
     77 
     78def java_classpath_arg 
    7979  # A myriad of ways to discover the JRuby classpath 
    8080  classpath = begin 
    81     require 'java'  
     81    require 'java' 
    8282    # Already running in a JRuby JVM 
    8383    Java::java.lang.System.getProperty('java.class.path') 
     
    9292  filename = "lib/http11.so" 
    9393  file filename do 
    94     Dir.chdir("ext/http11") do  
     94    Dir.chdir("ext/http11") do 
    9595      ruby "extconf.rb" 
    9696      system(PLATFORM =~ /mswin/ ? 'nmake' : 'make') 
    9797    end 
    9898    move_extensions 
    99   end  
     99  end 
    100100  task :compile => [filename] 
    101101 
    102102when /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 
    103111  filename = "lib/http11.jar" 
    104112  file filename do 
     
    108116    sh "javac -target 1.4 -source 1.4 -d #{build_dir} #{java_classpath_arg} #{sources}" 
    109117    sh "jar cf lib/http11.jar -C #{build_dir} ." 
    110     move_extensions       
    111   end       
     118    move_extensions 
     119  end 
    112120  task :compile => [filename] 
    113121 
     
    119127  targets.each do |target| 
    120128    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 
    122132    end 
    123133  end 
     
    133143  sub_project("mongrel_console", :package) 
    134144  sub_project("mongrel_cluster", :package) 
    135   sub_project("mongrel_service", :package) if RUBY_PLATFORM =~ /mswin/ 
     145 
    136146  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/ 
    137150  # sh("rake mswin package") unless RUBY_PLATFORM =~ /mswin/ 
    138151end 
     
    151164  sub_project("mongrel_upload_progress", :install) 
    152165  sub_project("mongrel_console", :install) 
    153   sub_project("mongrel_cluster", :install)   
     166  sub_project("mongrel_cluster", :install) 
    154167  sub_project("mongrel_service", :install) if RUBY_PLATFORM =~ /mswin/ 
    155168end 
     
    162175  sub_project("mongrel_console", :uninstall) 
    163176  sub_project("gem_plugin", :uninstall) 
    164   sub_project("fastthread", :uninstall)   
     177  sub_project("fastthread", :uninstall) 
    165178  sub_project("mongrel_service", :uninstall) if RUBY_PLATFORM =~ /mswin/ 
    166179end 
     
    174187  sub_project("mongrel_upload_progress", :clean) 
    175188  sub_project("mongrel_console", :clean) 
    176   sub_project("mongrel_cluster", :clean)  
     189  sub_project("mongrel_cluster", :clean) 
    177190  sub_project("mongrel_service", :clean) if RUBY_PLATFORM =~ /mswin/ 
    178191end 
     
    188201    mkdir_p "pkg/gems" 
    189202    mkdir_p "pkg/tars" 
    190     
     203 
    191204    FileList["**/*.gem"].each { |gem| mv gem, "pkg/gems" } 
    192205    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 
    197207    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/" 
    200210    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 
    205215  desc "Upload the website" 
    206216  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 
    211222  desc "Upload the rdocs" 
    212223  task :rdoc => [:doc] do 
     
    214225    sh "cd projects/gem_plugin; rake site:rdoc" 
    215226  end 
    216    
     227 
    217228  desc "Upload the coverage report" 
    218229  task :coverage => [:rcov] do 
    219230    sh "rsync -azv --no-perms --no-times test/coverage/* rubyforge.org:/var/www/gforge-projects/mongrel/coverage/" rescue nil 
    220231  end 
    221    
     232 
    222233  desc "Upload the website, the rdocs, and the coverage report" 
    223234  task :all => [:clean, :web, :rdoc, :coverage] 
    224    
    225 end 
     235 
     236end