Hi, I am experiencing some troubles with cuda. I studied mailing lists about autoconf, automake and libtool and from what I have read
( Is it possible to check nvcc compilation with autoconf? http://stackoverflow.com/questions/1973846/is-it-possible-to-check-nvcc-compilation-with-autoconf Automake and CUDA http://www.mail-archive.com/help-gnu-ut...@gnu.org/msg01279.html Libtool generating flags incompatible with nvcc http://old.nabble.com/Libtool-generating-flags-incompatible-with-nvcc-td25248683.html and http://lists.gnu.org/archive/html/bug-libtool/2009-09/msg00000.html ) I have understood that from the linking point of view nvcc and gcc are compatible. So one should only compile .cu files with nvcc and then link all together with gcc. To compile .cu files with nvcc I did this in my Makefile.am include ${top_srcdir}/cuda.mk where cuda.mk is SUFFIXES = .cu .cu.$(OBJEXT): $(NVCC) -c $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $ (CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -o $@ $< libcore_tests_sources = tnlLongVectorCUDATester.cu \ tnlLongVectorCUDATester.h check_LTLIBRARIES = libcore-tests.la libcore_tests_la_SOURCES = $(libcore_tests_sources) as I have learned from 'Automake and CUDA'. However, I get this /bin/bash ../libtool --tag=CXX --mode=link ccache g++ -g -O2 -I/usr/local/cuda/include -DHAVE_CUDA -DHAVE_CPPUNIT -I../../src -I../../src/debug -I../src/debug -I/usr/local/cuda/include -DHAVE_CUDA -I../src/debug -I../src/core -I../src/diff -I../../src -I../../../src -L/usr/local/cuda/lib64 -lcudart -lcppunit -o tnl-unit-tests-dbg tnl-unit-tests.o libtnl-dbg-0.1.la core/libcore-tests-dbg.la libtool: link: ccache g++ -g -O2 -I/usr/local/cuda/include -DHAVE_CUDA -DHAVE_CPPUNIT -I../../src -I../../src/debug -I../src/debug -I/usr/local/cuda/include -DHAVE_CUDA -I../src/debug -I../src/core -I../src/diff -I../../src -I../../../src -o .libs/tnl-unit-tests-dbg tnl-unit-tests.o -L/usr/local/cuda/lib64 ./.libs/libtnl-dbg-0.1.so core/.libs/libcore-tests-dbg.a -lcudart /usr/lib/libcppunit.so -ldl -Wl,-rpath -Wl,/home/oberhuber/local/lib tnl-unit-tests.o: In function `TestCaller': /usr/include/cppunit/TestCaller.h:119: undefined reference to `tnlLongVectorCUDATester<float>::testKernel()' simply tnlLongVectorCUDATester.cu is completely omitted. If I change it to tnlLongVectorCUDATester.cpp (only in Makefile.am) I get make[2]: *** No rule to make target `../../../src/core/tnlLongVectorCUDATester.cpp', needed by `tnlLongVectorCUDATester.lo'. Stop. so automake now tries to compile it. Can anybody, please, help me and tell me what I am doing wrong? Thanks a lot, Tomas Oberhuber.