102 lines
2.0 KiB
Makefile
102 lines
2.0 KiB
Makefile
|
|
NAME = webserv
|
|
CXX = c++
|
|
|
|
CXXFLAGS = -Wall -Wextra #-Werror
|
|
CXXFLAGS += $(HEADERS_D:%=-I%)
|
|
CXXFLAGS += -std=c++98
|
|
CXXFLAGS += -g
|
|
#CXXFLAGS += -fno-limit-debug-info
|
|
CXXFLAGS += -MMD -MP #header dependencie
|
|
#CXXFLAGS += -O3
|
|
|
|
VPATH = $(SRCS_D)
|
|
|
|
HEADERS_D = srcs \
|
|
srcs/webserv \
|
|
srcs/config
|
|
|
|
SRCS_D = srcs \
|
|
srcs/webserv \
|
|
srcs/config \
|
|
|
|
SRCS = main.cpp \
|
|
base.cpp init.cpp close.cpp epoll_update.cpp signal.cpp \
|
|
accept.cpp request.cpp response.cpp \
|
|
method_get.cpp method_post.cpp method_delete.cpp \
|
|
run_loop.cpp timeout.cpp \
|
|
parser.cpp \
|
|
extraConfig.cpp \
|
|
postProcessing.cpp \
|
|
utils.cpp \
|
|
cgi_script.cpp \
|
|
Client.cpp Client_multipart_body.cpp \
|
|
|
|
OBJS_D = builds
|
|
OBJS = $(SRCS:%.cpp=$(OBJS_D)/%.o)
|
|
DEPS = $(OBJS:.o=.d) #header dependencie
|
|
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
|
|
# . target: prerequisites . $@ : target #
|
|
# RULES . recipe . $< : 1st prerequisite #
|
|
# . @recipe (silent) . $^ : all prerequisites #
|
|
# . target: VAR = assignment . | : order-only prereq. #
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
|
|
|
|
all: $(NAME)
|
|
|
|
$(OBJS_D)/%.o: %.cpp | $(OBJS_D)
|
|
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
printf "$(_CYAN)\r\33[2K\rCompling $@$(_END)"
|
|
|
|
$(OBJS_D):
|
|
mkdir $@
|
|
|
|
$(NAME): $(OBJS)
|
|
$(CXX) $^ -o $(NAME)
|
|
echo "$(_GREEN)\r\33[2K\r$(NAME) created 😎$(_END)"
|
|
|
|
# CGI
|
|
cgi:
|
|
make -C srcs/cgi-bin
|
|
cgiclean:
|
|
make clean -C srcs/cgi-bin
|
|
cgifclean:
|
|
make fclean -C srcs/cgi-bin
|
|
cgire:
|
|
make re -C srcs/cgi-bin
|
|
|
|
clean:
|
|
rm -rf $(OBJS_D)
|
|
|
|
fclean: clean
|
|
rm -f $(NAME)
|
|
|
|
re: fclean all
|
|
|
|
.PHONY : all clean fclean re
|
|
|
|
-include $(DEPS) # header dependencie
|
|
|
|
.SILENT:
|
|
|
|
# ------------------
|
|
# ----- COLORS -----
|
|
# ------------------
|
|
|
|
_GREY=$ \033[30m
|
|
_RED=$ \033[31m
|
|
_GREEN=$ \033[32m
|
|
_YELLOW=$ \033[33m
|
|
_BLUE=$ \033[34m
|
|
_PURPLE=$ \033[35m
|
|
_CYAN=$ \033[36m
|
|
_WHITE=$ \033[37m
|
|
_END=$ \033[0m
|
|
|
|
|
|
|
|
|
|
|
|
|