##################################################################
# GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
##################################################################

#################
MAKEFILE      = Makefile
RM            = rm -f
CP            = cp
CXX           = g++
LD            = $(CXX)
COMPFLAGS     = -I.
LDFLAGS       = 
DEPENDFLAGS   = -MM
LIBS          = -lwsock32
OTHER         = -W -Wall



ifndef SCREEN_LOG
SCREEN_LOG_FLAG   = -DSCREEN_LOG=1
else
SCREEN_LOG_FLAG   = -DSCREEN_LOG=$(SCREEN_LOG)
endif


ifndef MILESTONE_LOG
MILESTONE_LOG_FLAG   = -DMILESTONE_LOG=1
else
MILESTONE_LOG_FLAG   = -DMILESTONE_LOG=$(MILESTONE_LOG)
endif


ifndef TRACE_LOG
TRACE_LOG_FLAG   = -DTRACE_LOG=0
else
TRACE_LOG_FLAG   = -DTRACE_LOG=$(TRACE_LOG)
endif


LOG_FLAGS = $(SCREEN_LOG_FLAG) $(MILESTONE_LOG_FLAG) $(TRACE_LOG_FLAG)


#################
TARGET    = sock.exe

OBJS = \
	common.o \
	trace.o \
	sockets.o \
	demotype.o \
	packet.o \
	partner.o \
	client.o \
	server.o \
	demoapp.o \
	help.o \
	main.o


#################
# Target Rules
#################
.SUFFIXES :
.SUFFIXES : .h .cpp .o
.cpp.o:
	@echo "------------------"
	$(RM) $*.o
#	$(CXX) $(DEPENDFLAGS) $<
	$(CXX) $(COMPFLAGS) $(OPT_LEVEL_FLAG) $(OTHER) $(LOG_FLAGS) -c $<

#################
all:	socket

help:
	@echo "USAGE : "
	@echo "  TBD"

socket: 		$(TARGET)

#################
$(TARGET):	$(OBJS) $(MAKEFILE)
		@echo "=================="
		$(RM) $(TARGET)
		$(LD) -o $(TARGET) $(LDFLAGS) $(OBJS) $(LIBS)
		@echo " "


#################
cleano:	        
	$(RM) $(OBJS)
	$(RM) *.ii
	$(RM) *.s
	$(RM) *.o
	$(RM) core
	$(RM) *.exe.*

cleane:
	$(RM) $(TARGET)
	$(RM) *.exe

clean:	cleano cleane


#################
client.o   : $(MAKEFILE) client.cpp client.h partner2.h partner.h \
             packet2.h packet.h sockets2.h sockets.h trace.h common.h \
             macro.h
common.o   : $(MAKEFILE) common.cpp common.h macro.h
demoapp.o  : $(MAKEFILE) demoapp.cpp demoapp2.h demoapp.h client.h \
             partner2.h partner.h packet2.h packet.h sockets2.h \
             sockets.h trace.h common.h macro.h server.h demotype.h
demotype.o : $(MAKEFILE) demotype.cpp demotype.h packet2.h packet.h \
             sockets2.h sockets.h trace.h common.h macro.h
packet.o   : $(MAKEFILE) packet.cpp packet2.h packet.h sockets2.h \
             sockets.h trace.h common.h macro.h
partner.o  : $(MAKEFILE) partner.cpp partner2.h partner.h packet2.h \
             packet.h sockets2.h sockets.h trace.h common.h macro.h
server.o   : $(MAKEFILE) server.cpp server.h partner2.h partner.h \
             packet2.h packet.h sockets2.h sockets.h trace.h common.h \
             macro.h
sockets.o  : $(MAKEFILE) sockets.cpp sockets2.h sockets.h trace.h \
             common.h macro.h
trace.o    : $(MAKEFILE) trace.cpp trace.h common.h macro.h
help.o     : $(MAKEFILE) help.cpp main.h demoapp2.h demoapp.h client.h \
             partner2.h partner.h packet2.h packet.h sockets2.h \
             sockets.h trace.h common.h macro.h server.h demotype.h
main.o     : $(MAKEFILE) main.cpp main.h demoapp2.h demoapp.h client.h \
             partner2.h partner.h packet2.h packet.h sockets2.h \
             sockets.h trace.h common.h macro.h server.h demotype.h

