mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2025-01-19 03:06:42 +00:00
efa83fdf6e
In case some random snapshot is installed and used for production, then this will ease rewinding.
162 lines
4.4 KiB
Bash
Executable File
162 lines
4.4 KiB
Bash
Executable File
#!/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
|
|
|
|
# If this version is a svn snapshot, try to get the revision number
|
|
# If we can't get the revision number, use date
|
|
case "${VERSION}" in
|
|
*+svn)
|
|
REVISION=$(LANG=C svn info 2>/dev/null |egrep 'Revision: ' |cut -d ' ' -f 2-)
|
|
if [ -n "${REVISION}" ]; then
|
|
URL=$(LANG=C svn info 2>/dev/null |egrep 'URL: ' |cut -d ' ' -f 2-)
|
|
ROOT=$(LANG=C svn info 2>/dev/null |egrep 'Repository Root: ' |cut -d ' ' -f 3-)
|
|
VERSION="${VERSION}:${URL#${ROOT}}@${REVISION}"
|
|
else
|
|
VERSION="${VERSION}:unknown@$(date +%Y%m%d.%H%M%S)"
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
# 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 -c 'echo ${BASH_VERSION}')
|
|
bash_major=$(/bin/bash -c 'echo ${BASH_VERSINFO[0]}')
|
|
[ ${bash_major} -ge 3 ] || do_error "bash 3.0 or above is needed (/bin/bash is ${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__
|