#!/bin/sh VERSION=$(cat .version) DATE=$(date +%Y%m%d) PREFIX_DEFAULT=/usr/local BINDIR_set= LIBDIR_set= DOCDIR_set= MANDIR_set= LOCAL_set= get_optval(){ local ret case "$1" in --*=?*) echo "${1}" |cut -d '=' -f 2- ret=0 ;; *) echo "${2}" ret=1 ;; esac return ${ret} } set_prefix() { PREFIX=$(get_optval "$1" "$2") return $? } set_bindir() { BINDIR_set=1 BINDIR=$(get_optval "$1" "$2") return $? } set_libdir() { LIBDIR_set=1 LIBDIR=$(get_optval "$1" "$2") return $? } set_docdir() { DOCDIR_set=1 DOCDIR=$(get_optval "$1" "$2") return $? } set_mandir() { MANDIR_set=1 MANDIR=$(get_optval "$1" "$2") return $? } do_help() { cat <<__EOF__ \`configure' configures crosstool-NG ${VERSION} to adapt to many kind of systems. USAGE: ./configure [OPTION]... Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --prefix=PREFIX install files in PREFIX [${PREFIX_DEFAULT}] --local don't install, and use current directory By default, \`make install' will install all the files in \`${PREFIX_DEFAULT}/bin', \`${PREFIX_DEFAULT}/lib' etc. You can specify an installation prefix other than \`${PREFIX_DEFAULT}' using \`--prefix', for instance \`--prefix=\${HOME}'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [PREFIX/bin] --libdir=DIR object code libraries [PREFIX/lib] --docdir=DIR info documentation [PREFIX/share/doc] --mandir=DIR man documentation [PREFIX/share/man] __EOF__ } do_error() { echo "[ERROR] ${@}" exit 1 } #--------------------------------------------------------------------- # Set user's options while [ $# -ne 0 ]; do case "$1" in --prefix*) set_prefix "$1" "$2" && shift || shift 2;; --bindir*) set_bindir "$1" "$2" && shift || shift 2;; --libdir*) set_libdir "$1" "$2" && shift || shift 2;; --docdir*) set_docdir "$1" "$2" && shift || shift 2;; --mandir*) set_mandir "$1" "$2" && shift || shift 2;; --local) LOCAL_set=1; shift;; --help|-h) do_help; exit 0;; *) do_help; exit 1;; esac done [ -z "${PREFIX}" ] && set_prefix "" "${PREFIX_DEFAULT}" if [ "${LOCAL_set}" = "1" ]; then set_prefix "" $(pwd) set_bindir "" $(pwd) set_libdir "" $(pwd) set_docdir "" $(pwd)/docs set_mandir "" $(pwd)/docs fi [ -z "${BINDIR_set}" ] && BINDIR="${PREFIX}/bin" [ -z "${LIBDIR_set}" ] && LIBDIR="${PREFIX}/lib/ct-ng-${VERSION}" [ -z "${DOCDIR_set}" ] && DOCDIR="${PREFIX}/share/doc/ct-ng-${VERSION}" [ -z "${MANDIR_set}" ] && MANDIR="${PREFIX}/share/man/man1" #--------------------------------------------------------------------- # Some sanity checks, now # Check bash is present, and at least version 3.0 [ -x /bin/bash ] || do_error "bash 3.0 or above was not found in /bin/bash" bash_version=$(/bin/bash --version |sed -r -e '2,$d' -e 's/.* version ([[:digit:]]+).*/\1/;') bash_major=${bash_version%%.*} [ ${bash_major} -ge 3 ] || do_error "bash 3.0 or above is needed (found ${bash_version})" sed -r -e "s,@@BINDIR@@,${BINDIR},g;" \ -e "s,@@LIBDIR@@,${LIBDIR},g;" \ -e "s,@@DOCDIR@@,${DOCDIR},g;" \ -e "s,@@MANDIR@@,${MANDIR},g;" \ -e "s,@@VERSION@@,${VERSION},g;" \ -e "s,@@DATE@@,${DATE},g;" \ -e "s,@@LOCAL@@,${LOCAL_set},g;" \ Makefile.in >Makefile cat <<__EOF__ crosstool-NG configured as follows: PREFIX="${PREFIX}" BINDIR="${BINDIR}" LIBDIR="${LIBDIR}" DOCDIR="${DOCDIR}" MANDIR="${MANDIR}" __EOF__