improve Makefile - bmf - bmf (Bayesian Mail Filter) 0.9.4 fork + patches
(HTM) git clone git://git.codemadness.org/bmf
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit f368a24da9457e4d269ca281bbc07f0eef08751e
(DIR) parent 486c23d144116c1794e3800c0c0e051b2f3469e3
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Sat, 29 Sep 2018 13:15:26 +0200
improve Makefile
Diffstat:
M Makefile | 105 +++++++++++++++++++++++---------
1 file changed, 77 insertions(+), 28 deletions(-)
---
(DIR) diff --git a/Makefile b/Makefile
@@ -1,39 +1,88 @@
-BINDIR=/usr/local/bin
-MANDIR=/usr/local/share/man
+PREFIX = /usr/local
+MANPREFIX = ${PREFIX}/man
+NAME = bmf
+VERSION = 0.9.4
+BIN = bmf
+MAN1 = bmf.1
-VERSION=0.9.4
+SRC = \
+ bmf.c \
+ dbg.c \
+ dbh.c \
+ dbtext.c \
+ filt.c \
+ lex.c \
+ str.c \
+ vec.c
-all: bmf
+SCRIPTS =
-bmf: bmf.o dbg.o dbh.o dbtext.o filt.o lex.o str.o vec.o
- $(CC) -o $@ bmf.o filt.o dbtext.o dbh.o lex.o vec.o str.o dbg.o $(LDFLAGS) $(SYSLIBS)
+HDR = \
+ config.h \
+ dbg.h \
+ dbh.h \
+ dbtext.h \
+ filt.h \
+ lex.h \
+ str.h \
+ vec.h
-bmf.o: bmf.c
- $(CC) $(CFLAGS) -DPACKAGE=\"bmf\" -DVERSION=\"$(VERSION)\" -c $<
+DOC = \
+ AUTHORS \
+ ChangeLog \
+ LICENSE \
+ README \
+ TODO
-install: checkroot bmf bmf.1
- mkdir -p $(DESTDIR)$(BINDIR)
- mkdir -p $(DESTDIR)$(MANDIR)/man1
- cp bmf $(DESTDIR)$(BINDIR)
- cp bmf.1 $(DESTDIR)$(MANDIR)/man1
+all: ${BIN}
-uninstall: checkroot
- rm -f $(DESTDIR)$(BINDIR)/bmf
- rm -f $(DESTDIR)$(MANDIR)/man1/bmf.1
+OBJ = ${SRC:.c=.o}
-clean:
- rm -f core *.o bmf
+bmf: ${OBJ}
+ $(CC) -o $@ ${OBJ} $(LDFLAGS) $(SYSLIBS)
+
+bmf.o: bmf.c
+ $(CC) $(CFLAGS) -DVERSION=\"$(VERSION)\" -c $<
+
+dist:
+ rm -rf "${NAME}-${VERSION}"
+ mkdir -p "${NAME}-${VERSION}"
+ cp -f ${MAN1} ${DOC} ${HDR} \
+ ${SRC} ${SCRIPTS} \
+ Makefile \
+ bmf.spec.in \
+ "${NAME}-${VERSION}"
+ # make tarball
+ tar -cf - "${NAME}-${VERSION}" | \
+ gzip -c > "${NAME}-${VERSION}.tar.gz"
+ rm -rf "${NAME}-${VERSION}"
-distclean: clean
- rm -f Makefile
+clean:
+ rm -f ${BIN} ${OBJ}
-dist: tarball
+install: all
+ # installing executable files and scripts.
+ mkdir -p "${DESTDIR}${PREFIX}/bin"
+ cp -f ${BIN} ${SCRIPTS} "${DESTDIR}${PREFIX}/bin"
+ for f in ${BIN} ${SCRIPTS}; do chmod 755 "${DESTDIR}${PREFIX}/bin/$$f"; done
+ # installing example files.
+ mkdir -p "${DESTDIR}${PREFIX}/share/${NAME}"
+ cp -f \
+ README\
+ "${DESTDIR}${PREFIX}/share/${NAME}"
+ # installing manual pages for tools.
+ mkdir -p "${DESTDIR}${MANPREFIX}/man1"
+ cp -f ${MAN1} "${DESTDIR}${MANPREFIX}/man1"
+ for m in ${MAN1}; do chmod 644 "${DESTDIR}${MANPREFIX}/man1/$$m"; done
-tarball: distclean
- (cd ..; \
- cp -ar bmf bmf-$(VERSION); \
- tar czvf bmf-$(VERSION).tar.gz `find bmf-$(VERSION) -type f | egrep -v "CVS|debian"`; \
- rm -rf bmf-$(VERSION); \
- cd $(PWD))
+uninstall:
+ # removing executable files and scripts.
+ for f in ${BIN} ${SCRIPTS}; do rm -f "${DESTDIR}${PREFIX}/bin/$$f"; done
+ # removing example files.
+ rm -f \
+ "${DESTDIR}${PREFIX}/share/${NAME}/README"
+ -rmdir "${DESTDIR}${PREFIX}/share/${NAME}"
+ # removing manual pages.
+ for m in ${MAN1}; do rm -f "${DESTDIR}${MANPREFIX}/man1/$$m"; done
-checkroot:
+.PHONY: all clean dist install uninstall