diff options
author | P. J. McDermott <pjm@nac.net> | 2012-07-10 15:29:36 (EDT) |
---|---|---|
committer | P. J. McDermott <pjm@nac.net> | 2012-07-10 15:32:47 (EDT) |
commit | 43de5a1e0030b64adfda15bd9a59961fad834d72 (patch) | |
tree | 9e1934830abbfac31daf1030b35d630bb2402308 /configure |
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 206 |
1 files changed, 206 insertions, 0 deletions
diff --git a/configure b/configure new file mode 100755 index 0000000..070a751 --- /dev/null +++ b/configure @@ -0,0 +1,206 @@ +#! /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 <http://www.gnu.org/licenses/>. + +PACKAGE='opkbootstrap' +VERSION='0.1.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) + 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' |