CC = gcc
CFLAGS = -O2 -Wall -I .

# This flag includes the Pthreads library on a Linux box.
# Others systems will probably require something different.
LIB = -lpthread

all: echoserverp echoservers echoservert select echoclient

echoserverp: echoserverp.c echo.o csapp.o
	$(CC) $(CFLAGS) -o echoserverp echoserverp.c echo.o csapp.o $(LIB)

echoservers: echoservers.c echo.o csapp.o
	$(CC) $(CFLAGS) -o echoservers echoservers.c echo.o csapp.o $(LIB)

echoservert: echoservert.c echo.o csapp.o
	$(CC) $(CFLAGS) -o echoservert echoservert.c echo.o csapp.o $(LIB)

select: select.c echo.o csapp.o
	$(CC) $(CFLAGS) -o select select.c echo.o csapp.o $(LIB)

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

echo.o:
	$(CC) $(CFLAGS) -c echo.c

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

clean:
	rm -f *.o echoserverp echoservers echoservert select echoclient *~

