diff -urN libtool-2.2.6b~/configure.ac libtool-2.2.6b/configure.ac
--- libtool-2.2.6b~/configure.ac	2009-11-16 07:11:59.000000000 -0600
+++ libtool-2.2.6b/configure.ac	2010-03-09 16:33:19.000000000 -0600
@@ -187,6 +187,7 @@
 LT_LANG(Fortran 77)
 LT_LANG(Fortran)
 LT_LANG(Java)
+LT_LANG(CUDA)
 LT_LANG(Windows Resource)
 
 
@@ -197,6 +198,7 @@
 AM_CONDITIONAL(HAVE_F77,[test -n "[$]_LT_TAGVAR(compiler, F77)"])
 AM_CONDITIONAL(HAVE_FC,[test -n "[$]_LT_TAGVAR(compiler, FC)"])
 AM_CONDITIONAL(HAVE_GCJ, [test -n "[$]_LT_TAGVAR(compiler, GCJ)"])
+AM_CONDITIONAL(HAVE_CUDA, [test -n "[$]_LT_TAGVAR(compiler, CUDA)"])
 AM_CONDITIONAL(HAVE_RC, [test -n "[$]_LT_TAGVAR(compiler, RC)"])
 
 
diff -urN libtool-2.2.6b~/libltdl/m4/libtool.m4 libtool-2.2.6b/libltdl/m4/libtool.m4
--- libtool-2.2.6b~/libltdl/m4/libtool.m4	2009-11-16 07:11:59.000000000 -0600
+++ libtool-2.2.6b/libltdl/m4/libtool.m4	2010-03-09 16:29:49.000000000 -0600
@@ -771,6 +771,7 @@
   [C],			[_LT_LANG(C)],
   [C++],		[_LT_LANG(CXX)],
   [Java],		[_LT_LANG(GCJ)],
+  [CUDA],		[_LT_LANG(CUDA)],
   [Fortran 77],		[_LT_LANG(F77)],
   [Fortran],		[_LT_LANG(FC)],
   [Windows Resource],	[_LT_LANG(RC)],
@@ -821,6 +822,22 @@
        m4_ifdef([LT_PROG_GCJ],
 	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
 
+dnl adopted from LT_LANG(GCJ) for CUDA compiler
+dnl The call to [A][M_PROG_CUDA] is quoted like that to stop aclocal
+dnl pulling things in needlessly.
+AC_PROVIDE_IFELSE([AC_PROG_CUDA],
+  [LT_LANG(CUDA)],
+  [AC_PROVIDE_IFELSE([A][M_PROG_CUDA],
+    [LT_LANG(CUDA)],
+    [AC_PROVIDE_IFELSE([LT_PROG_CUDA],
+      [LT_LANG(CUDA)],
+      [m4_ifdef([AC_PROG_CUDA],
+	[m4_define([AC_PROG_CUDA], defn([AC_PROG_CUDA])[LT_LANG(CUDA)])])
+       m4_ifdef([A][M_PROG_CUDA],
+	[m4_define([A][M_PROG_CUDA], defn([A][M_PROG_CUDA])[LT_LANG(CUDA)])])
+       m4_ifdef([LT_PROG_CUDA],
+	[m4_define([LT_PROG_CUDA], defn([LT_PROG_CUDA])[LT_LANG(CUDA)])])])])])
+
 AC_PROVIDE_IFELSE([LT_PROG_RC],
   [LT_LANG(RC)],
   [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
@@ -831,6 +848,7 @@
 AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
 AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
 AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+AU_DEFUN([AC_LIBTOOL_CUDA], [LT_LANG(CUDA)])
 dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
 dnl AC_DEFUN([AC_LIBTOOL_F77], [])
@@ -4016,6 +4034,12 @@
 	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
 	;;
+      nvcc*)
+	# NVIDIA CUDA compiler, using gcc backend
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xcompiler -Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Xcompiler -static'
+	;;
       *)
 	case `$CC -V 2>&1 | sed 5q` in
 	*Sun\ C*)
@@ -6912,6 +6936,74 @@
 ])# _LT_LANG_GCJ_CONFIG
 
 
+# _LT_LANG_CUDA_CONFIG([TAG])
+# --------------------------
+# Adopted from _LT_LANG_CUDA_CONFIG(GCJ)
+# Ensure that the configuration variables for the GNU CUDA Compiler compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_CUDA_CONFIG],
+[AC_REQUIRE([LT_PROG_CUDA])dnl
+AC_LANG_SAVE
+
+# Source file extension for CUDA test sources.
+ac_ext=cu
+
+# Object file extension for compiled CUDA test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="__global__ void kernel() {}"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="int main(){ int a[] = { 0 }; }"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+lt_save_GCC=$GCC
+
+# nvcc uses gcc as backend on linux, but must use -Xcompiler to pass options
+GCC=
+CC=${CUDA-"nvcc"}
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)="$LD"
+_LT_CC_BASENAME([$compiler])
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# CUDA did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC="$lt_save_CC"
+])# _LT_LANG_CUDA_CONFIG
+
+
 # _LT_LANG_RC_CONFIG([TAG])
 # -------------------------
 # Ensure that the configuration variables for the Windows resource compiler
@@ -6977,6 +7069,21 @@
 dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
 
+# LT_PROG_CUDA
+# -----------
+# try AC_PROG_CUDA, AM_PROG_CUDA, otherwise get nvcc full path
+AC_DEFUN([LT_PROG_CUDA],
+[m4_ifdef([AC_PROG_CUDA], [AC_PROG_CUDA],
+  [m4_ifdef([A][M_PROG_CUDA], [A][M_PROG_CUDA],
+    [AC_PATH_TOOL(CUDA, nvcc, ,[$PATH$PATH_SEPARATOR/usr/local/cuda/cuda/bin]dnl
+		      [$PATH$PATH_SEPARATOR/usr/local/cuda/bin]dnl
+		      [$PATH$PATH_SEPARATOR/opt/cuda/cuda/bin]dnl
+		      [$PATH_SEPARATOR/opt/cuda/bin])
+      test "x${CUDAFLAGS+set}" = xset || CUDAFLAGS="-g -O2"
+      AC_SUBST(CUDAFLAGS)])])[]dnl
+])
+
+
 
 # LT_PROG_RC
 # ----------
diff -urN libtool-2.2.6b~/Makefile.am libtool-2.2.6b/Makefile.am
--- libtool-2.2.6b~/Makefile.am	2009-11-16 07:11:59.000000000 -0600
+++ libtool-2.2.6b/Makefile.am	2010-03-09 16:31:42.000000000 -0600
@@ -482,7 +482,8 @@
 	CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" CXXCPP="$(CXXCPP)" \
 	F77="$(F77)" FFLAGS="$(FFLAGS)" \
 	FC="$(FC)" FCFLAGS="$(FCFLAGS)" \
-	GCJ="$(GCJ)" GCJFLAGS="$(GCJFLAGS)"
+	GCJ="$(GCJ)" GCJFLAGS="$(GCJFLAGS)" \
+	CUDA="$(CUDA)" CUDAFLAGS="$(CUDAFLAGS)"
 
 BUILDCHECK_ENVIRONMENT = _lt_pkgdatadir="$(abs_top_srcdir)" \
 	LIBTOOLIZE="$(abs_top_builddir)/libtoolize" \
