# makefile for 'prob1' by Brian Fields

CC = gcc
#FLAGS = -g -lnsl  
FLAGS = -g -Wall -DSUPPORT_SMP=1
#FLAGS = -g -lnsl -lsocket -lpthread -lposix4 -DDEBUG
#LFLAGS = -lnsl -lsocket
BINCLIENT = client
OBJCLIENT = client.o request_client.o open_client.o netutils.o stats.o names.o
BINSERVER = serve
OBJSERVER = server.o response_server.o open_server.o netutils.o stats.o names.o
OBJS = $(OBJCLIENT) $(OBJSERVER)

# Rule to build object files.
.c.o:	$(H)
	$(CC) -c $(FLAGS) $<

# ------------------------------------------------

all: $(BINCLIENT) $(BINSERVER)

# Rule to build executable.
$(BINCLIENT) : $(H) $(OBJCLIENT)
	$(CC) -o $(BINCLIENT) $(FLAGS) $(LFLAGS) $(OBJCLIENT)

$(BINSERVER) : $(H) $(OBJSERVER)
	$(CC) -o $(BINSERVER) $(FLAGS) $(LFLAGS) $(OBJSERVER)

clean : 
	rm -f $(BINCLIENT) $(BINSERVER) *.o

# rule to build dependency files
%.d: %.c
	echo "$(FLAGS)\n" \
	set -e; $(CC) -MM $(FLAGS) $< \
		| sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \
	 [ -s $@ ] || rm -f $@ 

include $(OBJS:.o=.d)
