diff --git a/Makefile b/Makefile index 0513d3a..c687645 100644 --- a/Makefile +++ b/Makefile @@ -1,42 +1,94 @@ -PACKAGE = fr.monkhanny.dorfromantik -ENTRY = Main -SOURCEDIR = ./src/fr/monkhanny/dorfromantik/ -BUILDDIR = ./build/ -DOCDIR = ./doc/ +# Définition des variables +JC = javac +JVM = java +JCFLAGS = -d build -classpath "libs/mariadb-client.jar" -sourcepath src -encoding UTF-8 +JVMFLAGS = -classpath ".:libs/mariadb-client.jar:build" JARNAME = dorfromantik.jar -CLASSP = ./libs/*:$(BUILDDIR) -MANIFESTPATH = Manifest.MF -SOURCEDIR = ./src/ +ENTRY = fr.monkhanny.dorfromantik.Main +PACKAGE = build/fr/monkhanny/dorfromantik +SRC = src/fr/monkhanny/dorfromantik -SOURCES := $(shell find $(SOURCEDIR) -name '*.java') +# Compilation des fichiers .java +${PACKAGE}/Main.class: ${SRC}/Main.java + ${JC} ${JCFLAGS} ${SRC}/Main.java -all: - @make clean - @make compile - @make jar - @make run +${PACKAGE}/Options.class: ${SRC}/Options.java + ${JC} ${JCFLAGS} ${SRC}/Options.java -compile: - @echo "Compiling..." - @javac -cp $(CLASSP) -d $(BUILDDIR) $(SOURCES) -Xlint:unchecked -Xlint:deprecation - @echo "Done." +# Compilation des composants +${PACKAGE}/components/Button.class: ${SRC}/components/Button.java + ${JC} ${JCFLAGS} ${SRC}/components/Button.java -run: - @echo "Running..." - @java -cp $(CLASSP):$(JARNAME) fr.monkhanny.dorfromantik.Main - @echo "Done." +${PACKAGE}/components/Title.class: ${SRC}/components/Title.java + ${JC} ${JCFLAGS} ${SRC}/components/Title.java + +# Compilation des contrôleurs +${PACKAGE}/controller/ButtonHoverAnimationListener.class: ${SRC}/controller/ButtonHoverAnimationListener.java + ${JC} ${JCFLAGS} ${SRC}/controller/ButtonHoverAnimationListener.java + +${PACKAGE}/controller/GameModeController.class: ${SRC}/controller/GameModeController.java + ${JC} ${JCFLAGS} ${SRC}/controller/GameModeController.java + +# Compilation des énumérations +${PACKAGE}/enums/Biome.class: ${SRC}/enums/Biome.java + ${JC} ${JCFLAGS} ${SRC}/enums/Biome.java + +${PACKAGE}/enums/Fonts.class: ${SRC}/enums/Fonts.java + ${JC} ${JCFLAGS} ${SRC}/enums/Fonts.java + +# Compilation des classes liées au jeu +${PACKAGE}/game/BarChartPanel.class: ${SRC}/game/BarChartPanel.java + ${JC} ${JCFLAGS} ${SRC}/game/BarChartPanel.java + +${PACKAGE}/game/Board.class: ${SRC}/game/Board.java + ${JC} ${JCFLAGS} ${SRC}/game/Board.java + +${PACKAGE}/game/Game.class: ${SRC}/game/Game.java + ${JC} ${JCFLAGS} ${SRC}/game/Game.java + +# Compilation des interfaces graphiques +${PACKAGE}/gui/ButtonPanel.class: ${SRC}/gui/ButtonPanel.java + ${JC} ${JCFLAGS} ${SRC}/gui/ButtonPanel.java + +${PACKAGE}/gui/Leaderboard.class: ${SRC}/gui/Leaderboard.java + ${JC} ${JCFLAGS} ${SRC}/gui/Leaderboard.java + +# Compilation des listeners +${PACKAGE}/listeners/CloseButtonListener.class: ${SRC}/listeners/CloseButtonListener.java + ${JC} ${JCFLAGS} ${SRC}/listeners/CloseButtonListener.java + +${PACKAGE}/listeners/GameArrowKeyListener.class: ${SRC}/listeners/GameArrowKeyListener.java + ${JC} ${JCFLAGS} ${SRC}/listeners/GameArrowKeyListener.java + +# Compilation des utils +${PACKAGE}/utils/Database.class: ${SRC}/utils/Database.java + ${JC} ${JCFLAGS} ${SRC}/utils/Database.java + +${PACKAGE}/utils/FontLoader.class: ${SRC}/utils/FontLoader.java + ${JC} ${JCFLAGS} ${SRC}/utils/FontLoader.java + +# Cibles supplémentaires +run: + ${JVM} ${JVMFLAGS} ${ENTRY} clean: - @echo "Cleaning up..." - @rm -rf $(BUILDDIR)* $(DOCDIR)* - @echo "Done." - -javadoc: - @echo "Generating javadoc..." - @javadoc -d $(DOCDIR) -sourcepath src -subpackages $(PACKAGE) - @echo "Done." + @echo "Nettoyage de build et doc" + rm -rf build + rm -rf doc +# Génération du fichier .jar jar: - @echo "Creating jar..." - @jar cfm $(JARNAME) $(MANIFESTPATH) -C $(BUILDDIR) fr/monkhanny/dorfromantik ressources - @echo "Done." + @echo "Création du fichier .jar" + jar cvfm ${JARNAME} Manifest.MF -C build/ . -C libs/ . + +# Extraction des fichiers MariaDB +extract-mariadb: + rm -rf build/org + unzip -qo libs/mariadb-client.jar -d build + rm -rf build/Version.java.template + rm -rf build/META-INF + +# Documentation JavaDoc +javadoc: + @echo "Génération de la documentation JavaDoc" + javadoc -d doc -sourcepath src -subpackages fr.monkhanny.dorfromantik -classpath libs/mariadb-client.jar