#! /bin/sh # # opkbootstrap # 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='opkbootstrap' VERSION='0.1.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) BINDIR="${2}" shift 2 ;; --libdir) LIBDIR="${2}" shift 2 ;; --datadir) DATADIR="${2}" shift 2 ;; --mandir) MANDIR="${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 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'