r4051 - trunk/scripts

Bastian Blank waldi at costa.debian.org
Wed Aug 24 18:02:01 UTC 2005


Author: waldi
Date: 2005-08-24 18:02:00 +0000 (Wed, 24 Aug 2005)
New Revision: 4051

Modified:
   trunk/scripts/prune-non-free
Log:
prune-non-free: Write Kconfig file.


Modified: trunk/scripts/prune-non-free
===================================================================
--- trunk/scripts/prune-non-free	2005-08-24 17:52:47 UTC (rev 4050)
+++ trunk/scripts/prune-non-free	2005-08-24 18:02:00 UTC (rev 4051)
@@ -170,7 +170,7 @@
 	Shell.command("tar #{zipped}cf " + Shell.quote(tarball) + ' ' + Shell.quote(srcdir))
 end
 
-def rm_config_from_kconfig(mf, option)
+def rm_config_from_kconfig(mf, option, kc)
 	option = option.sub(/^CONFIG_/, '')
 	kconfig = File.dirname(mf) + '/Kconfig'
 	new_kconfig = File.open(kconfig + '.new', 'w')
@@ -182,6 +182,7 @@
 			deleting = false
 		end
 		new_kconfig << line unless deleting
+		kc << line if deleting
 	}
 	new_kconfig.close
 	FileUtils.mv(kconfig + '.new', kconfig)
@@ -202,14 +203,12 @@
 	FileUtils.mv(mf + '.new', mf)
 end
 
-def scan_frag(src_mf, dst_mf, objects)
+def scan_frag(src_mf, dst_mf, dst_kc, objects)
 	deferred = []
 	File.open(src_mf).each { |line|
 		if objects.find { |o| line.include?(o) } || line.include?('EXTRA_CFLAGS')
 			if line =~ /\$\((CONFIG_[A-Z0-9_]+)\)/
-				rm_config_from_kconfig(src_mf, $1)
-				dst_mf << "EXTRA_CFLAGS += -D#{$1}=1\n"
-				line.gsub!(/\$\(CONFIG_[A-Z0-9_]+\)/, 'm')
+				rm_config_from_kconfig(src_mf, $1, dst_kc)
 			end
 			dst_mf << line
 
@@ -225,19 +224,23 @@
 	deferred
 end
 
-def mk_makefile(name, dst_dir, fragments)
-	mf = File.open(name, 'w')
+def mk_files(dir, dst_dir, fragments)
+	kc = File.open("#{dir}/Kconfig", 'w')
+	mf = File.open("#{dir}/Makefile", 'w')
+	kc << "menu \"Non-free modules\"\n\n"
 	mf << "DIR ?= /usr/src/linux\n\n"
 	fragments.each { |key, val|
 		objects = val
 #		objects << 'EXTRA_CFLAGS' # make sure these don't get missed
 		while objects.length > 0
-			objects = scan_frag("#{dst_dir}/#{key}/Makefile", mf, objects)
+			objects = scan_frag("#{dst_dir}/#{key}/Makefile", mf, kc, objects)
 		end
 	}
+	kc << "\nendmenu\n"
 	mf << "\nall:\n\t$(MAKE) -C $(DIR) M=$(CURDIR) modules\n\n"
 	mf << "install:\n\t$(MAKE) -C $(DIR) M=$(CURDIR) modules_install\n\n"
 	mf << "clean:\n\t$(MAKE) -C $(DIR) M=$(CURDIR) clean\n\n"
+	kc.close
 	mf.close
 end
 
@@ -291,7 +294,7 @@
 	end
 }
 # Generate non-free driver's makefile
-mk_makefile("#{nonfree_dir}/Makefile", free_dir, makefiles)
+mk_files(nonfree_dir, free_dir, makefiles)
 
 dont_nuke_debian_dir(free_dir)
 




More information about the Kernel-svn-changes mailing list