#! /bin/sh
#
# opkhelper
# configure
# Configuration script to generate Makefile.
#
# Copyright (C) 2012 Patrick "P. J." McDermott
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
PACKAGE='opkhelper'
VERSION='0.2.0'
print_usage()
{
printf 'Usage: %s [OPTION]...\n' "$1"
}
print_help()
{
cat <.
This configure script is free software: you can redistribute and/or modify it.
There is NO WARRANTY, to the extent permitted by law.
EOF
}
opts=$(getopt -n "${0}" -o 'hVq' -l 'help,version,quiet' \
-l 'srcdir:,prefix:,bindir:,libdir:,mandir:' -- "${@}")
if [ ${?} -ne 0 ]; then
print_usage "${0}" >&2
exit 1;
fi
eval set -- "${opts}"
while true; do
case "${1}" in
-h|--help)
print_help "${0}"
exit 0
;;
-V|--version)
print_version
exit 0
;;
-q|--quiet)
QUIET=true
shift
;;
--srcdir)
SRCDIR="${2}"
shift 2
;;
--prefix)
PREFIX="${2}"
shift 2
;;
--bindir)
# Leave PREFIX unexpanded for now, in case it isn't set yet.
BINDIR="\${PREFIX}/${2}"
shift 2
;;
--libdir)
# Leave PREFIX unexpanded for now, in case it isn't set yet.
LIBDIR="\${PREFIX}/${2}"
shift 2
;;
--datadir)
# Leave PREFIX unexpanded for now, in case it isn't set yet.
DATADIR="\${PREFIX}/${2}"
shift 2
;;
--mandir)
# Leave PREFIX unexpanded for now, in case it isn't set yet.
MANDIR="\${PREFIX}/${2}"
shift 2
;;
--)
shift
break
;;
*)
print_usage "${0}" >&2
exit 1
;;
esac
done
if [ -z "${QUIET}" ]; then
QUIET=false
fi
if [ -z "${SRCDIR}" ]; then
SRCDIR=$(dirname "${0}")
fi
# Make SRCDIR an absolute path if it isn't already.
SRCDIR=$(cd ${SRCDIR} && pwd)
if [ -z "${PREFIX}" ]; then
PREFIX=/usr/local
fi
if [ -z "${BINDIR}" ]; then
BINDIR=${PREFIX}/bin
fi
if [ -z "${LIBDIR}" ]; then
LIBDIR=${PREFIX}/lib
fi
if [ -z "${DATADIR}" ]; then
DATADIR=${PREFIX}/share
fi
if [ -z "${MANDIR}" ]; then
MANDIR=${PREFIX}/share/man
fi
# Expand PREFIX if it's there.
eval "BINDIR=${BINDIR}"
eval "LIBDIR=${LIBDIR}"
eval "DATADIR=${DATADIR}"
eval "MANDIR=${MANDIR}"
find_dependency()
{
dep=${1}
var=${2}
shift 2
${QUIET} || printf 'checking for %s... ' "${dep}"
while [ ${#} -gt 0 ]; do
if [ -f "${1}/${dep}" ]; then
${QUIET} || printf '%s/%s\n' "${1}" "${dep}"
eval "${var}=${1}/${dep}"
return 0
fi
shift
done
${QUIET} || printf 'not found\n'
missing_dependencies=true
return 1
}
missing_dependencies=false
find_dependency sh SHELL /bin
find_dependency install INSTALL /usr/bin
find_dependency make MAKE /usr/bin
if ${missing_dependencies}; then
printf '\nSome dependencies could not be found.\n'
printf 'Please make sure all dependencies are installed and try again.\n\n'
exit 1
fi
sed_script="
s&@shell@&${SHELL}&
s&@install@&${INSTALL} -c&
s&@make@&${MAKE}&
s&@srcdir@&${SRCDIR}&
s&@prefix@&${PREFIX}&
s&@bindir@&${BINDIR}&
s&@libdir@&${LIBDIR}&
s&@datadir@&${DATADIR}&
s&@mandir@&${MANDIR}&
s&@package@&${PACKAGE}&
s&@version@&${VERSION}&"
# Replace configuration variables in Makefile.in
mkdir -p src lib man
sed "$sed_script" ${SRCDIR}/Makefile.in > Makefile
sed "$sed_script" ${SRCDIR}/src/Makefile.in > src/Makefile
sed "$sed_script" ${SRCDIR}/lib/Makefile.in > lib/Makefile
sed "$sed_script" ${SRCDIR}/man/Makefile.in > man/Makefile
printf '\nConfiguration complete!\n\n'