blob: 8a83ae458919c7b1b6019f04be262b837aac2308 (
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
|
set -eu
camellia_path_check
fetch() {
# TODO shallow clone, once 7.1 gets tagged
# better yet, use a tarball
git clone https://github.com/ibara/oed
cd oed
git -c advice.detachedHead=false checkout fc1497fa466ff10c7437f07a00ba888242618ce5
}
configure() {
cd oed
cat <<\EOF > Makefile
# This Makefile automatically generated by configure.
CC = x86_64-camellia-gcc
CFLAGS = -g -O2 -I. -D_GNU_SOURCE
PREFIX = /usr/local
MANDIR = /usr/local/man
PROG = ed
OBJS = buf.o glbl.o io.o main.o re.o sub.o undo.o \
regcomp.o regerror.o regexec.o regfree.o \
reallocarray.o strlcat.o strlcpy.o
all: ${PROG}
${PROG}: ${OBJS}
${CC} ${LDFLAGS} -o ${PROG} ${OBJS}
install:
install -d ${DESTDIR}${PREFIX}/bin
install -d ${DESTDIR}${MANDIR}/man1
install -c -s -m 755 ${PROG} ${DESTDIR}${PREFIX}/bin
install -c -m 644 ed.1 ${DESTDIR}${MANDIR}/man1/${PROG}.1
test:
@echo "No tests"
clean:
rm -f ${PROG} ${OBJS}
distclean: clean
rm -f Makefile config.h
EOF
cat <<\EOF > config.h
/* This file automatically generated by configure. */
extern void *reallocarray(void *, size_t, size_t);
extern size_t strlcat(char *, const char *, size_t);
extern size_t strlcpy(char *, const char *, size_t);
EOF
}
prep() {
[ -d oed ] || (fetch)
[ -e oed/Makefile ] || (configure)
cd oed
}
case $1 in
install) (prep; make; make install "PREFIX=$PREFIX" "MANDIR=$PREFIX/man/") ;;
clean) (prep; make clean) ;;
deepclean) (rm -rf oed) ;;
*) echo "usage: $0 install|clean"; false ;;
esac
|