|
|
@@ -0,0 +1,40 @@
|
|
|
+# Compiler and Linker
|
|
|
+CXX = g++
|
|
|
+CXXFLAGS = -std=c++17 -Wall -Wextra `pkg-config --cflags gtkmm-3.0`
|
|
|
+LDFLAGS = `pkg-config --libs gtkmm-3.0`
|
|
|
+
|
|
|
+# 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
|