Makefile work with dependencies
This commit is contained in:
41
Makefile
41
Makefile
@@ -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)
|
$(NAME): $(OBJS)
|
||||||
#$(OBJS): $(DEPENDENCIES) Makefile
|
$(CXX) $^ -o $(NAME)
|
||||||
|
|
||||||
$(NAME) : $(OBJS)
|
|
||||||
$(CXX) $(OBJS) -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
|
|
||||||
|
|||||||
Reference in New Issue
Block a user