llvm-project/llvm/bindings/ocaml
Michal Gorny b002f6370b cmake: Install the OCaml libraries into a more correct path
Add a OCAML_INSTALL_PATH variable that can be used to control
the install path for OCaml libraries. The new variable defaults to
${OCAML_STDLIB_PATH}, i.e. the OCaml library path obtained from
the OCaml compiler. Install libraries into "llvm" subdirectory.

This fixes two issues:

1. OCaml library directories differ between systems, and 'lib/ocaml' is
incorrect e.g. on amd64 Gentoo where OCaml is installed
in 'lib64/ocaml'. Therefore, obtain the library path from the OCaml
compiler using 'ocamlc -where' (which is already used to set
OCAML_STDLIB_PATH), which is the method used commonly in OCaml packages.

2. The top-level directory is reserved for the standard library, and has
precedence over local directory in search path. As a result, OCaml
preferred the files installed along with previous LLVM version over the
source tree when building a new version, resulting in two versions being
mixed during the build. The new layout is used commonly by other OCaml
packages, and findlib is able to find the LLVM libraries successfully.

Bug: https://bugs.gentoo.org/559134
Bug: https://bugs.gentoo.org/559624

Differential Revision: https://reviews.llvm.org/D24354

llvm-svn: 282895
2016-09-30 18:34:23 +00:00
..
all_backends Remove autoconf support 2016-01-26 21:29:08 +00:00
analysis [OCaml] Use LLVMCreateMessage with constant strings when calling llvm_raise 2016-04-01 07:56:17 +00:00
backends cmake: Install the OCaml libraries into a more correct path 2016-09-30 18:34:23 +00:00
bitreader [OCaml] Use LLVMCreateMessage with constant strings when calling llvm_raise 2016-04-01 07:56:17 +00:00
bitwriter Remove autoconf support 2016-01-26 21:29:08 +00:00
executionengine Silence warnings in OCaml bindings 2016-03-31 08:39:42 +00:00
irreader Remove autoconf support 2016-01-26 21:29:08 +00:00
linker [OCaml] Use LLVMCreateMessage with constant strings when calling llvm_raise 2016-04-01 07:56:17 +00:00
llvm cmake: Install the OCaml libraries into a more correct path 2016-09-30 18:34:23 +00:00
target [OCaml] Reinstate data_layout 2016-04-01 07:54:24 +00:00
transforms Remove the ScalarReplAggregates pass 2016-06-15 00:19:09 +00:00
CMakeLists.txt
README.txt [CMake] [OCaml] Allow building OCaml bindings out of tree. 2016-09-05 01:42:22 +00:00

README.txt

This directory contains LLVM bindings for the OCaml programming language
(http://ocaml.org).

Prerequisites
-------------

* OCaml 4.00.0+.
* ctypes 0.4+.
* oUnit 2+ (only required for tests).
* CMake (to build LLVM).

Building the bindings
---------------------

If all dependencies are present, the bindings will be built and installed
as a part of the default CMake configuration, with no further action.
They will only work with the specific OCaml compiler detected during the build.

The bindings can also be built out-of-tree, i.e. targeting a preinstalled
LLVM. To do this, configure the LLVM build tree as follows:

    $ cmake -DLLVM_OCAML_OUT_OF_TREE=TRUE \
            -DCMAKE_INSTALL_PREFIX=[OCaml install prefix] \
            [... any other options]

then build and install it as:

    $ make ocaml_all
    $ cmake -P bindings/ocaml/cmake_install.cmake