Files
mercury/.INSTALL.in
Julien Fischer cf6dc87059 Comment out documentation of experimental GC methods.
compiler/options.m:
    As above.

.INSTALL.in:
    Document --enable-nogc-grades rather than --disable-nogc-grades.
    (The configure script was swapped over a long time ago.)
    Explain why these grades are not enabled by default.
2024-10-31 14:22:53 +11:00

227 lines
10 KiB
Bash
Executable File

#!/bin/sh
#
# INSTALL - installation instructions and installation script.
#
# You need a C compiler such as the GNU C compiler (gcc, version 3.4.x
# or later -- note however that version 4.0 will not work) and GNU Make
# (3.69 or later). Make sure that they are somewhere in your PATH.
# It is also helpful if you have GNU Readline or NetBSD Editline (libedit)
# installed in one of the standard locations (normally /usr/local or /usr),
# but this is not essential.
#
# The source distributions for gcc, GNU Make, and GNU Readline are
# available from <ftp://ftp.gnu.org/gnu/>. The source distribution for
# NetBSD Editline is available from <https://thrysoee.dk/editline/>.
# Binaries for the above are included in almost all Linux distributions,
# Mac OS X and also in the Cygwin and MinGW distributions for Windows (see
# README.MS-Windows).
#
# Step 0. Extract the files from the gzipped tar archive.
#
# NOTE: do not extract the archive into a directory whose absolute
# pathname contains spaces, as this will cause the installation to fail.
#
# Step 1. Run `configure'. (Just type `sh configure'.)
#
# By default, the files will be installed in the directory
# /usr/local/mercury-@VERSION@.
# If you want the files to be installed someplace else,
# use the `--prefix <directory>' option to `configure'.
# The directory name specified with the `--prefix' option
# must not contain spaces.
#
# NOTE: If you use the `--prefix' option to configure,
# be aware that `mercury' is not automatically
# appended. That is, `--prefix=/usr/local' will put
# files in /usr/local/bin, /usr/local/lib et cetera,
# *not* /usr/local/mercury/bin, /usr/local/mercury/lib.
#
# By default, the installation process will install the Mercury
# standard library in a comprehensive set of grades, with each grade
# supporting a given set of capabilities (debugging, profiling etc).
# If you want to install a different set of grades, read the
# "Finetuning" section below.
#
# Some debugging output from running configure is automatically
# save to the file `config.log'.
#
# Step 2. Run `make'.
# This step will take a long time.
#
# NOTE: If you have problems installing a new version
# of the compiler, you may find it helpful to either
# completely remove any existing versions of the
# compiler reachable on your PATH or, less drastically,
# alter your PATH variable so that any existing version
# of the mercury compiler is not accessible for the
# purposes of installing the new version.
#
# Step 3. Run `make install'.
# This step will also take a long time.
#
# BEWARE: if something goes wrong in this step, e.g. running
# out of disk space, and the installation has already gotten
# past installing the documentation, and started installing
# the different grades of the libraries then in general it is
# NOT sufficient to simply rerun `make install'. Instead you
# may need to start from scratch again.
#
# Step 4. Check the permissions on the installed files.
# Add /usr/local/mercury-@VERSION@/bin to your PATH, and
# add /usr/local/mercury-@VERSION@/man to your MANPATH.
# add /usr/local/mercury-@VERSION@/info to your INFOPATH.
# You can also add a WWW link to the Mercury documentation in
# /usr/local/mercury-@VERSION@/lib/mercury/html to your WWW home page,
# and you may want to print out a hard-copy of the documentation
# from the DVI files in /usr/local/mercury-@VERSION@/lib/mercury/doc.
#
# If step #1 enabled deep profiling, then check whether "make install"
# was able to copy scripts/mdprof to your web server's CGI directory.
# This directory is often writeable only by root or by the web server
# administrator, so you may need more than your usual set of
# privileges to do the copy (i.e. you may need to "su" to the
# appropriate user). mdprof is also installed into the same directory
# as other Mercury executables.
#
# To use the emacs debugger interface ("M-x mdb"), you also need to
# add the following lines to the `.emacs' file in your home directory:
#
# (add-to-list 'load-path
# "/usr/local/mercury-@VERSION@/lib/mercury/elisp")
# (autoload 'mdb "gud" "Invoke the Mercury debugger" t)
#
# Step 5. Run `make clean'.
#
# As a short-cut, steps 1-3 are listed below, so they can be replaced
# by just executing this file. I suggest you run it in the background,
# and read the Mercury documentation in the `doc' directory while you are
# waiting.
if pwd | grep ' '
then
echo "The name of the current directory contains spaces."
echo "Mercury cannot be installed from such directories."
exit 1
fi
if test ! -d boehm_gc
then
echo "This directory does not contain a complete source distribution."
echo "If you are trying to compile a workspace checked out of git,"
echo "you will need to read and follow INSTALL.git, not INSTALL."
exit 1
fi
sh configure &&
make &&
make install
# Fine-tuning:
# ------------
#
# If your system has multiple CPUs and lots of RAM,
# you can uncomment the definition of PARALLEL in the Makefile
# to perform a parallel make.
#
# By default the `make install' step will install a reasonable
# set of library grades which should be appropriate for most uses.
#
# The option --enable-libgrades=<gradelist> allows you to specify
# precisely the list of library grades to be installed. The argument
# of this option should be a comma-separated list of grades.
# An empty list of grades will cause the library to be installed
# only in the default grade.
#
# The option --enable-minimal-install will install only the minimal
# system that is required in order to bootstrap the Mercury compiler.
#
# The option --disable-most-grades reduces the set of installed grades
# to a "minimum" level for developers (just the default grade and the
# grades corresponding to the `--debug' and `--high-level-code'
# options).
#
# The option --enable-nogc-grades causes the installation
# of grades without garbage collection. These are not generally
# useful as most programs compiled using them will quickly run out
# of memory.
#
# The option --disable-prof-grades prevents the installation
# of grades that support profiling.
#
# The option --disable-old-prof-grades prevents the installation
# of the old style profiling grades, i.e. all profiling grades
# except the ones that do deep profiling.
#
# The option --disable-trail-grades prevents the installation
# of grades that support trailing.
#
# The option --disable-par-grades prevents the installation
# of thread-safe grades.
#
# The option --enable-inefficient-grades causes the installation
# of grades that do not exploit gcc extensions even when they are
# available.
#
# The option --enable-hlc-prof-grades causes the installation
# of profiling versions of the high level code grades.
#
# The option --enable-hlc-low-level-debug-grades causes the installation
# of high-level code grades with C level debugging enabled.
#
# The option --enable-stseg-grades causes the installation of grades
# that use stack segments.
#
# The option --disable-java-grade prevents the installation of the
# Java grade. The Java grade will be installed by default if the
# Java SDK is found.
#
# The option --disable-csharp-grade prevents the installation of the
# C# grade. The C# grade will be installed by default if the
# .NET SDK is found.
#
# The option --enable-ssdebug-grades adds source-to-source debugging
# grades hlc.gc.ssdebug and java.ssdebug, if hlc.gc or java grades
# are also present.
#
# The option --disable-shared-libs prevents the installation of shared
# libraries, even if they are supported on this system.
#
# The option --enable-deep-profiler=/some/dir/name enables the deep
# profiler, and specifies the directory in which to install the
# deep profiler's CGI script. The option --disable-deep-profiler
# causes the deep profiler not to be installed, even if the underlying
# system would be able to support it. The default is to enable the
# deep profiler if the system has the required features.
#
# The --without-readline and --without-editline options prevent the
# use of GNU Readline and NetBSD Editline (libedit) with the debugger.
# Note that GNU Readline will be used in preference to Editline if
# the former is present and if --without-readline is not given.
#
# If you are short on RAM, you can add -DSMALL_CONFIG to the CFLAGS
# line in the file boehm_gc/Makefile. (This tells the garbage
# collector to tune itself for small physical memory.)
#
# If your system supports shared libraries, but `configure' says
# Mercury does not support shared libraries on this system,
# contact us and we'll see if we can add support for shared libraries
# on that system.
#
# Efficiency will be much improved if Mercury can use gcc global
# register variables. Currently these are supported for
# mips, hppa, sparc, alpha, rs6000, i386 and x86_64 architectures
# (see runtime/regs.h and runtime/machdeps/*).
# If you want to use Mercury on some other CPU, contact us and
# we'll add support for gcc global registers for that CPU.
#
# De-installation:
# ----------------
#
# You may eventually want to uninstall this version of Mercury
# (to free up disk space so you can install the next version ;-).
# If you installed in the default location, you can simply
# use `rm -rf /usr/local/mercury-@VERSION@' to uninstall.
# If you installed in a location such as `/usr/local' that also
# contains other files which you do not want removed, then
# run the command `make uninstall' in this directory.