# MAKEFILE: utilidad para preparar ejecutables en los que intervienen
# varias clases, de forma que con una unica instruccion se compilan o linkan
# los ficheros estrictamente necesarios.
#
# Si en el directorio solo hay un proyecto y un makefile, para ejecutar este
# simplemente se escribe "make"
#
# Un makefile se compone de una serie de instrucciones con la estructura:
#
#           fichero1":" lista de ficheros 
#           "tabulador" instrucción de compilación o linkado	
#
# Esto significa: para obtener el fichero1 es necesario que existan todos
# los ficheros de la lista; si no existe o es más antiguo que alguno de ellos,
# se obtiene o actualiza con la instruccion; si no existe alguno de los
# ficheros de la lista, el proceso acaba con error
# 
# Un makefile ha de contener todas las instrucciones que sean necesarias
# para obtener los .o y .exe del proyecto.
#
# Ejemplos:
#
# La siguiente instruccion significa:
# para obtener prap.exe es necesario que exista prap.o;
# si prap.exe no existe o es mas antiguo que prap.o,
# se obtiene con el g++ -o ... (el tabulador antes de g++ es necesario)
#
prap.exe: prap.o 
	g++ -o prap.exe prap.o $(OBJETOS_CPP)/{Cubeta.o,Prenda.o,Lavadora.o}
#
# La siguiente instruccion significa:
# para obtener prap.o es necesario que exista prap.cpp;
# si prap.o no existe o es mas antiguo que prap.cpp,
# se obtiene con el g++ -c ... 
#
prap.o: prap.cpp
	g++ -c prap.cpp -I$(INCLUDES_CPP)
#
# Realizad las modificaciones necesarias para gestionar la clase Cubeta
# cuando os toque implementarla a vosotros.
#
# Esta última opción sirve para limpiar el directorio de ficheros 
# innecesarios; se ejecuta mediante el comando "make clean"
#
clean:
	rm *.o
	rm *.exe
