resize-gd

annotate Makefile @ 12:61ca4934fb34

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