parent
f89a7813fd
commit
93b2785a64
1 changed files with 69 additions and 17 deletions
|
@ -12,33 +12,85 @@ class Openssl < Formula
|
|||
sha1 "f12f352e67e5b131c1935040f8d2ca24107ebfca" => :lion
|
||||
end
|
||||
|
||||
depends_on "makedepend" => :build if MacOS.prefer_64_bit?
|
||||
option :universal
|
||||
|
||||
depends_on "makedepend" => :build
|
||||
|
||||
keg_only :provided_by_osx,
|
||||
"The OpenSSL provided by OS X is too old for some software."
|
||||
|
||||
def install
|
||||
args = %W[./Configure
|
||||
--prefix=#{prefix}
|
||||
--openssldir=#{openssldir}
|
||||
zlib-dynamic
|
||||
shared
|
||||
enable-cms
|
||||
]
|
||||
def arch_args
|
||||
{
|
||||
:x86_64 => %w[darwin64-x86_64-cc enable-ec_nistp-64_gcc_128],
|
||||
:i386 => %w[darwin-i386-cc],
|
||||
}
|
||||
end
|
||||
|
||||
if MacOS.prefer_64_bit?
|
||||
args << "darwin64-x86_64-cc" << "enable-ec_nistp_64_gcc_128"
|
||||
def configure_args; %W[
|
||||
--prefix=#{prefix}
|
||||
--openssldir=#{openssldir}
|
||||
zlib-dynamic
|
||||
shared
|
||||
enable-cms
|
||||
]
|
||||
end
|
||||
|
||||
def install
|
||||
if build.universal?
|
||||
ENV.permit_arch_flags
|
||||
archs = Hardware::CPU.universal_archs
|
||||
elsif MacOS.prefer_64_bit?
|
||||
archs = [Hardware::CPU.arch_64_bit]
|
||||
else
|
||||
args << "darwin-i386-cc"
|
||||
archs = [Hardware::CPU.arch_32_bit]
|
||||
end
|
||||
|
||||
system "perl", *args
|
||||
dirs = []
|
||||
|
||||
archs.each do |arch|
|
||||
if build.universal?
|
||||
dir = "build-#{arch}"
|
||||
dirs << dir
|
||||
mkdir dir
|
||||
mkdir "#{dir}/engines"
|
||||
system "make", "clean"
|
||||
end
|
||||
|
||||
ENV.deparallelize
|
||||
system "perl", "./Configure", *(configure_args + arch_args[arch])
|
||||
system "make", "depend"
|
||||
system "make"
|
||||
system "make", "test"
|
||||
|
||||
if build.universal?
|
||||
cp Dir["*.?.?.?.dylib", "*.a", "apps/openssl"], dir
|
||||
cp Dir["engines/**/*.dylib"], "#{dir}/engines"
|
||||
end
|
||||
end
|
||||
|
||||
ENV.deparallelize
|
||||
system "make", "depend" if MacOS.prefer_64_bit?
|
||||
system "make"
|
||||
system "make", "test"
|
||||
system "make", "install", "MANDIR=#{man}", "MANSUFFIX=ssl"
|
||||
|
||||
if build.universal?
|
||||
%w[libcrypto libssl].each do |libname|
|
||||
system "lipo", "-create", "#{dirs.first}/#{libname}.1.0.0.dylib",
|
||||
"#{dirs.last}/#{libname}.1.0.0.dylib",
|
||||
"-output", "#{lib}/#{libname}.1.0.0.dylib"
|
||||
system "lipo", "-create", "#{dirs.first}/#{libname}.a",
|
||||
"#{dirs.last}/#{libname}.a",
|
||||
"-output", "#{lib}/#{libname}.a"
|
||||
end
|
||||
|
||||
Dir.glob("#{dirs.first}/engines/*.dylib") do |engine|
|
||||
libname = File.basename(engine)
|
||||
system "lipo", "-create", "#{dirs.first}/engines/#{libname}",
|
||||
"#{dirs.last}/engines/#{libname}",
|
||||
"-output", "#{lib}/engines/#{libname}"
|
||||
end
|
||||
|
||||
system "lipo", "-create", "#{dirs.first}/openssl",
|
||||
"#{dirs.last}/openssl",
|
||||
"-output", "#{bin}/openssl"
|
||||
end
|
||||
end
|
||||
|
||||
def openssldir
|
||||
|
|
Loading…
Reference in a new issue