-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
40 lines (29 loc) · 910 Bytes
/
Copy pathMakefile
File metadata and controls
40 lines (29 loc) · 910 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
include Includes.mk
CXX = c++
CXXFLAGS = -Wall -Werror -Wextra -std=c++98 -g3 -I./includes -I./templates -I./src/models/headers
MODELS_DR = src
INCLUDES_DR = includes
SRCS_DR = src
TEMPLATES_DIR= templates
TEMPLATES_S= $(addprefix $(TEMPLATES_DIR)/,$(TEMPLATES))
MODELS_DR_SRC= $(addprefix $(MODELS_DR)/,$(MODELS))
SRCS_DR_SRC= $(addprefix $(SRCS_DR)/,$(SRCS))
HEADERS_SRC= $(addprefix $(MODELS_DR)/,$(HEADERS))
MODELS_OBJS= $(MODELS_DR_SRC:%.cpp=build/%.o)
SRCS_OBJS= $(SRCS_DR_SRC:%.cpp=build/%.o)
HEADERS_SRC += $(TEMPLATES_S)
HEADERS_SRC += $(INCLUDES_DR)
NAME = webserv
all: $(NAME)
$(NAME): $(MODELS_OBJS) $(SRCS_OBJS)
$(CXX) $(MODELS_OBJS) $(SRCS_OBJS) $(CXXFLAGS) -o $(NAME)
build/%.o:%.cpp $(HEADERS_SRC)
@mkdir -p $(dir $@)
$(CXX) $(CXXFLAGS) -c $< -o $@
clean:
rm -f $(MODELS_OBJS) $(SRCS_OBJS)
rm -rf build
fclean: clean
rm -f $(NAME)
re: fclean all
.PHONY: all clean fclean re