Mercurial > resize-gd
comparison Makefile @ 4:aa24986b8969
replaces simple Makefile with a good one
author | meillo@marmaro.de |
---|---|
date | Sat, 14 Jun 2008 12:00:23 +0200 |
parents | 8c94239b3b3f |
children | 61ca4934fb34 |
comparison
equal
deleted
inserted
replaced
3:35a50e57b6f5 | 4:aa24986b8969 |
---|---|
1 resize-gd: resize-gd.c | 1 # by meillo@marmaro.de |
2 gcc -o resize-gd -lgd -lpng -lz -ljpeg -lm resize-gd.c | 2 |
3 NAME=resize-gd | |
4 | |
5 # extracts VERSION from the sources | |
6 VERSION=$(shell cat *.c | sed -n '/define[ \t]*VERSION/ s/.*"\([^"]*\)".*/\1/p' ) | |
7 NV=${NAME}-${VERSION} | |
8 | |
9 DOCS = | |
10 | |
11 # paths | |
12 PREFIX = /usr/local | |
13 BINDIR = ${PREFIX}/bin | |
14 MANDIR = ${PREFIX}/share/man | |
15 | |
16 # compile env | |
17 CC = gcc | |
18 LD = ${CC} | |
19 DEBUG = -g | |
20 LIBS = -lgd | |
21 CFLAGS = -Wall -pedantic -c ${DEBUG} | |
22 LDFLAGS = -Wall -pedantic ${DEBUG} $(LIBS) | |
23 | |
24 # files | |
25 SRC=resize-gd.c | |
26 OBJ=$(SRC:.c=.o) | |
27 DEP = | |
28 | |
29 | |
30 | |
31 .PHONY: all | |
32 all: options build | |
33 | |
34 | |
35 .PHONY: options | |
36 options: | |
37 @echo build options: | |
38 @echo "CC = ${CC}" | |
39 @echo "LD = ${LD}" | |
40 @echo "CFLAGS = ${CFLAGS}" | |
41 @echo "LDFLAGS = ${LDFLAGS}" | |
42 @echo | |
43 | |
44 | |
45 .PHONY: build | |
46 build: options ${NAME} | |
47 | |
48 | |
49 ${NAME}: $(OBJ) | |
50 $(CC) $(LDFLAGS) $(OBJ) -o $@ | |
51 | |
52 | |
53 ${OBJ}: ${DEP} | |
54 | |
55 | |
56 .PHONY: strip | |
57 strip: ${NAME} | |
58 @echo stripping ${NAME} | |
59 @strip ${NAME} | |
60 | |
61 | |
62 .PHONY: dist | |
63 dist: build changelog | |
64 @echo "generating tarball" | |
65 @mkdir -p ${NV} | |
66 @cp -rf ${SRC} ${DEP} ${NAME}.1 Makefile ${DOCS} ${NV} | |
67 @tar -czf ${NV}.tar.gz ${NV} | |
68 @rm -rf ${NV} | |
69 | |
70 | |
71 .PHONY: changelog | |
72 changelog: | |
73 @echo generating changelog from mercurial log | |
74 @hg log -v --style changelog > ChangeLog | |
75 | |
76 | |
77 .PHONY: install | |
78 install: build strip | |
79 @echo installing executable file to ${DESTDIR}${BINDIR} | |
80 @mkdir -p ${DESTDIR}${BINDIR} | |
81 @cp ${NAME} ${DESTDIR}${BINDIR} | |
82 @chmod 755 ${DESTDIR}${BINDIR}/${NAME} | |
83 @echo installing manual page to ${DESTDIR}${MANDIR}/man1 | |
84 @mkdir -p ${DESTDIR}${MANDIR}/man1 | |
85 @cp ${NAME}.1 ${DESTDIR}${MANDIR}/man1/${NAME}.1 | |
86 @chmod 644 ${DESTDIR}${MANDIR}/man1/${NAME}.1 | |
87 | |
88 | |
89 .PHONY: uninstall | |
90 uninstall: | |
91 @echo removing executable file from ${DESTDIR}${BINDIR} | |
92 @rm -f ${DESTDIR}${BINDIR}/${NAME} | |
93 @echo removing manual page from ${DESTDIR}${MANDIR}/man1 | |
94 @rm -f ${DESTDIR}${MANDIR}/man1/${NAME}.1 | |
95 | |
96 | |
97 .PHONY: clean | |
98 clean: | |
99 rm -f *.o | |
100 | |
101 | |
102 .PHONY: realclean | |
103 realclean: clean | |
104 rm -f ${NAME} ChangeLog |