-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
41 lines (30 loc) · 932 Bytes
/
Makefile
File metadata and controls
41 lines (30 loc) · 932 Bytes
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
NAME = webserv
CMP = c++
FLAGS = -Wall -Wextra -Werror -std=c++17 -Iinclude
SCR_PARSE = $(addprefix parse/, read_config.cpp tokenize.cpp)
SCR_CLASS = $(addprefix class/, WebServ.cpp Server.cpp Location.cpp Socket.cpp SocketManager.cpp)
SCR_LOG = $(addprefix log/, logging.cpp)
SRC = $(addprefix src/, main.cpp $(SCR_PARSE) $(SCR_CLASS) $(SCR_LOG))
OBJ_DIR = _obj
OBJ = $(SRC:%.cpp=$(OBJ_DIR)/%.o)
all: info $(OBJ_DIR) $(NAME)
$(OBJ_DIR):
@mkdir -p $(OBJ_DIR)/src/
@mkdir -p $(OBJ_DIR)/src/parse/
@mkdir -p $(OBJ_DIR)/src/class/
@mkdir -p $(OBJ_DIR)/src/log/
$(OBJ_DIR)/%.o: %.cpp
@$(CMP) $(FLAGS) -c $< -o $@
$(NAME): $(OBJ)
@$(CMP) $(FLAGS) $(OBJ) -o $(NAME)
@printf "Succesfully compiled $(NAME).\n"
info:
@printf "Compiling $(NAME)...\n"
clean:
@printf "Cleaned object files.\n"
@rm -rf $(OBJ_DIR)
fclean: clean
@printf "Cleaned executable.\n"
@rm -f $(NAME)
re: fclean all
.PHONY: all clean fclean re info