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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
require 'formula'
def build_java?; ARGV.include? "--java"; end
def build_perl?; ARGV.include? "--perl"; end
def build_python?; ARGV.include? "--python"; end
def build_ruby?; ARGV.include? "--ruby"; end
class Subversion < Formula
homepage 'http://subversion.apache.org/'
url 'http://www.apache.org/dyn/closer.cgi?path=subversion/subversion-1.7.2.tar.bz2'
sha1 '8c0824aeb7f42da1ff4f7cd296877af7f59812bb'
depends_on 'pkg-config' => :build
# If Subversion can use the Lion versions of these, please
# open an issue with a patch. Build against Homebrewed versions
# for consistency. - @adamv
depends_on 'neon'
depends_on 'sqlite'
def options
[
['--java', 'Build Java bindings.'],
['--perl', 'Build Perl bindings.'],
['--python', 'Build Python bindings.'],
['--ruby', 'Build Ruby bindings.'],
['--universal', 'Build as a Universal Intel binary.'],
]
end
def check_neon_arch
# Check that Neon was built universal if we are building w/ --universal
neon = Formula.factory('neon')
if 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
def install
if build_java?
unless ARGV.build_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 subversion --universal --java"
end
unless (ENV["JAVA_HOME"] or "").empty?
opoo "JAVA_HOME is set. Try unsetting it if JNI headers cannot be found."
end
end
if ARGV.build_universal?
ENV.universal_binary
check_neon_arch
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",
"--with-sqlite=/usr/local",
# use our neon, not OS X's
"--disable-neon-version-check",
"--disable-mod-activation",
"--without-apache-libexecdir",
"--without-berkeley-db"]
args << "--enable-javahl" << "--without-jikes" if build_java?
args << "--with-ruby-sitedir=#{lib}/ruby" if build_ruby?
system "./configure", *args
system "make"
system "make install"
if build_python?
system "make swig-py"
system "make install-swig-py"
end
if build_perl?
ENV.j1 # This build isn't parallel safe
# Remove hard-coded ppc target, add appropriate ones
if ARGV.build_universal?
arches = "-arch x86_64 -arch i386"
elsif MacOS.leopard?
arches = "-arch i386"
else
arches = "-arch x86_64"
end
# Use version-appropriate system Perl
if MacOS.leopard?
perl_version = "5.8.8"
else
perl_version = "5.10.0"
end
inreplace "Makefile" do |s|
s.change_make_var! "SWIG_PL_INCLUDES",
"$(SWIG_INCLUDES) #{arches} -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -I/usr/local/include -I/System/Library/Perl/#{perl_version}/darwin-thread-multi-2level/CORE"
end
system "make swig-pl"
system "make install-swig-pl"
end
if build_java?
ENV.j1 # This build isn't parallel safe
system "make javahl"
system "make install-javahl"
end
if build_ruby?
ENV.j1 # This build isn't parallel safe
system "make swig-rb"
system "make install-swig-rb"
end
end
def caveats
s = ""
if build_python?
s += <<-EOS.undent
You may need to add the Python bindings to your PYTHONPATH from:
#{HOMEBREW_PREFIX}/lib/svn-python
EOS
end
if build_ruby?
s += <<-EOS.undent
You may need to add the Ruby bindings to your RUBYLIB from:
#{HOMEBREW_PREFIX}/lib/ruby
EOS
end
if build_java?
s += <<-EOS.undent
You may need to link the Java bindings into the Java Extensions folder:
sudo mkdir -p /Library/Java/Extensions
sudo ln -s #{HOMEBREW_PREFIX}/lib/libsvnjavahl-1.dylib /Library/Java/Extensions/libsvnjavahl-1.dylib
EOS
end
return s.empty? ? nil : s
end
end
|