# targets
#
# the following is a list of the targets (in addition to sml) that
# this shell script can install.  Comment out those that you do not
# want.  Note that cml-lib requires cml.

#
# The install script will move all libraries out of the source tree
# and into the $LIBDIR directory.  Thus, you can later delete the
# entire source tree without losing functionality.
# (Notice that the old "dont_move_libraries" directive broke a while ago
# and has been removed.)
#

# (The base system consisting of runtime, compiler, and basic libraries
# will always be built.)

# unpack the source code for everything (including for the SML/NJ compiler
# itself); this is not required,  unless you are doing compiler hacking,
# but it may be interesting to look at.
#
#request src-smlnj

# include backward-compatible versions of the Basis Library.
#
request old-basis

# build new (Unicode-capable) ML-ULex
#
request ml-ulex
#
# Arrange for the .lex suffix to be recognized by CM as (new-style)
# ML-ULex input.
#   (Notice that you should NOT select this option even if you want to have
#    ml-ulex process legacy ml-lex input using the --ml-lex-mode option.)
# Since most existing projects have legacy .lex files, this should be
# kept off by default.
# WARNING: This is incompatible with ml-lex-lex-ext!!
#request ml-ulex-lex-ext
#
# Register the "mllex" CM tool class in such a way that "legacy" ml-lex
# input is processed by "ml-ulex --ml-lex-mode".
#   (If you want the .lex extension to be mapped to the "mllex" class
#   and have that be processed by ml-ulex, you should request
#   ml-ulex-mllex-tool and ml-lex-lex-ext, but NOT ml-ulex-lex-ext.)
# WARNING: This is incompatible with ml-lex-mllex-tool!!
request ml-ulex-mllex-tool

# build legacy ML-Lex
#
request ml-lex
#
# Register the "mllex" CM tool class in such a way that "legacy" ml-lex
# input is processed by the legacy ml-lex program.
# WARNING: This is incompatible with ml-ulex-mllex-tool!!
#request ml-lex-mllex-tool
#
# Arrange for the .lex suffix to be recognized by CM as legacy ml-lex input.
# This requires that either ml-lex-mllex-tool or ml-ulex-mllex-tool
# (but not both at the same time!) is installed.
# Since most existing projects have legacy .lex files, this should be
# kept on by default.
# WARNING: This is incompatible with ml-ulex-lex-ext!!
request ml-lex-lex-ext

# build ML-Yacc (must come after ml-lex)
#
request ml-yacc
#
# Arrange for the .grm suffix to be recognized by CM as ML-Yacc input.
# Since .grm files in most existing project are ML-Yacc input, this should be
# kept on by default.
# WARNING: This is incompatible with ml-antlr-grm-ext!!
request ml-yacc-grm-ext

# Always: install the pre-compiled ML-Yacc Library; this is necessary
# to use parsers produced by ML-Yacc, but also to bootstrap the system
# in the first place.

# build ML-Antlr
#
request ml-antlr
#
# Arrange for the .grm suffix to be recognized by CM as ML-Antlr input.
# Since .grm files in most existing project are ML-Yacc input, this should be
# kept off by default.
# WARNING: This is incompatible with ml-yacc-grm-ext!!
#request ml-antlr-grm-ext

# utility library for ml-antlr and ml-ulex
#
request ml-lpt-lib

# Always: install the pre-compiled SML/NJ Library (necessary to bootstrap).

# build ML-Burg
#
request ml-burg

# pre-compile and install the remaining components of the SML/NJ library
# (everything except smlnj-lib.cm, aka Util, itself)
#
request smlnj-lib

# pre-compile and install CM "portable graph" utility library
#
#request pgraph-util

# pre-compile and install "Trace-Debug-Profile" utility library
# (provides simple back-trace- and coverage facilities)
#
request tdp-util

# pre-compile and install Concurrent ML, which is a library for message-passing
# concurrency.
#
request cml

# pre-compile and install the CML Library, which provides some useful CML
# modules.
#
request cml-lib

# pre-compile and install eXene, which is a library for X-Windows programming.
# EXene requires CML.
#
#request eXene

# pre-compile (certain) parts of MLRISC that are not already part of the SML/NJ
# compiler itself
#
request mlrisc

# pre-compile and install the C-Kit, which is a library for parsing and
# type-checking C programs
#
request ckit

# pre-compile and install the ML-NLFFI Library, which is the core of
# a new foreign function interface (where "foreign" functions are
# "no longer foreign")
# This library is necessary to compile and/or run programs that use
# the new FFI.
# This preview release currently works under X86/Linux, Sparc/Solaris,
# PPC/MacOSX, and X86/Win32.
#
request ml-nlffi-lib

# build ML-NLFFI-Gen, a program generator tool used in conjunction with
# the new "NLFFI" foreign function interface.  The tool generates ML
# glue code from C source code.
# (Requires ckit!)
# This preview release currently works under X86/Linux, Sparc/Solaris,
# PPC/MacOSX, and X86/Win32.
#
request ml-nlffigen

# pre-compile and install the MLRISC Tools library.
# This library is for parsing and pretty printing SML code.
# It's used by various MLRISC code generator generator.
#
#request mlrisc-tools

# Build and install the 'nowhere' program translator.
# This tool translates programs with conditional patterns (where clauses) 
# into legal SML code.  See MLRISC/Tools/Doc/nowhere.tex for its
# (bad) documentation.
# (Requires the mlrisc-tools library!)
#
#request nowhere

# Build and install 'heap2asm' - an experimental component of
# a new facility for producing true stand-alone executables.
#
#request heap2asm

# Download the documentation directory.
#
request doc

# Note: autoloading is always enabled.
#   In order to customize what is being pre-registered for autoloading
#   edit file "preloads".  You should make sure that it contains at least
#   "$smlnj/cm.cm".
#  Also, it is a good idea to have "$/basis.cm" pre-loaded.
