comparison Makefile @ 62:80df58d240b2 default tip

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