summaryrefslogtreecommitdiffstats
path: root/bindings/go/build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'bindings/go/build.sh')
-rwxr-xr-xbindings/go/build.sh28
1 files changed, 28 insertions, 0 deletions
diff --git a/bindings/go/build.sh b/bindings/go/build.sh
new file mode 100755
index 0000000..3177852
--- /dev/null
+++ b/bindings/go/build.sh
@@ -0,0 +1,28 @@
+#!/bin/sh -xe
+
+gollvmdir=$(dirname "$0")/llvm
+
+workdir=$gollvmdir/workdir
+llvmdir=$gollvmdir/../../..
+llvm_builddir=$workdir/llvm_build
+
+mkdir -p $llvm_builddir
+
+cmake_flags="../../../../.. $@"
+llvm_config="$llvm_builddir/bin/llvm-config"
+llvm_go="$llvm_builddir/bin/llvm-go"
+
+if test -n "`which ninja`" ; then
+ # If Ninja is available, we can speed up the build by building only the
+ # required subset of LLVM.
+ (cd $llvm_builddir && cmake -G Ninja $cmake_flags)
+ ninja -C $llvm_builddir llvm-config llvm-go
+ llvm_components="$($llvm_go print-components)"
+ llvm_buildtargets="$($llvm_config --libs $llvm_components | sed -e 's/-l//g')"
+ ninja -C $llvm_builddir $llvm_buildtargets FileCheck
+else
+ (cd $llvm_builddir && cmake $cmake_flags)
+ make -C $llvm_builddir -j4
+fi
+
+$llvm_go print-config > $gollvmdir/llvm_config.go