configure
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Fri Sep 14 21:41:00 2007 +0000 (2007-09-14)
changeset 386 d5c5ed1b75ef
parent 377 38720321dad0
child 395 fd7a636532cf
permissions -rwxr-xr-x
Update docs/CREDITS: ARM EABI support.
Update README: point at docs/CREDITS.
yann@182
     1
#!/bin/sh
yann@182
     2
yann@334
     3
VERSION=$(cat .version)
yann@182
     4
DATE=$(date +%Y%m%d)
yann@182
     5
yann@183
     6
PREFIX_DEFAULT=/usr/local
yann@182
     7
yann@182
     8
BINDIR_set=
yann@182
     9
LIBDIR_set=
yann@182
    10
DOCDIR_set=
yann@182
    11
MANDIR_set=
yann@285
    12
LOCAL_set=
yann@182
    13
yann@182
    14
get_optval(){
yann@182
    15
    local ret
yann@182
    16
    case "$1" in
yann@182
    17
        --*=?*)
yann@193
    18
            echo "${1}" |cut -d '=' -f 2-
yann@182
    19
            ret=0
yann@182
    20
            ;;
yann@182
    21
        *)
yann@182
    22
            echo "${2}"
yann@182
    23
            ret=1
yann@182
    24
            ;;
yann@182
    25
    esac
yann@182
    26
    return ${ret}
yann@182
    27
}
yann@182
    28
yann@182
    29
set_prefix() {
yann@182
    30
    PREFIX=$(get_optval "$1" "$2")
yann@376
    31
    return $?
yann@182
    32
}
yann@182
    33
yann@182
    34
set_bindir() {
yann@376
    35
    BINDIR_set=1
yann@182
    36
    BINDIR=$(get_optval "$1" "$2")
yann@376
    37
    return $?
yann@182
    38
}
yann@182
    39
yann@182
    40
set_libdir() {
yann@376
    41
    LIBDIR_set=1
yann@182
    42
    LIBDIR=$(get_optval "$1" "$2")
yann@376
    43
    return $?
yann@182
    44
}
yann@182
    45
yann@182
    46
set_docdir() {
yann@376
    47
    DOCDIR_set=1
yann@182
    48
    DOCDIR=$(get_optval "$1" "$2")
yann@376
    49
    return $?
yann@182
    50
}
yann@182
    51
yann@182
    52
set_mandir() {
yann@376
    53
    MANDIR_set=1
yann@182
    54
    MANDIR=$(get_optval "$1" "$2")
yann@376
    55
    return $?
yann@182
    56
}
yann@182
    57
yann@183
    58
