34 lines
617 B
Makefile
34 lines
617 B
Makefile
# Compiler settings
|
|
CXX := g++
|
|
CXXFLAGS := -std=c++23 -Wall -Wextra -Wpedantic
|
|
LDFLAGS := $(shell pkg-config --cflags --libs taglib)
|
|
|
|
# Source and object files
|
|
SRCS := main.cpp src/Tag.cpp src/File.cpp
|
|
OBJS := $(SRCS:.cpp=.o)
|
|
|
|
# Target binary
|
|
TARGET := soundServe
|
|
|
|
# Phony targets
|
|
.PHONY: all clean run
|
|
|
|
# Default target
|
|
all: $(TARGET)
|
|
|
|
# Link object files into final binary
|
|
$(TARGET): $(OBJS)
|
|
$(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
|
|
|
|
# Compile .cpp files into .o files
|
|
%.o: %.cpp
|
|
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
|
|
# Clean build artifacts
|
|
clean:
|
|
rm -f $(OBJS) $(TARGET)
|
|
|
|
# Run the program
|
|
run: $(TARGET)
|
|
./$(TARGET)
|