# common makefile # program PROGRAM = a.out SRC = main.cpp OBJ = ${SRC:.cpp=.o} # compile env CC = g++ LD = ${CC} DEBUG = -g CFLAGS = -Wall -c ${DEBUG} LFLAGS = -Wall ${DEBUG} #### all: options ${PROGRAM} options: @echo build options: @echo "CC = ${CC}" @echo "LD = ${LD}" @echo "CFLAGS = ${CFLAGS}" @echo "LFLAGS = ${LFLAGS}" @echo .cpp.o: $(CC) $(CFLAGS) $< ${PROGRAM}: ${OBJ} $(LD) $(LFLAGS) ${OBJ} -o $@ debug: all gdb ${PROGRAM} run: ${PROGRAM} ./${PROGRAM} strip: ${PROGRAM} @echo stripping ${PROGRAM} @strip ${PROGRAM} tar: clean @echo creating archive @tar -czvf ${PROGRAM}.tar.gz * clean: @echo cleaning @rm -f ${PROGRAM} ${OBJ} .PHONY: all options debug strip tar clean