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