Mercurial > baum
comparison 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 |
comparison
equal
deleted
inserted
replaced
19:fb1a879a7c85 | 20:3c64b5ac821b |
---|---|
1 # common makefile | 1 # baum by meillo@marmaro.de |
2 | 2 |
3 # program | 3 |
4 PROGRAM = baum | 4 NAME=baum |
5 SRC = baum.c actions.c | 5 VERSION = 0.1 |
6 OBJ = ${SRC:.c=.o} | 6 NV=${NAME}-${VERSION} |
7 DEP = baum.h actions.h | 7 |
8 DOCS=LICENSE README ChangeLog TODO examples | |
9 | |
10 # paths | |
11 PREFIX = /usr | |
12 BINDIR = ${PREFIX}/bin | |
13 MANDIR = ${PREFIX}/share/man | |
8 | 14 |
9 # compile env | 15 # compile env |
10 CC = gcc | 16 CC = gcc |
11 LD = ${CC} | 17 LD = ${CC} |
12 DEBUG = -g | 18 DEBUG = -g |
13 CFLAGS = -Wall -c ${DEBUG} | 19 CFLAGS = -Wall -c ${DEBUG} |
14 LFLAGS = -Wall ${DEBUG} | 20 LDFLAGS = -Wall ${DEBUG} |
15 | 21 |
16 #### | 22 # files |
23 SRC=baum.c actions.c | |
24 OBJ=$(SRC:.c=.o) | |
25 DEP = baum.h actions.h | |
17 | 26 |
18 all: options ${PROGRAM} | 27 |
28 | |
29 all: options build | |
19 | 30 |
20 options: | 31 options: |
21 @echo build options: | 32 @echo build options: |
22 @echo "CC = ${CC}" | 33 @echo "CC = ${CC}" |
23 @echo "LD = ${LD}" | 34 @echo "LD = ${LD}" |
24 @echo "CFLAGS = ${CFLAGS}" | 35 @echo "CFLAGS = ${CFLAGS}" |
25 @echo "LFLAGS = ${LFLAGS}" | 36 @echo "LDFLAGS = ${LDFLAGS}" |
26 @echo | 37 @echo |
27 | 38 |
28 .cpp.o: | 39 build: ${NAME} |
29 $(CC) $(CFLAGS) $< | 40 |
41 ${NAME}: $(OBJ) ${DEP} | |
42 $(CC) $(LDFLAGS) $(OBJ) -o $@ | |
30 | 43 |
31 ${OBJ}: ${DEP} | 44 ${OBJ}: ${DEP} |
32 | 45 |
33 ${PROGRAM}: ${OBJ} | 46 car: clean all |
34 $(LD) $(LFLAGS) ${OBJ} -o $@ | |
35 | 47 |
36 debug: all | 48 debug: all |
37 gdb ${PROGRAM} | 49 gdb ${NAME} |
38 | 50 |
39 strip: ${PROGRAM} | 51 strip: ${NAME} |
40 @echo stripping ${PROGRAM} | 52 @echo stripping ${NAME} |
41 @strip ${PROGRAM} | 53 @strip ${NAME} |
42 | 54 |
43 tar: clean | 55 dist: build changelog |
44 @echo creating archive | 56 @echo "generating tarball" |
45 @tar -czvf ${PROGRAM}.tar.gz * | 57 @mkdir -p ${NV} |
58 @cp -f ${NAME} ${SRC} ${DEP} ${NAME}.1 Makefile ${DOCS} ${NV} | |
59 @tar -czhof ${NV}.tar.gz ${NV} | |
60 @rm -rf ${NV} | |
61 | |
62 deb: dist | |
63 @mkdir -p Packages | |
64 @cp ${NV}.tar.gz Packages/ | |
65 @( \ | |
66 cd Packages/ ;\ | |
67 tar -xzf ${NV}.tar.gz ;\ | |
68 mv ${NV}.tar.gz ${NAME}_${VERSION}.orig.tar.gz ;\ | |
69 cd ${NV}/ ;\ | |
70 cp -r ../../debian/ . ;\ | |
71 debuild ;\ | |
72 ) | |
73 @rm -rf Packages/${NV} | |
74 | |
75 changelog: | |
76 @echo generating changelog from mercurial log | |
77 @hg log -v --style changelog > ChangeLog | |
78 | |
79 install: | |
80 @echo installing executable file to ${DESTDIR}${BINDIR} | |
81 @mkdir -p ${DESTDIR}${BINDIR} | |
82 @cp ${NAME} ${DESTDIR}${BINDIR} | |
83 @chmod 755 ${DESTDIR}${BINDIR}/${NAME} | |
84 @echo installing manual page to ${DESTDIR}${MANDIR}/man1 | |
85 @mkdir -p ${DESTDIR}${MANDIR}/man1 | |
86 @sed 's/VERSION/${VERSION}/g' < ${NAME}.1 > ${DESTDIR}${MANDIR}/man1/${NAME}.1 | |
87 @chmod 644 ${DESTDIR}${MANDIR}/man1/${NAME}.1 | |
88 | |
89 uninstall: | |
90 @echo removing executable file from ${DESTDIR}${BINDIR} | |
91 @rm -f ${DESTDIR}${BINDIR}/${NAME} | |
92 @echo removing manual page from ${DESTDIR}${MANDIR}/man1 | |
93 @rm -f ${DESTDIR}${MANDIR}/man1/${NAME}.1 | |
94 | |
46 | 95 |
47 clean: | 96 clean: |
48 @echo cleaning | 97 rm -f *.o |
49 @rm -f ${PROGRAM} ${OBJ} | |
50 | 98 |
51 .PHONY: all options debug strip tar clean | 99 realclean: clean |
100 rm -f ${NAME} | |
101 | |
102 distclean: realclean | |
103 @rm -f ${NAME}-*.tar.gz ChangeLog | |
104 | |
105 debclean: distclean | |
106 @cd Packages/${NV}/ ; debuild clean ; | |
107 | |
108 | |
109 .PHONY: all dist deb changelog clean distclean debclean build install uninstall |