(* current.cm
 *
 * Library exporting "visible" compiler for host architecture.
 *
 * (C) 2001, Lucent Technologies, Bell Labs
 *
 * author: Matthias Blume (blume@research.bell-labs.com)
 *)
(cm-init)
Library
	(* signatures *)
	signature STATS
	signature CONTROL
	signature SOURCE
	signature SOURCE_MAP
	signature ERRORMSG
	signature SYMBOL
	signature SYMPATH
	signature PERSSTAMPS
	signature STATICENV
	signature DYNAMICENV
	signature SYMENV
	signature ENVIRONMENT
	signature ENVREF	
	signature MODULE_ID
	signature PICKMOD
	signature UNPICKMOD
	signature PRETTYPRINT
	signature AST
	signature ABSYN
	signature SMLFILE
	signature BINFILE
	signature FLINT

	signature TYPES
	signature ENTITY_ENV
	signature MODULES
	signature STAMPS
	signature BINDINGS
	signature TYPESUTIL
	signature VARCON
	signature MODULEUTIL
	signature BASICTYPES
	signature PPTYPE
	signature ACCESS
	signature UNIFY

	(* frontend stuff *)
	structure Stats
	structure Control
	structure Source
	structure SourceMap
	structure ErrorMsg
	structure Symbol
	structure SymPath
	structure PersStamps
	structure StaticEnv
	structure DynamicEnv
	structure SymbolicEnv
	structure Environment
	structure EnvRef	
	structure ModuleId
	structure GenModIdMap
	structure PickMod
	structure UnpickMod
	structure Rehash
	structure PickleSymPid
	structure UnpickleSymPid
	structure PrettyPrint
	structure CompilerPPTable
	structure Ast
	structure Absyn
	structure SmlFile
	structure Binfile
	structure PrintHooks
	structure SMLNJVersion
	structure CompInfo
	structure CompileExn
	structure CoreSym
	structure FLINT

        structure Types
        structure EntityEnv
        structure Modules
        structure Stamps
        structure Bindings
        structure TypesUtil
        structure VarCon
        structure ModuleUtil
        structure PrimOpId
        structure BasicTypes
        structure PPType
        structure Access
        structure Unify

	(* the current backend *)
	structure Backend

is
# if defined(ARCH_ALPHA)
	$smlnj/compiler/alpha32.cm
	alpha32.sml
# elif defined(ARCH_MIPS)
#   if defined(BIG_ENDIAN)
	$smlnj/compiler/mipseb.cm
	mipseb.sml
#   else
	$smlnj/compiler/mipsel.cm
	mipsel.sml
#   endif
# elif defined(ARCH_HPPA)
	$smlnj/compiler/hppa.cm
	hppa.sml
# elif defined(ARCH_RS6000)
	$smlnj/compiler/rs6000.cm
	rs6000.sml
# elif defined(ARCH_PPC)
	$smlnj/compiler/ppc.cm
	ppc.sml
# elif defined(ARCH_SPARC)
	$smlnj/compiler/sparc.cm
	sparc.sml
# elif defined(ARCH_X86)
	$smlnj/compiler/x86.cm
#   if defined(OPSYS_UNIX)
(*
#     if defined(ABI_Darwin)
        x86-intelmac.sml
#     else
*)
	x86-ccall.sml
(*
#     endif
*)
#   elif defined(OPSYS_WIN32)
	x86-stdcall.sml
#   else
#	error Strange OS (for x86)!
#   endif
# elif defined (ARCH_AMD64)
       $smlnj/compiler/amd64.cm
       amd64.sml
# else
#   error Strange architecture!
# endif
