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