This commit is contained in:
David AKAGUNDUZ 2024-05-05 01:32:06 +02:00
parent 8308a99068
commit 72122fc770

@ -1,30 +1,56 @@
# List of Java source files
SRCS := Cell.java GenerateGrid.java Grid.java Sudoku.java SudokuButtonListener.java SudokuSolver.java SudokuUI.java SudokuCreator.java SudokuGame.java
### VARIABLES ###
# Directory to store compiled class files
BUILD_DIR := build
JC = javac
JCFLAGS = -encoding UTF-8 -implicit:none
# Java compiler
JAVAC := javac
JVM = java
JVMFLAGS =
# Java interpreter
JAVA := java
### REGLES ESSENTIELLES ###
# Main class to run
MAIN_CLASS := Sudoku
# Default target
.PHONY: all
all: compile
SudokuCreator.class : SudokuCreator.java SudokuUI.class SudokuButtonListener.class Sudoku.class SudokuSolver.class GenerateGrid.class Grid.class Cell.class
${JC} ${JCFLAGS} SudokuCreator.java
# Create the build directory
$(BUILD_DIR):
mkdir -p $(BUILD_DIR)
SudokuGame.class : SudokuGame.java SudokuUI.class SudokuButtonListener.class Sudoku.class SudokuSolver.class GenerateGrid.class Grid.class Cell.class
${JC} ${JCFLAGS} SudokuGame.java
# Compile Java source files
.PHONY: compile
compile: $(addprefix $(BUILD_DIR)/, $(SRCS:.java=.class))
SudokuUI.class : SudokuUI.java Sudoku.class
${JC} ${JCFLAGS} SudokuUI.java
# Rule to compile Java source files
$(BUILD_DIR)/%.class: %.java | $(BUILD_DIR)
$(JAVAC) -d $(BUILD_DIR) $<
SudokuButtonListener.class : SudokuButtonListener.java Sudoku.class
${JC} ${JCFLAGS} SudokuButtonListener.java
Sudoku.class : Sudoku.java Grid.class
${JC} ${JCFLAGS} Sudoku.java
SudokuSolver.class : SudokuSolver.java Grid.class
${JC} ${JCFLAGS} SudokuSolver.java
GenerateGrid.class : GenerateGrid.java Grid.class
${JC} ${JCFLAGS} GenerateGrid.java
Grid.class : Grid.java Cell.class
${JC} ${JCFLAGS} Grid.java
Cell.class : Cell.java
${JC} ${JCFLAGS} Cell.java
### REGLES OPTIONNELLES ###
run : SudokuCreator.class
${JVM} ${JVMFLAGS} SudokuCreator
run1 : SudokuGame.class
${JVM} ${JVMFLAGS} SudokuGame
clean :
-rm -f *.class
mrproper : clean SudokuCreator.class SudokuGame.class
### BUTS FACTICES ###
.PHONY : run clean mrproper
### FIN ###