|
|
|
# Copyright 1999-2015 Gentoo Foundation
|
|
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
# $Id$
|
|
|
|
|
|
|
|
EAPI=5
|
|
|
|
|
|
|
|
WANT_AUTOCONF="2.5"
|
|
|
|
|
|
|
|
GENTOO_DEPEND_ON_PERL="no"
|
|
|
|
PYTHON_COMPAT=( python2_7 python3_{3,4} )
|
|
|
|
DISTUTILS_OPTIONAL=1
|
|
|
|
|
|
|
|
inherit autotools eutils libtool perl-module distutils-r1 python-r1 toolchain-funcs java-pkg-opt-2
|
|
|
|
|
|
|
|
DESCRIPTION="Translator library for raster geospatial data formats (includes OGR support)"
|
|
|
|
HOMEPAGE="http://www.gdal.org/"
|
|
|
|
SRC_URI="http://download.osgeo.org/${PN}/${PV}/${P}.tar.gz"
|
|
|
|
|
|
|
|
SLOT="0"
|
|
|
|
LICENSE="MIT"
|
|
|
|
KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
|
|
|
|
IUSE="armadillo +aux_xml curl debug doc fits geos gif gml hdf5 java jpeg jpeg2k mdb mysql netcdf odbc ogdi opencl pdf perl png postgres python ruby spatialite sqlite threads xls"
|
|
|
|
|
|
|
|
RDEPEND="
|
|
|
|
dev-libs/expat
|
|
|
|
dev-libs/json-c
|
|
|
|
dev-libs/libpcre
|
|
|
|
dev-libs/libxml2
|
|
|
|
media-libs/tiff:0=
|
|
|
|
sci-libs/libgeotiff
|
|
|
|
sys-libs/zlib[minizip(+)]
|
|
|
|
armadillo? ( sci-libs/armadillo[lapack] )
|
|
|
|
curl? ( net-misc/curl )
|
|
|
|
fits? ( sci-libs/cfitsio )
|
|
|
|
geos? ( >=sci-libs/geos-2.2.1 )
|
|
|
|
gif? ( media-libs/giflib )
|
|
|
|
gml? ( >=dev-libs/xerces-c-3 )
|
|
|
|
hdf5? ( >=sci-libs/hdf5-1.6.4[szip] )
|
|
|
|
java? ( >=virtual/jre-1.6:* )
|
|
|
|
jpeg? ( virtual/jpeg:0= )
|
|
|
|
jpeg2k? ( media-libs/jasper )
|
|
|
|
mysql? ( virtual/mysql )
|
|
|
|
netcdf? ( sci-libs/netcdf )
|
|
|
|
odbc? ( dev-db/unixODBC )
|
|
|
|
ogdi? ( sci-libs/ogdi )
|
|
|
|
opencl? ( virtual/opencl )
|
|
|
|
pdf? ( >=app-text/poppler-0.24.3:= )
|
|
|
|
perl? ( dev-lang/perl:= )
|
|
|
|
png? ( media-libs/libpng:0= )
|
|
|
|
postgres? ( >=dev-db/postgresql-8.4:= )
|
|
|
|
python? (
|
|
|
|
${PYTHON_DEPS}
|
|
|
|
dev-python/setuptools[${PYTHON_USEDEP}]
|
|
|
|
dev-python/numpy[${PYTHON_USEDEP}]
|
|
|
|
)
|
|
|
|
ruby? ( dev-lang/ruby:1.9 )
|
|
|
|
sqlite? ( dev-db/sqlite:3 )
|
|
|
|
spatialite? ( dev-db/spatialite )
|
|
|
|
xls? ( dev-libs/freexl )
|
|
|
|
"
|
|
|
|
|
|
|
|
SWIG_DEP=">=dev-lang/swig-2.0.2 <=dev-lang/swig-3.0.4"
|
|
|
|
DEPEND="${RDEPEND}
|
|
|
|
doc? ( app-doc/doxygen )
|
|
|
|
java? ( >=virtual/jdk-1.6 )
|
|
|
|
perl? ( ${SWIG_DEP} )
|
|
|
|
python? ( ${SWIG_DEP} )
|
|
|
|
ruby? ( ${SWIG_DEP} )"
|
|
|
|
|
|
|
|
AT_M4DIR="${S}/m4"
|
|
|
|
MAKEOPTS+=" -j1"
|
|
|
|
|
|
|
|
REQUIRED_USE="
|
|
|
|
spatialite? ( sqlite )
|
|
|
|
mdb? ( java )
|
|
|
|
"
|
|
|
|
|
|
|
|
pkg_setup() {
|
|
|
|
java-pkg-opt-2_pkg_setup
|
|
|
|
}
|
|
|
|
|
|
|
|
src_prepare() {
|
|
|
|
java-pkg-opt-2_src_prepare
|
|
|
|
|
|
|
|
# fix datadir and docdir placement
|
|
|
|
sed -i \
|
|
|
|
-e "s:@datadir@:@datadir@/gdal:" \
|
|
|
|
-e "s:@exec_prefix@/doc:@exec_prefix@/share/doc/${PF}/html:g" \
|
|
|
|
"${S}"/GDALmake.opt.in || die
|
|
|
|
|
|
|
|
# the second sed expression should fix bug 371075
|
|
|
|
sed -i \
|
|
|
|
-e "s:setup.py install:setup.py install --root=\$(DESTDIR):" \
|
|
|
|
-e "s:--prefix=\$(DESTDIR):--prefix=:" \
|
|
|
|
"${S}"/swig/python/GNUmakefile || die
|
|
|
|
|
|
|
|
epatch "${FILESDIR}"/${PN}-1.10.0-ruby-makefile.patch
|
|
|
|
|
|
|
|
# -soname is only accepted by GNU ld/ELF
|
|
|
|
[[ ${CHOST} == *-darwin* ]] \
|
|
|
|
&& epatch "${FILESDIR}"/${PN}-1.5.0-install_name.patch \
|
|
|
|
|| epatch "${FILESDIR}"/${PN}-1.5.0-soname.patch
|
|
|
|
|
|
|
|
# Fix spatialite/sqlite include issue
|
|
|
|
sed -i \
|
|
|
|
-e 's:spatialite/sqlite3.h:sqlite3.h:g' \
|
|
|
|
ogr/ogrsf_frmts/sqlite/ogr_sqlite.h || die
|
|
|
|
|
|
|
|
# Fix freexl configure check
|
|
|
|
sed -i \
|
|
|
|
-e 's:FREEXL_LIBS=missing):FREEXL_LIBS=missing,-lm):g' \
|
|
|
|
configure.in || die
|
|
|
|
|
|
|
|
sed \
|
|
|
|
-e "s: /usr/: \"${EPREFIX}\"/usr/:g" \
|
|
|
|
-i configure.in || die
|
|
|
|
|
|
|
|
sed \
|
|
|
|
-e 's:^ar:$(AR):g' \
|
|
|
|
-i ogr/ogrsf_frmts/sdts/install-libs.sh || die
|
|
|
|
|
|
|
|
# bug 540132
|
|
|
|
epatch "${FILESDIR}"/${PN}-1.11.1-poppler-0.31.0-support.patch
|
|
|
|
|
|
|
|
tc-export AR RANLIB
|
|
|
|
|
|
|
|
eautoreconf
|
|
|
|
|
|
|
|
prepare_python() {
|
|
|
|
mkdir -p "${BUILD_DIR}" || die
|
|
|
|
find "${S}" -type d -maxdepth 1 -exec ln -s {} "${BUILD_DIR}"/ \; ||die
|
|
|
|
find "${S}" -type f -maxdepth 1 -exec cp --target="${BUILD_DIR}"/ {} + ||die
|
|
|
|
# mkdir -p "${BUILD_DIR}"/swig/python || die
|
|
|
|
# mkdir -p "${BUILD_DIR}"/apps || die
|
|
|
|
# cp -dpR --target="${BUILD_DIR}"/swig/ \
|
|
|
|
# "${S}"/swig/{python,SWIGmake.base,GNUmakefile} || die
|
|
|
|
# ln -s "${S}"/swig/include "${BUILD_DIR}"/swig/ || die
|
|
|
|
# ln -s "${S}"/apps/gdal-config "${BUILD_DIR}"/apps/ || die
|
|
|
|
# ln -s "${S}"/port "${BUILD_DIR}"/ || die
|
|
|
|
}
|
|
|
|
if use python; then
|
|
|
|
python_foreach_impl prepare_python
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
gdal_src_configure() {
|
|
|
|
local myopts=""
|
|
|
|
|
|
|
|
if use ruby; then
|
|
|
|
RUBY_MOD_DIR="$(ruby19 -r rbconfig -e 'print RbConfig::CONFIG["sitearchdir"]')"
|
|
|
|
echo "Ruby module dir is: $RUBY_MOD_DIR"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if use java; then
|
|
|
|
myopts+="
|
|
|
|
--with-java=$(java-config --jdk-home 2>/dev/null)
|
|
|
|
$(use_with mdb)"
|
|
|
|
else
|
|
|
|
myopts+=" --without-java --without-mdb"
|
|
|
|
use mdb && ewarn "mdb requires java use enabled. disabling"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if use sqlite; then
|
|
|
|
myopts+=" LIBS=-lsqlite3"
|
|
|
|
fi
|
|
|
|
|
|
|
|
# pcidsk is internal, because there is no such library yet released
|
|
|
|
# also that thing is developed by the gdal people
|
|
|
|
# kakadu, mrsid jp2mrsid - another jpeg2k stuff, ignore
|
|
|
|
# bsb - legal issues
|
|
|
|
# oracle - disabled, i dont have and can't test
|
|
|
|
# ingres - same story as oracle oci
|
|
|
|
# podofo - we use poppler instead they are exclusive for each other
|
|
|
|
# tiff is a hard dep
|
|
|
|
ECONF_SOURCE="${S}" econf \
|
|
|
|
--includedir="${EPREFIX}/usr/include/${PN}" \
|
|
|
|
--disable-static \
|
|
|
|
--enable-shared \
|
|
|
|
--with-expat \
|
|
|
|
--with-geotiff \
|
|
|
|
--with-grib \
|
|
|
|
--with-libtiff \
|
|
|
|
--with-libz="${EPREFIX}/usr/" \
|
|
|
|
--with-ogr \
|
|
|
|
--without-bsb \
|
|
|
|
--without-dods-root \
|
|
|
|
--without-dwgdirect \
|
|
|
|
--without-epsilon \
|
|
|
|
--without-fme \
|
|
|
|
--without-grass \
|
|
|
|
--without-hdf4 \
|
|
|
|
--without-idb \
|
|
|
|
--without-ingres \
|
|
|
|
--without-jp2mrsid \
|
|
|
|
--without-kakadu \
|
|
|
|
--without-libtool \
|
|
|
|
--without-mrsid \
|
|
|
|
--without-msg \
|
|
|
|
--without-oci \
|
|
|
|
--without-pcraster \
|
|
|
|
--without-podofo \
|
|
|
|
--without-sde \
|
|
|
|
$(use_enable debug) \
|
|
|
|
$(use_with armadillo) \
|
|
|
|
$(use_with aux_xml pam) \
|
|
|
|
$(use_with curl) \
|
|
|
|
--without-ecw \
|
|
|
|
$(use_with fits cfitsio) \
|
|
|
|
$(use_with geos) \
|
|
|
|
$(use_with gif) \
|
|
|
|
$(use_with gml xerces) \
|
|
|
|
$(use_with hdf5) \
|
|
|
|
$(use_with jpeg pcidsk) \
|
|
|
|
$(use_with jpeg) \
|
|
|
|
$(use_with jpeg2k jasper) \
|
|
|
|
$(use_with mysql mysql "${EPREFIX}"/usr/bin/mysql_config) \
|
|
|
|
$(use_with netcdf) \
|
|
|
|
$(use_with odbc) \
|
|
|
|
$(use_with ogdi ogdi "${EPREFIX}"/usr) \
|
|
|
|
$(use_with opencl) \
|
|
|
|
$(use_with pdf poppler) \
|
|
|
|
$(use_with perl) \
|
|
|
|
$(use_with png) \
|
|
|
|
$(use_with postgres pg) \
|
|
|
|
$(use_with python) \
|
|
|
|
$(use_with ruby) \
|
|
|
|
$(use_with spatialite) \
|
|
|
|
$(use_with sqlite sqlite3 "${EPREFIX}"/usr) \
|
|
|
|
$(use_with threads) \
|
|
|
|
$(use_with xls freexl) \
|
|
|
|
${myopts}
|
|
|
|
|
|
|
|
# mysql-config puts this in (and boy is it a PITA to get it out)
|
|
|
|
if use mysql; then
|
|
|
|
sed -i \
|
|
|
|
-e "s: -rdynamic : :" \
|
|
|
|
GDALmake.opt || die "sed LIBS failed"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [[ -n $use_python ]]; then
|
|
|
|
# updated for newer swig (must specify the path to input files)
|
|
|
|
sed -i \
|
|
|
|
-e "s: gdal_array.i: ../include/gdal_array.i:" \
|
|
|
|
-e "s:\$(DESTDIR)\$(prefix):\$(DESTDIR)\$(INST_PREFIX):g" \
|
|
|
|
swig/python/GNUmakefile || die "sed python makefile failed"
|
|
|
|
sed -i \
|
|
|
|
-e "s:library_dirs = :library_dirs = /usr/$(get_libdir):g" \
|
|
|
|
swig/python/setup.cfg || die "sed python setup.cfg failed"
|
|
|
|
# -e "s:gdal_config=.*$:gdal_config=../../../apps/gdal-config:g" \
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
src_configure() {
|
|
|
|
local use_python=""
|
|
|
|
|
|
|
|
gdal_src_configure
|
|
|
|
|
|
|
|
if use python; then
|
|
|
|
use_python="yes"
|
|
|
|
python_foreach_impl run_in_build_dir gdal_src_configure
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
src_compile() {
|
|
|
|
local i
|
|
|
|
for i in perl ruby; do
|
|
|
|
if use $i; then
|
|
|
|
rm "${S}"/swig/$i/*_wrap.cpp
|
|
|
|
emake -C "${S}"/swig/$i generate
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
default
|
|
|
|
|
|
|
|
if use perl ; then
|
|
|
|
pushd "${S}"/swig/perl > /dev/null
|
|
|
|
perl-module_src_configure
|
|
|
|
perl-module_src_compile
|
|
|
|
popd > /dev/null
|
|
|
|
fi
|
|
|
|
|
|
|
|
use doc && emake docs
|
|
|
|
|
|
|
|
compile_python() {
|
|
|
|
rm -f swig/python/*_wrap.cpp
|
|
|
|
emake -C swig/python generate
|
|
|
|
emake -C swig/python build
|
|
|
|
}
|
|
|
|
if use python; then
|
|
|
|
python_foreach_impl run_in_build_dir compile_python
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
src_install() {
|
|
|
|
if use perl ; then
|
|
|
|
pushd "${S}"/swig/perl > /dev/null
|
|
|
|
perl-module_src_install
|
|
|
|
popd > /dev/null
|
|
|
|
sed -i \
|
|
|
|
-e "s:BINDINGS = python ruby perl:BINDINGS = python ruby:g" \
|
|
|
|
GDALmake.opt || die
|
|
|
|
fi
|
|
|
|
|
|
|
|
default
|
|
|
|
|
|
|
|
if use ruby ; then
|
|
|
|
# weird reinstall collision; needs manual intervention...
|
|
|
|
pushd "${S}"/swig/ruby > /dev/null
|
|
|
|
rm -rf "${D}"${RUBY_MOD_DIR}/gdal
|
|
|
|
exeinto ${RUBY_MOD_DIR}/gdal
|
|
|
|
doexe *.so || die "doins ruby modules failed"
|
|
|
|
popd > /dev/null
|
|
|
|
fi
|
|
|
|
|
|
|
|
use perl && perl_delete_localpod
|
|
|
|
|
|
|
|
dodoc Doxyfile HOWTO-RELEASE NEWS
|
|
|
|
|
|
|
|
if use doc ; then
|
|
|
|
dohtml html/*
|
|
|
|
docinto ogr
|
|
|
|
dohtml ogr/html/*
|
|
|
|
fi
|
|
|
|
|
|
|
|
install_python() {
|
|
|
|
emake -C swig/python DESTDIR="${D}" install
|
|
|
|
}
|
|
|
|
if use python; then
|
|
|
|
python_foreach_impl run_in_build_dir install_python
|
|
|
|
newdoc swig/python/README.txt README-python.txt
|
|
|
|
insinto /usr/share/${PN}/samples
|
|
|
|
doins swig/python/samples/*
|
|
|
|
python_replicate_script "${ED}"/usr/bin/*py
|
|
|
|
fi
|
|
|
|
|
|
|
|
pushd man/man1 > /dev/null
|
|
|
|
for i in * ; do
|
|
|
|
newman ${i} ${i}
|
|
|
|
done
|
|
|
|
popd > /dev/null
|
|
|
|
}
|
|
|
|
|
|
|
|
pkg_postinst() {
|
|
|
|
elog "Check available image and data formats after building with"
|
|
|
|
elog "gdalinfo and ogrinfo (using the --formats switch)."
|
|
|
|
}
|