# List of Java source files
SRCS := Cell.java Grid.java Sudoku.java SudokuButtonListener.java SudokuUI.java

# Directory to store compiled class files
BUILD_DIR := build

# Java compiler
JAVAC := javac

# Java interpreter
JAVA := java

# Main class to run
MAIN_CLASS := Sudoku

# Default target
.PHONY: all
all: compile

# Create the build directory
$(BUILD_DIR):
	mkdir -p $(BUILD_DIR)

# Compile Java source files
.PHONY: compile
compile: $(addprefix $(BUILD_DIR)/, $(SRCS:.java=.class))

# Rule to compile Java source files
$(BUILD_DIR)/%.class: %.java | $(BUILD_DIR)
	$(JAVAC) -d $(BUILD_DIR) $

# Clean up compiled class files
.PHONY: clean
clean:
	rm -rf $(BUILD_DIR)