CLIENTBIN= chattermain.o chatterclient.o connect.o simplesocket.o
SERVERBIN= chatserver.o chatuser.o connect.o simplesocket.o
TSERVERBIN= tchatserver.o tchatuser.o connect.o simplesocket.o simplethread.o

LIB= $(FORESTLIB) -L/usr/openwin/lib -R/usr/openwin/lib -lMrm -lXm -lXt -lX11 -lsocket -lnsl -lgen
INCLUDES= -I/pro/include/stl -I/usr/openwin/include -I/pro/forest/include
FORESTLIB= -L/pro/forest/lib -R/pro/forest/lib /pro/forest/lib/libforest_sol.so

CFLAGS= -g -xsb -cg92 $(INCLUDES) $(PIC)
CPLUSFLAGS= $(CFLAGS)

%.o: %.C
	CC $(CPLUSFLAGS) -c $<

%.o: %.cxx
	CC $(CPLUSFLAGS) -c $<


all: chatter chatserver tchatserver

$(SERVERBIN) $(CLIENTBIN): chat.H chat_message.H simple_socket.H connect.H stddef.H
$(CLIENTBIN): chatter_local.H
$(SERVERBIN): chat_server.H

chatter: $(CLIENTBIN)
	CC -o chatter $(CPLUSFLAGS) $(CLIENTBIN) $(LIB)

chatserver: $(SERVERBIN)
	CC -o chatserver $(CPLUSFLAGS) $(SERVERBIN) $(LIB)

tchatserver: $(TSERVERBIN)
	CC -o tchatserver $(CPLUSFLAGS) $(TSERVERBIN) $(LIB) -lthread

clean:
	rm -rf *.o chatter chatserver .sb Templates.DB

simplesocket.o: simplesocket.cxx simple_socket.H socket_local.H
connect.o: connect.cxx connect_local.H
simplethread.o: simplethread.cxx simple_thread.H

socketlib.so:
	CC $(CPLUSFLAGS) -KPIC -G -o socketlib.so simplesocket.cxx connect.cxx

threadlib.so:
	CC $(CPLUSFLAGS) -KPIC -G -o threadlib.so simplethread.cxx -lthread

zip:
	rm -rf ipc.zip
	zip -r ipc.zip Makefile *.H *.cxx
