# Variables
JAVAC = javac
JAR = jar
SRC_DIR = src
BIN_DIR = bin
MANIFEST = MANIFEST.MF
MAIN_CLASS = com.charpentierbalocchi.dorfjavatik.view.FenetreDemarrage
JAR_FILE = DorfJavaTik.jar
RESOURCES_DIR = src/com/charpentierbalocchi/dorfjavatik/resources
RESOURCES_BIN_DIR = bin/com/charpentierbalocchi/dorfjavatik/resources

# Règles
.PHONY: all clean jar run

all: classes

# Compilation des fichiers .class
classes:
	@echo "Compilation des fichiers .java en .class..."
	@mkdir -p $(BIN_DIR)
	$(JAVAC) -d $(BIN_DIR) -encoding UTF-8 $(shell find $(SRC_DIR) -name "*.java")
	@echo "Compilation terminée."

# Création du fichier JAR
jar: classes
	@echo "Copie des ressources..."
	@mkdir -p $(RESOURCES_BIN_DIR)
	@cp -r $(RESOURCES_DIR)/* $(RESOURCES_BIN_DIR)
	@echo "Création du fichier JAR..."
	$(JAR) cfm $(JAR_FILE) $(MANIFEST) -C $(BIN_DIR) .
	@echo "Fichier JAR créé : $(JAR_FILE)"

# Nettoyage des fichiers compilés et du JAR
clean:
	@echo "Nettoyage des fichiers compilés..."
	@rm -rf $(BIN_DIR)/*
	@rm -f $(JAR_FILE)
	@echo "Nettoyage terminé."

# Exécution du fichier JAR
run: jar
	@echo "Exécution du fichier JAR..."
	@java -jar $(JAR_FILE)

# Crée le fichier MANIFEST.MF avec la classe principale
manifest:
	@echo "Main-Class: $(MAIN_CLASS)" > $(MANIFEST)