#----------------------------------------------------------------------------
#       $Id: Makefile,v 1.1.1.1 2002/08/31 04:47:24 fukasawa Exp $
#
#       Makefile for the libinterp
#----------------------------------------------------------------------------

MAKEFILE = Makefile
LIB      = ../lib/libsecs2.a
SHLIB    = ../lib/libsecs2.$(SOEXT)

FILES    =  ACELogCmd \
            BS2DeviceCmd \
            BS2DeviceInterp \
            BS2SecsAtom \
            BS2SecsCmd \
            BS2SecsItem \
            BS2SecsItemList \
            BS2SecsMessage \
            BS2TclInterp \
            BS2TclSched \
            SecsTclAppInit \
            tclDevice \
            tclSecs

DEFS    = BS2SecsFuncs.h y.tab.h
LSRC    = $(addsuffix .cpp,$(FILES)) secs2y.o secs2l.o

BUILD   = $(VSHLIB) $(SHLIBA) $(VLIB)

#----------------------------------------------------------------------------
#       Include macros and targets
#----------------------------------------------------------------------------
exceptions = 1

include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU

ifneq ($(GHS),)
  ifeq ($(CPU),86)
    FILES += gethrtime
    LSRC += gethrtime.cpp
  endif # 86
endif # GHS

include $(ACE_ROOT)/include/makeinclude/macros.GNU
include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU

INSTALL =
include $(ACE_ROOT)/include/makeinclude/rules.local.GNU

INCLDIRS += -I../jyugem/libsemi
CCFLAGS += -funsigned-bitfields -DACE_HAS_STANDARD_CPP_LIBRARY=1
NO_IMPLICIT_TEMPLATES =

#----------------------------------------------------------------------------
#       Local targets
#----------------------------------------------------------------------------
INCDIR  = ../secs2/include
HBASE   = ../secs2/secsmsg
HDEVICE = ../secs2/device
BEEINCS = $(INCDIR)/bee.h $(INCDIR)/beelib.h $(INCDIR)/beesecs.h \
          $(INCDIR)/bsassert.h $(INCDIR)/bsace.h $(INCDIR)/semidef.h
HCOMMON = $(BEEINC) \
          $(HDEVICE)/BS2Interpreter.h

secs2y.c: secs2y.y
    byacc -dl $<
    mv -f y.tab.c $@

secs2l.c: secs2l.l
    flex -o$@ $<

.obj/secs2y.o .obj/secs2y.so .shobj/secs2y.o .shobj/secs2y.so: secs2y.c

.obj/secs2l.o .obj/secs2l.so .shobj/secs2l.o .shobj/secs2l.so: secs2l.c y.tab.h

#----------------------------------------------------------------------------
#       Dependencies
#----------------------------------------------------------------------------
# DO NOT DELETE THIS LINE -- g++dep uses it.
# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.

.obj/ACELogCmd.o .obj/ACELogCmd.so .shobj/ACELogCmd.o .shobj/ACELogCmd.so: ACELogCmd.cpp $(HCOMMON) \
BS2SecsFuncs.h \
BS2Version.h

.obj/BS2DeviceCmd.o .obj/BS2DeviceCmd.so .shobj/BS2DeviceCmd.o .shobj/BS2DeviceCmd.so: BS2DeviceCmd.cpp $(HCOMMON) \
BS2Version.h \
BS2TclSched.h \
$(HBASE)/BS2Stream.h \
$(HBASE)/BS2MsgHeader.h \
$(HBASE)/BS2ItemDictionary.h \
$(HBASE)/BS2MessageDictionary.h \
$(HDEVICE)/BS2Device.h \
$(HDEVICE)/BS2Socket.h \
$(HDEVICE)/BS2Serial.h \
$(HDEVICE)/BS2TransactionManager.h \
$(HDEVICE)/BS2MsgControl.h

.obj/BS2DeviceInterp.o .obj/BS2DeviceInterp.so .shobj/BS2DeviceInterp.o .shobj/BS2DeviceInterp.so: BS2DeviceInterp.cpp $(HCOMMON) \
BS2DeviceInterp.h \
BS2TclSched.h \
$(HBASE)/BS2Message.h \
$(HDEVICE)/BS2Device.h

