CC = gcc
CFLAGS = -O3 -g

all: WordCountMR_v3

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

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_v3.o: WordCountMR_v3.c Errors.h
	@$(CC) $(CFLAGS) -c -o WordCountMR_v3.o WordCountMR_v3.c

WordCountMap.o: WordCountMap.c Errors.h
	@$(CC) $(CFLAGS) -c -o WordCountMap.o WordCountMap.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_v3 WordCountMap WordCountSuffle WordCountReduce
	@rm -f WordCountMR_v3.o WordCountMap.o WordCountSuffle.o WordCountReduce.o Errors.o
	@rm -f ./Result/wc_pipe.txt
	@rm -f ./tmp/_map_*.tmp ./tmp/_batch_*.tmp ./tmp/_suffle_*.tmp

.PHONY: all clean
