# **************************************************************************** #
#                                                                              #
#                                                         :::      ::::::::    #
#    Makefile                                           :+:      :+:    :+:    #
#                                                     +:+ +:+         +:+      #
#    By: lfirmin <lfirmin@student.42.fr>            +#+  +:+       +#+         #
#                                                 +#+#+#+#+#+   +#+            #
#    Created: 2025/07/01 13:54:05 by lfirmin           #+#    #+#              #
#    Updated: 2025/07/01 16:43:28 by lfirmin          ###   ########.fr        #
#                                                                              #
# **************************************************************************** #

C++ = c++
C++_FLAGS = -Wall -Wextra -Werror -std=c++98
OBJDIR = obj
INFILES = 	main.cpp\
			ClapTrap.cpp\
			ScavTrap.cpp\
			FragTrap.cpp\

OBJFILES = $(addprefix $(OBJDIR)/, $(INFILES:.cpp=.o))

NAME = FragTrap

all: $(NAME)

$(OBJDIR):
	@echo "📁 Creating obj directory..."
	@mkdir -p $(OBJDIR)

$(OBJDIR)/%.o: %.cpp | $(OBJDIR)
	@echo "🧠 Compiling $< ..."
	@$(C++) $(C++_FLAGS) -c $< -o $@
	@echo "✅ $@ ready!"

$(NAME): $(OBJFILES)
	@echo "🔗 Linking $(NAME) ..."
	@$(C++) $(C++_FLAGS) $(OBJFILES) -o $(NAME)
	@echo "🎉 $(NAME) is ready !"

clean:
	@echo "🧹 Cleaning object files..."
	@rm -rf $(OBJDIR)
	@echo "✨ Objects cleaned!"

fclean: clean
	@echo "🗑️  Removing $(NAME)..."
	@rm -f $(NAME)
	@echo "💀 Full clean complete!"

re: fclean all

.PHONY: all clean fclean re