CPP02 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/28 13:51:53 by kamitsui ### ########.fr #
10# #
11# **************************************************************************** #
12
13# @file ex00/Makefile
14# @brief This File is a Makefile for building Fixed class in ex00 directory.
15
16# Directories
17OBJ_DIR = objs
18DEP_DIR = .deps
19
20# Source files
21SRCS = main.cpp Fixed.cpp
22
23# Object files and dependency files
24OBJS = $(addprefix $(OBJ_DIR)/, $(SRCS:.cpp=.o))
25DEPS = $(addprefix $(DEP_DIR)/, $(SRCS:.cpp=.d))
26
27# Build target
28NAME = a.out
29
30# Compiler
31CXX = c++
32CXXFLAGS = -Wall -Wextra -Werror -std=c++98
33CF_DEP = -MMD -MP -MF $(@:$(OBJ_DIR)/%.o=$(DEP_DIR)/%.d)
34
35# Rules for building object files
36$(OBJ_DIR)/%.o: %.cpp
37 @mkdir -p $(OBJ_DIR)
38 @mkdir -p $(DEP_DIR)
39 $(CXX) $(CXXFLAGS) $(CF_DEP) -c $< -o $@
40
41# Rules for building dependency files
42$(DEP_DIR)/%.d: %.c
43 @mkdir -p $(DEP_DIR)
44
45# Default target
46all: $(NAME)
47.PHONY: all
48
49# Build Target
50$(NAME): $(OBJS)
51 $(CXX) $(CXXFLAGS) $(OBJS) -o $(NAME)
52 $(call ASCII_ART,${NAME})
53
54# Rule for removing object & dependency files
55clean:
56 rm -rf $(OBJ_DIR) $(DEP_DIR)
57.PHONY: clean
58
59# Rule for removing Target & others
60fclean: clean
61 rm -f $(NAME)
62.PHONY: fclean
63
64# Rule for Clean & Build Target
65re: fclean all
66.PHONY: re
67
68# ASCII Art : Display Tips the way to use.
69define ASCII_ART
70 @echo " _____________________________________________"
71 @echo "< Usage : >"
72 @echo "< $$ ./a.out >"
73 @echo "----------------------------------------------"
74 @echo " \ ^__^"
75 @echo " \ (oo)\_______"
76 @echo " (__)\ )\\/\\"
77 @echo " ||----w |"
78 @echo " || ||\n"
79endef