2005-07-03 Yoshinori Okuji <okuji@enbug.org>

* DISTLIST: Added genfslist.sh.

	* normal/main.c (fs_module_list): New variable.
	(autoload_fs_module): New function.
	(read_fs_list): Likewise.
	(grub_normal_execute): Call read_fs_list.

	* kern/fs.c (grub_fs_autoload_hook): New variable.
	(grub_fs_probe): Added support for auto-loading.

	* include/grub/normal.h (struct grub_fs_module_list): New struct.
	(grub_fs_module_list_t): New type.

	* include/grub/fs.h (grub_fs_autoload_hook_t): New type.
	(grub_fs_autoload_hook): New prototype.

	* genfslist.sh: New file.

	* genmk.rb: Added a rule to generate a filesystem list.
This commit is contained in:
okuji 2005-07-03 18:06:56 +00:00
parent 121c1d832e
commit 39c9d41d2a
10 changed files with 663 additions and 84 deletions

View file

@ -142,6 +142,7 @@ UNDSYMFILES += #{undsym}
src = sources[i]
fake_obj = File.basename(src).suffix('o')
command = 'cmd-' + fake_obj.suffix('lst')
fs = 'fs-' + fake_obj.suffix('lst')
dep = deps[i]
flag = if /\.c$/ =~ src then 'CFLAGS' else 'ASFLAGS' end
dir = File.dirname(src)
@ -157,14 +158,21 @@ UNDSYMFILES += #{undsym}
-include #{dep}
CLEANFILES += #{command}
CLEANFILES += #{command} #{fs}
COMMANDFILES += #{command}
FSFILES += #{fs}
#{command}: #{src} gencmdlist.sh
set -e; \
$(CC) -I#{dir} -I$(srcdir)/#{dir} $(CPPFLAGS) $(#{flag}) $(#{prefix}_#{flag}) -E $< \
| sh $(srcdir)/gencmdlist.sh #{symbolic_name} > $@ || (rm -f $@; exit 1)
#{fs}: #{src} genfslist.sh
set -e; \
$(CC) -I#{dir} -I$(srcdir)/#{dir} $(CPPFLAGS) $(#{flag}) $(#{prefix}_#{flag}) -E $< \
| sh $(srcdir)/genfslist.sh #{symbolic_name} > $@ || (rm -f $@; exit 1)
"
end.join('')
end
@ -325,11 +333,14 @@ while l = gets
end
puts "CLEANFILES += moddep.lst command.lst"
puts "pkgdata_DATA += moddep.lst command.lst"
puts "CLEANFILES += moddep.lst command.lst fs.lst"
puts "pkgdata_DATA += moddep.lst command.lst fs.lst"
puts "moddep.lst: $(DEFSYMFILES) $(UNDSYMFILES) genmoddep"
puts " cat $(DEFSYMFILES) /dev/null | ./genmoddep $(UNDSYMFILES) > $@ \\"
puts " || (rm -f $@; exit 1)"
puts ""
puts "command.lst: $(COMMANDFILES)"
puts " cat $^ /dev/null | sort > $@"
puts ""
puts "fs.lst: $(FSFILES)"
puts " cat $^ /dev/null | sort > $@"