-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
48 lines (35 loc) · 895 Bytes
/
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
NAME := webserv
RED=\033[0;31m
GREEN=\033[0;32m
NC=\033[0m
OBJS_DIR := .objs
SOURCES = main.cpp \
srcs/Server.cpp \
srcs/Request.cpp \
srcs/Response.cpp \
srcs/Config.cpp \
srcs/Client.cpp \
srcs/Cookie.cpp \
srcs/methods/Post.cpp \
srcs/methods/Get.cpp \
srcs/methods/Cgi.cpp
OBJECTS := $(patsubst %.cpp,$(OBJS_DIR)/%.o,$(SOURCES))
DEPENDS := $(patsubst %.cpp,$(OBJS_DIR)/%.d,$(SOURCES))
CXX := c++
CXXFLAGS := -std=c++98 -g -fsanitize=address -Wall -Werror -Wextra
all: $(NAME)
$(NAME): $(OBJECTS)
@$(CXX) $(CXXFLAGS) $^ -o $@
@echo "\n${RED}./$(NAME)\n${NC}"
-include $(DEPENDS)
$(OBJS_DIR)/%.o: %.cpp Makefile
@mkdir -p $(@D) # Create directory if it doesn't exist
@$(CXX) $(CXXFLAGS) -MMD -MP -c $< -o $@
clean:
@$(RM) -rf $(OBJS_DIR)
fclean: clean
@$(RM) $(NAME)
re: fclean all
run: all
./$(NAME) server.conf
.PHONY: all clean fclean re run