version = "1.5.1"
description = "RPC: lightweight library to convert plain ML types to and from RPC values"
requires = "rpclib.xml, rpclib.json"

package "syntax" (
  description = "rpc: library to marshalling/unmarshalling ML types to/from RPC intermediate language"
  requires = "type_conv"
  archive(syntax,preprocessor) = "pa_rpc.cma"
  archive(syntax,toploop) = "pa_rpc.cma"
  )

package "idl" (
  description = "Preprocessor to convert an idl definition in ocaml into an implementation of client and server modules"
  requires = "camlp4"
  archive(syntax,preprocessor) = "idl.cma"
  archive(syntax,toploop) = "idl.cma"
  )

package "core" (
  description = "Common RPC definitions"
  archive(byte) = "rpc.cmo"
  archive(native) = "rpc.cmx"
)

package "xml" (
  description = "XML-RPC marshalling/unmarshalling"
  requires = "rpclib.core,xmlm"
  archive(byte) = "xmlrpc.cmo"
  archive(native) = "xmlrpc.cmx"
  )

package "json" (
  description = "JSON-RPC marshalling/unmarshalling"
  requires = "rpclib.core"
  archive(byte) = "jsonrpc.cmo"
  archive(native) = "jsonrpc.cmx"
)

package "unix" (
  description = "Unix socket connection handling"
  requires = "rpclib.core"
  archive(byte) = "rpc_client.cmo"
  archive(native) = "rpc_client.cmx"
)

package "js" (
  description = "Javascript/browser connection handling"
  requires = "rpclib.core"
  archive(byte) = "rpc_client_js.cma"
  exists_if = "rpc_client_js.cma"

)
