summaryrefslogtreecommitdiffstats
path: root/configure
diff options
context:
space:
mode:
authorP. 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)
commit43de5a1e0030b64adfda15bd9a59961fad834d72 (patch)
tree9e1934830abbfac31daf1030b35d630bb2402308 /configure
Initial commit.
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure206
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'