36 lines
805 B
Makefile
36 lines
805 B
Makefile
CXX = c++
|
|
CXXFLAGS = -Wall -Wextra -Werror -std=c++98
|
|
OBJDIR = obj
|
|
SOURCES = Main.cpp Dog.cpp Cat.cpp AAnimal.cpp WrongAnimal.cpp WrongCat.cpp Brain.cpp
|
|
OBJECTS = $(addprefix $(OBJDIR)/, $(SOURCES:.cpp=.o))
|
|
NAME = AAnimal
|
|
|
|
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!"
|
|
|
|
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 |