#! /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 <http://www.gnu.org/licenses/>. PACKAGE='opkhelper' VERSION='1.0.0' print_usage() { printf 'Usage: %s [OPTION]...\n' "$1" } print_help() { cat <<EOF \`configure' configures ${PACKAGE} ${VERSION} to adapt to many kinds of systems. $(print_usage "${1}") Configuration: -h, --help display this help and exit -V, --version display version information and exit -q, --quiet do not print \`checking ...' messages --srcdir=SRCDIR find the scripts in SRCDIR default: configure dir Installation directories: --prefix=PREFIX install files under PREFIX default: /usr/local --bindir=BINDIR install scripts in BINDIR default: PREFIX/bin --libdir=LIBDIR install library scripts in LIBDIR default: PREFIX/lib --datadir=DATADIR expect to find data in DATADIR default: PREFIX/share --mandir=MANDIR install manual pages in MANDIR default: PREFIX/share/man EOF } print_version() { cat <<EOF ${PACKAGE} ${VERSION} configure Not generated by GNU Autoconf Copyright (C) 2011-2012 Patrick "P. J." McDermott License: GNU GPL version 3 or later <http://www.gnu.org/licenses/gpl.html>. 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'