Refactor HDF5 formula
Some changes to the way HDF5 is configured: * The SZIP dependency is actually used * C++ bindings are compiled by default as it requires no additional dependencies. New formula options: * Build Fortran bindings although this disables the production of shared libraries. * Build a threadsafe HDF5 library, although this disables C++ and Fortran bindings and causes a performance hit. Signed-off-by: Adam Vandenberg <flangy@gmail.com>
This commit is contained in:
parent
d317983c00
commit
f21a1a22ec
1 changed files with 31 additions and 1 deletions
|
@ -1,5 +1,13 @@
|
|||
require 'formula'
|
||||
|
||||
def fortran?
|
||||
ARGV.include? '--enable-fortran'
|
||||
end
|
||||
|
||||
def threadsafe?
|
||||
ARGV.include? '--enable-threadsafe'
|
||||
end
|
||||
|
||||
class Hdf5 < Formula
|
||||
url 'http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-1.8.6.tar.bz2'
|
||||
homepage 'http://www.hdfgroup.org/HDF5/'
|
||||
|
@ -8,8 +16,30 @@ class Hdf5 < Formula
|
|||
|
||||
depends_on 'szip'
|
||||
|
||||
def options
|
||||
[
|
||||
['--enable-fortran', 'Compile Fortran bindings at the expense of having shared libraries'],
|
||||
['--enable-threadsafe', 'Trade performance and C++ or Fortran support for thread safety']
|
||||
]
|
||||
end
|
||||
|
||||
def install
|
||||
system "./configure", "--prefix=#{prefix}", "--disable-debug", "--disable-dependency-tracking"
|
||||
ENV.fortran if fortran?
|
||||
|
||||
args = [
|
||||
"--prefix=#{prefix}",
|
||||
'--disable-debug',
|
||||
'--disable-dependency-tracking',
|
||||
'--enable-production',
|
||||
'--with-zlib=yes',
|
||||
'--with-szlib=yes',
|
||||
'--enable-filters=all'
|
||||
]
|
||||
args.concat ['--with-pthread=/usr', '--enable-threadsafe'] if threadsafe?
|
||||
args << '--enable-cxx' unless threadsafe?
|
||||
args << '--enable-fortran' if fortran? and not threadsafe?
|
||||
|
||||
system "./configure", *args
|
||||
system "make install"
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue