# === Configuration ===
SRC_DIR := src/fr/iutfbleau/papillon
BUILD_DIR := build
DOC_DIR := doc
LIB_DIR := lib
LIB := $(LIB_DIR)/mariadb
MAIN_CLASS := fr.iutfbleau.papillon.Start
JAR_NAME := papillon.jar

# === Commandes principales ===

# Compilation du projet
compile:
	@echo === Compilation du projet ===
	javac -encoding UTF-8 -cp "$(LIB)" -d $(BUILD_DIR) $(SRC_DIR)/*.java
	@echo  Compilation terminee !

# Exécution du programme
run: compile
	@echo === Execution du programme ===
	java -cp "$(BUILD_DIR);$(LIB)" $(MAIN_CLASS)

# Génération de la documentation Javadoc
doc:
	@echo === Generation de la documentation Javadoc ===
	javadoc -d $(DOC_DIR) -encoding UTF-8 -cp "$(LIB)" $(SRC_DIR)/*.java
	@echo  Documentation generee dans le dossier $(DOC_DIR)

# === Création du JAR ===
jar: compile
	@echo === Creation du JAR autonome ===
	echo Main-Class: $(MAIN_CLASS) > manifest.txt
	jar cfm $(JAR_NAME) manifest.txt -C $(BUILD_DIR) . -C $(LIB_DIR) .
	@del manifest.txt 2>nul || true
	@echo JAR cree avec succes : $(JAR_NAME)


# === Exécution du JAR ===
run-jar:
	@echo === Exécution du JAR ===
	java -cp "papillon.jar;lib/mariadb;lib/mariadb/org/mariadb/jdbc" fr.iutfbleau.papillon.Start




# Nettoyage du dossier build
clean:
	@echo === Nettoyage des fichiers compiles ===
	@rmdir /s /q $(BUILD_DIR) 2>nul || true
	@mkdir $(BUILD_DIR)
	@echo  Build nettoye.

# Nettoyage complet (build + doc)
reset: clean
	@echo === Suppression de la documentation ===
	@rmdir /s /q $(DOC_DIR) 2>nul || true
	@mkdir $(DOC_DIR)
	@echo  Tout a ete nettoye.

# Compilation + exécution directe
all: compile run