do_help() {
yann@183
    59
    cat <<__EOF__
yann@197
    60
\`configure' configures crosstool-NG ${VERSION} to adapt to many kind of systems.
yann@183
    61
yann@183
    62
USAGE: ./configure [OPTION]...
yann@183
    63
yann@183
    64
Defaults for the options are specified in brackets.
yann@183
    65
yann@183
    66
Configuration:
yann@183
    67
  -h, --help              display this help and exit                                                                                                                  
yann@185
    68
  --prefix=PREFIX         install files in PREFIX [${PREFIX_DEFAULT}]
yann@285
    69
  --local                 don't install, and use current directory
yann@183
    70
yann@183
    71
By default, \`make install' will install all the files in
yann@183
    72
\`${PREFIX_DEFAULT}/bin', \`${PREFIX_DEFAULT}/lib' etc.  You can specify
yann@183
    73
an installation prefix other than \`${PREFIX_DEFAULT}' using \`--prefix',
yann@183
    74
for instance \`--prefix=\${HOME}'.
yann@183
    75
yann@183
    76
For better control, use the options below.
yann@183
    77
yann@183
    78
Fine tuning of the installation directories:
yann@183
    79
  --bindir=DIR           user executables [PREFIX/bin]
yann@183
    80
  --libdir=DIR           object code libraries [PREFIX/lib]
yann@183
    81
  --docdir=DIR           info documentation [PREFIX/share/doc]
yann@183
    82
  --mandir=DIR           man documentation [PREFIX/share/man]
yann@183
    83
__EOF__
yann@183
    84
}
yann@183
    85
yann@376
    86
do_error() {
yann@376
    87
    echo "[ERROR] ${@}"
yann@376
    88
    exit 1
yann@376
    89
}
yann@376
    90
yann@376
    91
#---------------------------------------------------------------------
yann@376
    92
# Set user's options
yann@376
    93
yann@182
    94
while [ $# -ne 0 ]; do
yann@182
    95
    case "$1" in
yann@182
    96
        --prefix*)  set_prefix "$1" "$2" && shift || shift 2;;
yann@182
    97
        --bindir*)  set_bindir "$1" "$2" && shift || shift 2;;
yann@182
    98
        --libdir*)  set_libdir "$1" "$2" && shift || shift 2;;
yann@182
    99
        --docdir*)  set_docdir "$1" "$2" && shift || shift 2;;
yann@182
   100
        --mandir*)  set_mandir "$1" "$2" && shift || shift 2;;
yann@285
   101
        --local)    LOCAL_set=1; shift;;
yann@183
   102
        --help|-h)  do_help; exit 0;;
yann@183
   103
        *)          do_help; exit 1;;
yann@182
   104
    esac
yann@182
   105
done
yann@182
   106
yann@185
   107
[ -z "${PREFIX}" ] && set_prefix "" "${PREFIX_DEFAULT}"
yann@285
   108
if [ "${LOCAL_set}" = "1" ]; then
yann@285
   109
    set_prefix "" $(pwd)
yann@285
   110
    set_bindir "" $(pwd)
yann@285
   111
    set_libdir "" $(pwd)
yann@285
   112
    set_docdir "" $(pwd)/docs
yann@285
   113
    set_mandir "" $(pwd)/docs
yann@285
   114
fi
yann@183
   115
yann@376
   116
[ -z "${BINDIR_set}" ] && BINDIR="${PREFIX}/bin"
yann@376
   117
[ -z "${LIBDIR_set}" ] && LIBDIR="${PREFIX}/lib/ct-ng-${VERSION}"
yann@376
   118
[ -z "${DOCDIR_set}" ] && DOCDIR="${PREFIX}/share/doc/ct-ng-${VERSION}"
yann@376
   119
[ -z "${MANDIR_set}" ] && MANDIR="${PREFIX}/share/man/man1"
yann@376
   120
yann@376
   121
#---------------------------------------------------------------------
yann@376
   122
# Some sanity checks, now
yann@376
   123
yann@376
   124
# Check bash is present, and at least version 3.0
yann@376
   125
[ -x /bin/bash ] || do_error "bash 3.0 or above was not found in /bin/bash"
yann@381
   126
bash_version=$(/bin/bash --version |sed -r -e '2,$d' -e 's/.* version ([[:digit:]]+).*/\1/;')
yann@381
   127
bash_major=${bash_version%%.*}
yann@377
   128
[ ${bash_major} -ge 3 ] || do_error "bash 3.0 or above is needed (found ${bash_version})"
yann@376
   129
yann@182
   130
sed -r -e "s,@@BINDIR@@,${BINDIR},g;"   \
yann@182
   131
       -e "s,@@LIBDIR@@,${LIBDIR},g;"   \
yann@182
   132
       -e "s,@@DOCDIR@@,${DOCDIR},g;"   \
yann@182
   133
       -e "s,@@MANDIR@@,${MANDIR},g;"   \
yann@182
   134
       -e "s,@@VERSION@@,${VERSION},g;" \
yann@182
   135
       -e "s,@@DATE@@,${DATE},g;"       \
yann@285
   136
       -e "s,@@LOCAL@@,${LOCAL_set},g;" \
yann@185
   137
       Makefile.in >Makefile
yann@185
   138
yann@185
   139
cat <<__EOF__
yann@197
   140
crosstool-NG configured as follows:
yann@185
   141
  PREFIX="${PREFIX}"
yann@185
   142
  BINDIR="${BINDIR}"
yann@185
   143
  LIBDIR="${LIBDIR}"
yann@185
   144
  DOCDIR="${DOCDIR}"
yann@185
   145
  MANDIR="${MANDIR}"
yann@185
   146
__EOF__