Mercurial > hg > Members > tobaru > cbc > CbC_llvm
comparison bindings/go/README.txt @ 83:60c9769439b8
LLVM 3.7
author | Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 18 Feb 2015 14:55:36 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
78:af83660cff7b | 83:60c9769439b8 |
---|---|
1 This directory contains LLVM bindings for the Go programming language | |
2 (http://golang.org). | |
3 | |
4 Prerequisites | |
5 ------------- | |
6 | |
7 * Go 1.2+. | |
8 * CMake (to build LLVM). | |
9 | |
10 Using the bindings | |
11 ------------------ | |
12 | |
13 The package path "llvm.org/llvm/bindings/go/llvm" can be used to | |
14 import the latest development version of LLVM from SVN. Paths such as | |
15 "llvm.org/llvm.v36/bindings/go/llvm" refer to released versions of LLVM. | |
16 | |
17 It is recommended to use the "-d" flag with "go get" to download the | |
18 package or a dependency, as an additional step is required to build LLVM | |
19 (see "Building LLVM" below). | |
20 | |
21 Building LLVM | |
22 ------------- | |
23 | |
24 The script "build.sh" in this directory can be used to build LLVM and prepare | |
25 it to be used by the bindings. If you receive an error message from "go build" | |
26 like this: | |
27 | |
28 ./analysis.go:4:84: fatal error: llvm-c/Analysis.h: No such file or directory | |
29 #include <llvm-c/Analysis.h> // If you are getting an error here read bindings/go/README.txt | |
30 | |
31 or like this: | |
32 | |
33 ./llvm_dep.go:5: undefined: run_build_sh | |
34 | |
35 it means that LLVM needs to be built or updated by running the script. | |
36 | |
37 $ $GOPATH/src/llvm.org/llvm/bindings/go/build.sh | |
38 | |
39 Any command line arguments supplied to the script are passed to LLVM's CMake | |
40 build system. A good set of arguments to use during development are: | |
41 | |
42 $ $GOPATH/src/llvm.org/llvm/bindings/go/build.sh -DCMAKE_BUILD_TYPE=Debug -DLLVM_TARGETS_TO_BUILD=host -DBUILD_SHARED_LIBS=ON | |
43 | |
44 Note that CMake keeps a cache of build settings so once you have built | |
45 LLVM there is no need to pass these arguments again after updating. | |
46 | |
47 Alternatively, you can build LLVM yourself, but you must then set the | |
48 CGO_CPPFLAGS, CGO_CXXFLAGS and CGO_LDFLAGS environment variables: | |
49 | |
50 $ export CGO_CPPFLAGS="`/path/to/llvm-build/bin/llvm-config --cppflags`" | |
51 $ export CGO_CXXFLAGS=-std=c++11 | |
52 $ export CGO_LDFLAGS="`/path/to/llvm-build/bin/llvm-config --ldflags --libs --system-libs all`" | |
53 $ go build -tags byollvm |