-
Notifications
You must be signed in to change notification settings - Fork 54
/
.INSTALL.in
executable file
·226 lines (222 loc) · 10.3 KB
/
.INSTALL.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
#!/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.