diff --git a/TestV1/TestEnAttendantResolutionBug/Makefile b/TestV1/TestEnAttendantResolutionBug/Makefile index a0f2673..588c7ee 100644 --- a/TestV1/TestEnAttendantResolutionBug/Makefile +++ b/TestV1/TestEnAttendantResolutionBug/Makefile @@ -1,28 +1,40 @@ -# Variables +# Directories SRC_DIR = src BIN_DIR = bin -JAR_DIR = src/utils + +# Find all source files and corresponding class files +SOURCES = $(shell find $(SRC_DIR) -name "*.java") +CLASSES = $(SOURCES:$(SRC_DIR)/%.java=$(BIN_DIR)/%.class) + +# Main class for execution MAIN_CLASS = controller.Main -CP = $(BIN_DIR);$(JAR_DIR)/mariadb-client.jar -# Règles -.PHONY: all compile run clean +# Java compiler and runner +JAVAC = javac +JAVA = java +JFLAGS = -d $(BIN_DIR) -cp $(SRC_DIR):$(BIN_DIR) # Ajout du classpath src/ et bin/ -all: compile run +# Default target: Compile and run +all: clean compile run -compile: - @echo "Compilation des fichiers Java..." - @if not exist $(BIN_DIR) mkdir $(BIN_DIR) - @for /R $(SRC_DIR) %%f in (*.java) do @echo %%f >> sources.txt - @javac -cp $(CP) -d $(BIN_DIR) @sources.txt - @del sources.txt +# Compile all Java source files +compile: $(CLASSES) @echo "Compilation terminée." -run: - @echo "Exécution du programme..." - @java -cp $(CP) $(MAIN_CLASS) +# Rule to compile each .java file to a .class file +$(BIN_DIR)/%.class: $(SRC_DIR)/%.java + @mkdir -p $(@D) + $(JAVAC) $(JFLAGS) $< +# Run the application +run: + @echo "Exécution de l'application..." + $(JAVA) -cp $(BIN_DIR):$(SRC_DIR) $(MAIN_CLASS) + +# Clean compiled files clean: @echo "Nettoyage des fichiers compilés..." - @if exist $(BIN_DIR) rmdir /S /Q $(BIN_DIR) - @echo "Nettoyage terminé." + rm -rf $(BIN_DIR)/* + +# Phony targets to avoid conflicts +.PHONY: all compile run clean