#!/bin/sh
set -e
setup_debian() {
which wget || sudo apt-get -q -y -f install wget
which gpg || sudo apt-get -q -y -f install gnupg
which lsb_release || sudo apt-get -q -y -f install lsb-release
codename=$(lsb_release -c | awk '{print($2)}')
if type prepare_$codename >/dev/null 2>&1; then
prepare_$codename
else
echo "WARNING: no specific preparation steps for $codename"
fi
if [ ! -f /etc/apt/sources.list.d/analizo.list ]; then
echo "deb http://www.analizo.org/download/ ./" | sudo sh -c 'cat > /etc/apt/sources.list.d/analizo.list'
wget -O - http://www.analizo.org/download/signing-key.asc | sudo apt-key add -
fi
which apt-file || sudo apt-get -q -y -f install apt-file
sudo apt-get update
sudo apt-file update
sudo apt-get -q -y -f install dh-make-perl libdist-zilla-perl liblocal-lib-perl cpanminus
# install Doxyparse build dependencies and define "master" as Doxyparse version to install
sudo apt-get -q -f -y install flex bison cmake build-essential python
export ALIEN_DOXYPARSE_VERSION=master
packages=$(locate_package $(dzil authordeps))
sudo apt-get -q -y -f install $packages
dzil authordeps --missing | cpanm --notest
packages=$(locate_package $(dzil listdeps))
sudo apt-get -q -y -f install $packages
dzil listdeps --missing | cpanm --notest
}
locate_package() {
packages=
for module in $@; do
package=$(dh-make-perl locate $module | grep 'package$' | grep ' is in ' | sed 's/.\+is in \(.\+\) package/\1/')
packages="$packages $package"
done
echo $packages
}
prepare_ubuntu() {
if ! grep -q ZeroMQ Makefile.PL; then
# only needed while we depend on ZeroMQ
return
fi
apt-get install -q -y libzeromq-perl
}
prepare_precise() {
prepare_ubuntu
}
prepare_quantal() {
prepare_ubuntu
}
prepare_trusty() {
prepare_ubuntu
}
# FIXME share data with Makefile.PL/dist.ini
needed_programs='
cpanm
git
pkg-config
'
needed_libraries='
uuid
libzmq
'
check_non_perl_dependencies() {
failed=false
for program in $needed_programs; do
printf "Looking for $program ... "
if ! which $program; then
echo "*** $program NOT FOUND *** "
failed=true
fi
done
for package in $needed_libraries; do
printf "Looking for $package ... "
if pkg-config $package; then
echo OK
else
echo "*** ${package}-dev NOT FOUND ***"
failed=true
fi
done
if [ "$failed" = 'true' ]; then
echo
echo "ERROR: missing dependencies"
echo "See HACKING for tips on how to install missing dependencies"
exit 1
fi
}
setup_generic() {
check_non_perl_dependencies
dzil listdeps | cpanm
}
if [ ! -f ./bin/analizo ]; then
echo "Please run this script from the root of Analizo sources!"
exit 1
fi
force_generic=false
if [ "$1" = '--generic' ]; then
force_generic=true
fi
if [ -x /usr/bin/dpkg -a -x /usr/bin/apt-get -a "$force_generic" = false ]; then
setup_debian
else
setup_generic
fi