ml(1)

NAME
ml - Mercury Linker

SYNOPSIS
ml [<ml options>] [-- <gcc options>] files...

NOTES
ml is one of the development tools that are part of the Mercury distribution.

This manual page is limited to a brief summary. For further information see the Mercury User's Guide.

OPTIONS
 -h, --help
	Print this help message.

DIAGNOSTICS OPTIONS
 -v, --verbose
	Print each command before executing it.
 --no-demangle
	Don't pipe the output of the linker through the Mercury
	demangler.
 --allow-undef
 --allow-undefined
	Don't report an error if there are unresolved symbols.
	This option is only used if you are building a shared
	library (with `--make-shared-lib); when building
	executables, unresolved symbols are always errors.
	This option is useful when building shared libraries
	that are not intended to be self-contained.
 --print-grade
	Compute the grade of the Mercury libraries to link with based
	on the command line options, print it to the standard output,
	and then exit (don't actually link anything).
 --print-gc-grade
	Compute the base name of the garbage collection library to
	link with based on the command line options, print it to the
	standard output, and then exit (don't actually link anything).
 --print-link-command
	Print the command used to link executables.
 --print-shared-lib-link-command
	Print the command used to link shared libraries.
 --print-map
	Print a link map, via `ld --print-map'.

DYNAMIC/STATIC LINKING OPTIONS
 --mercury-libs {shared, static, none}
	Specify which version of the standard Mercury libraries to
	link with:
		--mercury-libs shared
			Link with the shared libraries (*.so),
			if possible, otherwise with the static ones.
		--mercury-libs static
			Link with the static libraries (*.a).
		--mercury-libs none
			Don't link in the Mercury standard libraries.
 -shared, --shared
	Similar to `--mercury-libs shared', but applies to all
	libraries, not just the standard Mercury libraries.
 -static, --static
	Similar to `--mercury-libs static', but applies to all
	libraries, not just the standard Mercury libraries.
 --make-shared-lib
	Produce a shared library, rather than an executable.

DIRECTORY OPTIONS
 --mercury-standard-library-directory <directory>
 --mercury-stdlib-dir <directory>
	The directory in which to find the Mercury standard library.
 --no-mercury-standard-library-directory, --no-mercury-stdlib-dir
	Same as `--mercury-libs none'.
 --mercury-config-directory <directory>
 --mercury-config-dir <directory>
	The location of an alternative configuration
	(created with mercury_config) to use.
 -L <directory>, --lib-dir <directory>
	Include <directory> in the list of directories that the
	linker will use to search for libraries.
 -R <directory>, --shared-lib-dir <directory>
	Include <directory> in the list of directories that the
	dynamic linker will use to search for shared libraries.
 --leave-shared-lib-dirs-relative
	Don't convert relative shared library directory names
	into absolute paths.
 --no-leave-shared-lib-dirs-relative
	Convert relative shared library directory names into
	absolute paths.  This is the default.

DEBUGGING OPTIONS
 -t, --trace
	Link in the Mercury debugging libraries.
	This option is needed if any of the modules being linked
	were compiled with tracing enabled.  However, `--debug'
	implies `--trace', so if you're using `--debug',
	then you don't need to explicitly specify `--trace'.
	Note that `--trace' is incompatible with `--static'
	on some platforms (e.g. sparc-sun-solaris2.6).
	Implies `--include-initialization-code'.
 -r-, --no-readline
	Don't link in the GPL'd GNU Readline Library.
 -g, --c-debug, --no-strip
	Do not strip C debugging information.

INITIALIZATION OPTIONS
 --no-main, --library
	Don't generate a `main()' function.
	Instead, generate a function
		mercury_main(int argc, char **argv);
	(declared in "mercury_init.h") that can be called
	from C code.
	(A more fine-grained interface is also available;
	see "mercury_init.h" for details.)
 -I <directory>, --init-file-directory <directory>
	Include <directory> in the list of directories searched to
	locate `.init' files.
 -w <label>, --entry-point <label>
	Set entry point to <label>.
	(Default value corresponds to main/2.)
 --runtime-flags <flags>
	Add <flags> to the list of flags to pass to the
	Mercury runtime.  Flags can also be passed at runtime
	in the MERCURY_OPTIONS environment variable.
	For the list of available flags, see the documentation
	for MERCURY_OPTIONS in the Environment chapter
	of the Mercury User's Guide.
 --experimental-complexity <filename>
	Set up for the experimental determination of the complexity
	of the procedures listed in the given file.
 --init-c-file <filename>
	Output the generated C initialization program to the
	specified file, rather than sending it to the standard
	output.
 -A <funcname>
	Always execute the named void function (which must take no
	arguments) when the Mercury runtime is initialized.
 -x, --extra-inits
	Search `.c' files for extra initialization functions.
	(This may be necessary if the C files contain
	hand-coded C code with `INIT' comments, rather than
	containing only C code that was automatically generated
	by the Mercury compiler.)

THREADS OPTIONS
 --use-thread-libs
	Link with the POSIX thread libraries. This option is useful
	if a C library being linked with uses threads, but the
	Mercury code being linked doesn't.

GRADE OPTIONS
 -s <grade>, --grade <grade>
 --target {il, c, csharp, java, erlang}
 --il
 --asm-labels
 --gcc-non-local-gotos
 --gcc-global-registers
 -H, --high-level-code
 --parallel
 --gc {boehm, boehm_debug, hgc, mps, accurate, none}
 -p, --profiling
 --profile-calls
 --profile-time
 --profile-memory
 --profile-deep
 --record-term-sizes-as-words
 --record-term-sizes-as-cells
 --use-trail
 --use-trail-segments
 --reserve-tag
 --use-minimal-model-stack-copy
 --use-minimal-model-own-stacks
 --minimal-model-debug
 --single-prec-float
 --pic-reg
 --no-stack-trace
 --debug
 --decl-debug
 --ss-debug
 --low-level-debug
 --extend-stacks-when-needed
 --stack-segments
 --use-regions
	See the documentation in the "Invocation" section
	of the Mercury User's Guide.

ENVIRONMENT VARIABLES
    MERCURY_DEFAULT_GRADE, MERCURY_C_COMPILER,
    MERCURY_NONSHARED_LIB_DIR, MERCURY_MKINIT.

AUTHORS
The Mercury team.

See <http://www.mercurylang.org/contact/people.html>.

COPYRIGHT
This program and its documentation are copyright by the University of Melbourne. They may be copied only under the terms of the GNU General Public License - see the file COPYING in the Mercury distribution.

SEE ALSO
<http://www.mercurylang.org/information/documentation.html>

The Mercury User's Guide.

The GNU General Public License.