72 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
		
		
			
		
	
	
			72 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
|  | # === Global variables ===
 | ||
|  | 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 | ||
|  | JAR_NAME = papillon.jar | ||
|  | DOC_DIR = doc | ||
|  | 
 | ||
|  | # === OS detection ===
 | ||
|  | ifeq ($(OS),Windows_NT) | ||
|  | 	SEP = ; | ||
|  | 	RM = del /Q | ||
|  | 	RMDIR = rmdir /S /Q | ||
|  | else | ||
|  | 	SEP = : | ||
|  | 	RM = rm -f | ||
|  | 	RMDIR = rm -rf | ||
|  | endif | ||
|  | 
 | ||
|  | # === Compilation ===
 | ||
|  | compile: | ||
|  | 	@echo === Compilation du projet === | ||
|  | 	javac -encoding UTF-8 -cp "$(LIB_DIR)$(SEP)$(LIB_DIR)/org/mariadb/jdbc" -d $(BUILD_DIR) $(SRC_DIR)/*.java | ||
|  | 	@echo Compilation terminee | ||
|  | 
 | ||
|  | # === Run the program ===
 | ||
|  | run: | ||
|  | 	@echo === Execution du programme === | ||
|  | ifeq ($(OS),Windows_NT) | ||
|  | 	java -cp "$(BUILD_DIR);$(LIB_DIR);$(LIB_DIR)/mariadb;$(LIB_DIR)/mariadb/org/mariadb/jdbc" $(MAIN_CLASS) | ||
|  | else | ||
|  | 	java -cp "$(BUILD_DIR):$(LIB_DIR):$(LIB_DIR)/mariadb:$(LIB_DIR)/mariadb/org/mariadb/jdbc" $(MAIN_CLASS) | ||
|  | endif | ||
|  | 
 | ||
|  | # === Create JAR ===
 | ||
|  | jar: compile | ||
|  | 	@echo === Creation du JAR autonome === | ||
|  | 	echo Main-Class: $(MAIN_CLASS) > manifest.txt | ||
|  | 	jar cfm $(JAR_NAME) manifest.txt -C $(BUILD_DIR) . | ||
|  | 	@$(RM) manifest.txt 2>nul || true | ||
|  | 	@echo JAR cree avec succes: $(JAR_NAME) | ||
|  | 
 | ||
|  | # === Run from JAR ===
 | ||
|  | run-jar: | ||
|  | 	@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 | ||
|  | 
 | ||
|  | # === Generate documentation ===
 | ||
|  | doc: | ||
|  | 	@echo === Generation de la documentation Javadoc === | ||
|  | 	javadoc -d $(DOC_DIR) -encoding UTF-8 -cp "$(LIB_DIR)$(SEP)$(LIB_DIR)/org/mariadb/jdbc" $(SRC_DIR)/*.java | ||
|  | 	@echo Documentation generee dans le dossier doc/ | ||
|  | 
 | ||
|  | # === Clean build and docs ===
 | ||
|  | clean: | ||
|  | 	@echo === Nettoyage des fichiers compiles === | ||
|  | ifeq ($(OS),Windows_NT) | ||
|  | 	$(RM) $(BUILD_DIR)\$(SRC_BUILD)\*.class 2>nul || true | ||
|  | 	for /d %%i in ($(DOC_DIR)\*) do rmdir /S /Q "%%i" 2>nul || true | ||
|  | 	$(RM) $(DOC_DIR)\* 2>nul || true | ||
|  | else | ||
|  | 	$(RM) $(BUILD_DIR)/fr/iutfbleau/papillon/*.class | ||
|  | 	find $(DOC_DIR) -mindepth 1 -delete 2>/dev/null || true | ||
|  | endif | ||
|  | 	@echo Nettoyage termine |