aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Formula/subversion.rb
blob: 347e3f8cdf65ee80482ee32be34401e6f00780bb (plain)
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
require 'formula'

# On 10.5 we need newer versions of apr, neon etc.
# On 10.6 we only need a newer version of neon
class SubversionDeps <Formula
  url 'http://subversion.tigris.org/downloads/subversion-deps-1.6.11.tar.bz2'
  md5 'da1bcdd39c34d91e434407f72b844f2f'
end

class Subversion <Formula
  url 'http://subversion.tigris.org/downloads/subversion-1.6.11.tar.bz2'
  md5 '75419159b50661092c4137449940b5cc'
  homepage 'http://subversion.apache.org/'
  
  aka 'svn'

  # Only need this on Snow Leopard; for Leopard the deps package 
  # builds it.
  depends_on 'neon' if MACOS_VERSION >= 10.6

  def options
    [
      ['--java', 'Build Java bindings.'],
      ['--universal', 'Build as a Universal Intel binary.']
    ]
  end

  def setup_leopard
    # Slot dependencies into place
    d=Pathname.getwd
    SubversionDeps.new.brew { d.install Dir['*'] }
  end

  def setup_snow_leopard
    # Check that Neon was built universal if we are building w/ --universal
    if ARGV.include? '--universal'
      neon = Formula.factory('neon')
      unless neon.installed?
        neon_arch = archs_for_command(neon.lib+'libneon.dylib')
        unless neon_arch.universal?
          opoo "A universal build was requested, but neon was already built for a single arch."
          puts "You may need to `brew rm neon` first."
        end
      end
    end
  end

  def install
    if ARGV.include? "--java" and not ARGV.include? '--universal'
      opoo "A non-Universal Java build was requested."
      puts "To use Java bindings with various Java IDEs, you might need a universal build:"
      puts "  brew install --universal --java subversion"
    end

    ENV.universal_binary if ARGV.include? '--universal'

    if MACOS_VERSION < 10.6
      setup_leopard
    else
      setup_snow_leopard
    end

    # Use existing system zlib
    # Use dep-provided other libraries
    # Don't mess with Apache modules (since we're not sudo)
    args = ["--disable-debug",
            "--prefix=#{prefix}",
            "--with-ssl",
            "--with-zlib=/usr/lib",
            # use our neon, not OS X's
            "--disable-neon-version-check",
            "--disable-mod-activation",
            "--without-apache-libexecdir",
            "--without-berkeley-db"]

    if ARGV.include? "--java"
      args << "--enable-javahl" << "--without-jikes"
    end

    system "./configure", *args
    system "make"
    system "make install"

    if ARGV.include? "--java"
      ENV.j1 # This build isn't parallel safe
      system "make javahl"
      system "make install-javahl"
    end
  end
end