blob: 6342c9f31a056de26050aa4ba90628a1d0af0012 [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http:#www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
[buildout]
extends =
etc/dependencies.cfg
unzip = true
#develop = ./src/main/python/rcmes
parts =
zlib
curl
szip
jpeg
libpng
freetype
numpy
numpy-build
scipy
scipy-build
matplotlib
matplotlib-build
hdf5
netcdf
netcdf4
netcdf4-build
ncl-bin
pynio-bin
pyngl-bin
bottle
requests
[zlib]
recipe = hexagonit.recipe.cmmi
url = ${external:zlibURL}
md5sum = ${external:zlibMD5}
configure-options =
--prefix=/usr/local
--shared
make-target =
all install
[curl]
recipe = hexagonit.recipe.cmmi
url = ${external:curlURL}
md5sum = ${external:curlMD5}
configure-options =
--bindir=${buildout:bin-directory}
--with-zlib=${zlib:location}
[libpng]
recipe = hexagonit.recipe.cmmi
url = ${external:libpngURL}
md5sum = ${external:libpngMD5}
configure-options =
--prefix=/usr/local
--with-pic
make-target =
all install
[freetype]
recipe = hexagonit.recipe.cmmi
url = ${external:freetypeURL}
md5sum = ${external:freetypeMD5}
configure-options =
--prefix=/usr/local
[jpeg]
recipe = hexagonit.recipe.cmmi
url = ${external:jpegURL}
md5sum = ${external:jpegMD5}
configure-options =
--prefix=/usr/local
make-target =
all install
install-lib
install-headers
[szip]
recipe = hexagonit.recipe.cmmi
url = ${external:szipURL}
md5sum = ${external:szipMD5}
[hdf5]
recipe = hexagonit.recipe.cmmi
url = ${external:hdf5URL}
md5sum = ${external:hdf5MD5}
environment = CPPFLAGS=-D__BSD_VISIBLE
configure-options =
--bindir=${buildout:bin-directory}
--enable-production
--enable-threadsafe
--enable-hl
--enable-shared
--with-pthread
--with-szlib=${szip:location}
--with-zlib=${zlib:location}
[netcdf]
recipe = hexagonit.recipe.cmmi
url = ${external:netcdfURL}
md5sum = ${external:netcdfMD5}
environment =
CPPFLAGS=-I${szip:location}/include -I${hdf5:location}/include -I${zlib:location}/include -I${curl:location}/include
LDFLAGS=-L${szip:location}/lib -L${hdf5:location}/lib -L${zlib:location}/lib -L${curl:location}/lib
configure-options =
--bindir=${buildout:bin-directory}
--enable-dap
--enable-cxx-4
--enable-ncgen4
--enable-shared
--enable-netcdf-4
[netcdf4]
recipe = hexagonit.recipe.download
url = ${external:netCDF4-pythonURL}
md5sum = ${external:netCDF4-pythonMD5}
[netcdf4-build]
recipe = cp.recipe.cmd
shell = /bin/bash
install_cmd =
export HDF5_DIR=${hdf5:location}
export NETCDF4_DIR=${netcdf:location}
export SZIP_DIR=${szip:location}
cd ${netcdf4:location}/netCDF4-1.0.2
python setup.py build
python setup.py install
[numpy]
recipe = hexagonit.recipe.download
url = ${external:numpyURL}
md5sum = ${external:numpyMD5}
[numpy-build]
recipe = collective.recipe.cmd
on_install = true
on_update = true
cmds =
cd ${numpy:location}
${buildout:directory}/bin/buildout setup numpy-1.6.2 install
[scipy]
recipe = hexagonit.recipe.download
url = ${external:scipyURL}
md5sum = ${external:scipyMD5}
[scipy-build]
recipe = collective.recipe.cmd
on_install = true
on_update = true
cmds =
cd ${scipy:location}
${buildout:directory}/bin/buildout setup scipy-0.11.0 install
[matplotlib]
recipe = hexagonit.recipe.download
url = ${external:matplotlibURL}
md5sum = ${external:matplotlibMD5}
[matplotlib-build]
recipe = collective.recipe.cmd
on_install = true
on_update = true
cmds =
cd ${matplotlib:location}/matplotlib
python setup.py build
python setup.py install
[ncl-bin]
recipe = cp.recipe.cmd
shell = /bin/bash
install_cmd =
OS=`uname -s`
VER=`uname -m`
cd ${buildout:directory}/parts
mkdir -p ~/NCL
if [ "$OS" == "Darwin" ]
then
if [ "$VER" == "x86_64" ]
then
${buildout:bin-directory}/curl ${external:nclBinURL_OSX64} -o "ncl.tar.gz"
else
${buildout:bin-directory}/curl ${external:nclBinURL_OSX32} -o "ncl.tar.gz"
fi
elif [ "$OS" == "Linux" ]
then
if [ "$VER" == "x86_64" ]
then
${buildout:bin-directory}/curl ${external:nclBinURL_Linux64} -o "ncl.tar.gz"
else
${buildout:bin-directory}/curl ${external:nclBinURL_Linux32} -o "ncl.tar.gz"
fi
else
echo "Unable to properly detect your OS. Please report this problem."
echo "Cancelling installation of NCL..."
exit
fi
if [ ! -e ${buildout:directory}/parts/ncl.tar.gz ]
then
echo "Unable to download NCL. Cancelling installation..."
exit 2
fi
cd ~/NCL
tar xzf ${buildout:directory}/parts/ncl.tar.gz
if [ -e ~/.cshrc ]
then
echo "setenv NCARG_ROOT ~/NCL" >> ~/.cshrc
echo "setenv PATH \$NCARG_ROOT/bin:\$PATH" >> ~/.cshrc
fi
if [ -e ~/.bashrc ]
then
echo "export NCARG_ROOT=~/NCL" >> ~/.bashrc
echo "export PATH=\$NCARG_ROOT/bin:\$PATH" >> ~/.bashrc
fi
update_cmd = ${ncl-bin:install_cmd}
[pynio]
recipe = hexagonit.recipe.download
url = ${external:pynioURL}
md5sum = ${external:pynioMD5}
[pynio-build]
recipe = collective.recipe.cmd
on_install = true
on_update = true
cmds =
cd ${pynio:location}/PyNIO-1.4.1
export NCARG_ROOT=${ncl:location}/ncl_ncarg-6.0.0-patched
export HAS_GRIB2=1
export HAS_OPENDAP=0
export NETCDF_PREFIX=${netcdf:location}
export GRIB2_PREFIX=/usr/local
export F2CLIBS=gfortran
export F2CLIBS_PREFIX=/usr/local/Cellar/gfortran/4.7.2/gfortran/lib
python setup.py install
[pynio-bin]
recipe = cp.recipe.cmd
shell = /bin/bash
install_cmd =
OS=`uname -s`
VER=`uname -m`
mkdir -p ~/Downloads/PyNIO
cd ~/Downloads/PyNIO
if [ "$OS" == "Darwin" ]
then
if [ "$VER" == "x86_64" -o "$VER" == "i386" ]
then
${buildout:bin-directory}/curl ${external:pynioBinURL_OSX64} -o "PyNIO.tar.gz"
else
${buildout:bin-directory}/curl ${external:pynioBinURL_OSX32} -o "PyNIO.tar.gz"
fi
elif [ "$OS" == "Linux" ]
then
if [ "$VER" == "x86_64" ]
then
${buildout:bin-directory}/curl ${external:pynioBinURL_Linux64} -o "PyNIO.tar.gz"
else
${buildout:bin-directory}/curl ${external:pynioBinURL_Linux32} -o "PyNIO.tar.gz"
fi
else
echo "Unable to properly detect your OS. Please report this problem."
echo "Cancelling installation of PyNIO..."
exit
fi
if [ ! -e ~/Downloads/PyNIO/PyNIO.tar.gz ]
then
echo "Unable to download PyNIO. Cancelling installation..."
exit 2
fi
libDir=`python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"`
if [ ! -z "$VIRTUAL_ENV" ]
then
libDir="$VIRTUAL_ENV/lib/python2.7/site-packages"
fi
tar xzf PyNIO.tar.gz
\cp -rf lib/python2.7/site-packages/* $libDir
update_cmd = ${pynio-bin:install_cmd}
# Why package your code properly? Who knows!!! So now we get to have this gem here...
[pyngl-bin]
recipe = cp.recipe.cmd
shell = /bin/bash
install_cmd =
OS=`uname -s`
VER=`uname -m`
mkdir -p ~/Downloads/PyNGL
cd ~/Downloads/PyNGL
if [ "$OS" == "Darwin" ]
then
if [ "$VER" == "x86_64" -o "$VER" == "i386" ]
then
${buildout:bin-directory}/curl ${external:pynglBinURL_OSX64} -o "PyNGL.tar.gz"
else
${buildout:bin-directory}/curl ${external:pynglBinURL_OSX32} -o "PyNGL.tar.gz"
fi
elif [ "$OS" == "Linux" ]
then
if [ "$VER" == "x86_64" ]
then
${buildout:bin-directory}/curl ${external:pynglBinURL_Linux64} -o "PyNGL.tar.gz"
else
${buildout:bin-directory}/curl ${external:pynglBinURL_Linux32} -o "PyNGL.tar.gz"
fi
else
echo "Unable to properly detect your OS. Please report this problem."
echo "Cancelling installation of PyNGL..."
exit
fi
if [ ! -e ~/Downloads/PyNGL/PyNGL.tar.gz ]
then
echo "Unable to download PyNGL. Cancelling installation..."
exit 2
fi
libDir=`python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"`
if [ ! -z "$VIRTUAL_ENV" ]
then
libDir="$VIRTUAL_ENV/lib/python2.7/site-packages"
fi
tar xzf PyNGL.tar.gz
\cp -rf bin/* ${buildout:bin-directory}
\cp -rf lib/python2.7/site-packages/* $libDir
update_cmd = ${pyngl-bin:install_cmd}
# This is a bit hacked around because buildout wouldn't cooperate and install the egg
[bottle]
recipe = collective.recipe.cmd
on_install = true
on_update = true
cmds =
pip install bottle
# Simple pip installation of Requests
[requests]
recipe = collective.recipe.cmd
on_install = true
on_update = true
cmds =
pip install requests