Makefile (2159B)
1 .POSIX: 2 3 NAME = cngf-pf 4 VERSION = 0.7.2 5 6 # paths 7 PREFIX = /usr/local 8 MANPREFIX = ${PREFIX}/share/man 9 DOCPREFIX = ${PREFIX}/share/doc/${NAME} 10 11 BIN = \ 12 cngf-pf\ 13 deborah\ 14 max_depth_simple_shear\ 15 shear_flux\ 16 17 SCRIPTS = \ 18 cngf-pf-plot-point-evol\ 19 cngf-pf-plot-depth-evol\ 20 21 SRC = \ 22 arrays.c\ 23 fluid.c\ 24 simulation.c\ 25 26 HDR = \ 27 arg.h\ 28 arrays.h\ 29 fluid.h\ 30 simulation.h\ 31 32 LIBS = -lm 33 34 CNGFPF_CFLAGS = ${CFLAGS} ${INCS} -DVERSION=\"${VERSION}\" 35 CNGFPF_LDFLAGS = ${LDFLAGS} 36 CNGFPF_LIBS = ${LIBS} 37 38 MAN1 = \ 39 ${BIN:=.1}\ 40 ${SCRIPTS:=.1}\ 41 42 DOC = \ 43 README.md\ 44 LICENSE\ 45 46 all: ${BIN} 47 48 OBJ = ${SRC:.c=.o} 49 50 ${OBJ}: ${HDR} 51 52 cngf-pf: cngf-pf.o 53 max_depth_simple_shear: max_depth_simple_shear.o 54 shear_flux: shear_flux.o 55 deborah: deborah.o 56 57 ${BIN}: ${OBJ} 58 ${CC} ${CNGFPF_LDFLAGS} -o $@ ${@:=.o} ${OBJ} ${CNGFPF_LIBS} 59 60 .c.o: 61 ${CC} ${CNGFPF_CFLAGS} -o $@ -c $< 62 63 dist: 64 rm -rf "${NAME}-${VERSION}" 65 mkdir -p "${NAME}-${VERSION}" 66 cp -rf ${MAN1} ${DOC} ${HDR} ${SRC} ${BIN:=.c} ${SCRIPTS} Makefile \ 67 "${NAME}-${VERSION}" 68 # make tarball 69 tar cf - "${NAME}-${VERSION}" | \ 70 gzip -c > "${NAME}-${VERSION}.tar.gz" 71 rm -rf "${NAME}-${VERSION}" 72 73 install: ${BIN} 74 # installing executables 75 mkdir -p ${DESTDIR}${PREFIX}/bin 76 cp -f ${BIN} ${SCRIPTS} ${DESTDIR}${PREFIX}/bin 77 for f in ${BIN} ${SCRIPTS}; do chmod 755 ${DESTDIR}${PREFIX}/bin/$$f; done 78 # installing documentation and license information 79 mkdir -p ${DESTDIR}${DOCPREFIX} 80 cp -f ${DOC} ${DESTDIR}${DOCPREFIX} 81 for f in ${DOC}; do chmod 644 ${DESTDIR}${DOCPREFIX}/$$f; done 82 # installing man pages 83 mkdir -p ${DESTDIR}${MANPREFIX}/man1 84 cp -f ${MAN1} ${DESTDIR}${MANPREFIX}/man1 85 for f in ${MAN1}; do chmod 644 ${DESTDIR}${MANPREFIX}/man1/$$f; done 86 87 uninstall: 88 # removing executable files 89 for f in ${BIN} ${SCRIPTS}; do rm -f ${DESTDIR}${PREFIX}/bin/$$f; done 90 # removing documentation and license information 91 for f in ${DOC}; do rm -f ${DESTDIR}${DOCPREFIX}/$$f; done 92 -rmdir ${DESTDIR}${DOCPREFIX} 93 # removing man pages 94 for f in ${MAN1}; do rm -f ${DESTDIR}${MANPREFIX}/man1/$$f; done 95 96 test: ${BIN} 97 make -C test/ 98 99 clean: 100 rm -f ${BIN} ${BIN:=.o} ${OBJ} test/*.txt 101 102 .PHONY: all install uninstall test clean dist