
include $(ROOT)/usr/include/make/commondefs

#CXXFLAGS = -g -DUNDO -DDEBUG
#CXXFLAGS = -O2
CXXFLAGS = -g -O2
#CXXFLAGS = -g -DDEBUG -DDEBUG2

LDOPTS = -no_unresolved -shared -all -set_version sgi3.0

HV_CHART     = HvChart.o
HV_CLIENT    = HvNetBuffer.o HvClient.o HvClientHandler.o \
               HvURLClient.o HvURLHandler.o
HV_CLIENT_P  = HvNetBuffer.o HvClientP.o HvClientHandlerP.o

HV_WEB_IO    = HvWebIO.o HvWebField.o HvManager.o HvWebFunction.o HvSocket.o \
	       HvGraph.o $(HV_CLIENT)
HV_MANAGER   = HvManager.o HvWebFunction.o HvWebField.o HvSocket.o HvWebIO.o \
               HvGraph.o tsTopology.o $(HV_CLIENT) $(HV_CHART)

HV_MANAGER_P = HvManagerP.o  \
               tsTopology.o HvGraph.o $(HV_CLIENT_P)

HV_GROUP     = HvGroup.o


HV_SERVER    = Serv.o HvServer.o HvClientList.o HvNetBuffer.o
HV_GET_CLIENT = GetClient.o HvNetBuffer.o HvClient.o HvClientHandler.o

CI_APP = ciApp.o

MD_OBJ = Atom.o Potential.o MDApp.o MD.o
GO_OBJ = Atom.o Potential.o MDApp.o GOApp.o GO.o

