80 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
# If the first argument is "jeu"...
 | 
						|
ifeq (jeu,$(firstword $(MAKECMDGOALS)))
 | 
						|
  # use the rest as arguments for "jeu"
 | 
						|
  RUN_ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
 | 
						|
  # ...and turn them into do-nothing targets
 | 
						|
  $(eval $(RUN_ARGS):;@:)
 | 
						|
endif
 | 
						|
 | 
						|
# If the first argument is "creation"...
 | 
						|
ifeq (creation,$(firstword $(MAKECMDGOALS)))
 | 
						|
  # use the rest as arguments for "creation"
 | 
						|
  CREATION_ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
 | 
						|
  # ...and turn them into do-nothing targets
 | 
						|
  $(eval $(CREATION_ARGS):;@:)
 | 
						|
endif
 | 
						|
 | 
						|
### VARIABLES ###
 | 
						|
 | 
						|
JC = javac
 | 
						|
JCFLAGS = -encoding UTF-8 -implicit:none
 | 
						|
JVM = java
 | 
						|
JVMFLAGS =
 | 
						|
 | 
						|
SRCDIR = ./src
 | 
						|
OUTDIR = ./out
 | 
						|
DOCDIR = ./doc
 | 
						|
 | 
						|
### LISTE DES FICHIERS SOURCE ###
 | 
						|
 | 
						|
SRCFILES := $(wildcard $(SRCDIR)/*.java)
 | 
						|
 | 
						|
### LISTE DES FICHIERS OBJET ###
 | 
						|
 | 
						|
CLASSFILES := $(patsubst $(SRCDIR)/%.java,$(OUTDIR)/%.class,$(SRCFILES))
 | 
						|
 | 
						|
### REGLES ESSENTIELLES ###
 | 
						|
 | 
						|
# Compilation de tous les fichiers source
 | 
						|
$(OUTDIR)/%.class : $(SRCDIR)/%.java | $(OUTDIR)
 | 
						|
	@mkdir -p $(OUTDIR)
 | 
						|
	$(JC) $(JCFLAGS) -cp $(SRCDIR) -d $(OUTDIR) $<
 | 
						|
 | 
						|
# Crée le répertoire de sortie s'il n'existe pas
 | 
						|
$(OUTDIR):
 | 
						|
	mkdir -p $(OUTDIR)
 | 
						|
 | 
						|
# La classe MainJeu dépend de tous les fichiers compilés
 | 
						|
$(OUTDIR)/MainJeu.class : $(CLASSFILES)
 | 
						|
 | 
						|
# La classe MainCreation dépend de tous les fichiers compilés
 | 
						|
$(OUTDIR)/MainCreation.class : $(CLASSFILES)
 | 
						|
 | 
						|
### REGLES OPTIONNELLES ###
 | 
						|
 | 
						|
# Règle pour lancer le programme MainJeu
 | 
						|
jeu : $(OUTDIR)/MainJeu.class
 | 
						|
	$(JVM) $(JVMFLAGS) -cp $(OUTDIR) MainJeu $(RUN_ARGS)
 | 
						|
 | 
						|
# Règle pour lancer le programme MainCreation
 | 
						|
creation : $(OUTDIR)/MainCreation.class
 | 
						|
	$(JVM) $(JVMFLAGS) -cp $(OUTDIR) MainCreation $(CREATION_ARGS)
 | 
						|
 | 
						|
# Nettoyage des fichiers générés
 | 
						|
clean :
 | 
						|
	-rm -rf $(OUTDIR)
 | 
						|
	-rm -rf $(DOCDIR)
 | 
						|
 | 
						|
# Nettoyage et suppression des fichiers générés, y compris la classe Main
 | 
						|
mrproper : clean
 | 
						|
 | 
						|
# Génération de la documentation
 | 
						|
doc :
 | 
						|
	javadoc -d $(DOCDIR) $(SRCDIR)/*.java
 | 
						|
 | 
						|
### BUTS FACTICES ###
 | 
						|
 | 
						|
.PHONY : jeu creation clean mrproper doc
 | 
						|
 | 
						|
### FIN ###
 |