diff options
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Formula/gdal.rb | 231 |
1 files changed, 185 insertions, 46 deletions
diff --git a/Library/Formula/gdal.rb b/Library/Formula/gdal.rb index 6bfbe087c..e884a9dc2 100644 --- a/Library/Formula/gdal.rb +++ b/Library/Formula/gdal.rb @@ -1,62 +1,201 @@ require 'formula' +def complete? + ARGV.include? "--complete" +end + +def postgres? + ARGV.include? "--with-postgres" +end + +def mysql? + ARGV.include? "--with-mysql" +end + +def no_python? + ARGV.include? "--without-python" +end + class Gdal <Formula url 'http://download.osgeo.org/gdal/gdal-1.7.2.tar.gz' + head 'https://svn.osgeo.org/gdal/trunk/gdal', :using => :svn homepage 'http://www.gdal.org/' md5 '05351f8cb61761ae579667e24a297fe6' - depends_on 'libtiff' + depends_on 'jpeg' depends_on 'giflib' depends_on 'proj' depends_on 'geos' + if complete? + # Raster libraries + depends_on "netcdf" # Also brings in HDF5 + depends_on "jasper" # May need a keg-only GeoJasPer library as this one is + # not geo-spatially enabled. + + # Vector libraries + depends_on "unixodbc" # OS X version is not complete enough + depends_on "libspatialite" + depends_on "xerces-c" + end + + depends_on "postgresql" if postgres? + depends_on "mysql" if mysql? + + def options + [ + ['--complete', 'Use additional Homebrew libraries to provide more drivers.'], + ['--with-postgres', 'Specify PostgreSQL as a dependency.'], + ['--with-mysql', 'Specify MySQL as a dependency.'], + ['--without-python', 'Build without Python support (disables a lot of tools).'] + ] + end + + def get_configure_args + args = [ + # Base configuration. + "--disable-debug", + "--with-local=#{prefix}", + "--with-threads", + "--with-libtool", + + # GDAL native backends. + "--with-libtiff=internal", # For bigTIFF support + "--with-geotiff=internal", + "--with-pcraster=internal", + "--with-pcidsk=internal", + "--with-bsb", + "--with-grib", + "--with-pam", + + # Backends supported by OS X. + "--with-libz=/usr", + "--with-png=/usr/X11", + "--with-expat=/usr", + "--with-curl=/usr/bin/curl-config", + "--with-sqlite3=/usr", + + # Default Homebrew backends. + "--with-jpeg=#{HOMEBREW_PREFIX}", + "--with-jpeg12", + "--with-gif=#{HOMEBREW_PREFIX}", + + # GRASS backend explicitly disabled. Creates a chicken-and-egg problem. + # Should be installed seperately after GRASS installation using the + # official GDAL GRASS plugin. + "--without-grass", + "--without-libgrass" + ] + + # Optional library support for additional formats. + if complete? + args.concat [ + "--with-netcdf=#{HOMEBREW_PREFIX}", + "--with-hdf5=#{HOMEBREW_PREFIX}", + "--with-jasper=#{HOMEBREW_PREFIX}", + "--with-odbc=#{HOMEBREW_PREFIX}", + "--with-spatialite=#{HOMEBREW_PREFIX}", + "--with-xerces=#{HOMEBREW_PREFIX}" + ] + else + args.concat [ + "--without-cfitsio", + "--without-netcdf", + "--without-ogdi", + "--without-hdf4", + "--without-hdf5", + "--without-jasper", + "--without-xerces", + "--without-epsilon", + "--without-spatialite", + "--with-dods-root=no", + + # The following libraries are either proprietary or available under + # non-free licenses. Interested users will have to install such + # software manually. + "--without-msg", + "--without-mrsid", + "--without-jp2mrsid", + "--without-kakadu", + "--without-fme", + "--without-ecw", + "--without-dwgdirect" + ] + end + + # Database support. + args << "--without-pg" unless postgres? + args << "--without-mysql" unless mysql? + args << "--without-sde" # ESRI ArcSDE databases + args << "--without-ingres" # Ingres databases + args << "--without-oci" # Oracle databases + args << "--without-idb" # IBM Informix DataBlades + + # Hombrew-provided databases. + args << "--with-pg=#{HOMEBREW_PREFIX}/bin/pg_config" if postgres? + args << "--with-mysql=#{HOMEBREW_PREFIX}/bin/mysql_config" if mysql? + + args << "--without-python" # Installed using a seperate set of + # steps so that everything winds up + # in the prefix. + + # Scripting APIs that have not been re-worked to respect Homebrew prefixes. + # + # Currently disabled as they install willy-nilly into locations outside of + # the Hombrew prefix. Enable if you feel like it, but uninstallation may be + # a manual affair. + # + # TODO: Fix installation of script bindings so they install into the + # Homebrew prefix. + args << "--without-perl" + args << "--without-php" + args << "--without-ruby" + + return args + end + def install - system "./configure", "--prefix=#{prefix}", - "--disable-debug", - "--disable-dependency-tracking", - "--with-threads", - "--with-local=#{prefix}", - "--with-png=/usr/X11", - "--without-pg", - "--without-grass", - "--without-libgrass", - "--without-cfitsio", - "--without-pcraster", - "--without-netcdf", - "--without-ogdi", - "--without-fme", - "--without-hdf4", - "--without-hdf5", - "--without-jasper", - "--without-ecw", - "--without-kakadu", - "--without-mrsid", - "--without-jp2mrsid", - "--without-msg", - "--without-bsb", - "--without-oci", - "--without-grib", - "--without-mysql", - "--without-ingres", - "--without-xerces", - "--without-expat", - "--without-odbc", - "--with-dods-support=no", - "--without-curl", - "--without-sqlite3", - "--without-dwgdirect", - "--without-idb", - "--without-sde", - #"--without-geos", - "--without-pam", - "--without-macosx-framework", - "--without-perl", - "--without-php", - #"--without-ruby", - #"--without-python", - "--without-ogpython", - "--without-xerces" + system "./configure", "--prefix=#{prefix}", *get_configure_args system "make" system "make install" + + unless no_python? + # If setuptools happens to be installed, setup.py will cowardly refuse to + # install to anywhere that is not on the PYTHONPATH. + # + # Really setuptools, we're all consenting adults here... + python_lib = lib + "python" + ENV.append 'PYTHONPATH', python_lib + + # setuptools is also apparently incapable of making the directory it's + # self + python_lib.mkpath + + # `python-config` may try to talk us into building bindings for more + # architectures than we really should. + if snow_leopard_64? + ENV.append_to_cflags '-arch x86_64' + else + ENV.append_to_cflags '-arch i386' + end + + Dir.chdir 'swig/python' do + system "python", "setup.py", "install_lib", "--install-dir=#{python_lib}" + bin.install Dir['scripts/*'] + end + end + end + + unless no_python? + def caveats + <<-EOS +This version of GDAL was built with Python support. In addition to providing +modules that makes GDAL functions available to Python scripts, the Python +binding provides ~18 additional command line tools. However, both the Python +bindings and the additional tools will be unusable unless the following +directory is added to the PYTHONPATH: + #{HOMEBREW_PREFIX}/lib/python + EOS + end end end |
