# source environment
source ../env_6.0.0

# make dependency directory
\rm -rf ${deps}
mkdir ${deps}
mkdir ${deps}/bin
mkdir ${deps}/lib
mkdir ${deps}/man
mkdir ${deps}/man/man1
mkdir ${deps}/include
mkdir ${deps}/share
mkdir ${deps}/share/doc
mkdir ${deps}/share/doc/udunits

# build JPEG
\rm -rf jpeg*
wget http://google-desktop-for-linux-mirror.googlecode.com/files/jpeg-6b.tar.gz
tar xvfz jpeg-6b.tar.gz
cd jpeg/src
./configure --prefix=${deps}
make all install install-lib install-headers
cd -

# build ZLIB
\rm -rf zlib-1.2.5*
wget http://zlib.net/zlib-1.2.5.tar.gz
tar xvfz zlib-1.2.5.tar.gz
cd zlib-1.2.5
./configure --prefix=${deps}
make all install
cd -

# UDUNITS 2.1.22
\rm -rf udunits-2.1.22*
wget ftp://ftp.unidata.ucar.edu/pub/udunits/udunits-2.1.22.tar.gz
tar xvfz udunits-2.1.22.tar.gz
cd udunits-2.1.22
setenv PERL ""
./configure --prefix=${deps}
make all install
cd -

# build szip-2.1
\rm -rf szip-2.1*
wget http://www.hdfgroup.org/ftp/lib-external/szip/2.1/src/szip-2.1.tar.gz
tar xvfz szip-2.1.tar.gz
cd szip-2.1
./configure --prefix=${deps} --disable-shared
make all install
cd -

# build HDF5-1.8.5-patch1
\rm -rf hdf5-1.8.5-patch1*
wget http://www.hdfgroup.org/ftp/HDF5/prev-releases/hdf5-1.8.5-patch1/src/hdf5-1.8.5-patch1.tar.gz
tar xvfz hdf5-1.8.5-patch1.tar.gz
cd hdf5-1.8.5-patch1
./configure --with-zlib=${deps} --with-szlib=${deps} --prefix=${deps} --disable-shared
make all install
cd -

# build libcurl 7.21.4
\rm -rf curl-7.21.4*
wget http://curl.haxx.se/download/curl-7.21.4.tar.gz
tar xvfz curl-7.21.4.tar.gz
cd curl-7.21.4
./configure --prefix=${deps} --with-zlib=${deps} --with-pic
make all install
cd -

# build NetCDF-4.1.1 (with "classic" support, without OPeNDAP support)
\rm -rf netcdf-4.1.1*
wget ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4.1.1.tar.gz
tar xvfz netcdf-4.1.1.tar.gz
cd netcdf-4.1.1
./configure --with-hdf5=${deps} --with-zlib=${deps} --with-szlib=${deps} --with-curl=${deps} --prefix=${deps} --disable-f90 --enable-netcdf-4 --disable-dap CFLAGS="${CFLAGS} -I/usr/include"
# hack ncgen/ncgen.h: remove line 141
# hack ncgen/main.c: remove "#ifdef HAVE_GETOPT_H" and corresponding "#endif" on line 6 and 8, respectively
make all install
cd -

# build HDF-4 4.2.5
\rm -rf hdf-4.2.5*
wget http://www.hdfgroup.org/ftp/HDF/HDF_Current/src/hdf-4.2.5.tar.gz
tar xvfz hdf-4.2.5.tar.gz
cd hdf-4.2.5
./configure --prefix=${deps} --with-zlib=${deps} --with-szip=${deps} --with-jpeg=${deps} --includedir=${deps}/include/hdf --disable-netcdf
make all install
cd -

# build jasper-1.900.1
\rm -rf jasper-1.900.1*
wget http://www.ece.uvic.ca/~mdadams/jasper/software/jasper-1.900.1.zip
unzip jasper-1.900.1.zip
cd jasper-1.900.1.zip
./configure --prefix=${deps}
make all install
cd -

# build libpng-1.5.2
\rm -rf libpng-1.5.2*
wget 'http://prdownloads.sourceforge.net/libpng/libpng-1.5.2.tar.gz?download'
tar xvfz libpng-1.5.2.tar.gz
cd libpng-1.5.2
./configure --with-pic --disable-shared --prefix=${deps}
make all install
cd -

# install g2clib-1.2.1 (patched version by NCL people)
\rm -rf g2clib*
wget http://www.ncl.ucar.edu/Download/files/g2clib_with_changes-1.2.1.tar.gz
tar xvfz g2clib_with_changes-1.2.1.tar.gz
cd g2clib-1.2.1-patches
make all
mv libgrib2c.a ${deps}/lib
cp grib2.h ${deps}/include
cd -

# build proj.4
\rm -rf proj-4.7.0*
wget http://download.osgeo.org/proj/proj-4.7.0.tar.gz
tar xvfz proj-4.7.0.tar.gz
cd proj-4.7.0
./configure --prefix=${deps} --enable-static=yes --enable-shared=no
# remove all // comments in src/pj_malloc.c
make all install
cd -

# build expat 2.0.1
\rm -rf expat*
wget http://sourceforge.net/projects/expat/files/expat/2.0.1/expat-2.0.1.tar.gz/download
tar xvfz expat-2.0.1.tar.gz
cd expat-2.0.1
./configure --prefix=${deps} --enable-static=yes --enable-shared=no
make all install
cd -

