baum

annotate Makefile @ 58:f5f06d6f62b3

made Makefile much simpler (installs now to /usr/local)
author meillo@marmaro.de
date Wed, 25 Jun 2008 11:09:14 +0200
parents c31b5bb6d493
children
rev   line source
meillo@20 1 # baum by meillo@marmaro.de
meillo@0 2
meillo@20 3
meillo@20 4 NAME=baum
meillo@28 5 # extracts VERSION from the sources
meillo@28 6 VERSION=$(shell cat *.c | sed -n '/define VERSION/ s/.*"\([^"]*\)".*/\1/p' )
meillo@20 7 NV=${NAME}-${VERSION}
meillo@20 8
meillo@20 9 DOCS=LICENSE README ChangeLog TODO examples
meillo@20 10
meillo@20 11 # paths
meillo@58 12 PREFIX = /usr/local
meillo@20 13 BINDIR = ${PREFIX}/bin
meillo@20 14 MANDIR = ${PREFIX}/share/man
meillo@0 15
meillo@0 16 # compile env
meillo@0 17 CC = gcc
meillo@0 18 LD = ${CC}
meillo@0 19 DEBUG = -g
meillo@0 20 CFLAGS = -Wall -c ${DEBUG}
meillo@20 21 LDFLAGS = -Wall ${DEBUG}
meillo@0 22
meillo@20 23 # files
meillo@20 24 SRC=baum.c actions.c
meillo@20 25 OBJ=$(SRC:.c=.o)
meillo@47 26 DEP = baum.h
meillo@0 27
meillo@20 28
meillo@58 29 .PHONY: all
meillo@58 30 all: options $(NAME)
meillo@20 31
meillo@58 32 .PHONY: options
meillo@0 33 options:
meillo@0 34 @echo build options:
meillo@0 35 @echo "CC = ${CC}"
meillo@0 36 @echo "LD = ${LD}"
meillo@0 37 @echo "CFLAGS = ${CFLAGS}"
meillo@20 38 @echo "LDFLAGS = ${LDFLAGS}"
meillo@0 39 @echo
meillo@0 40
meillo@20 41
meillo@20 42 ${NAME}: $(OBJ) ${DEP}
meillo@20 43 $(CC) $(LDFLAGS) $(OBJ) -o $@
meillo@0 44
meillo@58 45
meillo@0 46 ${OBJ}: ${DEP}
meillo@0 47
meillo@0 48
meillo@58 49 .PHONY: strip
meillo@20 50 strip: ${NAME}
meillo@20 51 @echo stripping ${NAME}
meillo@20 52 @strip ${NAME}
meillo@0 53
meillo@58 54
meillo@58 55 .PHONY: dist
meillo@58 56 dist: all changelog
meillo@20 57 @echo "generating tarball"
meillo@20 58 @mkdir -p ${NV}
meillo@29 59 @cp -rf ${SRC} ${DEP} ${NAME}.1 Makefile ${DOCS} ${NV}
meillo@45 60 @fakeroot tar -czhof ${NV}.tar.gz ${NV}
meillo@20 61 @rm -rf ${NV}
meillo@20 62
meillo@20 63
meillo@58 64 .PHONY: changelog
meillo@20 65 changelog:
meillo@20 66 @echo generating changelog from mercurial log
meillo@20 67 @hg log -v --style changelog > ChangeLog
meillo@20 68
meillo@58 69
meillo@58 70 .PHONY: install
meillo@58 71 install: all strip
meillo@20 72 @echo installing executable file to ${DESTDIR}${BINDIR}
meillo@20 73 @mkdir -p ${DESTDIR}${BINDIR}
meillo@20 74 @cp ${NAME} ${DESTDIR}${BINDIR}
meillo@20 75 @chmod 755 ${DESTDIR}${BINDIR}/${NAME}
meillo@20 76 @echo installing manual page to ${DESTDIR}${MANDIR}/man1
meillo@20 77 @mkdir -p ${DESTDIR}${MANDIR}/man1
meillo@58 78 @cp ${NAME}.1 ${DESTDIR}${MANDIR}/man1
meillo@20 79 @chmod 644 ${DESTDIR}${MANDIR}/man1/${NAME}.1
meillo@20 80
meillo@58 81
meillo@58 82 .PHONY: uninstall
meillo@20 83 uninstall:
meillo@20 84 @echo removing executable file from ${DESTDIR}${BINDIR}
meillo@20 85 @rm -f ${DESTDIR}${BINDIR}/${NAME}
meillo@20 86 @echo removing manual page from ${DESTDIR}${MANDIR}/man1
meillo@20 87 @rm -f ${DESTDIR}${MANDIR}/man1/${NAME}.1
meillo@20 88
meillo@0 89
meillo@58 90 .PHONY: clean
meillo@0 91 clean:
meillo@20 92 rm -f *.o
meillo@0 93
meillo@58 94
meillo@58 95 .PHONY: realclean
meillo@20 96 realclean: clean
meillo@58 97 rm -f ${NAME} ChangeLog