| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- # 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
|