blob: ef9a41f8d3e5299b0b98cd35645b5823a80e0a78 (
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
|
#!/usr/bin/env bash
name='configure' # Luke's configuration script
#version='1.0'
# Copyright (C) 2009, 2016 Luke Shumaker
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; see the file COPYING.
# If not, see <http://www.gnu.org/licenses>.
srcdir="$(dirname -- "$0")"
outdir="."
error() {
echo "$name: $1" >&2
exit 1
}
topsrcdir=$(realpath -ms --relative-to=. -- "$srcdir")
if [ "$topsrcdir" = . ]; then
topsrcdir=
else
topsrcdir=/$topsrcdir
fi
edit=(sed -E -e "s|^topsrcdir := .*|&$topsrcdir|")
setvar() {
edit+=(-e "s@^(\s*$1\s*:?=).*@\1 $2@")
}
vars=($(<"$srcdir/config.mk.in" sed -n 's/^\([ a-z_-]*\)=.*/\1/p'))
printf -v lopt '%s:,' "${vars[@]}"
lopt+='enable-autodeps,disable-autodeps'
sopt=''
args=$(getopt -n "$name" -o "${sopt}" -l "${lopt}" -- "$@") || exit $?
eval set -- "$args"
while [ $# -gt 0 ]; do
case "$1" in
--) break;;
--enable-autodeps) setvar AUTODEPS t;;
--disable-autodeps) setvar AUTODEPS '';;
--*) setvar "${1#--}" "$2" shift;;
*) error "unrecognized option \`$1'";
esac
shift
done
"${edit[@]}" < "$srcdir/config.mk.in" > "$outdir/config.mk"
Makefiles=($(find "$srcdir/" -name 'Makefile') "$srcdir"/modules/module.mk "$srcdir"/modules/*/Makefile.inc.mk)
for src in "${Makefiles[@]}"; do
out="$outdir/${src#$srcdir/}"
mkdir -p -- $(dirname -- "$out")
if ! test "$src" -ef "$out"; then
cp -fT -- "$src" "$out"
fi
done
|