# OCaml 4.02.3
# ============
# If you have any trouble with the ocaml.org home page, you can also try
# the older site at http://caml.inria.fr/
# Prerequisites:
# ncurses for termcap functions
# XFree86 or X.org libraries and includes (optional; for the graph library)
# Labltk was removed from the distribution and is now a 3rd party library
# Get it
cd
test -f installed/ocaml-4.02.3.tar.xz &&
mv installed/ocaml-4.02.3.tar.xz .
test ! -f ocaml-4.02.3.tar.xz &&
wget http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.3.tar.xz
## Verify tarball w/ md5sum:
# I could not find one from the authors, so this will only prove that yours
# is the same as mine
echo "9115706e30dad644f8dec9dfb459a9ab ocaml-4.02.3.tar.xz" | md5sum -c
# Extract it
mkdir -p -m 0700 src
cd src
find -maxdepth 1 -type d -name "ocaml-*" -exec rm -r {} \;
tar xJvf ~/ocaml-4.02.3.tar.xz
cd ocaml-4.02.3
test $UID = 0 && chown -R root:root .
# Read ./README and ./INSTALL (and ./Changes if upgrading) and documentation
# is available online here:
# http://ocaml.org/docs/
# Configure the build, see './configure --help' for options
# (FYI: it's not an autoconf configure)
./configure
# Build the bytecode compiler
make world
# Build everything with the new compiler
make bootstrap
# Build the native code compiler (if your system is supported)
make opt
# Build fast versions (bytecode by default, native when you run this)
make opt.opt
# Become root to install it
su
# Install it
umask 022
make install
# If you want, you can strip the installed binaries (/usr/local/bin/ocaml*),
# but don't strip ocamldebug or ocamlbrowser (see ./INSTALL)
# Make sure your non-root user can remove the source later
chown -R $(logname) .
chmod -R u+w .
# Become your non-root user again
exit
# Save the source for later
cd
mkdir -p -m 0700 installed
rm -f installed/ocaml-*.tar.*
mv ocaml-4.02.3.tar.xz installed/
# If you ever want to uninstall Objective Caml, this should do it...
#
# Unfortunately autoconf is not used, so 'make uninstall' is not available.
#
# You may want to verify via 'ls -l /usr/local/bin/ocaml*' before blindly
# removing anything in there that starts with ocaml* in case of the unlikely
# event that something not from OCaml is in there. If the dates and times
# are the same, it's probably all from the same thing.
#
# If you have much earlier releases you may also find labltk binaries
#
su
find /usr/local/bin -type f -name "ocaml*" -exec rm {} \;
find /usr/local/man/man1 -type f -name "ocaml*.1" -exec rm {} \;
test -d /usr/local/lib/ocaml && rm -r /usr/local/lib/ocaml
exit
find ~/src -maxdepth 1 -type d -name "ocaml-*" -exec rm -r {} \;
rm -f ~/installed/ocaml-*.tar.*