#Cibles particulières
.PHONY : clean, mrproper

#Désactivation des règles implicites
.SUFFIXES :

#Création de l'éxécutable principal : "hikouNoMizu"
all : main.o Animation.o GestionnaireAnimation.o tinystr.o tinyxml.o tinyxmlerror.o tinyxmlparser.o Joueur.o Etat.o MoteurImage.o MoteurGraphique.o MoteurPhysique.o InterfaceCombat.o
	g++ -o ../hikouNoMizu main.o Animation.o GestionnaireAnimation.o tinystr.o tinyxml.o tinyxmlerror.o tinyxmlparser.o Joueur.o Etat.o MoteurImage.o MoteurGraphique.o MoteurPhysique.o InterfaceCombat.o -lsfml-graphics -lsfml-window -lsfml-system

main.o : main.cpp classes/Joueur/Joueur.hpp classes/Moteurs/MoteurImage.hpp classes/Moteurs/MoteurGraphique.hpp classes/Moteurs/Physique/MoteurPhysique.hpp classes/Outils/InterfaceCombat.hpp
	g++ -I./classes -c main.cpp -o main.o

Animation.o : classes/Animation/Animation.cpp classes/Animation/Animation.hpp  classes/Moteurs/MoteurImage.hpp
	g++ -I./classes -c classes/Animation/Animation.cpp -o Animation.o

GestionnaireAnimation.o : classes/Animation/GestionnaireAnimation.cpp classes/Animation/GestionnaireAnimation.hpp classes/Animation/Animation.hpp classes/Autres/TinyXML/tinyxml.h classes/Moteurs/MoteurGraphique.hpp
	g++ -I./classes -c classes/Animation/GestionnaireAnimation.cpp -o GestionnaireAnimation.o

MoteurImage.o : classes/Moteurs/MoteurImage.cpp classes/Moteurs/MoteurImage.hpp
	g++ -I./classes -c classes/Moteurs/MoteurImage.cpp -o MoteurImage.o

tinystr.o : classes/Autres/TinyXML/tinystr.cpp classes/Autres/TinyXML/tinystr.h
	g++ -I./classes -c classes/Autres/TinyXML/tinystr.cpp -o tinystr.o

tinyxml.o : classes/Autres/TinyXML/tinyxml.cpp classes/Autres/TinyXML/tinyxml.h classes/Autres/TinyXML/tinystr.h
	g++ -I./classes -c classes/Autres/TinyXML/tinyxml.cpp -o tinyxml.o

tinyxmlerror.o : classes/Autres/TinyXML/tinyxmlerror.cpp classes/Autres/TinyXML/tinyxml.h
	g++ -I./classes -c classes/Autres/TinyXML/tinyxmlerror.cpp -o tinyxmlerror.o

tinyxmlparser.o : classes/Autres/TinyXML/tinyxmlparser.cpp classes/Autres/TinyXML/tinyxml.h
	g++ -I./classes -c classes/Autres/TinyXML/tinyxmlparser.cpp -o tinyxmlparser.o

Joueur.o : classes/Joueur/Joueur.cpp classes/Joueur/Joueur.hpp classes/Animation/GestionnaireAnimation.hpp classes/Moteurs/MoteurGraphique.hpp classes/Moteurs/Physique/ObjetPhysique.hpp classes/Moteurs/Physique/MoteurPhysique.hpp
	g++ -I./classes -c classes/Joueur/Joueur.cpp -o Joueur.o

Etat.o : classes/Joueur/Etat.cpp classes/Joueur/Etat.hpp
	g++ -I./classes -c classes/Joueur/Etat.cpp -o Etat.o

MoteurGraphique.o : classes/Moteurs/MoteurGraphique.cpp classes/Moteurs/MoteurGraphique.hpp
	g++ -I./classes -c classes/Moteurs/MoteurGraphique.cpp -o MoteurGraphique.o

MoteurPhysique.o : classes/Moteurs/Physique/MoteurPhysique.cpp classes/Moteurs/Physique/MoteurPhysique.hpp
	g++ -I./classes -c classes/Moteurs/Physique/MoteurPhysique.cpp -o MoteurPhysique.o

InterfaceCombat.o : classes/Outils/InterfaceCombat.cpp classes/Outils/InterfaceCombat.hpp classes/Moteurs/MoteurGraphique.hpp classes/Joueur/Joueur.hpp
	g++ -I./classes -c classes/Outils/InterfaceCombat.cpp -o InterfaceCombat.o

#Suppression des fichiers temporaires
clean :
	rm -rf *.o

#Suppression des fichiers temporaires et de l'éxécutable
mrproper : clean
	rm -rf ../hikouNoMizu