Integrate building from git repo into kvm class

Add support for the kvm class to be built from the kvm git repo.  After pulling
down the latest kvm and kvm-userspace git repositories, use kvm-userspace's make
sync method for pulling in the latest kvm kernel bits.

Add a dict to track full path to modules for running with modinfo to extract kvm
version for scripts.

Signed-off-by: Ryan Harper <ryanh@us.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1033 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/server/kvm.py b/server/kvm.py
index f997d16..cecf6f3 100644
--- a/server/kvm.py
+++ b/server/kvm.py
@@ -86,6 +86,7 @@
 	support_dir= None
 	addresses= []
 	insert_modules= True
+	modules= {}
 
 
 	def __del__(self):
@@ -147,7 +148,7 @@
 		self.host.run(_remove_modules_script)
 
 
-	def install(self, addresses, build=True, insert_modules=True):
+	def install(self, addresses, build=True, insert_modules=True, syncdir=None):
 		"""
 		Compile the kvm software on the host that the object was 
 		initialized with.
@@ -231,9 +232,25 @@
 			self.host.run('cd "%s" && ./configure %s' % (
 				utils.sh_escape(self.build_dir), 
 				configure_modules,))
+			if syncdir:
+				cmd = 'cd "%s/kernel" && make sync LINUX=%s' % (
+				utils.sh_escape(self.build_dir),
+				utils.sh_escape(syncdir))
+				self.host.run(cmd)
 			self.host.run('make -j%d -C "%s"' % (
 				self.host.get_num_cpu() * 2, 
 				utils.sh_escape(self.build_dir),))
+			# remember path to modules
+			self.modules['kvm'] = "%s" %(
+				utils.sh_escape(os.path.join(self.build_dir, 
+				"kernel/kvm.ko")))
+			self.modules['kvm-intel'] = "%s" %(
+				utils.sh_escape(os.path.join(self.build_dir, 
+				"kernel/kvm-intel.ko")))
+			self.modules['kvm-amd'] = "%s" %(
+				utils.sh_escape(os.path.join(self.build_dir, 
+				"kernel/kvm-amd.ko")))
+			print self.modules
 
 		self.initialize()