configfrag.ac revision 1.1.1.1
1# Plugins for offload execution, configure.ac fragment. -*- mode: autoconf -*- 2# 3# Copyright (C) 2014-2015 Free Software Foundation, Inc. 4# 5# Contributed by Mentor Embedded. 6# 7# This file is part of the GNU Offloading and Multi Processing Library 8# (libgomp). 9# 10# Libgomp is free software; you can redistribute it and/or modify it 11# under the terms of the GNU General Public License as published by 12# the Free Software Foundation; either version 3, or (at your option) 13# any later version. 14# 15# Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY 16# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 17# FOR A PARTICULAR PURPOSE. See the GNU General Public License for 18# more details. 19# 20# Under Section 7 of GPL version 3, you are granted additional 21# permissions described in the GCC Runtime Library Exception, version 22# 3.1, as published by the Free Software Foundation. 23# 24# You should have received a copy of the GNU General Public License and 25# a copy of the GCC Runtime Library Exception along with this program; 26# see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 27# <http://www.gnu.org/licenses/>. 28 29offload_targets= 30AC_SUBST(offload_targets) 31plugin_support=yes 32AC_CHECK_LIB(dl, dlsym, , [plugin_support=no]) 33if test x"$plugin_support" = xyes; then 34 AC_DEFINE(PLUGIN_SUPPORT, 1, 35 [Define if all infrastructure, needed for plugins, is supported.]) 36 offload_targets=host_nonshm 37elif test "x${enable_offload_targets-no}" != xno; then 38 AC_MSG_ERROR([Can't support offloading without support for plugins]) 39fi 40 41# Look for the CUDA driver package. 42CUDA_DRIVER_INCLUDE= 43CUDA_DRIVER_LIB= 44AC_SUBST(CUDA_DRIVER_INCLUDE) 45AC_SUBST(CUDA_DRIVER_LIB) 46CUDA_DRIVER_CPPFLAGS= 47CUDA_DRIVER_LDFLAGS= 48AC_ARG_WITH(cuda-driver, 49 [AS_HELP_STRING([--with-cuda-driver=PATH], 50 [specify prefix directory for installed CUDA driver package. 51 Equivalent to --with-cuda-driver-include=PATH/include 52 plus --with-cuda-driver-lib=PATH/lib])]) 53AC_ARG_WITH(cuda-driver-include, 54 [AS_HELP_STRING([--with-cuda-driver-include=PATH], 55 [specify directory for installed CUDA driver include files])]) 56AC_ARG_WITH(cuda-driver-lib, 57 [AS_HELP_STRING([--with-cuda-driver-lib=PATH], 58 [specify directory for the installed CUDA driver library])]) 59if test "x$with_cuda_driver" != x; then 60 CUDA_DRIVER_INCLUDE=$with_cuda_driver/include 61 CUDA_DRIVER_LIB=$with_cuda_driver/lib 62fi 63if test "x$with_cuda_driver_include" != x; then 64 CUDA_DRIVER_INCLUDE=$with_cuda_driver_include 65fi 66if test "x$with_cuda_driver_lib" != x; then 67 CUDA_DRIVER_LIB=$with_cuda_driver_lib 68fi 69if test "x$CUDA_DRIVER_INCLUDE" != x; then 70 CUDA_DRIVER_CPPFLAGS=-I$CUDA_DRIVER_INCLUDE 71fi 72if test "x$CUDA_DRIVER_LIB" != x; then 73 CUDA_DRIVER_LDFLAGS=-L$CUDA_DRIVER_LIB 74fi 75 76PLUGIN_NVPTX=0 77PLUGIN_NVPTX_CPPFLAGS= 78PLUGIN_NVPTX_LDFLAGS= 79PLUGIN_NVPTX_LIBS= 80AC_SUBST(PLUGIN_NVPTX) 81AC_SUBST(PLUGIN_NVPTX_CPPFLAGS) 82AC_SUBST(PLUGIN_NVPTX_LDFLAGS) 83AC_SUBST(PLUGIN_NVPTX_LIBS) 84 85# Get offload targets and path to install tree of offloading compiler. 86offload_additional_options= 87offload_additional_lib_paths= 88AC_SUBST(offload_additional_options) 89AC_SUBST(offload_additional_lib_paths) 90if test x"$enable_offload_targets" != x; then 91 for tgt in `echo $enable_offload_targets | sed -e 's#,# #g'`; do 92 tgt_dir=`echo $tgt | grep '=' | sed 's/.*=//'` 93 tgt=`echo $tgt | sed 's/=.*//'` 94 case $tgt in 95 *-intelmic-* | *-intelmicemul-*) 96 tgt_name=intelmic 97 ;; 98 nvptx*) 99 tgt_name=nvptx 100 PLUGIN_NVPTX=$tgt 101 PLUGIN_NVPTX_CPPFLAGS=$CUDA_DRIVER_CPPFLAGS 102 PLUGIN_NVPTX_LDFLAGS=$CUDA_DRIVER_LDFLAGS 103 PLUGIN_NVPTX_LIBS='-lcuda' 104 105 PLUGIN_NVPTX_save_CPPFLAGS=$CPPFLAGS 106 CPPFLAGS="$PLUGIN_NVPTX_CPPFLAGS $CPPFLAGS" 107 PLUGIN_NVPTX_save_LDFLAGS=$LDFLAGS 108 LDFLAGS="$PLUGIN_NVPTX_LDFLAGS $LDFLAGS" 109 PLUGIN_NVPTX_save_LIBS=$LIBS 110 LIBS="$PLUGIN_NVPTX_LIBS $LIBS" 111 AC_LINK_IFELSE( 112 [AC_LANG_PROGRAM( 113 [#include "cuda.h"], 114 [CUresult r = cuCtxPushCurrent (NULL);])], 115 [PLUGIN_NVPTX=1]) 116 CPPFLAGS=$PLUGIN_NVPTX_save_CPPFLAGS 117 LDFLAGS=$PLUGIN_NVPTX_save_LDFLAGS 118 LIBS=$PLUGIN_NVPTX_save_LIBS 119 case $PLUGIN_NVPTX in 120 nvptx*) 121 PLUGIN_NVPTX=0 122 AC_MSG_ERROR([CUDA driver package required for nvptx support]) 123 ;; 124 esac 125 ;; 126 *) 127 AC_MSG_ERROR([unknown offload target specified]) 128 ;; 129 esac 130 if test x"$offload_targets" = x; then 131 offload_targets=$tgt_name 132 else 133 offload_targets=$offload_targets,$tgt_name 134 fi 135 if test x"$tgt_dir" != x; then 136 offload_additional_options="$offload_additional_options -B$tgt_dir/libexec/gcc/\$(target_alias)/\$(gcc_version) -B$tgt_dir/bin" 137 offload_additional_lib_paths="$offload_additional_lib_paths:$tgt_dir/lib64:$tgt_dir/lib:$tgt_dir/lib32" 138 else 139 offload_additional_options="$offload_additional_options -B\$(libexecdir)/gcc/\$(target_alias)/\$(gcc_version) -B\$(bindir)" 140 offload_additional_lib_paths="$offload_additional_lib_paths:$toolexeclibdir" 141 fi 142 done 143fi 144AC_DEFINE_UNQUOTED(OFFLOAD_TARGETS, "$offload_targets", 145 [Define to hold the list of target names suitable for offloading.]) 146AM_CONDITIONAL([PLUGIN_NVPTX], [test $PLUGIN_NVPTX = 1]) 147AC_DEFINE_UNQUOTED([PLUGIN_NVPTX], [$PLUGIN_NVPTX], 148 [Define to 1 if the NVIDIA plugin is built, 0 if not.]) 149