summaryrefslogtreecommitdiff
path: root/configure
blob: 8e28eb201b442c1283c30e686c9f08f41346a7cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#!/bin/sh

VERSION=$(cat version)
DATE=$(date +%Y%m%d)

PREFIX_DEFAULT=/usr/local

BINDIR_set=
LIBDIR_set=
DOCDIR_set=
MANDIR_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() {
    local ret
    PREFIX=$(get_optval "$1" "$2")
    ret=$?
    [ -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"
    return ${ret}
}

set_bindir() {
    local ret
    BINDIR=$(get_optval "$1" "$2")
    ret=$?
    BINDIR_set=1
    return ${ret}
}

set_libdir() {
    local ret
    LIBDIR=$(get_optval "$1" "$2")
    ret=$?
    LIBDIR_set=1
    return ${ret}
}

set_docdir() {
    local ret
    DOCDIR=$(get_optval "$1" "$2")
    ret=$?
    DOCDIR_set=1
    return ${ret}
}

set_mandir() {
    local ret
    MANDIR=$(get_optval "$1" "$2")
    ret=$?
    MANDIR_set=1
    return ${ret}
}

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}]

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__
}

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;;
        --help|-h)  do_help; exit 0;;
        *)          do_help; exit 1;;
    esac
done

[ -z "${PREFIX}" ] && set_prefix "" "${PREFIX_DEFAULT}"

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;"       \
       Makefile.in >Makefile

cat <<__EOF__
crosstool-NG configured as follows:
  PREFIX="${PREFIX}"
  BINDIR="${BINDIR}"
  LIBDIR="${LIBDIR}"
  DOCDIR="${DOCDIR}"
  MANDIR="${MANDIR}"
__EOF__