Module: Mesa
Branch: master
Commit: 959e83d65075513f989cb1fe634dca314a7e185f
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=959e83d65075513f989cb1fe634dca314a7e185f

Author: Johannes Obermayr <[email protected]>
Date:   Fri Nov 30 01:44:56 2012 +0100

clover: Adapt libclc's INCLUDEDIR and LIBEXECDIR to make use of the new 
introduced libclc.pc.

Tom Stellard:
  -Keep --with-libclc-path and mark it deprecated.

Reviewed-by: Tom Stellard <[email protected]>

---

 configs/current.in                                 |    3 ++-
 configure.ac                                       |   18 ++++++++++++++++--
 src/gallium/state_trackers/clover/Makefile.am      |    3 ++-
 .../state_trackers/clover/llvm/invocation.cpp      |    4 ++--
 4 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/configs/current.in b/configs/current.in
index dc8e63f..9bd07c1 100644
--- a/configs/current.in
+++ b/configs/current.in
@@ -183,7 +183,8 @@ VA_LIB_INSTALL_DIR=@VA_LIB_INSTALL_DIR@
 XORG_DRIVER_INSTALL_DIR = @XORG_DRIVER_INSTALL_DIR@
 
 # Path to OpenCL C library libclc
-LIBCLC_PATH = @LIBCLC_PATH@
+LIBCLC_INCLUDEDIR = @LIBCLC_INCLUDEDIR@
+LIBCLC_LIBEXECDIR = @LIBCLC_LIBEXECDIR@
 
 # pkg-config substitutions
 GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@
diff --git a/configure.ac b/configure.ac
index 1414ce8..dd731b3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1452,17 +1452,27 @@ dnl
 
 AC_ARG_WITH([libclc-path],
    [AS_HELP_STRING([--with-libclc-path],
-         [Path to libclc builtins library.  Example: 
--with-libclc-path=\$HOME/libclc/])],
+         [DEPRECATED: See 
http://dri.freedesktop.org/wiki/GalliumCompute#How_to_Install])],
    [LIBCLC_PATH="$withval"],
    [LIBCLC_PATH=""])
 
+if test "x$LIBCLC_PATH" != x; then
+   AC_MSG_ERROR([The --with-libclc-path option has been deprecated.
+                  Please review the updated build instructions for clover:
+                 http://dri.freedesktop.org/wiki/GalliumCompute])
+fi
+
+
 AC_ARG_WITH([clang-libdir],
    [AS_HELP_STRING([--with-clang-libdir],
          [Path to Clang libraries @<:@default=llvm-config --libdir@:>@])],
    [CLANG_LIBDIR="$withval"],
    [CLANG_LIBDIR=""])
 
-AC_SUBST([LIBCLC_PATH])
+LIBCLC_INCLUDEDIR=`pkg-config --variable=includedir libclc`
+LIBCLC_LIBEXECDIR=`pkg-config --variable=libexecdir libclc`
+AC_SUBST([LIBCLC_INCLUDEDIR])
+AC_SUBST([LIBCLC_LIBEXECDIR])
 
 if test "x$enable_opencl" = xyes; then
     if test "x$with_gallium_drivers" = x; then
@@ -1473,6 +1483,10 @@ if test "x$enable_opencl" = xyes; then
         AC_MSG_ERROR([gcc >= 4.6 is required to build clover])
     fi
 
+    if test "x$LIBCLC_INCLUDEDIR" == x || test "x$LIBCLC_LIBEXECDIR" == x; then
+        AC_MSG_ERROR([pkg-config cannot use libclc.pc which is required to 
build clover])
+    fi
+
     GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS clover"
     GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS opencl"
     enable_gallium_loader=yes
diff --git a/src/gallium/state_trackers/clover/Makefile.am 
b/src/gallium/state_trackers/clover/Makefile.am
index ee69f89..863d136 100644
--- a/src/gallium/state_trackers/clover/Makefile.am
+++ b/src/gallium/state_trackers/clover/Makefile.am
@@ -23,7 +23,8 @@ libclllvm_la_CXXFLAGS = \
        -std=c++98 \
        $(LLVM_CPPFLAGS) \
        $(DEFINES) \
-       -DLIBCLC_PATH=\"$(LIBCLC_PATH)/\" \
+       -DLIBCLC_INCLUDEDIR=\"$(LIBCLC_INCLUDEDIR)/\" \
+       -DLIBCLC_LIBEXECDIR=\"$(LIBCLC_LIBEXECDIR)/\" \
        -DCLANG_RESOURCE_DIR=\"$(CLANG_RESOURCE_DIR)\"
 
 libclllvm_la_SOURCES = \
diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp 
b/src/gallium/state_trackers/clover/llvm/invocation.cpp
index c997367..0bd8e22 100644
--- a/src/gallium/state_trackers/clover/llvm/invocation.cpp
+++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp
@@ -149,7 +149,7 @@ namespace {
       c.getHeaderSearchOpts().ResourceDir = CLANG_RESOURCE_DIR;
 
       // Add libclc generic search path
-      c.getHeaderSearchOpts().AddPath(LIBCLC_PATH "/generic/include/",
+      c.getHeaderSearchOpts().AddPath(LIBCLC_INCLUDEDIR,
                                       clang::frontend::Angled,
                                       false, false, false);
 
@@ -205,7 +205,7 @@ namespace {
       llvm::Linker linker("clover", mod);
 
       // Link the kernel with libclc
-      linker.LinkInFile(llvm::sys::Path(LIBCLC_PATH + triple + 
"/lib/builtins.bc"), isNative);
+      linker.LinkInFile(llvm::sys::Path(LIBCLC_LIBEXECDIR + triple + ".bc"), 
isNative);
       mod = linker.releaseModule();
 
       // Add a function internalizer pass.

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to