tests/C_C++/cpp_zh/GNUmakefile
2024-07-22 19:39:19 +02:00

37 lines
858 B
Makefile

.PHONY: clean run
ifeq (${DEBUG}, 1)
LFLAGS += --debug --trace
CXXFLAGS += -Wall -Wextra -Wpedantic
CXXFLAGS += -DDEBUG -O0 -ggdb -fno-inline
WRAP := valgrind --track-origins=yes --leak-check=full --show-leak-kinds=all
else
CXXFLAGS += -O3 -fno-stack-protector
endif
OUT := a.out
SOURCE.d := source/
OBJECT.d := object/
HEADER := Employee.hpp Worker.hpp Contractee.hpp Manager.hpp Company.hpp
HEADER := $(addprefix ${SOURCE.d}/,${HEADER})
SOURCE := main.cpp Employee.cpp Worker.cpp Contractee.cpp Manager.cpp Company.cpp
OBJECT := $(addprefix ${OBJECT.d}/,${SOURCE})
OBJECT := ${OBJECT:.cpp=.o}
${SOURCE.d}/%.cpp: ${SOURCE.d}/%.hpp
${OBJECT.d}/%.o: ${SOURCE.d}/%.cpp
${COMPILE.cpp} -o $@ $<
${OUT}: ${HEADER} ${OBJECT}
${LINK.cpp} -o $@ ${OBJECT} ${LDLIBS}
run: ${OUT}
${WRAP} ./${OUT}
clean:
-rm ${OUT}
-rm ${OBJECT}