#executable
MAIN=joueur
#compilateur
CC=@gcc -g -Wall
#inclusion
CFLAGS=
#edition des liens
LIBS= -lm ./pub/siam.o
#dossiers source
SRC=./src
# .o temporaires
OBJ=./obj
# ou placer l'executable ?
DIST=.


#############################
# CONFIGURATION AUTOMATIQUE #
#############################
# l'ensemble des sources
SRCS=$(wildcard $(SRC)/*.c)
# l'ensemble des fichiers objets construits a partir des fichiers sources
OBJS=$(SRCS:$(SRC)/%.c=$(OBJ)/%.o)

#clean est une cible qui ne produit pas de fichier
.PHONY: clean

#regle pour l'edition des liens
$(DIST)/$(MAIN): $(OBJS) $(DIST)
	@echo " -- Edition des liens pour l'executable: $(DIST)/$(MAIN)"
	$(CC) -o $(DIST)/$(MAIN) $(OBJS) $(LIBS)
	@echo " -- Compilation du moteur de l'IA JAVA"
	(cd ./moteuria && make)

#regle pour la compilation d'un .o (lorsqu'il existe un .c et un .h correspondant)
$(OBJ)/%.o: $(SRC)/%.c $(SRC)/%.h $(OBJ)
	@echo " -- Compilation du fichier objet: $@ (sources: $(SRC)/$*.c $(SRC)/$*.h)"
	$(CC) -c $< -o $@ $(CFLAGS)

#regle pour la compilation d'un .o (lorsqu'il n'existe q'un .c correspondant)
$(OBJ)/%.o: $(SRC)/%.c $(OBJ)
	@echo " -- Compilation du fichier objet: $@ (source: $(SRC)/$*.c)"
	$(CC) -c $< -o $@ $(CFLAGS)

$(OBJ):
	@echo " -- Creation du dossier: $(OBJ)"
	@mkdir $(OBJ)

$(DIST):
	@echo " -- Creation du dossier: $(DIST)"
	@mkdir $(DIST)

clean:
	@echo " -- Nettoyage"
# l'executable
	@rm -rf $(DIST)/$(MAIN)
# les .o
	@rm -rf $(OBJS)
# les fichiers de sauvegarde
	@rm -f *~$
	@rm -f $(SRC)/*~$
# Moteur de l'IA
	@echo " -- Nettoyage du moteur de l'IA JAVA"
	(cd ./moteuria && make clean)
