Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 184 lines (148 sloc) 4.733 kb
90c05c1 @drbrain Update INSTALL to latest information.
drbrain authored
1 # NOTE! When updating this file, also update INSTALL, if necessary.
a8bdc6b @evanphx Cleanup / reorganize Rakefile
evanphx authored
2 # NOTE! Please keep your tasks grouped together.
90c05c1 @drbrain Update INSTALL to latest information.
drbrain authored
3
af5cae6 @brixen Refuse to configure, build if RUBYLIB is set.
brixen authored
4 if ENV["RUBYLIB"]
5 STDERR.puts "ERROR: Please unset RUBYLIB to build Rubinius"
6 exit 1
7 end
8
1088784 Silence a rake warning
Jacqui Maher and Wilson Bilkovich authored
9 $trace ||= false
69a6063 Enable warnings for rake.
Tilman Sauerbeck authored
10 $VERBOSE = true
bdcf9cb @rue DEV is gone. See `rake build:help`. vm:test always uses debug flags.
rue authored
11 $verbose = Rake.application.options.trace || ARGV.delete("-v")
12
a352624 Start of new LLVM JIT
Evan Phoenix authored
13 if !$verbose and respond_to?(:verbose)
14 verbose(false) if verbose() == :default
15 end
16
9465976 @brixen Generalize building with MRI 1.8/1.9 or rbx.
brixen authored
17 $:.unshift File.expand_path("../", __FILE__)
18
a632b48 @brixen Added new rake install tasks.
brixen authored
19 config_rb = File.expand_path "../config.rb", __FILE__
20 config_h = File.expand_path "../vm/gen/config.h", __FILE__
21
22 unless File.exists?(config_rb) and File.exists?(config_h)
243a775 @brixen Reworked configuring tasks.
brixen authored
23 STDERR.puts "Please run ./configure first"
24 exit 1
25 end
26
a632b48 @brixen Added new rake install tasks.
brixen authored
27 require config_rb
28 BUILD_CONFIG = Rubinius::BUILD_CONFIG
0941eb2 @drbrain Add tasks to build .rba files
drbrain authored
29
6596ed7 @brixen Provide both --cc and --cxx in configure.
brixen authored
30 unless BUILD_CONFIG[:config_version] == 24
e846db9 @brixen Ensure Rakefile checks configure version before anything. Closes #385.
brixen authored
31 STDERR.puts "Your configuration is outdated, please run ./configure first"
9465976 @brixen Generalize building with MRI 1.8/1.9 or rbx.
brixen authored
32 exit 1
33 end
34
e846db9 @brixen Ensure Rakefile checks configure version before anything. Closes #385.
brixen authored
35 # Yes, this is duplicated from the configure script for now.
36 unless BUILD_CONFIG[:which_ruby] == :ruby or BUILD_CONFIG[:which_ruby] == :rbx
37 STDERR.puts "Sorry, building Rubinius requires MRI or Rubinius"
84e1594 @brixen Added config version to enable detecting stale configuration.
brixen authored
38 exit 1
39 end
40
a5aff42 @dbussink Verify that the ruby to build with is the one it was configured with
dbussink authored
41 bin = RbConfig::CONFIG["RUBY_INSTALL_NAME"] || RbConfig::CONFIG["ruby_install_name"]
42 bin << (RbConfig::CONFIG['EXEEXT'] || RbConfig::CONFIG['exeext'] || '')
43 build_ruby = File.join(RbConfig::CONFIG['bindir'], bin)
44
45 unless BUILD_CONFIG[:build_ruby] == build_ruby
46 STDERR.puts "Sorry, but you need to build with the same Ruby version it was configured with"
2e7b21e @brixen Give more info if configure ruby differs from build ruby.
brixen authored
47 STDERR.puts "configured with: '#{BUILD_CONFIG[:build_ruby]}'"
48 STDERR.puts "running with: '#{build_ruby}'"
a5aff42 @dbussink Verify that the ruby to build with is the one it was configured with
dbussink authored
49 STDERR.puts "Please run ./configure again"
50 exit 1
51 end
52
6b363a8 @brixen Propagate --cc configure setting to CC, CXX env vars. Closes #520.
brixen authored
53 # Set the build compiler to the configured compiler unless
54 # the compiler is set via CC environment variable.
6596ed7 @brixen Provide both --cc and --cxx in configure.
brixen authored
55 ENV['CC'] = BUILD_CONFIG[:cc] unless ENV['CC']
56 ENV['CXX'] = BUILD_CONFIG[:cxx] unless ENV['CXX']
6b363a8 @brixen Propagate --cc configure setting to CC, CXX env vars. Closes #520.
brixen authored
57
bd6aef7 @dbussink Use RbConfig instead of Config
dbussink authored
58 $dlext = RbConfig::CONFIG["DLEXT"]
9ebee09 @brixen Add mspec and spec rakelib files from master.
brixen authored
59
c4e6508 @brixen Added spec, spec18, spec19 rake tasks.
brixen authored
60 def run_specs(flags=nil)
0c1fb8e @brixen Make specs run from rake regardless of install config.
brixen authored
61 unless File.directory? BUILD_CONFIG[:runtime]
62 # Setting these enables the specs to run when rbx has been configured
63 # to be installed, but rake install has not been run yet.
64 ENV["RBX_RUNTIME"] = File.expand_path "../runtime", __FILE__
65 ENV["RBX_LIB"] = File.expand_path "../lib", __FILE__
66 ENV["CFLAGS"] = "-Ivm/capi"
67 end
68
c4e6508 @brixen Added spec, spec18, spec19 rake tasks.
brixen authored
69 sh "bin/mspec ci #{ENV['CI_MODE_FLAG'] || flags} --background --agent"
70 end
71
72 task :default => %w[build vm:test] do
73 run_specs
2e737d7 @brixen Removed rake spec commands. See rake spec for details.
brixen authored
74 end
8dd2b6b @evanphx r43@vatu: evan | 2006-08-24 16:34:21 -0700
evanphx authored
75
bdcf9cb @rue DEV is gone. See `rake build:help`. vm:test always uses debug flags.
rue authored
76 # See vm.rake for more information
77 desc "Build everything that needs to be built at default level."
56edbca Add rdoc, rake, and rake-compiler and preinstalled gems
Evan Phoenix authored
78 task :build => ["build:normal", "gem_bootstrap"]
1ce3d9b Reduced Rakefile to a minimally working version
Ryan Davis authored
79
90ffc92 @drbrain Rip out irrelevant parts of the Rakefile
drbrain authored
80 desc "Recompile all ruby system files"
81 task :rebuild => %w[clean build]
1ce3d9b Reduced Rakefile to a minimally working version
Ryan Davis authored
82
5853d7f @brixen Specific :ci18 and :ci19 tasks.
brixen authored
83 def run_ci
a8390a9 Add ci rake task
Evan Phoenix authored
84 unless system("rake -q")
85 puts "<< ERROR IN CI, CLEANING AND RERUNNING >>"
86 system "rake -q clean"
87 system "find . -name *.rbc -delete"
88 sh "rake -q"
89 end
90 end
91
5853d7f @brixen Specific :ci18 and :ci19 tasks.
brixen authored
92 desc "Run CI in default (configured) mode"
93 task :ci do
94 run_ci
95 end
96
97 # These tasks run the specs in the specified mode regardless of
98 # the default mode with which Rubinius was configured.
99 desc "Run CI in 1.8 mode"
100 task :ci18 do
101 ENV['CI_MODE_FLAG'] = "-T -X19=no"
102 run_ci
103 end
104
105 desc "Run CI in 1.9 mode"
106 task :ci19 do
107 ENV['CI_MODE_FLAG'] = "-T -X19"
108 run_ci
109 end
110
58a50ec @brixen Added experimental 2.0 support.
brixen authored
111 desc "Run CI in 2.0 mode"
112 task :ci20 do
113 ENV['CI_MODE_FLAG'] = "-T -X20"
114 run_ci
115 end
116
569fccd @drbrain Move vm/Rakefile to rakelib/vm.rake, integrate it into the base rake tas...
drbrain authored
117 desc 'Remove rubinius build files'
af222ee @drbrain Restore generation of ruby_config and rubinius_config, add clean rules
drbrain authored
118 task :clean => %w[
119 vm:clean
120 kernel:clean
121 clean:crap
9ed0630 @brixen Reworked compiling C extensions.
brixen authored
122 extensions:clean
af222ee @drbrain Restore generation of ruby_config and rubinius_config, add clean rules
drbrain authored
123 ]
1ce3d9b Reduced Rakefile to a minimally working version
Ryan Davis authored
124
569fccd @drbrain Move vm/Rakefile to rakelib/vm.rake, integrate it into the base rake tas...
drbrain authored
125 desc 'Remove rubinius build files and external library build files'
af222ee @drbrain Restore generation of ruby_config and rubinius_config, add clean rules
drbrain authored
126 task :distclean => %w[
127 clean
128 vm:distclean
129 ]
1ce3d9b Reduced Rakefile to a minimally working version
Ryan Davis authored
130
569fccd @drbrain Move vm/Rakefile to rakelib/vm.rake, integrate it into the base rake tas...
drbrain authored
131 namespace :clean do
132 desc "Cleans up editor files and other misc crap"
133 task :crap do
134 files = (Dir["*~"] + Dir["**/*~"]).uniq
1ce3d9b Reduced Rakefile to a minimally working version
Ryan Davis authored
135
569fccd @drbrain Move vm/Rakefile to rakelib/vm.rake, integrate it into the base rake tas...
drbrain authored
136 rm_f files, :verbose => $verbose unless files.empty?
137 end
138 end
2e737d7 @brixen Removed rake spec commands. See rake spec for details.
brixen authored
139
a632b48 @brixen Added new rake install tasks.
brixen authored
140 desc 'Move the preinstalled gem setup into place'
141 task :gem_bootstrap do
142 unless File.directory?("gems/rubinius")
264af55 Fix preinstalled gems directory layout (version proof)
Evan Phoenix authored
143 sh "mkdir -p gems/rubinius"
144 sh "cp -r preinstalled-gems/bin gems/bin"
145 sh "cp -r preinstalled-gems/data gems/rubinius/preinstalled"
a632b48 @brixen Added new rake install tasks.
brixen authored
146 end
147 end
148
df791c5 @brixen Enable running docs site with bootstrap Ruby using 'rake docs'.
brixen authored
149 desc "Run the Rubinius documentation website"
150 task :docs do
151 require 'kernel/delta/options'
152 require 'rbconfig'
153 require 'webrick'
154 require 'lib/rubinius/documentation'
155
156 Rubinius::Documentation.main
157 end
158
c4e6508 @brixen Added spec, spec18, spec19 rake tasks.
brixen authored
159 desc "Run the CI specs in 1.8 mode but do not rebuild on failure"
160 task :spec18 do
161 run_specs "-T -X19=no"
162 end
2e737d7 @brixen Removed rake spec commands. See rake spec for details.
brixen authored
163
c4e6508 @brixen Added spec, spec18, spec19 rake tasks.
brixen authored
164 desc "Run the CI specs in 1.9 mode but do not rebuild on failure"
165 task :spec19 do
166 run_specs "-T -X19"
167 end
2e737d7 @brixen Removed rake spec commands. See rake spec for details.
brixen authored
168
58a50ec @brixen Added experimental 2.0 support.
brixen authored
169 desc "Run the CI specs in 2.0 mode but do not rebuild on failure"
170 task :spec20 do
171 run_specs "-T -X20"
172 end
173
c4e6508 @brixen Added spec, spec18, spec19 rake tasks.
brixen authored
174 desc "Run CI in default (configured) mode but do not rebuild on failure"
175 task :spec do
176 run_specs
2e737d7 @brixen Removed rake spec commands. See rake spec for details.
brixen authored
177 end
580e56e @rue Add task :todos to do a simple grep for todo marks in kernel/.
rue authored
178
179 desc "Print list of items marked to-do in kernel/ (@todo|TODO)"
180 task :todos do
181 sh "grep", "-Rn", "@todo", "kernel"
182 sh "grep", "-Rn", "TODO", "kernel"
183 end
Something went wrong with that request. Please try again.