-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfigure
executable file
·92 lines (77 loc) · 1.71 KB
/
configure
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
#!/bin/bash
#
# Configure script
#
vars=( prefix bindir mandir )
binaries=()
# Default value for prefix dir
prefix=/usr
usage() {
cat >&2 <<EOH
[01mUsage:[00m
$0 [--prefix=<prefix>] [--bindir=<bindir>] [--mandir=<mandir>] executable1 [[executable2] ... [executableN]]
[01mArguments:[00m
executable1...executableN Source path(s) of the executable files to be distributed
[01mOptions:[00m
--help, -h Display this help and exit
--prefix The prefix dir (defaults to $prefix)
--bindir The binary install dir (defaults to \$PREFIX/bin)
--mandir The manual install dir (defaults to \$PREFIX/share/man)
EOH
}
while [ $# -gt 0 ]
do
case $1 in
--help|-h|--usage)
usage
exit 0
;;
--prefix)
prefix=$2
shift 2
;;
--bindir)
bindir=$2;
shift 2
;;
--mandir)
mandir=$2;
shift 2
;;
--*)
printf '\nUnrecognized option "%s"\n' $1
shift
;;
*)
binaries+=( $1 )
shift
;;
esac
done
if [ "${#binaries[@]}" -eq "0" ]
then
usage
exit 1
fi
[ -z "$bindir" ] && bindir=${prefix}/bin
[ -z "$mandir" ] && mandir=${prefix}/share/man
printf "\n\033[01;32mConfigured variables:\033[00m\n---------------------\n"
for v in ${vars[@]}
do
printf "%s: %s\n" $v ${!v}
done
# Build Makefile upon variables using heredoc
cat > Makefile <<EOT
# vim: set noexpandtab
all:
./generate-doc
install:
./install-doc
EOT
for bin in "${binaries[@]}"
do
cat >> Makefile <<EOT
cp -v ${bin} ${bindir}
EOT
done
printf "\n\033[01;32mGenerated\033[00m Makefile\n"