CC       = g++
INCLUDE  = -I../include
#  INCLUDE  = -I../include -I/slinky.a/csphd/eechien/lib
#  LIBPATH  = -L/slinky.a/csphd/eechien/local/lib 

# following line for SGI
# FLAGS    =  -DSGI -O9 
# -DBOUND_CHECK 
#  -DFILL_DEBUG

# following line for SUN
#FLAGS    =  -DSUN -O9              
FLAGS    =   -DSUN  -O9 
#-DBOUND_CHECK



# following line for solaris using gzip
#  LIB      = -lsun4tiff -lsocket -lnsl  /usr/ucblib/libucb.a  /usr/openwin/lib/libX11.so -lpthread  -lz -lc  -lposix4
LIB      = -ltiff -lsocket -lnsl -ljpeg -lz

# following line for SGI
#LIB        = -ltiff -lX11 -lpthread

ROOT       = ../

#--------------  N E T  W O R K     T H R E A D
CLIENT_OBJ = $(ROOT)/client/client.o $(ROOT)/client/subloop.o    \
             $(ROOT)/client/sparse_2.o $(ROOT)/server/sparse_mask.o

#--------------  D I S P L A Y      T H R E A D
DISPLA_OBJ = $(ROOT)/display/display.o $(ROOT)/display/fill.o

WIN_OBJ    = $(ROOT)/X/window.o  $(ROOT)/X/internal.o

MANAGE_OBJ = $(ROOT)/manage/manage.o


#--------------  S E R V E R 
SERVER_OBJ = $(ROOT)/server/combine.o $(ROOT)/server/coeff.o    \
             $(ROOT)/server/sparse_mask.o

#-------------------------------------------------------
#        prgram in this directory
#-------------------------------------------------------

PROGS =  server\
         client 

#-------------------------------------------------------
.c.o:
	$(CC) $(FLAGS)   $(INCLUDE)  -c $< -o $@ 

#-----  S p e c i a l    C a s e s----------------------

lzrw1.o: lzrw1.c
	gcc $(FLAGS) -D__HUGE__ -c lzrw1.c

netc.o : netc.c tcp.h tcpstream.h  $(ROOT)/X/window.h      \
         $(ROOT)/include/sparse_mask.h $(ROOT)/client/sparse_2.h 
	$(CC) $(FLAGS)  -DMAIN $(INCLUDE) -c $< -o $@ 

nets.o : nets.c  tcpstream.h
	$(CC) $(FLAGS)  -DMAIN $(INCLUDE) -c $< -o $@

server.o : server.c  $(ROOT)/include/sparse_mask.h    \
           $(ROOT)/server/coeff.h $(ROOT)/server/combine.h tcpstream.h
	$(CC) $(FLAGS)  $(INCLUDE) -c $< -o $@

combine.o: combine.c  $(ROOT)/include/sparse_mask.h    \
           $(ROOT)/server/coeff.h $(ROOT)/server/combine.h tcpstream.h
	$(CC) $(FLAGS)  $(INCLUDE) -c $< -o $@

manage.o : $(ROOT)/manage/manage.c  $(ROOT)/manage/manage.h \
           $(ROOT)/include/GLOBALVARIABLE.h
	$(CC) $(FLAGS)  $(INCLUDE) -c $< -o $@ 

fill.o  : fill.c  $(ROOT)/client/sparse_2.h 
	$(CC) $(FLAGS)  $(INCLUDE) -c $< -o $@ 



#...........    c l i e n t 

CLIDIR = $(ROOT)/client

$(CLIDIR)/sparse_2.o: $(CLIDIR)/sparse_2.c        \
                      $(ROOT)/include/sparse_mask.h $(CLIDIR)/sparse_2.h
	$(CC) $(FLAGS)  $(INCLUDE) -c $< -o $@

$(CLIDIR)/client.o : $(CLIDIR)/client.c $(CLIDIR)/sparse_2.h \
              $(ROOT)/X/window.h $(CLIDIR)/block_item.h \
              $(ROOT)/include/sparse_mask.h
	$(CC) $(FLAGS)  $(INCLUDE) -c $< -o $@

#-------------------------------------------------------

all:    $(PROGS)

nets: nets.o tcp.o server.o lzrw1.o tcpstream.o \
      $(SERVER_OBJ)  
	$(CC) $(FLAGS)  -DMAIN $(INCLUDE) $(LIBPATH)                  \
      nets.o tcp.o server.o lzrw1.o tcpstream.o                 \
      $(SERVER_OBJ)  -o s $(LIB) 

netc: netc.o tcp.o tcpstream.o lzrw1.o         \
      $(MANAGE_OBJ)  \
      $(CLIENT_OBJ)   $(WIN_OBJ)  $(DISPLA_OBJ)
	$(CC) $(FLAGS)  -DMAIN $(INCLUDE) $(LIBPATH)                  \
      netc.c tcp.o tcpstream.o lzrw1.o                          \
      $(CLIENT_OBJ) \
      $(WIN_OBJ)    \
      $(DISPLA_OBJ)  \
      $(MANAGE_OBJ)  \
       -o client $(LIB) 


