CC = gcc
CFLAGS = -O3 -g

all: WordCountMR_v2a

WordCountMR_v2a: WordCountMR_v2a.o Errors.o WordCountMapper WordCountSuffle WordCountReduce
	$(CC) $(CFLAGS) WordCountMR_v2a.o Errors.o -o WordCountMR_v2a

WordCountMapper: WordCountMapper.o Errors.o
	@$(CC) $(CFLAGS) WordCountMapper.o Errors.o -o WordCountMapper

WordCountSuffle: WordCountSuffle.o Errors.o
	@$(CC) $(CFLAGS) WordCountSuffle.o Errors.o -o WordCountSuffle

WordCountReduce: WordCountReduce.o Errors.o
	@$(CC) $(CFLAGS) WordCountReduce.o Errors.o -o WordCountReduce

WordCountMR_v2a.o: WordCountMR_v2a.c Errors.h
	@$(CC) $(CFLAGS) -c -o WordCountMR_v2a.o WordCountMR_v2a.c

WordCountMapper.o: WordCountMapper.c Errors.h
	@$(CC) $(CFLAGS) -c -o WordCountMapper.o WordCountMapper.c

WordCountSuffle.o: WordCountSuffle.c Errors.h
	@$(CC) $(CFLAGS) -c -o WordCountSuffle.o WordCountSuffle.c

WordCountReduce.o: WordCountReduce.c Errors.h
	@$(CC) $(CFLAGS) -c -o WordCountReduce.o WordCountReduce.c

Errors.o: Errors.c Errors.h
	@$(CC) $(CFLAGS) -c -o Errors.o Errors.c

clean:
	@rm -f WordCountMR_v2a WordCountMapper WordCountSuffle WordCountReduce
	@rm -f WordCountMR_v2a.o WordCountMapper.o WordCountSuffle.o WordCountReduce.o Errors.o
	@rm -f ./tmp/_map_*.tmp ./tmp/_batch_*.tmp ./tmp/_suffle_*.tmp
	@rm -f ./Result/*.txt

.PHONY: all clean
