baum
annotate Makefile @ 57:21ff1783f640
using function pointers now, instead of a large if-else
author | meillo@marmaro.de |
---|---|
date | Wed, 25 Jun 2008 09:20:16 +0200 |
parents | 0b82169d4129 |
children | f5f06d6f62b3 |
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@20 | 12 PREFIX = /usr |
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@20 | 29 |
meillo@20 | 30 all: options build |
meillo@0 | 31 |
meillo@0 | 32 options: |
meillo@0 | 33 @echo build options: |
meillo@0 | 34 @echo "CC = ${CC}" |
meillo@0 | 35 @echo "LD = ${LD}" |
meillo@0 | 36 @echo "CFLAGS = ${CFLAGS}" |
meillo@20 | 37 @echo "LDFLAGS = ${LDFLAGS}" |
meillo@0 | 38 @echo |
meillo@0 | 39 |
meillo@29 | 40 build: options ${NAME} |
meillo@20 | 41 |
meillo@20 | 42 ${NAME}: $(OBJ) ${DEP} |
meillo@20 | 43 $(CC) $(LDFLAGS) $(OBJ) -o $@ |
meillo@0 | 44 |
meillo@0 | 45 ${OBJ}: ${DEP} |
meillo@0 | 46 |
meillo@20 | 47 car: clean all |
meillo@0 | 48 |
meillo@0 | 49 debug: all |
meillo@20 | 50 gdb ${NAME} |
meillo@0 | 51 |
meillo@20 | 52 strip: ${NAME} |
meillo@20 | 53 @echo stripping ${NAME} |
meillo@20 | 54 @strip ${NAME} |
meillo@0 | 55 |
meillo@29 | 56 dist: build 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 deb: dist |
meillo@20 | 64 @mkdir -p Packages |
meillo@20 | 65 @cp ${NV}.tar.gz Packages/ |
meillo@20 | 66 @( \ |
meillo@20 | 67 cd Packages/ ;\ |
meillo@20 | 68 tar -xzf ${NV}.tar.gz ;\ |
meillo@20 | 69 mv ${NV}.tar.gz ${NAME}_${VERSION}.orig.tar.gz ;\ |
meillo@20 | 70 cd ${NV}/ ;\ |
meillo@20 | 71 cp -r ../../debian/ . ;\ |
meillo@20 | 72 debuild ;\ |
meillo@20 | 73 ) |
meillo@20 | 74 @rm -rf Packages/${NV} |
meillo@20 | 75 |
meillo@20 | 76 changelog: |
meillo@20 | 77 @echo generating changelog from mercurial log |
meillo@20 | 78 @hg log -v --style changelog > ChangeLog |
meillo@20 | 79 |
meillo@24 | 80 install: build strip |
meillo@20 | 81 @echo installing executable file to ${DESTDIR}${BINDIR} |
meillo@20 | 82 @mkdir -p ${DESTDIR}${BINDIR} |
meillo@20 | 83 @cp ${NAME} ${DESTDIR}${BINDIR} |
meillo@20 | 84 @chmod 755 ${DESTDIR}${BINDIR}/${NAME} |
meillo@20 | 85 @echo installing manual page to ${DESTDIR}${MANDIR}/man1 |
meillo@20 | 86 @mkdir -p ${DESTDIR}${MANDIR}/man1 |
meillo@20 | 87 @sed 's/VERSION/${VERSION}/g' < ${NAME}.1 > ${DESTDIR}${MANDIR}/man1/${NAME}.1 |
meillo@20 | 88 @chmod 644 ${DESTDIR}${MANDIR}/man1/${NAME}.1 |
meillo@20 | 89 |
meillo@20 | 90 uninstall: |
meillo@20 | 91 @echo removing executable file from ${DESTDIR}${BINDIR} |
meillo@20 | 92 @rm -f ${DESTDIR}${BINDIR}/${NAME} |
meillo@20 | 93 @echo removing manual page from ${DESTDIR}${MANDIR}/man1 |
meillo@20 | 94 @rm -f ${DESTDIR}${MANDIR}/man1/${NAME}.1 |
meillo@20 | 95 |
meillo@0 | 96 |
meillo@0 | 97 clean: |
meillo@20 | 98 rm -f *.o |
meillo@0 | 99 |
meillo@20 | 100 realclean: clean |
meillo@20 | 101 rm -f ${NAME} |
meillo@20 | 102 |
meillo@20 | 103 distclean: realclean |
meillo@20 | 104 @rm -f ${NAME}-*.tar.gz ChangeLog |
meillo@20 | 105 |
meillo@20 | 106 debclean: distclean |
meillo@20 | 107 @cd Packages/${NV}/ ; debuild clean ; |
meillo@20 | 108 |
meillo@20 | 109 |
meillo@20 | 110 .PHONY: all dist deb changelog clean distclean debclean build install uninstall |