0
+ − 1 # common makefile
+ − 2
+ − 3 # program
+ − 4 PROGRAM = baum
2
+ − 5 SRC = baum.c actions.c
0
+ − 6 OBJ = ${SRC:.c=.o}
2
+ − 7 DEP = baum.h actions.h
0
+ − 8
+ − 9 # compile env
+ − 10 CC = gcc
+ − 11 LD = ${CC}
+ − 12 DEBUG = -g
+ − 13 CFLAGS = -Wall -c ${DEBUG}
+ − 14 LFLAGS = -Wall ${DEBUG}
+ − 15
+ − 16 ####
+ − 17
+ − 18 all: options ${PROGRAM}
+ − 19
+ − 20 options:
+ − 21 @echo build options:
+ − 22 @echo "CC = ${CC}"
+ − 23 @echo "LD = ${LD}"
+ − 24 @echo "CFLAGS = ${CFLAGS}"
+ − 25 @echo "LFLAGS = ${LFLAGS}"
+ − 26 @echo
+ − 27
+ − 28 .cpp.o:
+ − 29 $(CC) $(CFLAGS) $<
+ − 30
+ − 31 ${OBJ}: ${DEP}
+ − 32
+ − 33 ${PROGRAM}: ${OBJ}
+ − 34 $(LD) $(LFLAGS) ${OBJ} -o $@
+ − 35
+ − 36 debug: all
+ − 37 gdb ${PROGRAM}
+ − 38
+ − 39 strip: ${PROGRAM}
+ − 40 @echo stripping ${PROGRAM}
+ − 41 @strip ${PROGRAM}
+ − 42
+ − 43 tar: clean
+ − 44 @echo creating archive
+ − 45 @tar -czvf ${PROGRAM}.tar.gz *
+ − 46
+ − 47 clean:
+ − 48 @echo cleaning
+ − 49 @rm -f ${PROGRAM} ${OBJ}
+ − 50
+ − 51 .PHONY: all options debug strip tar clean