-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
124 lines (96 loc) · 3.12 KB
/
Makefile
File metadata and controls
124 lines (96 loc) · 3.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
BLACK = "\033[30m"
GRAY = "\033[30m"
RED = "\033[31m"
GREEN = "\033[32m"
YELLOW = "\033[33m"
BLUE = "\033[34m"
PURPLE = "\033[35m"
CYAN = "\033[36m"
WHITE = "\033[37m"
BOLD = "\033[01m"
ITALIC = "\033[3m"
EOC = "\033[0m"
LINE_DEL = "\x1b[1A\x1b[M"
# ---------------------------------------------------------------------
NAME = ircserv
CXX = c++
RM = rm -rf
CXXFLAGS = -Wall -Wextra -Werror -std=c++98
HEADER = ./src
# ---------------------------------------------------------------------
SRCS_DIR = ./src
SRCS_FILES = main.cpp \
Channel.cpp \
Client.cpp \
Server.cpp \
checkCmd.cpp \
Utils.cpp
SRCS = $(addprefix $(SRCS_DIR)/, $(SRCS_FILES))
MODE_DIR = ./src/command/channelMode
MODE_FILES = mode.cpp \
processMode.cpp
MODE = $(addprefix $(MODE_DIR)/, $(MODE_FILES))
CHANNEL_DIR = ./src/command/channelOper
CHANNEL_FILES = invite.cpp \
join.cpp \
kick.cpp \
list.cpp \
part.cpp \
privMsg.cpp \
topic.cpp
CHANNEL = $(addprefix $(CHANNEL_DIR)/, $(CHANNEL_FILES))
CONNECT_DIR = ./src/command/connectionMsg
CONNECT_FILES = nick.cpp \
pass.cpp \
pong.cpp \
quit.cpp \
user.cpp
CONNECT = $(addprefix $(CONNECT_DIR)/, $(CONNECT_FILES))
OPTION_DIR = ./src/command/optionalMsg
OPTION_FILES = motd.cpp \
userhost.cpp \
whois.cpp \
bot.cpp
OPTION = $(addprefix $(OPTION_DIR)/, $(OPTION_FILES))
# ---------------------------------------------------------------------
OBJS_DIR = ./objs
OBJS = $(SRCS:$(SRCS_DIR)/%.cpp=$(OBJS_DIR)/%.o) \
$(MODE:$(MODE_DIR)/%.cpp=$(OBJS_DIR)/%.o) \
$(CHANNEL:$(CHANNEL_DIR)/%.cpp=$(OBJS_DIR)/%.o) \
$(CONNECT:$(CONNECT_DIR)/%.cpp=$(OBJS_DIR)/%.o) \
$(OPTION:$(OPTION_DIR)/%.cpp=$(OBJS_DIR)/%.o)
# ---------------------------------------------------------------------
all : $(NAME)
$(OBJS_DIR):
@echo "\n"
@mkdir $@
$(OBJS_DIR)/%.o : $(SRCS_DIR)/%.cpp
@echo $(GRAY) "ircserv Compiling... " $< $(EOC) $(LINE_DEL)
@$(CXX) $(CXXFLAGS) -I $(HEADER) -c $< -o $@
$(OBJS_DIR)/%.o : $(MODE_DIR)/%.cpp
@echo $(GRAY) "ircserv Compiling... " $< $(EOC) $(LINE_DEL)
@$(CXX) $(CXXFLAGS) -I $(HEADER) -c $< -o $@
$(OBJS_DIR)/%.o : $(CHANNEL_DIR)/%.cpp
@echo $(GRAY) "ircserv Compiling... " $< $(EOC) $(LINE_DEL)
@$(CXX) $(CXXFLAGS) -I $(HEADER) -c $< -o $@
$(OBJS_DIR)/%.o : $(CONNECT_DIR)/%.cpp
@echo $(GRAY) "ircserv Compiling... " $< $(EOC) $(LINE_DEL)
@$(CXX) $(CXXFLAGS) -I $(HEADER) -c $< -o $@
$(OBJS_DIR)/%.o : $(OPTION_DIR)/%.cpp
@echo $(GRAY) "ircserv Compiling... " $< $(EOC) $(LINE_DEL)
@$(CXX) $(CXXFLAGS) -I $(HEADER) -c $< -o $@
# ---------------------------------------------------------------------
$(NAME) : $(OBJS_DIR) $(OBJS)
@$(CXX) $(CXXFLAGS) -I $(HEADER) -o $(NAME) $(OBJS)
@echo $(BOLD) $(BLUE) \
"\n========================================================\n" $(EOC)
@echo $(BOLD) $(ITALIC) $(BLUE) \
" << ircserv is made! >>\n\n" $(EOC)
clean :
@$(RM) $(OBJS_DIR)
fclean : clean
@$(RM) $(NAME)
re :
@make fclean
@make all
.PHONY: all clean fclean re