# Makefile for cdevData and more
#
#
#
include ../Makefile.config

OBJTYPE = .obj/$(TARGETDIR)
SHOBJTYPE = .shobj/$(TARGETDIR)

OBJS = $(OBJTYPE)/cdevData.o \
	$(OBJTYPE)/cdevDataEntry.o \
	$(OBJTYPE)/cdevTagTable.o \
	$(OBJTYPE)/cdevGlobalTagTable.o \
	$(OBJTYPE)/cdevIntHash.o \
	$(OBJTYPE)/cdevStrHash.o \
	$(OBJTYPE)/cdevSlist.o \
	$(OBJTYPE)/cmlog_cdevMessage.o \
	$(OBJTYPE)/cmlog_cdevPacket1.o \
	$(OBJTYPE)/cmlog_cdevTagMap.o

SHOBJS = $(SHOBJTYPE)/cdevData.o \
	$(SHOBJTYPE)/cdevDataEntry.o \
	$(SHOBJTYPE)/cdevTagTable.o \
	$(SHOBJTYPE)/cdevGlobalTagTable.o \
	$(SHOBJTYPE)/cdevIntHash.o \
	$(SHOBJTYPE)/cdevStrHash.o \
	$(SHOBJTYPE)/cdevSlist.o \
	$(SHOBJTYPE)/cmlog_cdevMessage.o \
	$(SHOBJTYPE)/cmlog_cdevPacket1.o \
	$(SHOBJTYPE)/cmlog_cdevTagMap.o

ifeq ($(XTRAOBJS), YES)
XOBJS =
else
XOBJS =
endif	

ifeq ($(TARGET), vxworks)
XTRACXXFLAGS = -I../Thread

OBJS := $(OBJS) \
	$(OBJTYPE)/cpThread.o \
	$(OBJTYPE)/cpThreadManager.o \
	$(OBJTYPE)/cpSynch.o
endif

targets: $(OBJTYPE) $(SHOBJTYPE) datalib copyheaders

$(OBJTYPE):
	mkdir -p $(OBJTYPE)

$(SHOBJTYPE):
	mkdir -p $(SHOBJTYPE)

ifneq ($(TARGET), vxworks)
datalib: libdata.a $(SHOBJS) copylib
else
datalib: libdata.a copylib
endif

libdata.a:$(OBJS)
	rm -f $@
	$(MAKELIB) $@ $(OBJS) $(XOBJS)
	$(RANLIB) $@

copylib: libdata.a
	if test ! -d $(LIBDIR); then mkdir -p $(LIBDIR); else echo; fi
	mv libdata.a $(LIBDIR)		

copyheaders:
	cp *.h *.i $(INCDIR)

clean:
	rm -rf *.o core *~ *.a .obj .shobj

### do not edit the following##########################
$(OBJTYPE)/cpSynch.o: ../Thread/cpSynch.cc
	rm -f $@
	$(CXX) $(CXXFLAGS) $(XTRACXXFLAGS) -c ../Thread/cpSynch.cc -o $@

$(OBJTYPE)/cpThread.o: ../Thread/cpThread.cc
	rm -f $@
	$(CXX) $(CXXFLAGS) $(XTRACXXFLAGS) -D_POSIX_C_SOURCE=199506L \
	-c ../Thread/cpThread.cc -o $@

$(OBJTYPE)/cpThreadManager.o: ../Thread/cpThreadManager.cc
	rm -f $@
	$(CXX) $(CXXFLAGS) $(XTRACXXFLAGS) -c ../Thread/cpThreadManager.cc -o $@
