configure
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Feb 17 22:08:06 2008 +0000 (2008-02-17)
changeset 431 8bde4c6ea47a
parent 395 fd7a636532cf
child 435 ff598e5b4bb5
permissions -rwxr-xr-x
Robert P. J. DAY says:

apparently, the patchset for gcc 4.2.1 applies properly to the
source for gcc 4.2.2 and gcc 4.2.3. so, if you want, you can simply
add support for those last two just by augmenting menuconfig and
adding a couple symlinks for those two directories. seems like a
cheap way to add a couple new versions.
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@395
   126
bash_version=$(/bin/bash -c 'echo ${BASH_VERSION}')
yann@395
   127
bash_major=$(/bin/bash -c 'echo ${BASH_VERSINFO[0]}')
yann@411
   128
[ ${bash_major} -ge 3 ] || do_error "bash 3.0 or above is needed (/bin/bash is ${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__