# Makefile for coda run control server of CDEV
# 
# coda service
# 
# $Log: Makefile,v $
# Revision 1.18  2003/11/01 00:22:53  gurjyan
# *** empty log message ***
#
# Revision 1.17  1999/10/25 17:32:30  abbottd
# Fix for Red Hat Linux 6.0 compiles
#
# Revision 1.16  1999/07/28 20:10:51  rwm
# Make -g default again so it works!
#
# Revision 1.15  1999/02/25 14:44:06  rwm
# Optimize
#
# Revision 1.14  1998/11/06 20:11:28  timmer
# Linux port
#
# Revision 1.13  1998/06/18 12:21:56  heyes
# new GUI ready I think
#
# Revision 1.12  1998/04/08 18:31:38  heyes
# new look and feel GUI
#
# Revision 1.11  1998/01/05 18:12:07  rwm
# Added check for Linux.
#
# Revision 1.10  1997/11/20 18:34:04  rwm
# Changed default to making shared object lib.
#
# Revision 1.9  1997/09/09 14:25:00  heyes
# Fix wrapper root
#
# Revision 1.8  1997/06/11 13:45:47  heyes
# export CODA_CXX
#
# Revision 1.7  1997/05/09 13:24:35  heyes
# add master makefile
#
# Revision 1.6  1997/02/18 17:06:28  chen
# minor changes
#
# Revision 1.5  1997/02/03 13:45:17  heyes
# Added dplite.h and dplite.c
#
# Revision 1.4  1997/01/24 16:38:42  chen
# fix bug of monitoring unknown component
#
# Revision 1.3  1996/12/04 18:32:39  chen
# port to 1.4 on hp and ultrix
#
# Revision 1.2  1996/11/27 15:06:07  chen
# fix CDEV and Set internal itcl component state before doing state transition
#
# Revision 1.1.1.1  1996/10/11 13:39:32  chen
# run control source
#
#
#
export WRAPPER_ROOT = $(shell cd ../../../SACE-3.1; pwd)
export ARCH = $(shell uname | sed -e 's/SunOS/SOLARIS/' -e  's/-/_/' -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' )
export CODA_CXX = $(shell cd ../../..;pwd)


LDFLAGS = -L$(CODA_CXX)/SACE-3.1/lib/$(ARCH)
#-D_CODA_DEBUG -D_TRACE_OBJECTS

ifeq ($(ARCH), HP_UX)
CXX = /usr/bin/CC
#CXX = /usr/local/CenterLine/bin/CC -D_CENTERLINE
ifeq ($(SHOBJ), NO)
CXXFLAGS = -I.. -I../../Variables -I../../Common \
	-I$(CODA_CXX)/SACE-3.1/include \
	-I$(CDEVROOT)/include -I$(CODA)/common/include -D_CODA_DEBUG -g +A
else
CXXFLAGS = -I.. -I../../Variables -I../../Common \
	-I$(CODA_CXX)/SACE-3.1/include \
	-I$(CDEVROOT)/include -I$(CODA)/common/include -D_CODA_DEBUG +Z -g
endif
endif

ifeq ($(ARCH), ULTRIX)
CXX = gcc
CXXFLAGS = -DRLIMIT_NOFILE -DULTRIX -DHAS_NO_DLD -D_CODA_DEBUG -g \
	-I..  -I../../Variables -I../../Common \
	-I$(CODA_CXX)/SACE-3.1/include \
	-I$(CDEVROOT)/include \
	-I$(CODA)/common/include \
	-I/usr/local/gnu/g++include
endif

ifeq ($(ARCH), SOLARIS)
CC = cc
CXX = CC
EXTRA_LIBS = -lsocket -lnsl -ly -ll 
# -fno-for-scope  -I/usr/local/gnu/include/g++-include -fpic
#CXX = /usr/local/CenterLine/bin/CC -D_CENTERLINE
ifeq ($(SHOBJ), NO)
CXXFLAGS = -I.. -I../../Variables -I../../Common \
	-I$(CODA_CXX)/SACE-3.1/include \
	-I$(CDEVROOT)/include \
	-I$(CODA)/common/include \
	-D_CODA_2_0_T -Dsolaris -g
else
CXXFLAGS = -I.. -I../../Variables -I../../Common \
	-I$(CODA_CXX)/SACE-3.1/include \
	-I$(CDEVROOT)/include -Kpic \
	-I$(CODA)/common/include \
	-D_CODA_2_0_T -DCDEV_COMPILE -Dsolaris -I$(CODA)/common/include -g
endif
endif

ifeq ($(ARCH), LINUX)
CC = gcc
CXX = g++
EXTRA_LIBS = 
ifeq ($(SHOBJ), NO)
CXXFLAGS = -g -fno-for-scope  -fpic \
	-I.. -I../../Variables -I../../Common \
	-I$(CODA_CXX)/SACE-3.1/include \
	-I$(CDEVROOT)/include \
	-I$(CODA)/common/include \
	-D_CODA_2_0_T -DLINUX -DCDEV_COMPILE -DSHRIKE 
else
CXXFLAGS = -g -fno-for-scope  -fpic \
	-I.. -I../../Variables -I../../Common \
	-I$(CODA_CXX)/SACE-3.1/include \
	-I$(CDEVROOT)/include \
	-I$(CODA)/common/include \
	-D_CODA_2_0_T -DLINUX -DCDEV_COMPILE -DSHRIKE -I$(CODA)/common/include
endif
endif

OBJS = codaIntHash.o codaSlist.o \
	codaStrHash.o rcMsg.o \
	rcServerLocater.o rcSvcLocaterRep.o \
	rcSvcInfoFinder.o \
	daqData.o daqDataTrigger.o daqDataManager.o \
	daqDataWriter.o daqNetData.o \
	daqArbStruct.o daqCompBootStruct.o daqMonitorStruct.o \
	daqRunTypeStruct.o daqArbStructFactory.o \
	codaRcCallback.o rccDaqData.o \
	rcClient.o \
	codaRequestObject.o codaMonObj.o \
	codaService.o dplite.o

ifeq ($(SHOBJ), NO)
all: libCodaRc.a
else
all: codaService.so
endif

libCodaRc.a: $(OBJS)
	rm -f $@
	ar ruv $@ $(OBJS)
	ranlib $@

codaService.so: $(OBJS)
	rm -f $@
	ld -G -o $@ $(OBJS) -L$(CODA_CXX)/SACE-3.1/lib/$(ARCH) \
	-L$(CODA_LIB) -lSACE -lmsql $(EXTRA_LIBS) -lm 

install: install-lib

ifeq ($(SHOBJ), NO)
install-lib: libCodaRc.a
	cp libCodaRc.a $(CODA_LIB)
	cp coda.ddl $(CODA_LIB)
else
install-lib: codaService.so
	cp codaService.so $(CODA_LIB)
	cp coda.ddl $(CODA_LIB)
endif

ifeq ($(SHOBJ), NO)
codaTest: codaTest.o libCodaRc.a
	rm -f $@
	$(CXX) -o $@ codaTest.o -L$(CDEVROOT)/lib/hp700 -lcdev libCodaRc.a \
	$(LDFLAGS) -lSACE -lsocket -lnsl -ly -ll -lm
#	$(LDFLAGS) -lSACE -ly -ll -lm
#	$(CODA_CXX)/SACE-3.1/lib/$(ARCH)/libSACE_CL.a -ly -ll -lm
else
codaTest: codaTest.o
	rm -f $@
	$(CXX) $(CXXFLAGS) -o $@ codaTest.o -R$(CDEVROOT)/lib/solaris \
	-L$(CDEVROOT)/lib/solaris -lcdev -lXt -lX11 -lsocket -lnsl -ly -ll -lm

#	$(CXX) $(CXXFLAGS) -o $@ codaTest.o -R$(CDEVROOT)/lib/solaris \

directoryTest: directoryTest.o
	rm -f $@
	$(CXX) -o $@ directoryTest.o \
	-R$(CDEVROOT)/lib/solaris -L$(CDEVROOT)/lib/solaris -lcdev \
	-lXt -lX11 -lsocket -lnsl -ly -ll -lm	
endif

clean:
	rm -f *.o *.a core *~ *.so

########################################################################
#        Do not edit the following
########################################################################
codaIntHash.o: ../../Common/codaIntHash.cc
	rm -f $@
	$(CXX) $(CXXFLAGS) -c ../../Common/codaIntHash.cc -o $@

codaSlist.o: ../../Common/codaSlist.cc
	rm -f $@
	$(CXX) $(CXXFLAGS) -c ../../Common/codaSlist.cc -o $@

codaStrHash.o: ../../Common/codaStrHash.cc
	rm -f $@
	$(CXX) $(CXXFLAGS) -c ../../Common/codaStrHash.cc -o $@

rcMsg.o: ../../Common/rcMsg.cc
	rm -f $@
	$(CXX) $(CXXFLAGS) -c ../../Common/rcMsg.cc -o $@

dplite.o: dplite.c
	rm -f $@
	$(CC) $(CXXFLAGS) -c dplite.c -o $@

rcServerLocater.o: ../../Common/rcServerLocater.cc
	rm -f $@
	$(CXX) $(CXXFLAGS) -c ../../Common/rcServerLocater.cc -o $@

rcSvcLocaterRep.o: ../../Common/rcSvcLocaterRep.cc
	rm -f $@
	$(CXX) $(CXXFLAGS) -c ../../Common/rcSvcLocaterRep.cc -o $@

rcSvcInfoFinder.o: ../../Common/rcSvcInfoFinder.cc
	rm -f $@
	$(CXX) $(INCLUDES) $(CXXFLAGS) -c ../../Common/rcSvcInfoFinder.cc -o $@


daqData.o: ../../Variables/daqData.cc
	rm -f $@
	$(CXX) $(CXXFLAGS) -c ../../Variables/daqData.cc -o $@	

daqDataManager.o: ../../Variables/daqDataManager.cc
	rm -f $@
	$(CXX) $(CXXFLAGS) -c ../../Variables/daqDataManager.cc -o $@

daqDataWriter.o: ../../Variables/daqDataWriter.cc
	rm -f $@
	$(CXX) $(CXXFLAGS) -c ../../Variables/daqDataWriter.cc -o $@

daqDataTrigger.o: ../../Variables/daqDataTrigger.cc
	rm -f $@
	$(CXX) $(CXXFLAGS) -c ../../Variables/daqDataTrigger.cc -o $@

daqNetData.o: ../../Variables/daqNetData.cc
	rm -f $@
	$(CXX) $(CXXFLAGS) -c ../../Variables/daqNetData.cc -o $@	

daqArbStruct.o: ../../Variables/daqArbStruct.cc
	rm -f $@
	$(CXX) $(INCLUDES) $(CXXFLAGS) -c ../../Variables/daqArbStruct.cc -o $@

daqArbStructFactory.o: ../../Variables/daqArbStructFactory.cc
	rm -f $@
	$(CXX) $(INCLUDES) $(CXXFLAGS) -c ../../Variables/daqArbStructFactory.cc -o $@

daqCompBootStruct.o: ../../Variables/daqCompBootStruct.cc
	rm -f $@
	$(CXX) $(INCLUDES) $(CXXFLAGS) -c ../../Variables/daqCompBootStruct.cc -o $@


daqMonitorStruct.o: ../../Variables/daqMonitorStruct.cc
	rm -f $@
	$(CXX) $(INCLUDES) $(CXXFLAGS) -c ../../Variables/daqMonitorStruct.cc -o $@

daqRunTypeStruct.o: ../../Variables/daqRunTypeStruct.cc
	rm -f $@
	$(CXX) $(INCLUDES) $(CXXFLAGS) -c ../../Variables/daqRunTypeStruct.cc -o $@

codaRcCallback.o: ../codaRcCallback.cc
	rm -f $@
	$(CXX) $(CXXFLAGS) -c ../codaRcCallback.cc -o $@

rccDaqData.o: ../rccDaqData.cc
	rm -f $@
	$(CXX) $(CXXFLAGS) -c ../rccDaqData.cc -o $@

rcClient.o: ../rcClient.cc
	rm -f $@
	$(CXX) $(CXXFLAGS) -c ../rcClient.cc -o $@

codaMonObj.o: codaMonObj.cc
	rm -f $@
	$(CXX) $(CXXFLAGS) -c codaMonObj.cc -o $@

codaService.o: codaService.cc
	rm -f $@
	$(CXX) $(CXXFLAGS) -c codaService.cc -o $@

codaRequestObject.o: codaRequestObject.cc
	rm -f $@
	$(CXX) $(CXXFLAGS) -c codaRequestObject.cc -o $@

codaTest.o: codaTest.cc
	rm -f $@
	$(CXX) 	$(CXXFLAGS) -c codaTest.cc -o $@

directoryTest.o: directoryTest.cc
	rm -f $@
	$(CXX) -I$(CDEVROOT)/include -Kpic \
	-D_CODA_2_0_T -DCDEV_COMPILE -g -c directoryTest.cc -o $@

