Makefile work with dependencies
This commit is contained in:
53
Makefile
53
Makefile
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user