numtools

perform numerical operations on vectors and matrices in unix pipes
git clone git://src.adamsgaard.dk/numtools # fast
git clone https://src.adamsgaard.dk/numtools.git # slow
Log | Files | Refs | README | LICENSE Back to index

Makefile (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