#------------------------------------------------------------------------------
#  Makefile for FileIO.c 
#
#  make                     makes FileIO
#  make test                tests FileIO on INFILE producing OUTFILE
#  make clean               removes binary files
#  make checkClient         runs FileIO under valgrind on INFILE 
#------------------------------------------------------------------------------

EXECUTABLE     = FileIO
OBJECT         = $(EXECUTABLE).o
SOURCE         = $(EXECUTABLE).c 
COMPILE        = gcc -std=c17 -Wall -c
LINK           = gcc -std=c17 -Wall -o
REMOVE         = rm -f
INFILE         = Holmes
OUTFILE        = $(INFILE)-out
MEMCHECK       = valgrind --leak-check=full 


$(EXECUTABLE) : $(OBJECT)
	$(LINK) $(EXECUTABLE) $(OBJECT)

$(OBJECT) : $(SOURCE)
	$(COMPILE) $(SOURCE)

test : $(EXECUTABLE)
	$(EXECUTABLE) $(INFILE) $(OUTFILE)

clean :
	$(REMOVE) $(EXECUTABLE) $(OBJECT)

check : $(EXECUTABLE)
	$(MEMCHECK) $(EXECUTABLE) $(INFILE) $(OUTFILE)