configure
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jul 01 20:52:34 2007 +0000 (2007-07-01)
changeset 183 f8acccd11133
parent 182 223c84ec2d90
child 185 ade232db1313
permissions -rwxr-xr-x
./configure gains a help entry.
yann@182
     1
#!/bin/sh
yann@182
     2
yann@182
     3
VERSION=$(cat version)
yann@182
     4
DATE=$(date +%Y%m%d)
yann@182
     5
yann@183
     6
PREFIX_DEFAULT=/usr/local
yann@183
     7
BINDIR_DEFAULT="${PREFIX}/bin"
yann@183
     8
LIBDIR_DEFAULT="${PREFIX}/lib"
yann@183
     9
DOCDIR_DEFAULT="${PREFIX}/share/doc"
yann@183
    10
MANDIR_DEFAULT="${PREFIX}/share/man"
yann@182
    11
yann@182
    12
BINDIR_set=
yann@182
    13
LIBDIR_set=
yann@182
    14
DOCDIR_set=
yann@182
    15
MANDIR_set=
yann@182
    16
yann@182
    17
get_optval(){
yann@182
    18
    local ret
yann@182
    19
    case "$1" in
yann@182
    20
        --*=?*)
yann@182
    21
            echo "${1:9}"
yann@182
    22
            ret=0
yann@182
    23
            ;;
yann@182
    24
        *)
yann@182
    25
            echo "${2}"
yann@182
    26
            ret=1
yann@182
    27
            ;;
yann@182
    28
    esac
yann@182
    29
    return ${ret}
yann@182
    30
}
yann@182
    31
yann@182
    32
set_prefix() {
yann@182
    33
    local ret
yann@182
    34
    PREFIX=$(get_optval "$1" "$2")
yann@182
    35
    ret=$?
yann@182
    36
    [ -z "${BINDIR_set}" ] && BINDIR="${PREFIX}/bin"
yann@182
    37
    [ -z "${LIBDIR_set}" ] && LIBDIR="${PREFIX}/lib"
yann@182
    38
    [ -z "${DOCDIR_set}" ] && DOCDIR="${PREFIX}/share/doc"
yann@182
    39
    [ -z "${MANDIR_set}" ] && MANDIR="${PREFIX}/share/man"
yann@182
    40
    return ${ret}
yann@182
    41
}
yann@182
    42
yann@182
    43
set_bindir() {
yann@182
    44
    local ret
yann@182
    45
    BINDIR=$(get_optval "$1" "$2")
yann@182
    46
    ret=$?
yann@182
    47
    BINDIR_set=1
yann@182
    48
    return ${ret}
yann@182
    49
}
yann@182
    50
yann@182
    51
set_libdir() {
yann@182
    52
    local ret
yann@182
    53
    LIBDIR=$(get_optval "$1" "$2")
yann@182
    54
    ret=$?
yann@182
    55
    LIBDIR_set=1
yann@182
    56
    return ${ret}
yann@182
    57
}
yann@182
    58
yann@182
    59
set_docdir() {
yann@182
    60
    local ret
yann@182
    61
    DOCDIR=$(get_optval "$1" "$2")
yann@182
    62
    ret=$?
yann@182
    63
    DOCDIR_set=1
yann@182
    64
    return ${ret}
yann@182
    65
}
yann@182
    66
yann@182
    67
set_mandir() {
yann@182
    68
    local ret
yann@182
    69
    MANDIR=$(get_optval "$1" "$2")
yann@182
    70
    ret=$?
yann@182
    71
    MANDIR_set=1
yann@182
    72
    return ${ret}
yann@182
    73
}
yann@182
    74
yann@183
    75
do_help() {
yann@183
    76
    cat <<__EOF__
yann@183
    77
\`configure' configures ct-ng ${VERSION} to adapt to many kind of systems.
yann@183
    78
yann@183
    79
USAGE: ./configure [OPTION]...
yann@183
    80
yann@183
    81
Defaults for the options are specified in brackets.
yann@183
    82
yann@183
    83
Configuration:
yann@183
    84
  -h, --help              display this help and exit                                                                                                                  
yann@183
    85
  --prefix=PREFIX         install architecture-independent files in PREFIX
yann@183
    86
                          [${PREFIX_DEFAULT}]
yann@183
    87
yann@183
    88
By default, \`make install' will install all the files in
yann@183
    89
\`${PREFIX_DEFAULT}/bin', \`${PREFIX_DEFAULT}/lib' etc.  You can specify
yann@183
    90
an installation prefix other than \`${PREFIX_DEFAULT}' using \`--prefix',
yann@183
    91
for instance \`--prefix=\${HOME}'.
yann@183
    92
yann@183
    93
For better control, use the options below.
yann@183
    94
yann@183
    95
Fine tuning of the installation directories:
yann@183
    96
  --bindir=DIR           user executables [PREFIX/bin]
yann@183
    97
  --libdir=DIR           object code libraries [PREFIX/lib]
yann@183
    98
  --docdir=DIR           info documentation [PREFIX/share/doc]
yann@183
    99
  --mandir=DIR           man documentation [PREFIX/share/man]
yann@183
   100
__EOF__
yann@183
   101
}
yann@183
   102
yann@182
   103
while [ $# -ne 0 ]; do
yann@182
   104
    case "$1" in
yann@182
   105
        --prefix*)  set_prefix "$1" "$2" && shift || shift 2;;
yann@182
   106
        --bindir*)  set_bindir "$1" "$2" && shift || shift 2;;
yann@182
   107
        --libdir*)  set_libdir "$1" "$2" && shift || shift 2;;
yann@182
   108
        --docdir*)  set_docdir "$1" "$2" && shift || shift 2;;
yann@182
   109
        --mandir*)  set_mandir "$1" "$2" && shift || shift 2;;
yann@183
   110
        --help|-h)  do_help; exit 0;;
yann@183
   111
        *)          do_help; exit 1;;
yann@182
   112
    esac
yann@182
   113
done
yann@182
   114
yann@183
   115
[ -z "${PREFIX}" ] && set_prefix --prefix "${PREFIX_DEFAULT}"
yann@183
   116
yann@182
   117
sed -r -e "s,@@BINDIR@@,${BINDIR},g;"   \
yann@182
   118
       -e "s,@@LIBDIR@@,${LIBDIR},g;"   \
yann@182
   119
       -e "s,@@DOCDIR@@,${DOCDIR},g;"   \
yann@182
   120
       -e "s,@@MANDIR@@,${MANDIR},g;"   \
yann@182
   121
       -e "s,@@VERSION@@,${VERSION},g;" \
yann@182
   122
       -e "s,@@DATE@@,${DATE},g;"       \
yann@182
   123
        Makefile.in >Makefile