Makefile work with dependencies

This commit is contained in:
hugogogo
2022-07-29 11:04:21 +02:00
parent 72d9709ca7
commit 04589e123b

View File

@@ -1,26 +1,27 @@
NAME = webserv
CXX = c++
NAME = webserv
CXX = c++
CXXFLAGS = -Wall -Wextra #-Werror
CXXFLAGS += -std=c++98
CXXFLAGS += -I$(HEADERS_D)
CXXFLAGS += -g
#CXXFLAGS += -O3
CXXFLAGS = -Wall -Wextra #-Werror
CXXFLAGS += $(HEADERS)
CXXFLAGS += -std=c++98
CXXFLAGS += -g
CXXFLAGS += -MMD -MP #header dependencie
#CXXFLAGS += -O3
#SHELL = /bin/zsh
VPATH = $(DIR_SRCS)
DIR_SRCS = srcs
#SHELL = /bin/zsh
VPATH = $(SRCS_D)
HEADERS_D = ./srcs
HEADERS = Webserv.hpp
HEADERS = $(HEADERS_D:%=-I%)
HEADERS_D = headers
DEPENDENCIES = $(HEADERS:%=$(HEADERS_D)/%)
SRCS_D = srcs
SRCS = main.cpp \
Webserv.cpp
SRCS = main.cpp Webserv.cpp
DIR_OBJS = builds
OBJS = $(SRCS:%.cpp=$(DIR_OBJS)/%.o)
OBJS_D = builds
OBJS = $(SRCS:%.cpp=$(OBJS_D)/%.o)
DEPS = $(OBJS:.o=.d) #header dependencie
# --------------------
# ------ RULES -------
@@ -28,26 +29,24 @@ OBJS = $(SRCS:%.cpp=$(DIR_OBJS)/%.o)
all: $(NAME)
$(DIR_OBJS)/%.o: %.cpp | $(DIR_OBJS)
$(OBJS_D)/%.o: %.cpp | $(OBJS_D)
$(CXX) $(CXXFLAGS) -c $< -o $@
$(DIR_OBJS):
$(OBJS_D):
mkdir $@
$(OBJS): $(DEPENDENCIES)
#$(OBJS): $(DEPENDENCIES) Makefile
$(NAME) : $(OBJS)
$(CXX) $(OBJS) -o $(NAME)
$(NAME): $(OBJS)
$(CXX) $^ -o $(NAME)
clean:
rm -f $(OBJS)
rm -rf $(OBJS_D)
fclean: clean
rm -f $(NAME)
re: fclean all
#run: all
.PHONY : all clean fclean re
-include $(DEPS) # header dependencie
.PHONY : all clean fclean re run