Files
42_irc/Makefile
2024-01-25 17:04:42 +01:00

69 lines
1.9 KiB
Makefile

#******************************************************************************#
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: vvaas <vvaas@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2023/08/09 15:08:49 by vavaas #+# #+# #
# Updated: 2024/01/25 15:22:06 by maldavid ### ########.fr #
# #
#******************************************************************************#
NAME = ircserv
SRCS = srcs/main.cpp \
srcs/logs.cpp \
srcs/ansi.cpp \
srcs/server.cpp \
srcs/client.cpp \
srcs/channel.cpp \
srcs/message.cpp \
srcs/unstd/string.cpp \
srcs/server_functions.cpp \
OBJ_DIR = objs
OBJS = $(addprefix $(OBJ_DIR)/, $(SRCS:.cpp=.o))
CXX = c++
FLAGS ?= true
CXXFLAGS = -std=c++98 -I includes
ifeq ($(FLAGS), true)
CXXFLAGS += -Wall -Wextra -Werror
endif
DEBUG ?= false
MODE = "release"
ifeq ($(DEBUG), true)
CXXFLAGS += -g -D DEBUG
MODE = "debug"
endif
RM = rm -rf
$(OBJ_DIR)/%.o: %.cpp
@printf "\e[1;32m[compiling "$(MODE)" {"$(CXX)"}...]\e[1;00m "$<"\n"
@$(CXX) $(CXXFLAGS) $(COPTS) -c $< -o $@
all: $(NAME)
$(NAME): $(OBJ_DIR) $(OBJS)
@printf "\e[1;32m[linking "$(MODE)" {"$(CXX)"}...]\e[1;00m "$@"\n"
@$(CXX) -o $(NAME) $(OBJS)
@printf "\e[1;32m[build finished]\e[1;00m\n"
$(OBJ_DIR):
@mkdir -p $(sort $(addprefix $(OBJ_DIR)/, $(dir $(SRCS))))
clean:
@$(RM) $(OBJ_DIR)
fclean: clean
@$(RM) $(NAME)
re: fclean all
.PHONY: all clean fclean re