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 = cc 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) ;; *) echo "usage: $0 install|clean"; false ;; esac