autoconfの一部を実際に書き換えることなく、AC_LANG、AC_TRY_COMPILEなどの一連のマクロにきれいにフックできるかどうか、私は非常に疑わしいです。
安全な方法は、テストを書くことです。複数のプロジェクトでそのテストが必要でない限り、テストを 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"])