From 959e83d65075513f989cb1fe634dca314a7e185f Mon Sep 17 00:00:00 2001 From: Johannes Obermayr Date: Fri, 30 Nov 2012 01:44:56 +0100 Subject: [PATCH] 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 --- configs/current.in | 3 ++- configure.ac | 18 ++++++++++++++++-- src/gallium/state_trackers/clover/Makefile.am | 3 ++- src/gallium/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. -- 2.7.4