diff --git a/Makefile b/Makefile index 1c0842a..474c881 100644 --- a/Makefile +++ b/Makefile @@ -1,61 +1,56 @@ -# === Configuration === -SRC_DIR := src/fr/iutfbleau/papillon -BUILD_DIR := build -DOC_DIR := doc +# === Variables globales === +MAIN_CLASS = fr.iutfbleau.papillon.Start +BUILD_DIR = build +SRC_DIR = src/fr/iutfbleau/papillon +SRC_BUILD = fr\iutfbleau\papillon LIB_DIR := lib LIB := $(LIB_DIR)/mariadb -MAIN_CLASS := fr.iutfbleau.papillon.Start -JAR_NAME := papillon.jar +JAR_NAME = papillon.jar -# === Commandes principales === +# === Detection de l'OS === +ifeq ($(OS),Windows_NT) + SEP = ; + RM = del /Q +else + SEP = : + RM = rm -f +endif -# Compilation du projet +# === Compilation === compile: @echo === Compilation du projet === - javac -encoding UTF-8 -cp "$(LIB)" -d $(BUILD_DIR) $(SRC_DIR)/*.java - @echo Compilation terminee ! + javac -encoding UTF-8 -cp "$(LIB_DIR)$(SEP)$(LIB_DIR)/org/mariadb/jdbc" -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 === +# === Creation 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) + jar cfm $(JAR_NAME) manifest.txt -C $(BUILD_DIR) . + @$(RM) manifest.txt 2>nul || true + @echo JAR cree avec succes: $(JAR_NAME) - -# === Exécution du JAR === +# === Execution multiplateforme === run-jar: - @echo === Exécution du JAR === - java -cp "papillon.jar;lib/mariadb;lib/mariadb/org/mariadb/jdbc" fr.iutfbleau.papillon.Start + @echo === Execution du JAR === +ifeq ($(OS),Windows_NT) + java -cp "$(JAR_NAME);$(LIB_DIR);$(LIB_DIR)/mariadb;$(LIB_DIR)/mariadb/org/mariadb/jdbc" $(MAIN_CLASS) +else + java -cp "$(JAR_NAME):$(LIB_DIR):$(LIB_DIR)/mariadb:$(LIB_DIR)/mariadb/org/mariadb/jdbc" $(MAIN_CLASS) +endif +# === Generation de la documentation === +doc: + @echo === Generation de la documentation Javadoc === + javadoc -d doc -encoding UTF-8 -cp "$(LIB_DIR)$(SEP)$(LIB_DIR)/org/mariadb/jdbc" $(SRC_DIR)/*.java + @echo Documentation generee dans le dossier doc/ - - -# Nettoyage du dossier build +# === Nettoyage === 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 +ifeq ($(OS),Windows_NT) + $(RM) $(BUILD_DIR)\$(SRC_BUILD)\*.class +else + $(RM) $(BUILD_DIR)/fr/iutfbleau/papillon/*.class +endif + @echo Nettoyage termine \ No newline at end of file