[OCaml] [autoconf] Migrate to ocamlfind.
[oota-llvm.git] / bindings / go / build.sh
index df4855ba76141906f5d86e0dbd8321fe3248ba0e..3f0be00f808e8b870d35eedbe0bbfbd61f67183c 100755 (executable)
@@ -1,36 +1,5 @@
 #!/bin/sh -xe
 
-llvm_components="\
-all-targets \
-analysis \
-asmparser \
-asmprinter \
-bitreader \
-bitwriter \
-codegen \
-core \
-debuginfo \
-executionengine \
-instrumentation \
-interpreter \
-ipo \
-irreader \
-linker \
-mc \
-mcjit \
-objcarcopts \
-option \
-profiledata \
-scalaropts \
-support \
-target \
-"
-
-if [ "$1" == "--print-components" ] ; then
-  echo $llvm_components
-  exit 0
-fi
-
 gollvmdir=$(dirname "$0")/llvm
 
 workdir=$gollvmdir/workdir
@@ -41,12 +10,14 @@ 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
+  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
@@ -54,14 +25,7 @@ else
   make -C $llvm_builddir -j4
 fi
 
+$llvm_go print-config > $gollvmdir/llvm_config.go
+
 llvm_version="$($llvm_config --version)"
-llvm_cflags="$($llvm_config --cppflags)"
-llvm_ldflags="$($llvm_config --ldflags) $($llvm_config --libs $llvm_components) $($llvm_config --system-libs)"
-if [ $(uname) != "Darwin" ]; then
-  # OS X doesn't like -rpath with cgo. See:
-  # https://code.google.com/p/go/issues/detail?id=7293
-  llvm_ldflags="-Wl,-rpath,$($llvm_config --libdir) $llvm_ldflags"
-fi
-sed -e "s#@LLVM_CFLAGS@#$llvm_cflags#g; s#@LLVM_LDFLAGS@#$llvm_ldflags#g" $gollvmdir/llvm_config.go.in > \
-  $gollvmdir/llvm_config.go
 printf "package llvm\n\nconst Version = \"%s\"\n" "$llvm_version" > $gollvmdir/version.go