Skip to content

Commit 4c4b71c

Browse files
committed
ocaml bindings: add findlib META support
This makes it easier to link against LLVM libs, especially if you are using _oasis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141992 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 3dd1674 commit 4c4b71c

File tree

4 files changed

+88
-1
lines changed

4 files changed

+88
-1
lines changed

autoconf/configure.ac

+3
Original file line numberDiff line numberDiff line change
@@ -1563,6 +1563,9 @@ fi
15631563
dnl Do the first stage of configuration for llvm-config.in.
15641564
AC_CONFIG_FILES([tools/llvm-config/llvm-config.in])
15651565

1566+
dnl OCaml findlib META file
1567+
AC_CONFIG_FILES([bindings/ocaml/llvm/META.llvm])
1568+
15661569
dnl Do special configuration of Makefiles
15671570
AC_CONFIG_COMMANDS([setup],,[llvm_src="${srcdir}"])
15681571
AC_CONFIG_MAKEFILE(Makefile)

bindings/ocaml/llvm/META.llvm.in

+63
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name = "llvm"
2+
version = "@PACKAGE_VERSION@"
3+
description = "Low Level Virtual Machine OCaml bindings"
4+
archive(byte) = "llvm.cma"
5+
archive(native) = "llvm.cmxa"
6+
directory = "."
7+
linkopts = "-ccopt -lstdc++"
8+
9+
package "analysis" (
10+
requires = "llvm"
11+
version = "@PACKAGE_VERSION@"
12+
description = "Intermediate representation analysis for LLVM"
13+
archive(byte) = "llvm_analysis.cma"
14+
archive(native) = "llvm_analysis.cmxa"
15+
)
16+
17+
package "bitreader" (
18+
requires = "llvm"
19+
version = "@PACKAGE_VERSION@"
20+
description = "Bitcode reader for LLVM"
21+
archive(byte) = "llvm_bitreader.cma"
22+
archive(native) = "llvm_bitreader.cmxa"
23+
)
24+
25+
package "bitwriter" (
26+
requires = "llvm,unix"
27+
version = "@PACKAGE_VERSION@"
28+
description = "Bitcode writer for LLVM"
29+
archive(byte) = "llvm_bitwriter.cma"
30+
archive(native) = "llvm_bitwriter.cmxa"
31+
)
32+
33+
package "executionengine" (
34+
requires = "llvm,llvm.target"
35+
version = "@PACKAGE_VERSION@"
36+
description = "JIT and Interpreter for LLVM"
37+
archive(byte) = "llvm_executionengine.cma"
38+
archive(native) = "llvm_executionengine.cmxa"
39+
)
40+
41+
package "ipo" (
42+
requires = "llvm"
43+
version = "@PACKAGE_VERSION@"
44+
description = "IPO Transforms for LLVM"
45+
archive(byte) = "llvm_ipo.cma"
46+
archive(native) = "llvm_ipo.cmxa"
47+
)
48+
49+
package "scalar_opts" (
50+
requires = "llvm"
51+
version = "@PACKAGE_VERSION@"
52+
description = "Scalar Transforms for LLVM"
53+
archive(byte) = "llvm_scalar_opts.cma"
54+
archive(native) = "llvm_scalar_opts.cmxa"
55+
)
56+
57+
package "target" (
58+
requires = "llvm"
59+
version = "@PACKAGE_VERSION@"
60+
description = "Target Information for LLVM"
61+
archive(byte) = "llvm_target.cma"
62+
archive(native) = "llvm_target.cmxa"
63+
)

bindings/ocaml/llvm/Makefile

+21
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,24 @@ UsedComponents := core
1717
UsedOcamLibs := llvm
1818

1919
include ../Makefile.ocaml
20+
21+
all-local:: copy-meta
22+
install-local:: install-meta
23+
uninstall-local:: uninstall-meta
24+
25+
DestMETA := $(PROJ_libocamldir)/META.llvm
26+
27+
# Easy way of generating META in the objdir
28+
copy-meta: $(OcamlDir)/META.llvm
29+
30+
$(OcamlDir)/META.llvm: META.llvm
31+
$(Verb) $(CP) -f $< $@
32+
33+
install-meta:: $(ObjDir)/META.llvm
34+
$(Echo) "Install $(BuildMode) $(DestMETA)"
35+
$(Verb) $(MKDIR) $(PROJ_libocamldir)
36+
$(Verb) $(DataInstall) META.llvm "$(DestMETA)"
37+
38+
uninstall-meta::
39+
$(Echo) "Uninstalling $(DestMETA)"
40+
-$(Verb) $(RM) -f "$(DestMETA)"

configure

+1-1
Original file line numberDiff line numberDiff line change
@@ -21052,7 +21052,6 @@ ac_config_headers="$ac_config_headers include/llvm/Support/DataTypes.h"
2105221052

2105321053
ac_config_files="$ac_config_files Makefile.config"
2105421054

21055-
2105621055
ac_config_files="$ac_config_files llvm.spec"
2105721056

2105821057

@@ -21065,6 +21064,7 @@ fi
2106521064

2106621065
ac_config_files="$ac_config_files tools/llvm-config/llvm-config.in"
2106721066

21067+
ac_config_files="$ac_config_files bindings/ocaml/llvm/META.llvm"
2106821068

2106921069
ac_config_commands="$ac_config_commands setup"
2107021070

0 commit comments

Comments
 (0)