view Makefile @ 33:2e564bf8599c

new error code 6; more readable printTree; cleanups
author meillo@marmaro.de
date Sat, 01 Mar 2008 17:36:59 +0100
parents 88a51653db83
children 0b82169d4129
line wrap: on
line source

# baum by meillo@marmaro.de


NAME=baum
# extracts VERSION from the sources
VERSION=$(shell cat *.c | sed -n '/define VERSION/ s/.*"\([^"]*\)".*/\1/p'  )
NV=${NAME}-${VERSION}

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}
LDFLAGS = -Wall ${DEBUG}

# files
SRC=baum.c actions.c
OBJ=$(SRC:.c=.o)
DEP = baum.h actions.h



all: options build

options:
	@echo build options:
	@echo "CC     = ${CC}"
	@echo "LD     = ${LD}"
	@echo "CFLAGS = ${CFLAGS}"
	@echo "LDFLAGS = ${LDFLAGS}"
	@echo

build: options ${NAME}

${NAME}: $(OBJ) ${DEP}
	$(CC) $(LDFLAGS) $(OBJ) -o $@

${OBJ}: ${DEP}

car: clean all

debug: all
	gdb ${NAME}

strip: ${NAME}
	@echo stripping ${NAME}
	@strip ${NAME}

dist: build changelog
	@echo "generating tarball"
	@mkdir -p ${NV}
	@cp -rf ${SRC} ${DEP} ${NAME}.1 Makefile ${DOCS} ${NV}
	@tar -czhof ${NV}.tar.gz ${NV}
	@rm -rf ${NV}

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

install: build strip
	@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:
	rm -f *.o

realclean: clean
	rm -f ${NAME}

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