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