forked from rubinius/rubinius
-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.rb
49 lines (39 loc) · 1.04 KB
/
build.rb
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
def llvm_configure
case Rubinius::BUILD_CONFIG[:llvm]
when :svn, :prebuilt
"vm/external_libs/llvm/Release/bin/llvm-config"
when :config
Rubinius::BUILD_CONFIG[:llvm_configure]
else
raise "Tried to use LLVM unconfigure!"
end
end
def llvm_flags
return [] unless LLVM_ENABLE
return @llvm_flags if defined?(@llvm_flags)
case Rubinius::BUILD_CONFIG[:llvm]
when :svn, :prebuilt
@llvm_flags = ["-Ivm/external_libs/llvm/include"]
else
@llvm_flags = []
end
@llvm_flags += `perl #{llvm_configure} --cflags`.split(/\s+/)
@llvm_flags.delete_if { |e| e.index("-O") == 0 }
@llvm_flags
end
def llvm_link_flags
return "" unless LLVM_ENABLE
`perl #{llvm_configure} --ldflags`.strip
end
def llvm_lib_files
return [] unless LLVM_ENABLE
files = `perl #{llvm_configure} --libfiles all`.split(/\s+/)
files.select { |f| File.file? f }
end
def host_triple
Rubinius::BUILD_CONFIG[:host]
end
def llvm_config_flags
"--build=#{host_triple} --host=#{host_triple} " \
"--enable-optimized --enable-targets=host-only"
end