ScientificCalculator/Makefile
2025-11-10 09:29:14 +01:00

41 lines
814 B
Makefile

# Makefile for Scientific Calculator
CXX = g++
CXXFLAGS = -std=c++17 -Wall -Wextra -O2
TARGET = calculator
SRCDIR = src
OBJDIR = obj
# Source files
SOURCES = $(wildcard $(SRCDIR)/*.cpp)
OBJECTS = $(SOURCES:$(SRCDIR)/%.cpp=$(OBJDIR)/%.o)
# Default target
all: $(TARGET)
# Create object directory if it doesn't exist
$(OBJDIR):
mkdir -p $(OBJDIR)
# Link object files to create executable
$(TARGET): $(OBJECTS) | $(OBJDIR)
$(CXX) $(OBJECTS) -o $(TARGET) $(LDFLAGS)
@echo "Build complete: $(TARGET)"
# Compile source files to object files
$(OBJDIR)/%.o: $(SRCDIR)/%.cpp | $(OBJDIR)
$(CXX) $(CXXFLAGS) -c $< -o $@
# Clean build artifacts
clean:
rm -rf $(OBJDIR) $(TARGET)
@echo "Clean complete"
# Run the calculator in interactive mode
run: $(TARGET)
./$(TARGET)
# Phony targets
.PHONY: all clean run