1# **************************************************************************** #
4# Makefile :+: :+: :+: #
6# By: kamitsui <kamitsui@student.42tokyo.jp> +#+ +:+ +#+ #
8# Created: 2025/05/29 22:58:19 by kamitsui #+# #+# #
9# Updated: 2025/08/15 20:43:34 by kamitsui ### ########.fr #
11# **************************************************************************** #
24# Object files and dependency files
25OBJS = $(addprefix $(OBJ_DIR)/, $(SRCS:.cpp=.o))
26DEPS = $(addprefix $(DEP_DIR)/, $(SRCS:.cpp=.d))
35CXXFLAGS = -Wall -Wextra -Werror -std=c++98
36CF_DEP = -MMD -MP -MF $(@:$(OBJ_DIR)/%.o=$(DEP_DIR)/%.d)
38# Rules for building object files
40 $(CXX) $(CXXFLAGS) $(CF_DEP) -c $< -o $@
43all: directories $(NAME)
44 $(call ASCII_ART,$(NAME))
55 $(CXX) $(CXXFLAGS) $(OBJS) -o $(NAME)
58TEST_ROOT = ../../cpp_module_tester
59TEST_DIR = $(TEST_ROOT)/cpp06
60URL_TEST_CPP = "https://github.com/kamitsui/cpp_module_tester.git"
61TEST_TARGET = $(TEST_DIR)/ex01_app
66ifeq ($(shell test -d $(TEST_DIR) && echo exist),)
67 @echo "Please clone the test repository"
68 $(call ASK_AND_EXECUTE_ON_YES, git clone $(URL_TEST_CPP) $(TEST_ROOT))
70 $(call ASK_AND_EXECUTE_ON_YES, make -C $(TEST_DIR) $(EX_NUM))
74# More Test : Enable Logger
81CXXFLAGS += -D DEBUG_MODE
84# Rule for removing object & dependency files
86 rm -rf $(OBJ_DIR) $(DEP_DIR) $(TEST_DIR)/objs $(TEST_DIR)/.deps
89# Rule for removing Target & others
91 rm -f $(NAME) $(TEST_TARGET)
94# Rule for Clean & Build Target
98# Enable dependency file
101# ASCII Art : Display Tips the way to use.
103 @echo " ____________________________________________________________"
105 @echo "< $$ ./serialize_test >"
107 @echo "< Test Case : >"
108 @echo "< $$ make test >"
109 @echo "-------------------------------------------------------------"
111 @echo " \ (oo)\_______"
112 @echo " (__)\ )\\/\\"
118define ASK_AND_EXECUTE_ON_YES
119 @echo "Execute? $(1) (y/n)"
132# Makefile Option : Disable '--print-directory'
133MAKEFLAGS += --no-print-directory