CC = gcc
PORT=10000
CFLAGS = -DPORT=$(PORT) -g -Wall

# For Solaris
#LIBS = -lsocket -lnsl

# For Linux
LIBS = 


all: inetserver inetclient selectserver

# The variable $@ has the value of the target. In this case $@ = pusage
inetserver: inetserver.o
	${CC} ${CFLAGS} -o $@ inetserver.o  ${LIBS}

inetclient: inetclient.o
	${CC} ${CFLAGS} -o $@ inetclient.o  ${LIBS}

forkserver: forkserver.o readn.o writen.o readline.o
	${CC} ${CFLAGS} -o $@ forkserver.o readn.o readline.o writen.o ${LIBS}
threadserver: threadserver.o readn.o writen.o readline.o
	${CC} ${CFLAGS} -o $@ threadserver.o readn.o readline.o writen.o ${LIBS} -lpthread

forkclient: forkclient.o readn.o writen.o readline.o
	${CC} ${CFLAGS} -o $@ forkclient.o readn.o writen.o readline.o ${LIBS}

selectserver: tcpservselect01.o wrapsock.o readline.o writen.o
	${CC} ${CFLAGS} -o $@ tcpservselect01.o wrapsock.o  readline.o writen.o ${LIBS}
brokenselect: brokenselect.o wrapsock.o readline.o writen.o
	${CC} ${CFLAGS} -o $@ brokenselect.o wrapsock.o  readline.o writen.o ${LIBS}

.c.o:
	${CC} ${CFLAGS}  -c $<

clean:
	rm inetserver.o inetclient.o core *~

