aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Formula/llvm.rb
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Formula/llvm.rb')
-rw-r--r--Library/Formula/llvm.rb32
1 files changed, 23 insertions, 9 deletions
diff --git a/Library/Formula/llvm.rb b/Library/Formula/llvm.rb
index eab3ed385..e9508e1e8 100644
--- a/Library/Formula/llvm.rb
+++ b/Library/Formula/llvm.rb
@@ -33,14 +33,20 @@ class Llvm < Formula
option :universal
option 'with-clang', 'Build Clang C/ObjC/C++ frontend'
option 'with-asan', 'Include support for -faddress-sanitizer (from compiler-rt)'
- option 'shared', 'Build LLVM as a shared library'
+ option 'disable-shared', "Don't build LLVM as a shared library"
option 'all-targets', 'Build all target backends'
option 'rtti', 'Build with C++ RTTI'
option 'disable-assertions', 'Speeds up LLVM, but provides less debug information'
+ depends_on :python => :recommended
+
env :std if build.universal?
def install
+ if build.with? 'python' and build.include? 'disable-shared'
+ raise 'The Python bindings need the shared library.'
+ end
+
Clang.new("clang").brew do
clang_dir.install Dir['*']
end if build.include? 'with-clang'
@@ -69,7 +75,7 @@ class Llvm < Formula
else
args << "--enable-targets=host"
end
- args << "--enable-shared" if build.include? 'shared'
+ args << "--enable-shared" unless build.include? 'disable-shared'
args << "--disable-assertions" if build.include? 'disable-assertions'
@@ -77,13 +83,18 @@ class Llvm < Formula
system "make install"
# install llvm python bindings
- (share/'llvm/bindings').install buildpath/'bindings/python'
+ if python
+ unless build.head?
+ inreplace buildpath/'bindings/python/llvm/common.py', 'LLVM-3.1svn', "libLLVM-#{version}svn"
+ end
+ python.site_packages.install buildpath/'bindings/python/llvm'
+ end
# install clang tools and bindings
cd clang_dir do
system 'make install'
(share/'clang/tools').install 'tools/scan-build', 'tools/scan-view'
- (share/'clang/bindings').install 'bindings/python'
+ python.site_packages.install 'bindings/python/clang' if python
end if build.include? 'with-clang'
end
@@ -91,12 +102,15 @@ class Llvm < Formula
system "#{bin}/llvm-config", "--version"
end
- def caveats; <<-EOS.undent
- Extra tools and bindings are installed in #{share}/llvm and #{share}/clang.
+ def caveats
+ s = ''
+ s += python.standard_caveats if python
+ s += <<-EOS.undent
+ Extra tools are installed in #{share}/llvm and #{share}/clang.
- If you already have LLVM installed, then "brew upgrade llvm" might not work.
- Instead, try:
- brew rm llvm && brew install llvm
+ If you already have LLVM installed, then "brew upgrade llvm" might not work.
+ Instead, try:
+ brew rm llvm && brew install llvm
EOS
end