Files
42_INT_09_piscine_cpp/d03/jodufour/Makefile

79 lines
1.6 KiB
Makefile

######################################
# COMMANDS #
######################################
CXX = c++ -c
LINK = c++
MKDIR = mkdir -p
RM = rm -rf
######################################
# EXECUTABLE #
######################################
NAME = ex01.out
#######################################
# DIRECTORIES #
#######################################
SRC_DIR = srcs/
OBJ_DIR = objs/
PRV_DIR = private/
######################################
# SOURCE FILES #
######################################
SRC = \
${addprefix class/, \
ClapTrap.cpp \
ScavTrap.cpp \
} \
main.cpp
######################################
# OBJECT FILES #
######################################
OBJ = ${SRC:.cpp=.o}
OBJ := ${addprefix ${OBJ_DIR}, ${OBJ}}
DEP = ${OBJ:.o=.d}
#######################################
# FLAGS #
#######################################
CPPFLAGS = -Wall -Wextra -Werror
CPPFLAGS += -std=c++98
CPPFLAGS += -MMD -MP
CPPFLAGS += -I${PRV_DIR}
LDFLAGS =
ifeq (${DEBUG}, 1)
CPPFLAGS += -g
CPPFLAGS += -DDEBUG=1
endif
#######################################
# RULES #
#######################################
${NAME}: ${OBJ}
${LINK} ${OBJ} ${LDFLAGS} ${OUTPUT_OPTION}
all: ${NAME}
-include ${DEP}
${OBJ_DIR}%.o: ${SRC_DIR}%.cpp
@${MKDIR} ${@D}
${CXX} ${CPPFLAGS} $< ${OUTPUT_OPTION}
clean:
${RM} ${OBJ_DIR} ${NAME} vgcore.*
fclean:
${RM} ${OBJ_DIR} ${NAME} vgcore.*
re: clean all
fre: fclean all
.PHONY: all clean fclean re fre