-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
67 lines (49 loc) · 1.53 KB
/
Makefile
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
NAME= WebServer
#************************PARSING************************#
PARSING= libparsing.a
PARSING_PATH= Parsing
#************************Server************************#
SRC_SERVER_PATH= Server
HDR_SERVER_PATH= Server/headers
OBJ_PATH_SERVER= objectsServer
SRC_NAME_SERVER= main.cpp\
WebServer.class.cpp\
Server.class.cpp\
ft_split.cpp\
manipulation.cpp\
Request.class.cpp\
Response.class.cpp\
methods.cpp\
location.cpp\
location2.cpp\
tools.cpp\
HDR_SERVER_NAME= Server.class.hpp\
WebServer.class.hpp\
server.hpp\
Request.class.hpp\
# parse.hpp\
OBJ_NAME_SERVER= $(SRC_NAME_SERVER:.cpp=.o)
OBJ_SERVER= $(addprefix $(OBJ_PATH_SERVER)/,$(OBJ_NAME_SERVER))
HDR_SERVER= $(addprefix $(HDR_SERVER_PATH)/,$(HDR_SERVER_NAME))
H_SERVER_FLAG= -I $(HDR_SERVER_PATH)
FLAGS= -Wall -Wextra -Werror
LPARSING_FLAG= -L$(PARSING_PATH) Parsing/libparsing.a
COMP= clang++
all: Parse $(NAME)
WebServer : $(PARSING_PATH)/$(PARSING) $(OBJ_SERVER)
@$(COMP) $(H_SERVER_FLAG) $(FLAGS) $(OBJ_SERVER) $(LPARSING_FLAG) -o $@
@echo "Compilation of WebServer: \033[1;32mOK\033[m"
Parse:
@make -sC $(PARSING_PATH)
$(OBJ_PATH_SERVER)/%.o: $(SRC_SERVER_PATH)/%.cpp $(HDR_SERVER)
@mkdir -p $(OBJ_PATH_SERVER)
@$(COMP) $(FLAGS) $(H_SERVER_FLAG) -o $@ -c $<
clean:
@rm -rf $(OBJ_PATH_SERVER)
@make clean -C $(PARSING_PATH)
@echo "\033[1;33m>> all objects files are deleted.\033[0m"
fclean: clean
@make fclean -C $(PARSING_PATH)
@rm -rf $(NAME)
@echo "\033[0;31m>> $(NAME) is deleted.\033[0m"
re : fclean all