forked from semistrict/context-switching-times
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRakefile
68 lines (59 loc) · 1.39 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
require 'rake/clean'
task :mac_deps do
%w(erlang pypy scala).each { |package| sh "brew install -q #{package} || true" }
end
namespace :java do
task :compile do
mkdir_p 'java/classes'
sh "javac -d java/classes #{FileList['java/src/**/*.java']}"
end
task :run => [:compile] do
sh "java -cp java/classes ContextSwitchingTime"
end
end
namespace :scala do
task :compile do
cd "scala" do
sh 'scalac ContextSwitch.scala'
end
end
task :run => :compile do
cd "scala" do
sh "scala -cp . ContextSwitch"
end
end
end
namespace :erlang do
CLEAN.include FileList['erlang/*.beam'], FileList['erlang/*.log'], FileList['erlang/*.dump']
task :run do
cd 'erlang' do
sh "erlc +native context_switch.erl"
sh "erl -noshell -s context_switch -s init stop"
end
end
end
namespace :erjang do
ERJANG = "erlang/erjang/erjang-0.2.jar"
file ERJANG do
cd 'erlang/erjang' do
sh 'ant'
end
end
task :run => [ERJANG] do
cd 'erlang' do
sh 'erjang/jerl -compile context_switch -noshell'
sh 'erjan/jerl -noshell -s context_switch -s init stop'
end
end
end
namespace :haskell do
CLEAN.include FileList['haskell/*.o'], FileList['haskell/*.hi'], FileList['haskell/context_switch']
task :run do
cd 'haskell' do
sh "ghc -threaded context_switch.hs"
sh "./context_switch"
end
end
end
task :run_all => ['java:run', 'erlang:run', 'scala:run', 'haskell:run']
task :default => [:run_all]