Mercurial > baum
diff Makefile @ 20:3c64b5ac821b
added Debian stuff; new Makefile
author | meillo@marmaro.de |
---|---|
date | Wed, 13 Feb 2008 21:23:21 +0100 |
parents | 557fa4df2bcd |
children | ca56c1b3fb67 |
line wrap: on
line diff
--- a/Makefile Wed Feb 13 20:48:02 2008 +0100 +++ b/Makefile Wed Feb 13 21:23:21 2008 +0100 @@ -1,51 +1,109 @@ -# common makefile +# baum by meillo@marmaro.de + + +NAME=baum +VERSION = 0.1 +NV=${NAME}-${VERSION} -# program -PROGRAM = baum -SRC = baum.c actions.c -OBJ = ${SRC:.c=.o} -DEP = baum.h actions.h +DOCS=LICENSE README ChangeLog TODO examples + +# paths +PREFIX = /usr +BINDIR = ${PREFIX}/bin +MANDIR = ${PREFIX}/share/man # compile env CC = gcc LD = ${CC} DEBUG = -g CFLAGS = -Wall -c ${DEBUG} -LFLAGS = -Wall ${DEBUG} +LDFLAGS = -Wall ${DEBUG} -#### +# files +SRC=baum.c actions.c +OBJ=$(SRC:.c=.o) +DEP = baum.h actions.h -all: options ${PROGRAM} + + +all: options build options: @echo build options: @echo "CC = ${CC}" @echo "LD = ${LD}" @echo "CFLAGS = ${CFLAGS}" - @echo "LFLAGS = ${LFLAGS}" + @echo "LDFLAGS = ${LDFLAGS}" @echo -.cpp.o: - $(CC) $(CFLAGS) $< +build: ${NAME} + +${NAME}: $(OBJ) ${DEP} + $(CC) $(LDFLAGS) $(OBJ) -o $@ ${OBJ}: ${DEP} -${PROGRAM}: ${OBJ} - $(LD) $(LFLAGS) ${OBJ} -o $@ +car: clean all debug: all - gdb ${PROGRAM} + gdb ${NAME} + +strip: ${NAME} + @echo stripping ${NAME} + @strip ${NAME} + +dist: build changelog + @echo "generating tarball" + @mkdir -p ${NV} + @cp -f ${NAME} ${SRC} ${DEP} ${NAME}.1 Makefile ${DOCS} ${NV} + @tar -czhof ${NV}.tar.gz ${NV} + @rm -rf ${NV} -strip: ${PROGRAM} - @echo stripping ${PROGRAM} - @strip ${PROGRAM} +deb: dist + @mkdir -p Packages + @cp ${NV}.tar.gz Packages/ + @( \ + cd Packages/ ;\ + tar -xzf ${NV}.tar.gz ;\ + mv ${NV}.tar.gz ${NAME}_${VERSION}.orig.tar.gz ;\ + cd ${NV}/ ;\ + cp -r ../../debian/ . ;\ + debuild ;\ + ) + @rm -rf Packages/${NV} + +changelog: + @echo generating changelog from mercurial log + @hg log -v --style changelog > ChangeLog -tar: clean - @echo creating archive - @tar -czvf ${PROGRAM}.tar.gz * +install: + @echo installing executable file to ${DESTDIR}${BINDIR} + @mkdir -p ${DESTDIR}${BINDIR} + @cp ${NAME} ${DESTDIR}${BINDIR} + @chmod 755 ${DESTDIR}${BINDIR}/${NAME} + @echo installing manual page to ${DESTDIR}${MANDIR}/man1 + @mkdir -p ${DESTDIR}${MANDIR}/man1 + @sed 's/VERSION/${VERSION}/g' < ${NAME}.1 > ${DESTDIR}${MANDIR}/man1/${NAME}.1 + @chmod 644 ${DESTDIR}${MANDIR}/man1/${NAME}.1 + +uninstall: + @echo removing executable file from ${DESTDIR}${BINDIR} + @rm -f ${DESTDIR}${BINDIR}/${NAME} + @echo removing manual page from ${DESTDIR}${MANDIR}/man1 + @rm -f ${DESTDIR}${MANDIR}/man1/${NAME}.1 + clean: - @echo cleaning - @rm -f ${PROGRAM} ${OBJ} + rm -f *.o + +realclean: clean + rm -f ${NAME} -.PHONY: all options debug strip tar clean +distclean: realclean + @rm -f ${NAME}-*.tar.gz ChangeLog + +debclean: distclean + @cd Packages/${NV}/ ; debuild clean ; + + +.PHONY: all dist deb changelog clean distclean debclean build install uninstall