tMakefile - numtools - perform numerical operations on vectors and matrices in unix pipes
(HTM) git clone git://src.adamsgaard.dk/numtools
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
tMakefile (2371B)
---
1 .POSIX:
2
3 NAME = numtools
4 VERSION = 0.5.0
5
6 # paths
7 PREFIX = /usr/local
8 MANPREFIX = ${PREFIX}/man
9 DOCPREFIX = ${PREFIX}/share/doc/${NAME}
10
11 BIN = \
12 max \
13 mean \
14 min \
15 randcounts \
16 randnum \
17 range \
18 rangetest \
19 stddev \
20 stdvar \
21 sum \
22 transpose \
23
24 SCRIPTS = \
25 histpdf \
26
27 SRC = \
28 util.c \
29
30 COMPATSRC = \
31 strlcpy.c \
32 strnlen.c \
33 strtonum.c \
34 xreallocarray.c \
35
36 COMPATOBJ = ${COMPATSRC:.c=.o}
37
38 HDR = \
39 util.h \
40
41 LIB = ${COMPATOBJ}
42 LIBS = -lm
43
44 _CFLAGS = ${CFLAGS} ${INCS} -DVERSION=\"${VERSION}\"
45 _LDFLAGS = ${LDFLAGS}
46 _CPPFLAGS = ${CPPFLAGS} -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=700 -D_BSD_SOURCE
47
48 MAN1 = ${BIN:=.1} ${SCRIPTS:=.1}
49 DOC = \
50 LICENSE \
51 README \
52
53 all: ${BIN}
54
55 OBJ = ${SRC:.c=.o} ${COMPATOBJ}
56
57 ${OBJ}: ${HDR}
58
59 max: max.o
60 mean: mean.o
61 min: min.o
62 randcounts: randcounts.o
63 randnum: randnum.o
64 range: range.o
65 rangetest: rangetest.o
66 stddev: stddev.o
67 stdvar: stdvar.o
68 sum: sum.o
69 transpose: transpose.o
70
71 ${BIN}: ${LIB} ${OBJ}
72 ${CC} ${_LDFLAGS} -o $@ ${@:=.o} ${OBJ} ${LIBS}
73
74 .c.o:
75 ${CC} ${_CFLAGS} ${_CPPFLAGS} -o $@ -c $<
76
77 install:
78 # installing executable files and scripts.
79 mkdir -p "${DESTDIR}${PREFIX}/bin"
80 cp -f ${BIN} ${SCRIPTS} "${DESTDIR}${PREFIX}/bin"
81 for f in ${BIN} ${SCRIPTS}; do chmod 755 "${DESTDIR}${PREFIX}/bin/$$f"; done
82 # installing documentation files.
83 mkdir -p "${DESTDIR}${DOCPREFIX}"
84 cp -f ${DOC} "${DESTDIR}${DOCPREFIX}"
85 for d in ${DOC}; do chmod 755 "${DESTDIR}${DOCPREFIX}/$$d"; done
86 # installing manual pages for general commands: section 1.
87 mkdir -p "${DESTDIR}${MANPREFIX}/man1"
88 cp -f ${MAN1} "${DESTDIR}${MANPREFIX}/man1"
89 for m in ${MAN1}; do chmod 644 "${DESTDIR}${MANPREFIX}/man1/$$m"; done
90
91 uninstall:
92 # removing executable files and scripts.
93 for f in ${BIN} ${SCRIPTS}; do rm -f "${DESTDIR}${PREFIX}/bin/$$f"; done
94 # removing example files.
95 for d in ${DOC}; do rm -f "${DESTDIR}${DOCPREFIX}/$$d"; done
96 -rmdir "${DESTDIR}${DOCPREFIX}"
97 # removing manual pages.
98 for m in ${MAN1}; do rm -f "${DESTDIR}${MANPREFIX}/man1/$$m"; done
99
100 dist:
101 rm -rf "${NAME}-${VERSION}"
102 mkdir -p "${NAME}-${VERSION}"
103 cp -rf ${MAN1} ${DOC} ${BIN:=.c} ${SRC} ${HDR} ${COMPATSRC} ${SCRIPTS} \
104 Makefile "${NAME}-${VERSION}"
105 # make tarball
106 tar cf - "${NAME}-${VERSION}" | \
107 gzip -c > "${NAME}-${VERSION}.tar.gz"
108 rm -rf "${NAME}-${VERSION}"
109
110 clean:
111 rm -f ${BIN} ${BIN:=.o} ${OBJ} ${LIB}
112
113 .PHONY: install uninstall dist clean