.obj/BS2SecsAtom.o .obj/BS2SecsAtom.so .shobj/BS2SecsAtom.o .shobj/BS2SecsAtom.so: BS2SecsAtom.cpp $(HCOMMON) \
BS2SecsFuncs.h \
$(HBASE)/BS2DeclAtom.h \
$(HBASE)/BS2Array.h \
$(HBASE)/BS2Array.i

.obj/BS2SecsCmd.o .obj/BS2SecsCmd.so .shobj/BS2SecsCmd.o .shobj/BS2SecsCmd.so: BS2SecsCmd.cpp $(HCOMMON) \
BS2Version.h \
BS2DeviceInterp.h \
BS2TclSched.h \
$(HBASE)/BS2Stream.h \
$(HBASE)/BS2MsgHeader.h \
$(HBASE)/BS2ItemDictionary.h \
$(HBASE)/BS2MessageDictionary.h \
$(HDEVICE)/BS2Device.h \
$(HDEVICE)/BS2Socket.h \
$(HDEVICE)/BS2Serial.h \
$(HDEVICE)/BS2TransactionManager.h \
$(HDEVICE)/BS2MsgControl.h

.obj/BS2SecsItem.o .obj/BS2SecsItem.so .shobj/BS2SecsItem.o .shobj/BS2SecsItem.so: BS2SecsItem.cpp $(HCOMMON) \
BS2SecsFuncs.h \
$(HBASE)/BS2Binary.h \
$(HBASE)/BS2Int4.h \
$(HBASE)/BS2Int8.h \
$(HBASE)/BS2List.h \
$(HBASE)/BS2Array.h \
$(HBASE)/BS2Array.i

.obj/BS2SecsItemList.o .obj/BS2SecsItemList.so .shobj/BS2SecsItemList.o .shobj/BS2SecsItemList.so: BS2SecsItemList.cpp $(HCOMMON) \
BS2SecsFuncs.h

.obj/BS2SecsMessage.o .obj/BS2SecsMessage.so .shobj/BS2SecsMessage.o .shobj/BS2SecsMessage.so: BS2SecsMessage.cpp $(HCOMMON) \
BS2SecsFuncs.h \
$(HBASE)/BS2ListItem.h \
$(HBASE)/BS2Stream.h \
$(HBASE)/BS2MsgHeader.h

.obj/tclDevice.o .obj/tclDevice.so .shobj/tclDevice.o .shobj/tclDevice.so: tclDevice.cpp $(HCOMMON) \
BS2DeviceInterp.h \
$(HDEVICE)/BS2Device.h

.obj/tclSecs.o .obj/tclSecs.so .shobj/tclSecs.o .shobj/tclSecs.so: tclSecs.cpp $(HCOMMON) \
BS2Version.h \
BS2TclSched.h \
$(HBASE)/BS2Stream.h \
$(HBASE)/BS2MsgHeader.h \
$(HDEVICE)/BS2Device.h \
$(HDEVICE)/BS2Socket.h \
$(HDEVICE)/BS2Serial.h \
$(HDEVICE)/BS2TransactionManager.h \
$(HDEVICE)/MsgControl.h

.obj/SecsTclAppInit.o .obj/SecsTclAppInit.so .shobj/SecsTclAppInit.o .shobj/SecsTclAppInit.so: SecsTclAppInit.cpp $(HCOMMON) \
$(HBASE)/BS2ItemDictionary.h \
$(HBASE)/BS2ListItem.h \
$(HBASE)/BS2MessageDictionary.h

.obj/BS2TclInterp.o .obj/BS2TclInterp.so .shobj/BS2TclInterp.o .shobj/BS2TclInterp.so: BS2TclInterp.cpp $(HCOMMON) \
$(HBASE)/BS2ItemDictionary.h \
$(HBASE)/BS2ListItem.h \
$(HBASE)/BS2MessageDictionary.h

.obj/BS2TclSched.o .obj/BS2TclSched.so .shobj/BS2TclSched.o .shobj/BS2TclSched.so: BS2TclSched.cpp $(HCOMMON) \
BS2TclSched.h \
BS2DeviceInterp.h
