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:
Charlie Sharpsteen 2011-04-01 13:43:30 -07:00 committed by Adam Vandenberg
parent d317983c00
commit f21a1a22ec

View file

@ -1,5 +1,13 @@
require 'formula' require 'formula'
def fortran?
ARGV.include? '--enable-fortran'
end
def threadsafe?
ARGV.include? '--enable-threadsafe'
end
class Hdf5 < Formula class Hdf5 < Formula
url 'http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-1.8.6.tar.bz2' url 'http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-1.8.6.tar.bz2'
homepage 'http://www.hdfgroup.org/HDF5/' homepage 'http://www.hdfgroup.org/HDF5/'
@ -8,8 +16,30 @@ class Hdf5 < Formula
depends_on 'szip' 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 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" system "make install"
end end
end end