correction bug Makefile

This commit is contained in:
Lenny FOULOU
2024-11-18 21:51:18 +01:00
parent d3260d6771
commit e7f3da2d68

View File

@@ -1,28 +1,40 @@
# Variables # Directories
SRC_DIR = src SRC_DIR = src
BIN_DIR = bin 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 MAIN_CLASS = controller.Main
CP = $(BIN_DIR);$(JAR_DIR)/mariadb-client.jar
# Règles # Java compiler and runner
.PHONY: all compile run clean 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: # Compile all Java source files
@echo "Compilation des fichiers Java..." compile: $(CLASSES)
@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
@echo "Compilation terminée." @echo "Compilation terminée."
run: # Rule to compile each .java file to a .class file
@echo "Exécution du programme..." $(BIN_DIR)/%.class: $(SRC_DIR)/%.java
@java -cp $(CP) $(MAIN_CLASS) @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: clean:
@echo "Nettoyage des fichiers compilés..." @echo "Nettoyage des fichiers compilés..."
@if exist $(BIN_DIR) rmdir /S /Q $(BIN_DIR) rm -rf $(BIN_DIR)/*
@echo "Nettoyage terminé."
# Phony targets to avoid conflicts
.PHONY: all compile run clean