我非常怀疑是否可以干净地挂钩到 AC_LANG、AC_TRY_COMPILE 等系列宏,而无需实际重写 autoconf 的一部分。
对你来说安全的赌注是只写一个测试。除非您需要在多个项目中进行该测试,否则您甚至不需要将测试包装在 m4 宏中。
测试将首先检查nvcc
,然后创建一些测试源文件,最后尝试使用$NVCC
. 然后它需要检查编译结果(返回代码和生成的文件),最后清理它可能生成的所有文件。
就像是
AC_ARG_VAR([NVCC], [nvcc compiler to use])
AC_PATH_PROG([NVCC], [nvcc], [no])
working_nvcc=no
if test "x$NVCC" != "xno"
the
AC_MSG_CHECKING([whether nvcc works])
cat>conftest.c<<EOF
__global__ whatever() {
...
}
EOF
if $NVCC conftest.c && test_whether_output_files_are_ok
then
working_nvcc=yes
fi
rm -f conftest.c conftest.o conftest.what conftest.ever
AC_MSG_RESULT([$working_nvcc])
fi
AM_CONDITIONAL([WORKING_NVCC], [test "x$working_nvcc" = "xyes"])