CC=../../bin/cfa
CFLAGS = -g -Wunused-function -MD
MAKEFILE_NAME = ${firstword ${MAKEFILE_LIST}}	# makefile name

OBJECTS1 = iostream.o fstream.o fstream_test.o
EXEC1 = fstream_test

OBJECTS2 = vector_int.o fstream.o iostream.o array.o iterator.o vector_test.o
EXEC2 = vector_test

OBJECTS = ${OBJECTS1} ${OBJECTS2}		# all object files
DEPENDS = ${OBJECTS:.o=.d}			# substitute ".o" with ".d"
EXECS = ${EXEC1} ${EXEC2}			# all executables

########## Targets ##########

.PHONY : all clean				# not file names

all : ${EXECS}					# build all executables

${EXEC1} : ${OBJECTS1}				# link step 1st executable
	${CC} ${CCFLAGS} $^ -o $@		# additional object files before $^

${EXEC2} : ${OBJECTS2}				# link step 2nd executable
	${CC} ${CCFLAGS} $^ -o $@		# additional object files before $^

${OBJECTS} : ${MAKEFILE_NAME}			# OPTIONAL : changes to this file => recompile

-include ${DEPENDS}				# include *.d files containing program dependences

clean :						# remove files that can be regenerated
	rm -f ${DEPENDS} ${OBJECTS} ${EXECS} *.class
