SAE21_2023/Makefile
2024-05-02 11:24:56 +02:00

57 lines
1.7 KiB
Makefile

# Variables
JC = javac
JVM = java
SRCDIR = src
BINDIR = bin
MAINCLASS1 = MainJeu
MAINCLASS2 = MainCreation
SRCFILES := $(wildcard $(SRCDIR)/*.java)
CLASSFILES := $(patsubst $(SRCDIR)/%.java,$(BINDIR)/%.class,$(SRCFILES))
# Règles de compilation pour les fichiers Java dans le répertoire src
$(BINDIR)/%.class: $(SRCDIR)/%.java | $(BINDIR)
$(JC) -d $(BINDIR) $<
# Crée le répertoire bin s'il n'existe pas
$(BINDIR):
mkdir -p $(BINDIR)
# Règle pour exécuter le premier programme
runJeu: $(CLASSFILES)
$(JVM) -cp $(BINDIR) $(MAINCLASS1)
# Règle pour exécuter le deuxième programme
runCreation: $(CLASSFILES)
$(JVM) -cp $(BINDIR) $(MAINCLASS2)
# Règle pour nettoyer les fichiers compilés
clean:
rm -rf $(BINDIR)/*
# Règle pour créer la documentation
doc:
javadoc -d docs $(SRCDIR)/*.java
# Règle pour visualiser la documentation
seedoc:
firefox docs/index.html &
# Définir les cibles factices
.PHONY: build runJeu runCreation clean doc seedoc
# Règle par défaut
.DEFAULT_GOAL := build
# Règle pour compiler AutomatiqueActionListener avec ses dépendances
$(BINDIR)/AutomatiqueActionListener.class: $(SRCDIR)/AutomatiqueActionListener.java $(BINDIR)/GenerateurSudoku.class $(BINDIR)/FenetrePrincipale.class $(BINDIR)/Resolveur.class
$(JC) -d $(BINDIR) $<
# Règle pour compiler FenetrePrincipale avec ses dépendances
$(BINDIR)/FenetrePrincipale.class: $(SRCDIR)/FenetrePrincipale.java $(BINDIR)/SaisieGrille.class $(BINDIR)/ReinitialiserActionListener.class
$(JC) -d $(BINDIR) $<
# Règle pour compiler SaisieGrille avec ses dépendances
$(BINDIR)/SaisieGrille.class: $(SRCDIR)/SaisieGrille.java $(BINDIR)/CaseMouseListener.class $(BINDIR)/GrillePainter.class
$(JC) -d $(BINDIR) $<