Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 201 lines (153 sloc) 5.172 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
d9335a3 @brixen Enable configuring with 1.9 support on by default.
brixen authored
30 unless BUILD_CONFIG[:config_version] == 21
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"
47 STDERR.puts "Please run ./configure again"
48 exit 1
49 end
50
6b363a8 @brixen Propagate --cc configure setting to CC, CXX env vars. Closes #520.
brixen authored
51 # Set the build compiler to the configured compiler unless
52 # the compiler is set via CC environment variable.
53 ENV['CC'] = BUILD_CONFIG[:compiler] unless ENV['CC']
54 ENV['CXX'] = BUILD_CONFIG[:compiler] unless ENV['CXX']
55
bd6aef7 @dbussink Use RbConfig instead of Config
dbussink authored
56 $dlext = RbConfig::CONFIG["DLEXT"]
9ebee09 @brixen Add mspec and spec rakelib files from master.
brixen authored
57
2e737d7 @brixen Removed rake spec commands. See rake spec for details.
brixen authored
58 task :default => %w[build vm:test] do
0c1fb8e @brixen Make specs run from rake regardless of install config.
brixen authored
59 unless File.directory? BUILD_CONFIG[:runtime]
60 # Setting these enables the specs to run when rbx has been configured
61 # to be installed, but rake install has not been run yet.
62 ENV["RBX_RUNTIME"] = File.expand_path "../runtime", __FILE__
63 ENV["RBX_LIB"] = File.expand_path "../lib", __FILE__
64 ENV["CFLAGS"] = "-Ivm/capi"
65 end
66
5853d7f @brixen Specific :ci18 and :ci19 tasks.
brixen authored
67 sh "bin/mspec ci #{ENV['CI_MODE_FLAG']} --background --agent"
2e737d7 @brixen Removed rake spec commands. See rake spec for details.
brixen authored
68 end
8dd2b6b @evanphx r43@vatu: evan | 2006-08-24 16:34:21 -0700
evanphx authored
69
bdcf9cb @rue DEV is gone. See `rake build:help`. vm:test always uses debug flags.
rue authored
70 # See vm.rake for more information
71 desc "Build everything that needs to be built at default level."
56edbca Add rdoc, rake, and rake-compiler and preinstalled gems
Evan Phoenix authored
72 task :build => ["build:normal", "gem_bootstrap"]
1ce3d9b Reduced Rakefile to a minimally working version
Ryan Davis authored
73
90ffc92 @drbrain Rip out irrelevant parts of the Rakefile
drbrain authored
74 desc "Recompile all ruby system files"
75 task :rebuild => %w[clean build]
1ce3d9b Reduced Rakefile to a minimally working version
Ryan Davis authored
76
5853d7f @brixen Specific :ci18 and :ci19 tasks.
brixen authored
77 def run_ci
a8390a9 Add ci rake task
Evan Phoenix authored
78 unless system("rake -q")
79 puts "<< ERROR IN CI, CLEANING AND RERUNNING >>"
80 system "rake -q clean"
81 system "find . -name *.rbc -delete"
82 sh "rake -q"
83 end
84 end
85
5853d7f @brixen Specific :ci18 and :ci19 tasks.
brixen authored
86 desc "Run CI in default (configured) mode"
87 task :ci do
88 run_ci
89 end
90
91 # These tasks run the specs in the specified mode regardless of
92 # the default mode with which Rubinius was configured.
93 desc "Run CI in 1.8 mode"
94 task :ci18 do
95 ENV['CI_MODE_FLAG'] = "-T -X19=no"
96 run_ci
97 end
98
99 desc "Run CI in 1.9 mode"
100 task :ci19 do
101 ENV['CI_MODE_FLAG'] = "-T -X19"
102 run_ci
103 end
104
569fccd @drbrain Move vm/Rakefile to rakelib/vm.rake, integrate it into the base rake tas...
drbrain authored
105 desc 'Remove rubinius build files'
af222ee @drbrain Restore generation of ruby_config and rubinius_config, add clean rules
drbrain authored
106 task :clean => %w[
107 vm:clean
108 kernel:clean
109 clean:crap
9ed0630 @brixen Reworked compiling C extensions.
brixen authored
110 extensions:clean
af222ee @drbrain Restore generation of ruby_config and rubinius_config, add clean rules
drbrain authored
111 ]
1ce3d9b Reduced Rakefile to a minimally working version
Ryan Davis authored
112
569fccd @drbrain Move vm/Rakefile to rakelib/vm.rake, integrate it into the base rake tas...
drbrain authored
113 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
114 task :distclean => %w[
115 clean
116 vm:distclean
117 ]
1ce3d9b Reduced Rakefile to a minimally working version
Ryan Davis authored
118
569fccd @drbrain Move vm/Rakefile to rakelib/vm.rake, integrate it into the base rake tas...
drbrain authored
119 namespace :clean do
120 desc "Cleans up editor files and other misc crap"
121 task :crap do
122 files = (Dir["*~"] + Dir["**/*~"]).uniq
1ce3d9b Reduced Rakefile to a minimally working version
Ryan Davis authored
123
569fccd @drbrain Move vm/Rakefile to rakelib/vm.rake, integrate it into the base rake tas...
drbrain authored
124 rm_f files, :verbose => $verbose unless files.empty?
125 end
126 end
2e737d7 @brixen Removed rake spec commands. See rake spec for details.
brixen authored
127
a632b48 @brixen Added new rake install tasks.
brixen authored
128 desc 'Move the preinstalled gem setup into place'
129 task :gem_bootstrap do
130 unless File.directory?("gems/rubinius")
264af55 Fix preinstalled gems directory layout (version proof)
Evan Phoenix authored
131 sh "mkdir -p gems/rubinius"
132 sh "cp -r preinstalled-gems/bin gems/bin"
133 sh "cp -r preinstalled-gems/data gems/rubinius/preinstalled"
a632b48 @brixen Added new rake install tasks.
brixen authored
134 end
135 end
136
df791c5 @brixen Enable running docs site with bootstrap Ruby using 'rake docs'.
brixen authored
137 desc "Run the Rubinius documentation website"
138 task :docs do
139 require 'kernel/delta/options'
140 require 'rbconfig'
141 require 'webrick'
142 require 'lib/rubinius/documentation'
143
144 Rubinius::Documentation.main
145 end
146
2e737d7 @brixen Removed rake spec commands. See rake spec for details.
brixen authored
147 desc "Documents why no spec tasks exist"
148 task :spec do
149 puts <<-EOM
150
151 The spec and spec:xxx commands are deprecated (and removed).
ea5bf64 @mernen s/psuedo/pseudo/
mernen authored
152 Use bin/mspec directly. MSpec provides 'pseudo-directories',
2e737d7 @brixen Removed rake spec commands. See rake spec for details.
brixen authored
153 which are labels that refer to sets of specs to run. Refer
9239452 @brixen Updated rake spec doc.
brixen authored
154 to spec/default.mspec and the MSpec docs for full details.
2e737d7 @brixen Removed rake spec commands. See rake spec for details.
brixen authored
155
156 The following are likely scenarios for running the specs.
157 Unless -t <target> is passed to mspec, bin/rbx is run.
158
159 Run the CI specs that are run with the default 'rake' command
160
161 bin/mspec ci
162
9239452 @brixen Updated rake spec doc.
brixen authored
163 Run all the RubySpec specs but not Rubinius-specific ones:
2e737d7 @brixen Removed rake spec commands. See rake spec for details.
brixen authored
164
165 bin/mspec
166
9239452 @brixen Updated rake spec doc.
brixen authored
167 Run all the RubySpec Array specs:
2e737d7 @brixen Removed rake spec commands. See rake spec for details.
brixen authored
168
169 bin/mspec core/array
170 OR
9239452 @brixen Updated rake spec doc.
brixen authored
171 bin/mspec spec/ruby/core/array
2e737d7 @brixen Removed rake spec commands. See rake spec for details.
brixen authored
172
9239452 @brixen Updated rake spec doc.
brixen authored
173 Run spec/ruby/core/array/append_spec.rb:
2e737d7 @brixen Removed rake spec commands. See rake spec for details.
brixen authored
174
175 bin/mspec core/array/append
176 OR
9239452 @brixen Updated rake spec doc.
brixen authored
177 bin/mspec spec/ruby/core/array/append_spec.rb
2e737d7 @brixen Removed rake spec commands. See rake spec for details.
brixen authored
178
179 Run all the compiler specs:
180
181 bin/mspec :compiler
182
183 Run all the [language, core, library, capi] specs:
184
185 bin/mspec :language
186 bin/mspec :core
187 ...
188
9239452 @brixen Updated rake spec doc.
brixen authored
189 Run all the spec/ruby specs using the 'ruby' executable on your path
2e737d7 @brixen Removed rake spec commands. See rake spec for details.
brixen authored
190
191 bin/mspec -tr :ruby
192
193 EOM
194 end
580e56e @rue Add task :todos to do a simple grep for todo marks in kernel/.
rue authored
195
196 desc "Print list of items marked to-do in kernel/ (@todo|TODO)"
197 task :todos do
198 sh "grep", "-Rn", "@todo", "kernel"
199 sh "grep", "-Rn", "TODO", "kernel"
200 end
Something went wrong with that request. Please try again.