# build idn 1.19
\rm -rf libidn-1.19
wget http://ftp.gnu.org/gnu/libidn/libidn-1.19.tar.gz
cd libidn-1.19
./configure --prefix=${deps} --enable-static=yes --enable-shared=no
make all install
cd -

# build gdal
\rm -rf gdal-1.7.3*
wget http://download.osgeo.org/gdal/gdal-1.7.3.tar.gz
tar xvfz gdal-1.7.3.tar.gz
cd gdal-1.7.3
./configure --prefix=${deps} --with-static-proj4=${deps} --with-curl=${deps} --with-expat=${deps} --with-idn=${deps}
make all install
cd -

# build HDF-EOS 2 2.17.v1
\rm -rf HDF-EOS2.17v1* hdfeos*
wget ftp://edhs1.gsfc.nasa.gov/edhs/hdfeos/latest_release/HDF-EOS2.17v1.00.tar.Z
tar xvfz HDF-EOS2.17v1.00.tar.Z
cd hdfeos
setenv LINUX_BRAND linux64
mv lib/linux64/libhdfeos.a ${deps}/lib
cp include/*.h ${deps}/include
unsetenv LINUX_BRAND
cd -
cd hdfeos/gctp/src
cp makelinux64 makefile
# edit makefile and set "LIBDIR  = /project/s83/olifu/ncl/deps_6.0.0/lib"
cp ../include/*.h .
make
cd -

# build HDF-EOS 5 1.13
\rm -rf HDF-EOS5.1.13* hdfeos5*
wget ftp://edhs1.gsfc.nasa.gov/edhs/hdfeos5/latest_release/HDF-EOS5.1.13.tar.Z
tar xvfz HDF-EOS5.1.13.tar.Z
cd hdfeos5
./configure CC=${deps}/bin/h5cc --with-hdf5=${deps} --with-zlib=${deps} --with-szlib=${deps} --prefix=${deps}
make all install
cp include/HE5_GctpFunc.h include/HE5_HdfEosDef.h ${deps}/include
cd -

# build pkg-config
\rm -rf pkg-config-0.25*
wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.25.tar.gz
tar xvfz pkg-config-0.25.tar.gz
cd pkg-config-0.25
./configure --prefix=${deps}
make all install
cd -

# build fontconfig 2.8.0
\rm -rf  fontconfig-2.8.0*
wget http://www.freedesktop.org/software/fontconfig/release/fontconfig-2.8.0.tar.gz
tar xvfz fontconfig-2.8.0.tar.gz
cd fontconfig-2.8.0
./configure --prefix=${deps}
make all install
cd -

# build FreeType 2.4.4
\rm -rf freetype-2.4.4*
wget http://download.savannah.gnu.org/releases/freetype/freetype-2.4.4.tar.gz
tar xvfz freetype-2.4.4.tar.gz
cd freetype-2.4.4
./configure --prefix=${deps}
make all install
cd -

# build pixman 0.20.2
\rm -rf pixman-0.20.2*
wget http://cairographics.org/releases/pixman-0.20.2.tar.gz
tar xvfz pixman-0.20.2.tar.gz
cd pixman-0.20.2
./configure --prefix=${deps}
make all install
cd -

# build cairo 1.10.2
\rm -rf cairo-1.10.2*
wget http://cairographics.org/releases/cairo-1.10.2.tar.gz
tar xvfz cairo-1.10.2.tar.gz
cd cairo-1.10.2
./configure --prefix=${deps}
make all install
cd -

# get triangle software
\rm -rf triangle*
mkdir triangle
cd triangle
wget http://www.netlib.org/voronoi/triangle.zip
unzip triangle.zip
cd -

# build Vis5D+ software
\rm -rf vis5d+-1.3.0*
wget http://sourceforge.net/projects/vis5d/files/vis5d/vis5d%2B-1.3.0-beta/vis5d%2B-1.3.0-beta.tar.gz/download
tar xvfz vis5d+-1.3.0-beta.tar.gz
cd vis5d+-1.3.0-beta
./configure --prefix=${deps} --with-netcdf=${deps}/lib/libnetcdf.a
# fix the following bug in call to IDATE
#   vi util/kludge.f
#      INTEGER TARRAY(3)
#      ...
#      CALL IDATE(TARRAY)
#      MON=TARRAY(1)
#      IDAY=TARRAY(2)
#      IYEAR=TARRAY(3)
make all install
cd -

# build NCL 6.0.0
\rm -rf ncl_ncarg-6.0.0
tar xvfz ncl_ncarg-6.0.0.tar.gz

# copy triangle software into NCL source tree
cp triangle/triangle.c triangle/triangle.h ncl_ncarg-6.0.0/ni/src/lib/hlu/

# set location of compile
setenv NCARG /project/s83/olifu/ncl/compile_6.0.0/ncl_ncarg-6.0.0

# customize build environment
cd $NCARG/config
make -f Makefile.ini
./ymake -config `pwd`
grep SYSTEM_INCLUDE Makefile
vi LINUX
# HdfDefines  -DLINUX64
# ArchRecLibSearch    -L/usr/X11R6/lib64

# run configure script
cd $NCARG
./Configure -v
make Info > Info.out

# BUGFIX: http://www.ncl.ucar.edu/Support/install_archives/2010/0038.html
# vi $NCARG/ncarg2d/src/libncarg/ezmap/mapngb.c
# add the following line after "#include <png.h>"
# #define int_p_NULL (int *)NULL

# start the build process
make Everything |& tee -a make-output


