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

CXX = c++
CXXFLAGS = -Wall -Wextra -Werror -std=c++98
OBJDIR = obj
SOURCES = Main.cpp
OBJECTS = $(addprefix $(OBJDIR)/, $(SOURCES:.cpp=.o))
NAME = sed

all: $(NAME)

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

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

$(NAME): $(OBJECTS)
	@echo "🔗 Linking $(NAME) ..."
	@$(CXX) $(CXXFLAGS) $(OBJECTS) -o $(NAME)
	@echo "🎉 $(NAME) is ready to hunt brains!" 

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