CPP00 1.0
読み取り中…
検索中…
一致する文字列を見つけられません
Makefile
[詳解]
1# **************************************************************************** #
2# #
3# ::: :::::::: #
4# Makefile :+: :+: :+: #
5# +:+ +:+ +:+ #
6# By: kamitsui <kamitsui@student.42tokyo.jp> +#+ +:+ +#+ #
7# +#+#+#+#+#+ +#+ #
8# Created: 2025/03/15 19:38:29 by kamitsui #+# #+# #
9# Updated: 2025/04/12 13:05:24 by kamitsui ### ########.fr #
10# #
11# **************************************************************************** #
12
13# Directories
14OBJ_DIR = objs
15DEP_DIR = .deps
16
17# Source files
18SRCS = \
19 main.cpp \
20 PhoneBook.cpp \
21 PhoneBookAddContact.cpp \
22 PhoneBookSearchContact.cpp \
23 Contact.cpp
24
25# Object files and dependency files
26OBJS = $(addprefix $(OBJ_DIR)/, $(SRCS:.cpp=.o))
27DEPS = $(addprefix $(DEP_DIR)/, $(SRCS:.cpp=.d))
28
29# Build target
30NAME = phonebook
31
32# Compiler
33CXX = c++
34CXXFLAGS = -Wall -Wextra -Werror -std=c++98
35CF_DEP = -MMD -MP -MF $(@:$(OBJ_DIR)/%.o=$(DEP_DIR)/%.d)
36
37# Rules for building object files
38$(OBJ_DIR)/%.o: %.cpp
39 @mkdir -p $(OBJ_DIR)
40 @mkdir -p $(DEP_DIR)
41 $(CXX) $(CXXFLAGS) $(CF_DEP) -c $< -o $@
42
43$(DEP_DIR)/%.d: %.c
44 @mkdir -p $(DEP_DIR)
45
46# Default target
47all: $(NAME)
48
49# Target
50$(NAME): $(OBJS)
51 $(CXX) $(CXXFLAGS) $(OBJS) -o $(NAME)
52
53clean:
54 rm -rf $(OBJ_DIR) $(DEP_DIR)
55
56fclean: clean
57 rm -f $(NAME)
58
59re: fclean all
60
61.PHONY: all clean fclean re