summaryrefslogtreecommitdiff
path: root/configure
blob: 409256bbeb2861ecdf6c39edc7863ae96833a21e (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
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh

# We don't support srcdir != builddir
echo \#buildapi-variable-no-builddir >/dev/null

prefix=/usr

enable_documentation=yes

# Little helper function for reading args from the commandline.
# it automatically handles -a b and -a=b variants, and returns 1 if
# we need to shift $3.
read_arg() {
    # $1 = arg name
    # $2 = arg value
    # $3 = arg parameter
    local rematch='^[^=]*=(.*)$'
    if [[ $2 =~ $rematch ]]; then
        read "$1" <<< "${BASH_REMATCH[1]}"
    else
        read "$1" <<< "$3"
        # There is no way to shift our callers args, so
        # return 1 to indicate they should do it instead.
        return 1
    fi
}

while (($# > 0)); do
    case "${1%%=*}" in
        --prefix) read_arg prefix "$@" || shift;;
        --libdir) read_arg libdir "$@" || shift;;
        --datadir) read_arg datadir "$@" || shift;;
        --sysconfdir) read_arg sysconfdir "$@" || shift;;
        --sbindir) read_arg sbindir "$@" || shift;;
        --mandir) read_arg mandir "$@" || shift;;
        --disable-documentation) enable_documentation=no;;
        *) echo "Ignoring unknown option '$1'";;
    esac
    shift
done

cat > Makefile.inc.tmp <<EOF
prefix ?= ${prefix}
libdir ?= ${libdir:-${prefix}/lib}
datadir ?= ${datadir:-${prefix}/share}
sysconfdir ?= ${sysconfdir:-${prefix}/etc}
sbindir ?= ${sbindir:-${prefix}/sbin}
mandir ?= ${mandir:-${prefix}/share/man}
enable_documentation ?= ${enable_documentation}
EOF
mv Makefile.inc.tmp Makefile.inc