DIST =	HvManager.so HvWebIO.so HvGroup.so HvChart.so\
	MD GO Serv GetClient\
	cgi-bin/wf-lib.pl cgi-bin/wf.md cgi-bin/wf.go cgi-bin/wf.ab\
	cgi-bin/wf.aa cgi-bin/wf.db cgi-bin/wf.da cgi-bin/wf.dm\
	cgi-bin/wf.ch cgi-bin/wf.bc cgi-bin/swissinfo.pl\
	cgi-bin/project.cgi cgi-bin/newProject.cgi\
	cgi-bin/newProject.html\
	ciApp libcivplugin.so MolInventor benzel/*\
	babel/babel babel/gauss.hdr babel/new.lis babel/quanta.lis\
	babel/element.lis babel/psgvb.hdr babel/types.lis\
	/dist/6.2/dist/fw_common* /dist/6.2/dist/fw_LWperl5*\
	/dist/6.2/dist/molinv_eoe*\
	cgi-bin/make.ph\
	data/*


LIBS = -lGL -lXpm  -lInventorXt -lXm -lXt -lX11
IV_LIBS = -lGL -lInventorXt -lXm -lXt -lX11

INC_CLIENT  = HvNetBuffer.h HvClient.h HvClientHandler.h \
              HvURLClient.h HvURLHandler.h
INC_MANAGER = HvManager.h HvManagerPixmap.h HvSocket.h HvWebFunction.h


default:
	make ../bin/HvManager.so
	make ../bin/HvManagerP.so
	make ../bin/viewer
	make ../bin/Serv
	make ../bin/toptest
all:
	make HvChart.so
	make HvManager.so
	make HvWebIO.so
	make HvGroup.so
	make Serv
	make GetClient
	make ciApp
	make MD
	make GO
	make plugin

../bin/viewer: viewer.o tsViewer.o tsSync.o
	$(C++F)   viewer.o tsViewer.o tsSync.o -o $@ -lcurses $(LIBS) 
	cp ../bin/viewer ../bin/_viewer

../bin/toptest: toptest.o
	$(C++F)   toptest.o  -o $@ $(LIBS) 

../bin/HvManager.so: $(HV_MANAGER)
	$(CXX) $(LDOPTS) -o ../bin/HvManager.so $(HV_MANAGER) $(LIBS)

../bin/HvManagerP.so: $(HV_MANAGER_P)
	$(CXX) $(LDOPTS) -o ../bin/HvManagerP.so $(HV_MANAGER_P) $(LIBS)

HvGroup.so: $(HV_GROUP)
	$(CXX) $(LDOPTS) -o HvGroup.so $(HV_GROUP) $(LIBS)

HvChart.so: $(HV_CHART)
	$(CXX) $(LDOPTS) -o HvChart.so $(HV_CHART) $(IV_LIBS)

libmanager.a: HvManager.so
	$(AR) cvrl $@ $(HV_MANAGER)

HvWebIO.so: $(HV_WEB_IO)
	$(CXX) $(LDOPTS) -o HvWebIO.so $(HV_WEB_IO) $(LIBS)

../bin/Serv: $(HV_SERVER)
	$(CXX) -o ../bin/Serv $(HV_SERVER) $(LIBS)

GetClient: $(HV_GET_CLIENT)
	$(CXX) -o GetClient $(HV_GET_CLIENT) $(LIBS)

ciApp: $(CI_APP)
	$(CXX) -o ciApp $(CI_APP) $(LIBS) -lgen

MD: $(MD_OBJ)
	$(CXX) -o MD $(MD_OBJ) -lm
	cp MD cgi-bin

GO: $(GO_OBJ)
	$(CXX) -o GO $(GO_OBJ) -lm
	cp GO cgi-bin

plugin: _force
	(cd plugin; make; cd ..)

dist: _force
	cp dist/Makefile dist/.Makefile
	rm dist/*
	mv dist/.Makefile dist/Makefile
	cp $(DIST) dist/.
	tar cvf - dist | gzip -cv > dist.tar.gz

clean: 
	rm ../bin/*.so ../bin/viewer *.o

tags:
	ctags -w *.c++ *.h

depend:
	makedepend -Y *.c++

include $(COMMONRULES)

# DO NOT DELETE THIS LINE -- make depend depends on it.

Atom.o: Atom.h
GO.o: Atom.h Potential.h GOApp.h MDApp.h
GOApp.o: Atom.h Potential.h GOApp.h MDApp.h
GetClient.o: GetClient.h HvClientHandler.h HvClient.h HvNetBuffer.h
GetClient.o: HvCommId.h
HvChart.o: HvChart.h
HvClient.o: HvClient.h HvNetBuffer.h
HvClientHandler.o: HvClientHandler.h HvClient.h HvNetBuffer.h
HvClientList.o: HvClientList.h HvNetBuffer.h HvCommId.h HvManager.h
HvClientList.o: HvWebFunction.h HvClientHandler.h HvClient.h HvGraph.h
HvGraph.o: HvGraph.h
HvGroup.o: HvGroup.h
HvManager.o: HvManager.h HvWebFunction.h HvClientHandler.h HvClient.h
HvManager.o: HvNetBuffer.h HvCommId.h HvGraph.h HvManagerPixmap.h
HvManager.o: HvURLHandler.h HvURLClient.h
HvNetBuffer.o: HvNetBuffer.h
HvServer.o: HvServer.h HvNetBuffer.h
HvSocket.o: HvSocket.h
HvURLClient.o: HvURLClient.h HvClient.h HvNetBuffer.h
HvURLHandler.o: HvURLHandler.h HvURLClient.h HvClient.h HvNetBuffer.h
HvWebField.o: HvWebField.h HvWebFunction.h HvClientHandler.h HvClient.h
HvWebField.o: HvNetBuffer.h HvCommId.h HvWebFieldDefs.h
HvWebFunction.o: HvWebFunction.h HvClientHandler.h HvClient.h HvNetBuffer.h
HvWebFunction.o: HvCommId.h HvWebFunctionPixmap.h HvWebField.h HvManager.h
HvWebFunction.o: HvGraph.h HvWebIO.h
HvWebIO.o: HvWebIO.h HvWebField.h HvManager.h HvWebFunction.h
HvWebIO.o: HvClientHandler.h HvClient.h HvNetBuffer.h HvCommId.h HvGraph.h
HvWebLib.o: HvWebLib.h
MD.o: Atom.h Potential.h MDApp.h
MDApp.o: Atom.h Potential.h MDApp.h
Potential.o: Atom.h MDApp.h Potential.h
Serv.o: HvServer.h HvNetBuffer.h HvClientList.h HvCommId.h
ciApp.o: ciApp.h
