#
# A Transaction Manager written in M3
#

if equal(BASETARGET, "ALPHA_SPIN")
  Package("Trans")
  include_dir(spin)
  include_dir(ALPHA_SPIN)
  m3_option("-A")
else
  include_dir(osf)
  include_dir(ALPHA_SPIN)
end
interface(TransRep)
interface(BufferRep)
Dequeue(Lock, LockRecord)
Dequeue(Trans, TransRep)
Dequeue(ActiveTrans, ActiveTransRep)
Dequeue(Buffer, BufferRep)
Table(SIDRef, SID, Refany)

Module(FastIntRefTbl)
Module(TransUtils)
Module(TransService)
module(ShadowPager)
interface(TransServiceRep)
module(ActiveTrans)
interface(ActiveTransRep)
Module(TransError)
Module(SID)
HtmlInterface(LockMode)

Interface(TransPrivate)
Interface(TransDaemon)
Module(TransProxy)
Interface(WALPrivate)
interface(StorageProtected)
HtmlInterface(StorageRep)
HtmlModule(Storage)
HtmlModule(StorageProxy)
Interface(TransT)
Module(TransRPC)
HtmlModule(StorageLocal)
Module(StorageRemote)
implementation(StorageRecovery)
Module(TransCommands)
Interface(TransOS)
HtmlInterface(RawIO)
Interface(HostID)
Module(TID)
HtmlModule(TransMode)
HtmlModule(Transaction)
implementation(TransRecovery)
HtmlModule(WAL)
implementation(LogRecovery)
Module(CheckPoint)
HtmlModule(LockMan)
Interface(LockRecord)
Module(Buffer)
Module(BufferPurge)
HtmlModule(TransGroup)
interface(TransGroupRep)
interface(TransGroupPrivate)	
Interface(HostSet)
c_source(Diff)
interface(DiffExtern)

HtmlFile(index)
HtmlFile(oo7)
HtmlFile(rvmbench)
DocFile(vader.gif)

if equal(BASETARGET, "ALPHA_SPIN")
  Sieg_interface("TransSyscall")
  sphinx_addon_syscall("TransSyscall")
  Extension({})
else
  program("db")
end
