-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
61 lines (49 loc) · 1.56 KB
/
Makefile
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
AWK = gawk
INSTALL = install
SCRIPT = eclass-to-manpage.awk
ECLASSDIR = .
ECLASSES = $(sort $(wildcard ${ECLASSDIR}/*.eclass))
ifeq ($(ECLASSES),)
$(error ERROR: No eclass files found. Is ECLASSDIR "${ECLASSDIR}" valid?)
endif
OUTDIR = .
MANPAGES = $(sort $(patsubst ${ECLASSDIR}/%,${OUTDIR}/%.5,${ECLASSES}))
ERRFILES = $(sort $(patsubst ${ECLASSDIR}/%,${OUTDIR}/%.5.err,${ECLASSES}))
DESTDIR =
PREFIX = /usr/local
BINDIR = $(PREFIX)/bin
MANDIR = $(PREFIX)/share/man
MAN5DIR = $(MANDIR)/man5
DISTNAME = eclass-manpages-$(shell date "+%Y%m%d")
DISTARCH = ${DISTNAME}.tar.xz
DISTFILES = COPYING Makefile eclass-to-manpage.awk
TAR = tar --format=ustar --numeric-owner --owner 0 --group 0 --sort=name
TAR_X = tar -x -J
COMP = xz
${OUTDIR}/%.5: ${ECLASSDIR}/%
rm -f $@ $@.tmp
${AWK} -f ${SCRIPT} $< > $@.tmp 2> $@.err || [ $$? -eq 77 ]
chmod a-w $@.tmp
mv $@.tmp $@
all:
$(MAKE) -k ${MANPAGES}; ret=$$?; [ -z "${ERRFILES}" ] || cat ${ERRFILES}; exit $${ret}
install: all
${INSTALL} -d -m 0755 ${DESTDIR}${BINDIR}
${INSTALL} -m 0755 ${SCRIPT} ${DESTDIR}${BINDIR}/
${INSTALL} -d -m 0755 ${DESTDIR}${MAN5DIR}
for f in ${MANPAGES}; do \
! [ -s "$${f}" ] || ${INSTALL} -m 0644 $${f} ${DESTDIR}${MAN5DIR}/; \
done
clean:
rm -f ${MANPAGES} ${ERRFILES}
dist:
rm -r -f ${DISTNAME} ${DISTARCH}
${INSTALL} -d -m 0755 ${DISTNAME}
${INSTALL} -t ${DISTNAME} -m 0644 ${DISTFILES} ${ECLASSES}
${TAR} -c ${DISTNAME} | ${COMP} -c > ${DISTARCH}
rm -r -f ${DISTNAME}
distcheck: dist
${TAR_X} -f ${DISTARCH}
+${MAKE} -C ${DISTNAME}
rm -r -f ${DISTNAME}
.PHONY: all install clean dist distcheck