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