diff --git a/DEVELOPERS b/DEVELOPERS index 5b3e8f322e..17db96aa62 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -2119,6 +2119,7 @@ F: package/tstools/ N: Valentin Korenblit F: package/clang/ +F: package/libclc/ F: package/llvm/ N: Vanya Sergeev diff --git a/package/Config.in b/package/Config.in index fd86e37a52..8d53c72138 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1618,6 +1618,7 @@ menu "Other" source "package/libcap/Config.in" source "package/libcap-ng/Config.in" source "package/libcgroup/Config.in" + source "package/libclc/Config.in" source "package/libcofi/Config.in" source "package/libcorrect/Config.in" source "package/libcroco/Config.in" diff --git a/package/libclc/Config.in b/package/libclc/Config.in new file mode 100644 index 0000000000..4bba6a9175 --- /dev/null +++ b/package/libclc/Config.in @@ -0,0 +1,10 @@ +config BR2_PACKAGE_LIBCLC + bool "libclc" + depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS + depends on BR2_HOST_GCC_AT_LEAST_4_8 + help + libclc is an open source, BSD licensed implementation of + the library requirements of the OpenCL C programming language, + as specified by the OpenCL 1.1 Specification. + + http://libclc.llvm.org/ diff --git a/package/libclc/libclc.hash b/package/libclc/libclc.hash new file mode 100644 index 0000000000..6c06648fcf --- /dev/null +++ b/package/libclc/libclc.hash @@ -0,0 +1,3 @@ +# locally calculated +sha256 8d7b42fba6db4a124c74f0ac475c1bc515761cbf3d559820b4cbe5b33e94f26c libclc-dabae5a2afb78cba0320a86e3f5f0b5dc83e077c.tar.gz +sha256 45187a46f0637e4e92decb51d8dc3c9e4957b349d0283dfbd6647e8000d9ac7f LICENSE.TXT diff --git a/package/libclc/libclc.mk b/package/libclc/libclc.mk new file mode 100644 index 0000000000..17903c05d4 --- /dev/null +++ b/package/libclc/libclc.mk @@ -0,0 +1,47 @@ +################################################################################ +# +# libclc +# +################################################################################ + +# There are only two releases: release_35 and release_38, but the last +# commit is from 2 years ago. Master has some recent activity. +LIBCLC_VERSION = dabae5a2afb78cba0320a86e3f5f0b5dc83e077c +LIBCLC_SITE = https://git.llvm.org/git/libclc +LIBCLC_SITE_METHOD = git +LIBCLC_LICENSE = NCSA or MIT +LIBCLC_LICENSE_FILES = LICENSE.TXT + +LIBCLC_DEPENDENCIES = host-clang host-llvm +LIBCLC_INSTALL_STAGING = YES + +# C++ compiler is used to build a small tool (prepare-builtins) for the host. +# It must be built with the C++ compiler from the host. +# +# The headers are installed in /usr/share and not /usr/include, +# because they are needed at runtime on the target to build the OpenCL +# kernels. +LIBCLC_CONF_OPTS = \ + --with-llvm-config=$(HOST_DIR)/usr/bin/llvm-config \ + --prefix=/usr \ + --includedir=/usr/share \ + --pkgconfigdir=/usr/lib/pkgconfig \ + --with-cxx-compiler=$(HOSTCXX) + +define LIBCLC_CONFIGURE_CMDS + (cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure.py $(LIBCLC_CONF_OPTS)) +endef + +define LIBCLC_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) +endef + +define LIBCLC_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install +endef + +define LIBCLC_INSTALL_STAGING_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install +endef + +$(eval $(generic-package))