# Add exiv2 to the pkg-config calls CXXFLAGS = -std=c++17 -Wall -Wextra `pkg-config --cflags gtkmm-3.0 exiv2` LDFLAGS = `pkg-config --libs gtkmm-3.0 exiv2` # Target Executable Name TARGET = visual-renamer # Directories SRC_DIR = src OBJ_DIR = obj # Source and Object Files SOURCES = $(wildcard $(SRC_DIR)/*.cpp) OBJECTS = $(SOURCES:$(SRC_DIR)/%.cpp=$(OBJ_DIR)/%.o) # Default Rule all: $(TARGET) # Link the executable $(TARGET): $(OBJECTS) @echo "Linking $@..." $(CXX) -o $@ $(OBJECTS) $(LDFLAGS) # Compile source files to object files $(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp | $(OBJ_DIR) @echo "Compiling $<..." $(CXX) $(CXXFLAGS) -c $< -o $@ # Create object directory if it doesn't exist $(OBJ_DIR): mkdir -p $(OBJ_DIR) # Clean build artifacts clean: @echo "Cleaning up..." rm -rf $(OBJ_DIR) $(TARGET) # Phonies .PHONY: all clean