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