CC = gcc
CFLAGS=-O2 -Wall
LIBS = -lpthread

all: echoclient echoserveri echoserverp echoservert race

echoclient: echoclient.c csapp.o csapp.h
	$(CC) $(CFLAGS) echoclient.c csapp.o $(LIBS) -o echoclient

echoserveri: echoserveri.c csapp.o csapp.h
	$(CC) $(CFLAGS) echoserveri.c csapp.o $(LIBS) -o echoserveri

echoserverp: echoserverp.c csapp.o csapp.h
	$(CC) $(CFLAGS) echoserverp.c csapp.o $(LIBS) -o echoserverp

echoservert: echoservert.c csapp.o csapp.h
	$(CC) $(CFLAGS) echoservert.c csapp.o $(LIBS) -o echoservert

csapp.o: csapp.c csapp.h
	$(CC) $(CFLAGS) -c csapp.c

race: race.c csapp.o
	$(CC) $(CFLAGS) race.c csapp.o $(LIBS) -o race

clean:
	rm -rf *~ echoclient echoserveri echoserverp echservert race