#!/bin/sh # # INSTALL - installation instructions and installation script. # # You need GNU C (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's also helpful if you # have GNU Readline installed in one of the standard locations (normally # /usr/local or /usr), but this is not essential. # # The source distributions for GNU C, GNU Make, and GNU Readline are # available from . Binaries for these are # included in almost all Linux distributions, Mac OS X and also in the Cygwin # distribution for Windows (see README.MS-Windows). # # Step 0. Extract the files from the gzipped tar archive. # # 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 ' 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. 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= 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 --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 --disable-nogc-grades prevents the installation # of grades without garbage collection. # # The option --enable-agc-grades causes the installation # of grades that support type-accurate garbage collection. # # 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 --enable-dotnet-grades causes the installation # of the .NET grades (see README.DotNet). This grades are only # installed if the .NET SDK is found. # # The option --enable-java-grade causes the installation of the Java # grade. This grade is only installed if the Java SDK is found. # # The option --enable-erlang-grade causes the installation of the # Erlang grade. This grade is only installed if the Erlang/OTP # distribution 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-dynamic-link 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. # # 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.