diff options
Diffstat (limited to 'Library/Formula/python3.rb')
| -rw-r--r-- | Library/Formula/python3.rb | 78 |
1 files changed, 62 insertions, 16 deletions
diff --git a/Library/Formula/python3.rb b/Library/Formula/python3.rb index 8de3c297f..7c75adec3 100644 --- a/Library/Formula/python3.rb +++ b/Library/Formula/python3.rb @@ -1,30 +1,56 @@ -# Lightly modified from the Python 2.6.5 formula. require 'formula' +<<-COMMENTS +Versions +-------- +This formula is currently tracking version 3.1.x. + +Python 2.x is available as a separate formula: + brew install python + +COMMENTS + +# Was a Framework build requested? +def build_framework?; ARGV.include? '--framework'; end + +# Are we installed or installing as a Framework? +def as_framework? + (self.installed? and File.exists? prefix+"Frameworks/Python.framework") or build_framework? +end + class Python3 <Formula url 'http://www.python.org/ftp/python/3.1.2/Python-3.1.2.tar.bz2' homepage 'http://www.python.org/' md5 '45350b51b58a46b029fb06c61257e350' - depends_on 'readline' => :optional # Prefer over OS X's libedit. - depends_on 'sqlite' => :optional # Prefer over OS X's copy. - depends_on 'gdbm' => :optional - # With all dependencies installed should only have ossaudiodev and spwd not - # built from the stdlib. + depends_on 'readline' => :optional # Prefer over OS X's libedit + depends_on 'sqlite' => :optional # Prefer over OS X's older version + depends_on 'gdbm' => :optional def options [ ["--framework", "Do a 'Framework' build instead of a UNIX-style build."], - ["--universal", "Build for both 32 & 64 bit Intel."] + ["--universal", "Build for both 32 & 64 bit Intel."], + ["--static", "Build static libraries."] ] end - # XXX Overriding skip_clean? is deprecated - def skip_clean? path - # Need to keep the versioned binaries. - # Also, don't strip out pre-compiled # bytecode files. - path == bin+'python3' or path == bin+'python3.1' or - path == lib+'python3.1' + skip_clean ['bin', 'lib'] + + def site_packages + # The Cellar location of site-packages + if as_framework? + # If we're installed or installing as a Framework, then use that location. + return prefix+"Frameworks/Python.framework/Versions/3.1/lib/python3.1/site-packages" + else + # Otherwise, use just the lib path. + return lib+"python3.1/site-packages" + end + end + + def prefix_site_packages + # The HOMEBREW_PREFIX location of site-packages + HOMEBREW_PREFIX+"lib/python3.1/site-packages" end def install @@ -32,13 +58,33 @@ class Python3 <Formula # both gcc and LLVM support this, so switch it on. args = ["--prefix=#{prefix}", "--with-computed-gotos"] - args << "--enable-framework" if ARGV.include? '--framework' if ARGV.include? '--universal' - args.push "--enable-universalsdk=/", "--with-universal-archs=intel" + args << "--enable-universalsdk=/" << "--with-universal-archs=intel" + end + + if build_framework? + args << "--enable-framework=#{prefix}/Frameworks" + else + args << "--enable-shared" unless ARGV.include? '--static' end - + system "./configure", *args system "make" + ENV.j1 # Installs must be serialized system "make install" + + # Add the Homebrew prefix path to site-packages via a .pth + prefix_site_packages.mkpath + (site_packages+"homebrew.pth").write prefix_site_packages + end + + def caveats + <<-EOS.undent + The site-packages folder for this Python is: + #{site_packages} + + We've added a "homebrew.pth" file to also include: + #{prefix_site_packages} + EOS end end |
