]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2005-07-03 Yoshinori Okuji <okuji@enbug.org>
authorokuji <okuji@localhost>
Sun, 3 Jul 2005 18:06:56 +0000 (18:06 +0000)
committerokuji <okuji@localhost>
Sun, 3 Jul 2005 18:06:56 +0000 (18:06 +0000)
* 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.

ChangeLog
DISTLIST
conf/i386-pc.mk
conf/powerpc-ieee1275.mk
genfslist.sh [new file with mode: 0644]
genmk.rb
include/grub/fs.h
include/grub/normal.h
kern/fs.c
normal/main.c

index dc07c62b9c079a1c39494c9900082dbe20328068..e45a3c011a3f2b1ea244b5ebe0b495f877df47f5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,25 @@
+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.
+
 2005-06-30  Marco Gerards  <metgerards@student.han.nl>
 
        * configure.ac: Fix the test for cross-compiling.
index 8e2a31eec74169a1df78ba405864769524ee7c7b..46f73fc7c70c37e6bf9630d8c6f7dd092fcd11b1 100644 (file)
--- a/DISTLIST
+++ b/DISTLIST
@@ -17,6 +17,7 @@ configure
 configure.ac
 gencmdlist.sh
 gendistlist.sh
+genfslist.sh
 genkernsyms.sh
 genmk.rb
 genmodsrc.sh
index 9a353d0cd3e6234ba71cd7585ac18f7f9777ba7a..7f3d99013297c6e57e7f9d610146b8e2b4aad85a 100644 (file)
@@ -992,12 +992,17 @@ _chain_mod-loader_i386_pc_chainloader.d: loader/i386/pc/chainloader.c
 
 -include _chain_mod-loader_i386_pc_chainloader.d
 
-CLEANFILES += cmd-chainloader.lst
+CLEANFILES += cmd-chainloader.lst fs-chainloader.lst
 COMMANDFILES += cmd-chainloader.lst
+FSFILES += fs-chainloader.lst
 
 cmd-chainloader.lst: loader/i386/pc/chainloader.c gencmdlist.sh
        set -e;           $(CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(CPPFLAGS) $(CFLAGS) $(_chain_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh _chain > $@ || (rm -f $@; exit 1)
 
+fs-chainloader.lst: loader/i386/pc/chainloader.c genfslist.sh
+       set -e;           $(CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(CPPFLAGS) $(CFLAGS) $(_chain_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh _chain > $@ || (rm -f $@; exit 1)
+
+
 _chain_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For chain.mod.
@@ -1037,12 +1042,17 @@ chain_mod-loader_i386_pc_chainloader_normal.d: loader/i386/pc/chainloader_normal
 
 -include chain_mod-loader_i386_pc_chainloader_normal.d
 
-CLEANFILES += cmd-chainloader_normal.lst
+CLEANFILES += cmd-chainloader_normal.lst fs-chainloader_normal.lst
 COMMANDFILES += cmd-chainloader_normal.lst
+FSFILES += fs-chainloader_normal.lst
 
 cmd-chainloader_normal.lst: loader/i386/pc/chainloader_normal.c gencmdlist.sh
        set -e;           $(CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(CPPFLAGS) $(CFLAGS) $(chain_mod_CFLAGS) -E $<       | sh $(srcdir)/gencmdlist.sh chain > $@ || (rm -f $@; exit 1)
 
+fs-chainloader_normal.lst: loader/i386/pc/chainloader_normal.c genfslist.sh
+       set -e;           $(CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(CPPFLAGS) $(CFLAGS) $(chain_mod_CFLAGS) -E $<       | sh $(srcdir)/genfslist.sh chain > $@ || (rm -f $@; exit 1)
+
+
 chain_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For fshelp.mod.
@@ -1082,12 +1092,17 @@ fshelp_mod-fs_fshelp.d: fs/fshelp.c
 
 -include fshelp_mod-fs_fshelp.d
 
-CLEANFILES += cmd-fshelp.lst
+CLEANFILES += cmd-fshelp.lst fs-fshelp.lst
 COMMANDFILES += cmd-fshelp.lst
+FSFILES += fs-fshelp.lst
 
 cmd-fshelp.lst: fs/fshelp.c gencmdlist.sh
        set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(fshelp_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh fshelp > $@ || (rm -f $@; exit 1)
 
+fs-fshelp.lst: fs/fshelp.c genfslist.sh
+       set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(fshelp_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh fshelp > $@ || (rm -f $@; exit 1)
+
+
 fshelp_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For fat.mod.
@@ -1127,12 +1142,17 @@ fat_mod-fs_fat.d: fs/fat.c
 
 -include fat_mod-fs_fat.d
 
-CLEANFILES += cmd-fat.lst
+CLEANFILES += cmd-fat.lst fs-fat.lst
 COMMANDFILES += cmd-fat.lst
+FSFILES += fs-fat.lst
 
 cmd-fat.lst: fs/fat.c gencmdlist.sh
        set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(fat_mod_CFLAGS) -E $<         | sh $(srcdir)/gencmdlist.sh fat > $@ || (rm -f $@; exit 1)
 
+fs-fat.lst: fs/fat.c genfslist.sh
+       set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(fat_mod_CFLAGS) -E $<         | sh $(srcdir)/genfslist.sh fat > $@ || (rm -f $@; exit 1)
+
+
 fat_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For ext2.mod.
@@ -1172,12 +1192,17 @@ ext2_mod-fs_ext2.d: fs/ext2.c
 
 -include ext2_mod-fs_ext2.d
 
-CLEANFILES += cmd-ext2.lst
+CLEANFILES += cmd-ext2.lst fs-ext2.lst
 COMMANDFILES += cmd-ext2.lst
+FSFILES += fs-ext2.lst
 
 cmd-ext2.lst: fs/ext2.c gencmdlist.sh
        set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(ext2_mod_CFLAGS) -E $<        | sh $(srcdir)/gencmdlist.sh ext2 > $@ || (rm -f $@; exit 1)
 
+fs-ext2.lst: fs/ext2.c genfslist.sh
+       set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(ext2_mod_CFLAGS) -E $<        | sh $(srcdir)/genfslist.sh ext2 > $@ || (rm -f $@; exit 1)
+
+
 ext2_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For ufs.mod.
@@ -1217,12 +1242,17 @@ ufs_mod-fs_ufs.d: fs/ufs.c
 
 -include ufs_mod-fs_ufs.d
 
-CLEANFILES += cmd-ufs.lst
+CLEANFILES += cmd-ufs.lst fs-ufs.lst
 COMMANDFILES += cmd-ufs.lst
+FSFILES += fs-ufs.lst
 
 cmd-ufs.lst: fs/ufs.c gencmdlist.sh
        set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(ufs_mod_CFLAGS) -E $<         | sh $(srcdir)/gencmdlist.sh ufs > $@ || (rm -f $@; exit 1)
 
+fs-ufs.lst: fs/ufs.c genfslist.sh
+       set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(ufs_mod_CFLAGS) -E $<         | sh $(srcdir)/genfslist.sh ufs > $@ || (rm -f $@; exit 1)
+
+
 ufs_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For minix.mod.
@@ -1262,12 +1292,17 @@ minix_mod-fs_minix.d: fs/minix.c
 
 -include minix_mod-fs_minix.d
 
-CLEANFILES += cmd-minix.lst
+CLEANFILES += cmd-minix.lst fs-minix.lst
 COMMANDFILES += cmd-minix.lst
+FSFILES += fs-minix.lst
 
 cmd-minix.lst: fs/minix.c gencmdlist.sh
        set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(minix_mod_CFLAGS) -E $<       | sh $(srcdir)/gencmdlist.sh minix > $@ || (rm -f $@; exit 1)
 
+fs-minix.lst: fs/minix.c genfslist.sh
+       set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(minix_mod_CFLAGS) -E $<       | sh $(srcdir)/genfslist.sh minix > $@ || (rm -f $@; exit 1)
+
+
 minix_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For hfs.mod.
@@ -1307,12 +1342,17 @@ hfs_mod-fs_hfs.d: fs/hfs.c
 
 -include hfs_mod-fs_hfs.d
 
-CLEANFILES += cmd-hfs.lst
+CLEANFILES += cmd-hfs.lst fs-hfs.lst
 COMMANDFILES += cmd-hfs.lst
+FSFILES += fs-hfs.lst
 
 cmd-hfs.lst: fs/hfs.c gencmdlist.sh
        set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(hfs_mod_CFLAGS) -E $<         | sh $(srcdir)/gencmdlist.sh hfs > $@ || (rm -f $@; exit 1)
 
+fs-hfs.lst: fs/hfs.c genfslist.sh
+       set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(hfs_mod_CFLAGS) -E $<         | sh $(srcdir)/genfslist.sh hfs > $@ || (rm -f $@; exit 1)
+
+
 hfs_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For jfs.mod.
@@ -1352,12 +1392,17 @@ jfs_mod-fs_jfs.d: fs/jfs.c
 
 -include jfs_mod-fs_jfs.d
 
-CLEANFILES += cmd-jfs.lst
+CLEANFILES += cmd-jfs.lst fs-jfs.lst
 COMMANDFILES += cmd-jfs.lst
+FSFILES += fs-jfs.lst
 
 cmd-jfs.lst: fs/jfs.c gencmdlist.sh
        set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(jfs_mod_CFLAGS) -E $<         | sh $(srcdir)/gencmdlist.sh jfs > $@ || (rm -f $@; exit 1)
 
+fs-jfs.lst: fs/jfs.c genfslist.sh
+       set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(jfs_mod_CFLAGS) -E $<         | sh $(srcdir)/genfslist.sh jfs > $@ || (rm -f $@; exit 1)
+
+
 jfs_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For iso9660.mod.
@@ -1401,12 +1446,17 @@ _linux_mod-loader_i386_pc_linux.d: loader/i386/pc/linux.c
 
 -include _linux_mod-loader_i386_pc_linux.d
 
-CLEANFILES += cmd-linux.lst
+CLEANFILES += cmd-linux.lst fs-linux.lst
 COMMANDFILES += cmd-linux.lst
+FSFILES += fs-linux.lst
 
 cmd-linux.lst: loader/i386/pc/linux.c gencmdlist.sh
        set -e;           $(CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(CPPFLAGS) $(CFLAGS) $(_linux_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh _linux > $@ || (rm -f $@; exit 1)
 
+fs-linux.lst: loader/i386/pc/linux.c genfslist.sh
+       set -e;           $(CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(CPPFLAGS) $(CFLAGS) $(_linux_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh _linux > $@ || (rm -f $@; exit 1)
+
+
 _linux_mod_CFLAGS = $(COMMON_CFLAGS)
  
 # For linux.mod.
@@ -1446,12 +1496,17 @@ linux_mod-loader_i386_pc_linux_normal.d: loader/i386/pc/linux_normal.c
 
 -include linux_mod-loader_i386_pc_linux_normal.d
 
-CLEANFILES += cmd-linux_normal.lst
+CLEANFILES += cmd-linux_normal.lst fs-linux_normal.lst
 COMMANDFILES += cmd-linux_normal.lst
+FSFILES += fs-linux_normal.lst
 
 cmd-linux_normal.lst: loader/i386/pc/linux_normal.c gencmdlist.sh
        set -e;           $(CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(CPPFLAGS) $(CFLAGS) $(linux_mod_CFLAGS) -E $<       | sh $(srcdir)/gencmdlist.sh linux > $@ || (rm -f $@; exit 1)
 
+fs-linux_normal.lst: loader/i386/pc/linux_normal.c genfslist.sh
+       set -e;           $(CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(CPPFLAGS) $(CFLAGS) $(linux_mod_CFLAGS) -E $<       | sh $(srcdir)/genfslist.sh linux > $@ || (rm -f $@; exit 1)
+
+
 linux_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For normal.mod.
@@ -1493,12 +1548,17 @@ normal_mod-normal_arg.d: normal/arg.c
 
 -include normal_mod-normal_arg.d
 
-CLEANFILES += cmd-arg.lst
+CLEANFILES += cmd-arg.lst fs-arg.lst
 COMMANDFILES += cmd-arg.lst
+FSFILES += fs-arg.lst
 
 cmd-arg.lst: normal/arg.c gencmdlist.sh
        set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1)
 
+fs-arg.lst: normal/arg.c genfslist.sh
+       set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1)
+
+
 normal_mod-normal_cmdline.o: normal/cmdline.c
        $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $<
 
@@ -1507,12 +1567,17 @@ normal_mod-normal_cmdline.d: normal/cmdline.c
 
 -include normal_mod-normal_cmdline.d
 
-CLEANFILES += cmd-cmdline.lst
+CLEANFILES += cmd-cmdline.lst fs-cmdline.lst
 COMMANDFILES += cmd-cmdline.lst
+FSFILES += fs-cmdline.lst
 
 cmd-cmdline.lst: normal/cmdline.c gencmdlist.sh
        set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1)
 
+fs-cmdline.lst: normal/cmdline.c genfslist.sh
+       set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1)
+
+
 normal_mod-normal_command.o: normal/command.c
        $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $<
 
@@ -1521,12 +1586,17 @@ normal_mod-normal_command.d: normal/command.c
 
 -include normal_mod-normal_command.d
 
-CLEANFILES += cmd-command.lst
+CLEANFILES += cmd-command.lst fs-command.lst
 COMMANDFILES += cmd-command.lst
+FSFILES += fs-command.lst
 
 cmd-command.lst: normal/command.c gencmdlist.sh
        set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1)
 
+fs-command.lst: normal/command.c genfslist.sh
+       set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1)
+
+
 normal_mod-normal_context.o: normal/context.c
        $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $<
 
@@ -1535,12 +1605,17 @@ normal_mod-normal_context.d: normal/context.c
 
 -include normal_mod-normal_context.d
 
-CLEANFILES += cmd-context.lst
+CLEANFILES += cmd-context.lst fs-context.lst
 COMMANDFILES += cmd-context.lst
+FSFILES += fs-context.lst
 
 cmd-context.lst: normal/context.c gencmdlist.sh
        set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1)
 
+fs-context.lst: normal/context.c genfslist.sh
+       set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1)
+
+
 normal_mod-normal_main.o: normal/main.c
        $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $<
 
@@ -1549,12 +1624,17 @@ normal_mod-normal_main.d: normal/main.c
 
 -include normal_mod-normal_main.d
 
-CLEANFILES += cmd-main.lst
+CLEANFILES += cmd-main.lst fs-main.lst
 COMMANDFILES += cmd-main.lst
+FSFILES += fs-main.lst
 
 cmd-main.lst: normal/main.c gencmdlist.sh
        set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1)
 
+fs-main.lst: normal/main.c genfslist.sh
+       set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1)
+
+
 normal_mod-normal_menu.o: normal/menu.c
        $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $<
 
@@ -1563,12 +1643,17 @@ normal_mod-normal_menu.d: normal/menu.c
 
 -include normal_mod-normal_menu.d
 
-CLEANFILES += cmd-menu.lst
+CLEANFILES += cmd-menu.lst fs-menu.lst
 COMMANDFILES += cmd-menu.lst
+FSFILES += fs-menu.lst
 
 cmd-menu.lst: normal/menu.c gencmdlist.sh
        set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1)
 
+fs-menu.lst: normal/menu.c genfslist.sh
+       set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1)
+
+
 normal_mod-normal_menu_entry.o: normal/menu_entry.c
        $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $<
 
@@ -1577,12 +1662,17 @@ normal_mod-normal_menu_entry.d: normal/menu_entry.c
 
 -include normal_mod-normal_menu_entry.d
 
-CLEANFILES += cmd-menu_entry.lst
+CLEANFILES += cmd-menu_entry.lst fs-menu_entry.lst
 COMMANDFILES += cmd-menu_entry.lst
+FSFILES += fs-menu_entry.lst
 
 cmd-menu_entry.lst: normal/menu_entry.c gencmdlist.sh
        set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1)
 
+fs-menu_entry.lst: normal/menu_entry.c genfslist.sh
+       set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1)
+
+
 normal_mod-normal_i386_setjmp.o: normal/i386/setjmp.S
        $(CC) -Inormal/i386 -I$(srcdir)/normal/i386 $(CPPFLAGS) $(ASFLAGS) $(normal_mod_ASFLAGS) -c -o $@ $<
 
@@ -1591,12 +1681,17 @@ normal_mod-normal_i386_setjmp.d: normal/i386/setjmp.S
 
 -include normal_mod-normal_i386_setjmp.d
 
-CLEANFILES += cmd-setjmp.lst
+CLEANFILES += cmd-setjmp.lst fs-setjmp.lst
 COMMANDFILES += cmd-setjmp.lst
+FSFILES += fs-setjmp.lst
 
 cmd-setjmp.lst: normal/i386/setjmp.S gencmdlist.sh
        set -e;           $(CC) -Inormal/i386 -I$(srcdir)/normal/i386 $(CPPFLAGS) $(ASFLAGS) $(normal_mod_ASFLAGS) -E $<          | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1)
 
+fs-setjmp.lst: normal/i386/setjmp.S genfslist.sh
+       set -e;           $(CC) -Inormal/i386 -I$(srcdir)/normal/i386 $(CPPFLAGS) $(ASFLAGS) $(normal_mod_ASFLAGS) -E $<          | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1)
+
+
 normal_mod_CFLAGS = $(COMMON_CFLAGS)
 normal_mod_ASFLAGS = $(COMMON_ASFLAGS)
 
@@ -1637,12 +1732,17 @@ hello_mod-hello_hello.d: hello/hello.c
 
 -include hello_mod-hello_hello.d
 
-CLEANFILES += cmd-hello.lst
+CLEANFILES += cmd-hello.lst fs-hello.lst
 COMMANDFILES += cmd-hello.lst
+FSFILES += fs-hello.lst
 
 cmd-hello.lst: hello/hello.c gencmdlist.sh
        set -e;           $(CC) -Ihello -I$(srcdir)/hello $(CPPFLAGS) $(CFLAGS) $(hello_mod_CFLAGS) -E $<         | sh $(srcdir)/gencmdlist.sh hello > $@ || (rm -f $@; exit 1)
 
+fs-hello.lst: hello/hello.c genfslist.sh
+       set -e;           $(CC) -Ihello -I$(srcdir)/hello $(CPPFLAGS) $(CFLAGS) $(hello_mod_CFLAGS) -E $<         | sh $(srcdir)/genfslist.sh hello > $@ || (rm -f $@; exit 1)
+
+
 hello_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For boot.mod.
@@ -1682,12 +1782,17 @@ boot_mod-commands_boot.d: commands/boot.c
 
 -include boot_mod-commands_boot.d
 
-CLEANFILES += cmd-boot.lst
+CLEANFILES += cmd-boot.lst fs-boot.lst
 COMMANDFILES += cmd-boot.lst
+FSFILES += fs-boot.lst
 
 cmd-boot.lst: commands/boot.c gencmdlist.sh
        set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(boot_mod_CFLAGS) -E $<    | sh $(srcdir)/gencmdlist.sh boot > $@ || (rm -f $@; exit 1)
 
+fs-boot.lst: commands/boot.c genfslist.sh
+       set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(boot_mod_CFLAGS) -E $<    | sh $(srcdir)/genfslist.sh boot > $@ || (rm -f $@; exit 1)
+
+
 boot_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For terminal.mod.
@@ -1727,12 +1832,17 @@ terminal_mod-commands_terminal.d: commands/terminal.c
 
 -include terminal_mod-commands_terminal.d
 
-CLEANFILES += cmd-terminal.lst
+CLEANFILES += cmd-terminal.lst fs-terminal.lst
 COMMANDFILES += cmd-terminal.lst
+FSFILES += fs-terminal.lst
 
 cmd-terminal.lst: commands/terminal.c gencmdlist.sh
        set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(terminal_mod_CFLAGS) -E $<        | sh $(srcdir)/gencmdlist.sh terminal > $@ || (rm -f $@; exit 1)
 
+fs-terminal.lst: commands/terminal.c genfslist.sh
+       set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(terminal_mod_CFLAGS) -E $<        | sh $(srcdir)/genfslist.sh terminal > $@ || (rm -f $@; exit 1)
+
+
 terminal_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For ls.mod.
@@ -1772,12 +1882,17 @@ ls_mod-commands_ls.d: commands/ls.c
 
 -include ls_mod-commands_ls.d
 
-CLEANFILES += cmd-ls.lst
+CLEANFILES += cmd-ls.lst fs-ls.lst
 COMMANDFILES += cmd-ls.lst
+FSFILES += fs-ls.lst
 
 cmd-ls.lst: commands/ls.c gencmdlist.sh
        set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(ls_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh ls > $@ || (rm -f $@; exit 1)
 
+fs-ls.lst: commands/ls.c genfslist.sh
+       set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(ls_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh ls > $@ || (rm -f $@; exit 1)
+
+
 ls_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For cmp.mod.
@@ -1817,12 +1932,17 @@ cmp_mod-commands_cmp.d: commands/cmp.c
 
 -include cmp_mod-commands_cmp.d
 
-CLEANFILES += cmd-cmp.lst
+CLEANFILES += cmd-cmp.lst fs-cmp.lst
 COMMANDFILES += cmd-cmp.lst
+FSFILES += fs-cmp.lst
 
 cmd-cmp.lst: commands/cmp.c gencmdlist.sh
        set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(cmp_mod_CFLAGS) -E $<     | sh $(srcdir)/gencmdlist.sh cmp > $@ || (rm -f $@; exit 1)
 
+fs-cmp.lst: commands/cmp.c genfslist.sh
+       set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(cmp_mod_CFLAGS) -E $<     | sh $(srcdir)/genfslist.sh cmp > $@ || (rm -f $@; exit 1)
+
+
 cmp_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For cat.mod.
@@ -1862,12 +1982,17 @@ cat_mod-commands_cat.d: commands/cat.c
 
 -include cat_mod-commands_cat.d
 
-CLEANFILES += cmd-cat.lst
+CLEANFILES += cmd-cat.lst fs-cat.lst
 COMMANDFILES += cmd-cat.lst
+FSFILES += fs-cat.lst
 
 cmd-cat.lst: commands/cat.c gencmdlist.sh
        set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(cat_mod_CFLAGS) -E $<     | sh $(srcdir)/gencmdlist.sh cat > $@ || (rm -f $@; exit 1)
 
+fs-cat.lst: commands/cat.c genfslist.sh
+       set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(cat_mod_CFLAGS) -E $<     | sh $(srcdir)/genfslist.sh cat > $@ || (rm -f $@; exit 1)
+
+
 cat_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For help.mod.
@@ -1907,12 +2032,17 @@ help_mod-commands_help.d: commands/help.c
 
 -include help_mod-commands_help.d
 
-CLEANFILES += cmd-help.lst
+CLEANFILES += cmd-help.lst fs-help.lst
 COMMANDFILES += cmd-help.lst
+FSFILES += fs-help.lst
 
 cmd-help.lst: commands/help.c gencmdlist.sh
        set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(help_mod_CFLAGS) -E $<    | sh $(srcdir)/gencmdlist.sh help > $@ || (rm -f $@; exit 1)
 
+fs-help.lst: commands/help.c genfslist.sh
+       set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(help_mod_CFLAGS) -E $<    | sh $(srcdir)/genfslist.sh help > $@ || (rm -f $@; exit 1)
+
+
 help_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For reboot.mod.
@@ -1952,12 +2082,17 @@ reboot_mod-commands_i386_pc_reboot.d: commands/i386/pc/reboot.c
 
 -include reboot_mod-commands_i386_pc_reboot.d
 
-CLEANFILES += cmd-reboot.lst
+CLEANFILES += cmd-reboot.lst fs-reboot.lst
 COMMANDFILES += cmd-reboot.lst
+FSFILES += fs-reboot.lst
 
 cmd-reboot.lst: commands/i386/pc/reboot.c gencmdlist.sh
        set -e;           $(CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(CPPFLAGS) $(CFLAGS) $(reboot_mod_CFLAGS) -E $<          | sh $(srcdir)/gencmdlist.sh reboot > $@ || (rm -f $@; exit 1)
 
+fs-reboot.lst: commands/i386/pc/reboot.c genfslist.sh
+       set -e;           $(CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(CPPFLAGS) $(CFLAGS) $(reboot_mod_CFLAGS) -E $<          | sh $(srcdir)/genfslist.sh reboot > $@ || (rm -f $@; exit 1)
+
+
 reboot_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For halt.mod.
@@ -1997,12 +2132,17 @@ halt_mod-commands_i386_pc_halt.d: commands/i386/pc/halt.c
 
 -include halt_mod-commands_i386_pc_halt.d
 
-CLEANFILES += cmd-halt.lst
+CLEANFILES += cmd-halt.lst fs-halt.lst
 COMMANDFILES += cmd-halt.lst
+FSFILES += fs-halt.lst
 
 cmd-halt.lst: commands/i386/pc/halt.c gencmdlist.sh
        set -e;           $(CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(CPPFLAGS) $(CFLAGS) $(halt_mod_CFLAGS) -E $<    | sh $(srcdir)/gencmdlist.sh halt > $@ || (rm -f $@; exit 1)
 
+fs-halt.lst: commands/i386/pc/halt.c genfslist.sh
+       set -e;           $(CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(CPPFLAGS) $(CFLAGS) $(halt_mod_CFLAGS) -E $<    | sh $(srcdir)/genfslist.sh halt > $@ || (rm -f $@; exit 1)
+
+
 halt_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For vga.mod.
@@ -2042,12 +2182,17 @@ vga_mod-term_i386_pc_vga.d: term/i386/pc/vga.c
 
 -include vga_mod-term_i386_pc_vga.d
 
-CLEANFILES += cmd-vga.lst
+CLEANFILES += cmd-vga.lst fs-vga.lst
 COMMANDFILES += cmd-vga.lst
+FSFILES += fs-vga.lst
 
 cmd-vga.lst: term/i386/pc/vga.c gencmdlist.sh
        set -e;           $(CC) -Iterm/i386/pc -I$(srcdir)/term/i386/pc $(CPPFLAGS) $(CFLAGS) $(vga_mod_CFLAGS) -E $<     | sh $(srcdir)/gencmdlist.sh vga > $@ || (rm -f $@; exit 1)
 
+fs-vga.lst: term/i386/pc/vga.c genfslist.sh
+       set -e;           $(CC) -Iterm/i386/pc -I$(srcdir)/term/i386/pc $(CPPFLAGS) $(CFLAGS) $(vga_mod_CFLAGS) -E $<     | sh $(srcdir)/genfslist.sh vga > $@ || (rm -f $@; exit 1)
+
+
 vga_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For font.mod.
@@ -2087,12 +2232,17 @@ font_mod-font_manager.d: font/manager.c
 
 -include font_mod-font_manager.d
 
-CLEANFILES += cmd-manager.lst
+CLEANFILES += cmd-manager.lst fs-manager.lst
 COMMANDFILES += cmd-manager.lst
+FSFILES += fs-manager.lst
 
 cmd-manager.lst: font/manager.c gencmdlist.sh
        set -e;           $(CC) -Ifont -I$(srcdir)/font $(CPPFLAGS) $(CFLAGS) $(font_mod_CFLAGS) -E $<    | sh $(srcdir)/gencmdlist.sh font > $@ || (rm -f $@; exit 1)
 
+fs-manager.lst: font/manager.c genfslist.sh
+       set -e;           $(CC) -Ifont -I$(srcdir)/font $(CPPFLAGS) $(CFLAGS) $(font_mod_CFLAGS) -E $<    | sh $(srcdir)/genfslist.sh font > $@ || (rm -f $@; exit 1)
+
+
 font_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For _multiboot.mod.
@@ -2132,12 +2282,17 @@ _multiboot_mod-loader_i386_pc_multiboot.d: loader/i386/pc/multiboot.c
 
 -include _multiboot_mod-loader_i386_pc_multiboot.d
 
-CLEANFILES += cmd-multiboot.lst
+CLEANFILES += cmd-multiboot.lst fs-multiboot.lst
 COMMANDFILES += cmd-multiboot.lst
+FSFILES += fs-multiboot.lst
 
 cmd-multiboot.lst: loader/i386/pc/multiboot.c gencmdlist.sh
        set -e;           $(CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(CPPFLAGS) $(CFLAGS) $(_multiboot_mod_CFLAGS) -E $<          | sh $(srcdir)/gencmdlist.sh _multiboot > $@ || (rm -f $@; exit 1)
 
+fs-multiboot.lst: loader/i386/pc/multiboot.c genfslist.sh
+       set -e;           $(CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(CPPFLAGS) $(CFLAGS) $(_multiboot_mod_CFLAGS) -E $<          | sh $(srcdir)/genfslist.sh _multiboot > $@ || (rm -f $@; exit 1)
+
+
 _multiboot_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For multiboot.mod.
@@ -2177,12 +2332,17 @@ multiboot_mod-loader_i386_pc_multiboot_normal.d: loader/i386/pc/multiboot_normal
 
 -include multiboot_mod-loader_i386_pc_multiboot_normal.d
 
-CLEANFILES += cmd-multiboot_normal.lst
+CLEANFILES += cmd-multiboot_normal.lst fs-multiboot_normal.lst
 COMMANDFILES += cmd-multiboot_normal.lst
+FSFILES += fs-multiboot_normal.lst
 
 cmd-multiboot_normal.lst: loader/i386/pc/multiboot_normal.c gencmdlist.sh
        set -e;           $(CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(CPPFLAGS) $(CFLAGS) $(multiboot_mod_CFLAGS) -E $<           | sh $(srcdir)/gencmdlist.sh multiboot > $@ || (rm -f $@; exit 1)
 
+fs-multiboot_normal.lst: loader/i386/pc/multiboot_normal.c genfslist.sh
+       set -e;           $(CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(CPPFLAGS) $(CFLAGS) $(multiboot_mod_CFLAGS) -E $<           | sh $(srcdir)/genfslist.sh multiboot > $@ || (rm -f $@; exit 1)
+
+
 multiboot_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For amiga.mod
@@ -2222,12 +2382,17 @@ amiga_mod-partmap_amiga.d: partmap/amiga.c
 
 -include amiga_mod-partmap_amiga.d
 
-CLEANFILES += cmd-amiga.lst
+CLEANFILES += cmd-amiga.lst fs-amiga.lst
 COMMANDFILES += cmd-amiga.lst
+FSFILES += fs-amiga.lst
 
 cmd-amiga.lst: partmap/amiga.c gencmdlist.sh
        set -e;           $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(amiga_mod_CFLAGS) -E $<     | sh $(srcdir)/gencmdlist.sh amiga > $@ || (rm -f $@; exit 1)
 
+fs-amiga.lst: partmap/amiga.c genfslist.sh
+       set -e;           $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(amiga_mod_CFLAGS) -E $<     | sh $(srcdir)/genfslist.sh amiga > $@ || (rm -f $@; exit 1)
+
+
 amiga_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For apple.mod
@@ -2267,12 +2432,17 @@ apple_mod-partmap_apple.d: partmap/apple.c
 
 -include apple_mod-partmap_apple.d
 
-CLEANFILES += cmd-apple.lst
+CLEANFILES += cmd-apple.lst fs-apple.lst
 COMMANDFILES += cmd-apple.lst
+FSFILES += fs-apple.lst
 
 cmd-apple.lst: partmap/apple.c gencmdlist.sh
        set -e;           $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(apple_mod_CFLAGS) -E $<     | sh $(srcdir)/gencmdlist.sh apple > $@ || (rm -f $@; exit 1)
 
+fs-apple.lst: partmap/apple.c genfslist.sh
+       set -e;           $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(apple_mod_CFLAGS) -E $<     | sh $(srcdir)/genfslist.sh apple > $@ || (rm -f $@; exit 1)
+
+
 apple_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For pc.mod
@@ -2312,12 +2482,17 @@ pc_mod-partmap_pc.d: partmap/pc.c
 
 -include pc_mod-partmap_pc.d
 
-CLEANFILES += cmd-pc.lst
+CLEANFILES += cmd-pc.lst fs-pc.lst
 COMMANDFILES += cmd-pc.lst
+FSFILES += fs-pc.lst
 
 cmd-pc.lst: partmap/pc.c gencmdlist.sh
        set -e;           $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(pc_mod_CFLAGS) -E $<        | sh $(srcdir)/gencmdlist.sh pc > $@ || (rm -f $@; exit 1)
 
+fs-pc.lst: partmap/pc.c genfslist.sh
+       set -e;           $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(pc_mod_CFLAGS) -E $<        | sh $(srcdir)/genfslist.sh pc > $@ || (rm -f $@; exit 1)
+
+
 pc_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For sun.mod
@@ -2357,12 +2532,17 @@ sun_mod-partmap_sun.d: partmap/sun.c
 
 -include sun_mod-partmap_sun.d
 
-CLEANFILES += cmd-sun.lst
+CLEANFILES += cmd-sun.lst fs-sun.lst
 COMMANDFILES += cmd-sun.lst
+FSFILES += fs-sun.lst
 
 cmd-sun.lst: partmap/sun.c gencmdlist.sh
        set -e;           $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(sun_mod_CFLAGS) -E $<       | sh $(srcdir)/gencmdlist.sh sun > $@ || (rm -f $@; exit 1)
 
+fs-sun.lst: partmap/sun.c genfslist.sh
+       set -e;           $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(sun_mod_CFLAGS) -E $<       | sh $(srcdir)/genfslist.sh sun > $@ || (rm -f $@; exit 1)
+
+
 sun_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For loopback.mod
@@ -2402,12 +2582,17 @@ loopback_mod-disk_loopback.d: disk/loopback.c
 
 -include loopback_mod-disk_loopback.d
 
-CLEANFILES += cmd-loopback.lst
+CLEANFILES += cmd-loopback.lst fs-loopback.lst
 COMMANDFILES += cmd-loopback.lst
+FSFILES += fs-loopback.lst
 
 cmd-loopback.lst: disk/loopback.c gencmdlist.sh
        set -e;           $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) $(loopback_mod_CFLAGS) -E $<        | sh $(srcdir)/gencmdlist.sh loopback > $@ || (rm -f $@; exit 1)
 
+fs-loopback.lst: disk/loopback.c genfslist.sh
+       set -e;           $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) $(loopback_mod_CFLAGS) -E $<        | sh $(srcdir)/genfslist.sh loopback > $@ || (rm -f $@; exit 1)
+
+
 loopback_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For default.mod
@@ -2447,12 +2632,17 @@ default_mod-commands_default.d: commands/default.c
 
 -include default_mod-commands_default.d
 
-CLEANFILES += cmd-default.lst
+CLEANFILES += cmd-default.lst fs-default.lst
 COMMANDFILES += cmd-default.lst
+FSFILES += fs-default.lst
 
 cmd-default.lst: commands/default.c gencmdlist.sh
        set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(default_mod_CFLAGS) -E $<         | sh $(srcdir)/gencmdlist.sh default > $@ || (rm -f $@; exit 1)
 
+fs-default.lst: commands/default.c genfslist.sh
+       set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(default_mod_CFLAGS) -E $<         | sh $(srcdir)/genfslist.sh default > $@ || (rm -f $@; exit 1)
+
+
 default_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For timeout.mod
@@ -2492,12 +2682,17 @@ timeout_mod-commands_timeout.d: commands/timeout.c
 
 -include timeout_mod-commands_timeout.d
 
-CLEANFILES += cmd-timeout.lst
+CLEANFILES += cmd-timeout.lst fs-timeout.lst
 COMMANDFILES += cmd-timeout.lst
+FSFILES += fs-timeout.lst
 
 cmd-timeout.lst: commands/timeout.c gencmdlist.sh
        set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(timeout_mod_CFLAGS) -E $<         | sh $(srcdir)/gencmdlist.sh timeout > $@ || (rm -f $@; exit 1)
 
+fs-timeout.lst: commands/timeout.c genfslist.sh
+       set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(timeout_mod_CFLAGS) -E $<         | sh $(srcdir)/genfslist.sh timeout > $@ || (rm -f $@; exit 1)
+
+
 timeout_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For configfile.mod
@@ -2537,18 +2732,26 @@ configfile_mod-commands_configfile.d: commands/configfile.c
 
 -include configfile_mod-commands_configfile.d
 
-CLEANFILES += cmd-configfile.lst
+CLEANFILES += cmd-configfile.lst fs-configfile.lst
 COMMANDFILES += cmd-configfile.lst
+FSFILES += fs-configfile.lst
 
 cmd-configfile.lst: commands/configfile.c gencmdlist.sh
        set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(configfile_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh configfile > $@ || (rm -f $@; exit 1)
 
+fs-configfile.lst: commands/configfile.c genfslist.sh
+       set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(configfile_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh configfile > $@ || (rm -f $@; exit 1)
+
+
 configfile_mod_CFLAGS = $(COMMON_CFLAGS)
-CLEANFILES += moddep.lst command.lst
-pkgdata_DATA += moddep.lst command.lst
+CLEANFILES += moddep.lst command.lst fs.lst
+pkgdata_DATA += moddep.lst command.lst fs.lst
 moddep.lst: $(DEFSYMFILES) $(UNDSYMFILES) genmoddep
        cat $(DEFSYMFILES) /dev/null | ./genmoddep $(UNDSYMFILES) > $@ \
          || (rm -f $@; exit 1)
 
 command.lst: $(COMMANDFILES)
        cat $^ /dev/null | sort > $@
+
+fs.lst: $(FSFILES)
+       cat $^ /dev/null | sort > $@
index e67eb20600bd89ab40d5ad3b56b32383d133c3aa..7c8304abbdd456d7e51b0da24c43c4282e73c4f6 100644 (file)
@@ -759,12 +759,17 @@ fshelp_mod-fs_fshelp.d: fs/fshelp.c
 
 -include fshelp_mod-fs_fshelp.d
 
-CLEANFILES += cmd-fshelp.lst
+CLEANFILES += cmd-fshelp.lst fs-fshelp.lst
 COMMANDFILES += cmd-fshelp.lst
+FSFILES += fs-fshelp.lst
 
 cmd-fshelp.lst: fs/fshelp.c gencmdlist.sh
        set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(fshelp_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh fshelp > $@ || (rm -f $@; exit 1)
 
+fs-fshelp.lst: fs/fshelp.c genfslist.sh
+       set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(fshelp_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh fshelp > $@ || (rm -f $@; exit 1)
+
+
 fshelp_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For fat.mod.
@@ -804,12 +809,17 @@ fat_mod-fs_fat.d: fs/fat.c
 
 -include fat_mod-fs_fat.d
 
-CLEANFILES += cmd-fat.lst
+CLEANFILES += cmd-fat.lst fs-fat.lst
 COMMANDFILES += cmd-fat.lst
+FSFILES += fs-fat.lst
 
 cmd-fat.lst: fs/fat.c gencmdlist.sh
        set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(fat_mod_CFLAGS) -E $<         | sh $(srcdir)/gencmdlist.sh fat > $@ || (rm -f $@; exit 1)
 
+fs-fat.lst: fs/fat.c genfslist.sh
+       set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(fat_mod_CFLAGS) -E $<         | sh $(srcdir)/genfslist.sh fat > $@ || (rm -f $@; exit 1)
+
+
 fat_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For ext2.mod.
@@ -849,12 +859,17 @@ ext2_mod-fs_ext2.d: fs/ext2.c
 
 -include ext2_mod-fs_ext2.d
 
-CLEANFILES += cmd-ext2.lst
+CLEANFILES += cmd-ext2.lst fs-ext2.lst
 COMMANDFILES += cmd-ext2.lst
+FSFILES += fs-ext2.lst
 
 cmd-ext2.lst: fs/ext2.c gencmdlist.sh
        set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(ext2_mod_CFLAGS) -E $<        | sh $(srcdir)/gencmdlist.sh ext2 > $@ || (rm -f $@; exit 1)
 
+fs-ext2.lst: fs/ext2.c genfslist.sh
+       set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(ext2_mod_CFLAGS) -E $<        | sh $(srcdir)/genfslist.sh ext2 > $@ || (rm -f $@; exit 1)
+
+
 ext2_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For ufs.mod.
@@ -894,12 +909,17 @@ ufs_mod-fs_ufs.d: fs/ufs.c
 
 -include ufs_mod-fs_ufs.d
 
-CLEANFILES += cmd-ufs.lst
+CLEANFILES += cmd-ufs.lst fs-ufs.lst
 COMMANDFILES += cmd-ufs.lst
+FSFILES += fs-ufs.lst
 
 cmd-ufs.lst: fs/ufs.c gencmdlist.sh
        set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(ufs_mod_CFLAGS) -E $<         | sh $(srcdir)/gencmdlist.sh ufs > $@ || (rm -f $@; exit 1)
 
+fs-ufs.lst: fs/ufs.c genfslist.sh
+       set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(ufs_mod_CFLAGS) -E $<         | sh $(srcdir)/genfslist.sh ufs > $@ || (rm -f $@; exit 1)
+
+
 ufs_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For minix.mod.
@@ -939,12 +959,17 @@ minix_mod-fs_minix.d: fs/minix.c
 
 -include minix_mod-fs_minix.d
 
-CLEANFILES += cmd-minix.lst
+CLEANFILES += cmd-minix.lst fs-minix.lst
 COMMANDFILES += cmd-minix.lst
+FSFILES += fs-minix.lst
 
 cmd-minix.lst: fs/minix.c gencmdlist.sh
        set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(minix_mod_CFLAGS) -E $<       | sh $(srcdir)/gencmdlist.sh minix > $@ || (rm -f $@; exit 1)
 
+fs-minix.lst: fs/minix.c genfslist.sh
+       set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(minix_mod_CFLAGS) -E $<       | sh $(srcdir)/genfslist.sh minix > $@ || (rm -f $@; exit 1)
+
+
 minix_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For hfs.mod.
@@ -984,12 +1009,17 @@ hfs_mod-fs_hfs.d: fs/hfs.c
 
 -include hfs_mod-fs_hfs.d
 
-CLEANFILES += cmd-hfs.lst
+CLEANFILES += cmd-hfs.lst fs-hfs.lst
 COMMANDFILES += cmd-hfs.lst
+FSFILES += fs-hfs.lst
 
 cmd-hfs.lst: fs/hfs.c gencmdlist.sh
        set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(hfs_mod_CFLAGS) -E $<         | sh $(srcdir)/gencmdlist.sh hfs > $@ || (rm -f $@; exit 1)
 
+fs-hfs.lst: fs/hfs.c genfslist.sh
+       set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(hfs_mod_CFLAGS) -E $<         | sh $(srcdir)/genfslist.sh hfs > $@ || (rm -f $@; exit 1)
+
+
 hfs_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For jfs.mod.
@@ -1029,12 +1059,17 @@ jfs_mod-fs_jfs.d: fs/jfs.c
 
 -include jfs_mod-fs_jfs.d
 
-CLEANFILES += cmd-jfs.lst
+CLEANFILES += cmd-jfs.lst fs-jfs.lst
 COMMANDFILES += cmd-jfs.lst
+FSFILES += fs-jfs.lst
 
 cmd-jfs.lst: fs/jfs.c gencmdlist.sh
        set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(jfs_mod_CFLAGS) -E $<         | sh $(srcdir)/gencmdlist.sh jfs > $@ || (rm -f $@; exit 1)
 
+fs-jfs.lst: fs/jfs.c genfslist.sh
+       set -e;           $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(jfs_mod_CFLAGS) -E $<         | sh $(srcdir)/genfslist.sh jfs > $@ || (rm -f $@; exit 1)
+
+
 jfs_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For iso9660.mod.
@@ -1078,12 +1113,17 @@ _linux_mod-loader_powerpc_ieee1275_linux.d: loader/powerpc/ieee1275/linux.c
 
 -include _linux_mod-loader_powerpc_ieee1275_linux.d
 
-CLEANFILES += cmd-linux.lst
+CLEANFILES += cmd-linux.lst fs-linux.lst
 COMMANDFILES += cmd-linux.lst
+FSFILES += fs-linux.lst
 
 cmd-linux.lst: loader/powerpc/ieee1275/linux.c gencmdlist.sh
        set -e;           $(CC) -Iloader/powerpc/ieee1275 -I$(srcdir)/loader/powerpc/ieee1275 $(CPPFLAGS) $(CFLAGS) $(_linux_mod_CFLAGS) -E $<    | sh $(srcdir)/gencmdlist.sh _linux > $@ || (rm -f $@; exit 1)
 
+fs-linux.lst: loader/powerpc/ieee1275/linux.c genfslist.sh
+       set -e;           $(CC) -Iloader/powerpc/ieee1275 -I$(srcdir)/loader/powerpc/ieee1275 $(CPPFLAGS) $(CFLAGS) $(_linux_mod_CFLAGS) -E $<    | sh $(srcdir)/genfslist.sh _linux > $@ || (rm -f $@; exit 1)
+
+
 _linux_mod_CFLAGS = $(COMMON_CFLAGS)
  
 # For linux.mod.
@@ -1123,12 +1163,17 @@ linux_mod-loader_powerpc_ieee1275_linux_normal.d: loader/powerpc/ieee1275/linux_
 
 -include linux_mod-loader_powerpc_ieee1275_linux_normal.d
 
-CLEANFILES += cmd-linux_normal.lst
+CLEANFILES += cmd-linux_normal.lst fs-linux_normal.lst
 COMMANDFILES += cmd-linux_normal.lst
+FSFILES += fs-linux_normal.lst
 
 cmd-linux_normal.lst: loader/powerpc/ieee1275/linux_normal.c gencmdlist.sh
        set -e;           $(CC) -Iloader/powerpc/ieee1275 -I$(srcdir)/loader/powerpc/ieee1275 $(CPPFLAGS) $(CFLAGS) $(linux_mod_CFLAGS) -E $<     | sh $(srcdir)/gencmdlist.sh linux > $@ || (rm -f $@; exit 1)
 
+fs-linux_normal.lst: loader/powerpc/ieee1275/linux_normal.c genfslist.sh
+       set -e;           $(CC) -Iloader/powerpc/ieee1275 -I$(srcdir)/loader/powerpc/ieee1275 $(CPPFLAGS) $(CFLAGS) $(linux_mod_CFLAGS) -E $<     | sh $(srcdir)/genfslist.sh linux > $@ || (rm -f $@; exit 1)
+
+
 linux_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For normal.mod.
@@ -1171,12 +1216,17 @@ normal_mod-normal_arg.d: normal/arg.c
 
 -include normal_mod-normal_arg.d
 
-CLEANFILES += cmd-arg.lst
+CLEANFILES += cmd-arg.lst fs-arg.lst
 COMMANDFILES += cmd-arg.lst
+FSFILES += fs-arg.lst
 
 cmd-arg.lst: normal/arg.c gencmdlist.sh
        set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1)
 
+fs-arg.lst: normal/arg.c genfslist.sh
+       set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1)
+
+
 normal_mod-normal_cmdline.o: normal/cmdline.c
        $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $<
 
@@ -1185,12 +1235,17 @@ normal_mod-normal_cmdline.d: normal/cmdline.c
 
 -include normal_mod-normal_cmdline.d
 
-CLEANFILES += cmd-cmdline.lst
+CLEANFILES += cmd-cmdline.lst fs-cmdline.lst
 COMMANDFILES += cmd-cmdline.lst
+FSFILES += fs-cmdline.lst
 
 cmd-cmdline.lst: normal/cmdline.c gencmdlist.sh
        set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1)
 
+fs-cmdline.lst: normal/cmdline.c genfslist.sh
+       set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1)
+
+
 normal_mod-normal_command.o: normal/command.c
        $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $<
 
@@ -1199,12 +1254,17 @@ normal_mod-normal_command.d: normal/command.c
 
 -include normal_mod-normal_command.d
 
-CLEANFILES += cmd-command.lst
+CLEANFILES += cmd-command.lst fs-command.lst
 COMMANDFILES += cmd-command.lst
+FSFILES += fs-command.lst
 
 cmd-command.lst: normal/command.c gencmdlist.sh
        set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1)
 
+fs-command.lst: normal/command.c genfslist.sh
+       set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1)
+
+
 normal_mod-normal_context.o: normal/context.c
        $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $<
 
@@ -1213,12 +1273,17 @@ normal_mod-normal_context.d: normal/context.c
 
 -include normal_mod-normal_context.d
 
-CLEANFILES += cmd-context.lst
+CLEANFILES += cmd-context.lst fs-context.lst
 COMMANDFILES += cmd-context.lst
+FSFILES += fs-context.lst
 
 cmd-context.lst: normal/context.c gencmdlist.sh
        set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1)
 
+fs-context.lst: normal/context.c genfslist.sh
+       set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1)
+
+
 normal_mod-normal_main.o: normal/main.c
        $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $<
 
@@ -1227,12 +1292,17 @@ normal_mod-normal_main.d: normal/main.c
 
 -include normal_mod-normal_main.d
 
-CLEANFILES += cmd-main.lst
+CLEANFILES += cmd-main.lst fs-main.lst
 COMMANDFILES += cmd-main.lst
+FSFILES += fs-main.lst
 
 cmd-main.lst: normal/main.c gencmdlist.sh
        set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1)
 
+fs-main.lst: normal/main.c genfslist.sh
+       set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1)
+
+
 normal_mod-normal_menu.o: normal/menu.c
        $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $<
 
@@ -1241,12 +1311,17 @@ normal_mod-normal_menu.d: normal/menu.c
 
 -include normal_mod-normal_menu.d
 
-CLEANFILES += cmd-menu.lst
+CLEANFILES += cmd-menu.lst fs-menu.lst
 COMMANDFILES += cmd-menu.lst
+FSFILES += fs-menu.lst
 
 cmd-menu.lst: normal/menu.c gencmdlist.sh
        set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1)
 
+fs-menu.lst: normal/menu.c genfslist.sh
+       set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1)
+
+
 normal_mod-normal_menu_entry.o: normal/menu_entry.c
        $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $<
 
@@ -1255,12 +1330,17 @@ normal_mod-normal_menu_entry.d: normal/menu_entry.c
 
 -include normal_mod-normal_menu_entry.d
 
-CLEANFILES += cmd-menu_entry.lst
+CLEANFILES += cmd-menu_entry.lst fs-menu_entry.lst
 COMMANDFILES += cmd-menu_entry.lst
+FSFILES += fs-menu_entry.lst
 
 cmd-menu_entry.lst: normal/menu_entry.c gencmdlist.sh
        set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1)
 
+fs-menu_entry.lst: normal/menu_entry.c genfslist.sh
+       set -e;           $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1)
+
+
 normal_mod-normal_powerpc_setjmp.o: normal/powerpc/setjmp.S
        $(CC) -Inormal/powerpc -I$(srcdir)/normal/powerpc $(CPPFLAGS) $(ASFLAGS) $(normal_mod_ASFLAGS) -c -o $@ $<
 
@@ -1269,12 +1349,17 @@ normal_mod-normal_powerpc_setjmp.d: normal/powerpc/setjmp.S
 
 -include normal_mod-normal_powerpc_setjmp.d
 
-CLEANFILES += cmd-setjmp.lst
+CLEANFILES += cmd-setjmp.lst fs-setjmp.lst
 COMMANDFILES += cmd-setjmp.lst
+FSFILES += fs-setjmp.lst
 
 cmd-setjmp.lst: normal/powerpc/setjmp.S gencmdlist.sh
        set -e;           $(CC) -Inormal/powerpc -I$(srcdir)/normal/powerpc $(CPPFLAGS) $(ASFLAGS) $(normal_mod_ASFLAGS) -E $<    | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1)
 
+fs-setjmp.lst: normal/powerpc/setjmp.S genfslist.sh
+       set -e;           $(CC) -Inormal/powerpc -I$(srcdir)/normal/powerpc $(CPPFLAGS) $(ASFLAGS) $(normal_mod_ASFLAGS) -E $<    | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1)
+
+
 normal_mod_CFLAGS = $(COMMON_CFLAGS)
 normal_mod_ASFLAGS = $(COMMON_ASFLAGS)
 
@@ -1315,12 +1400,17 @@ hello_mod-hello_hello.d: hello/hello.c
 
 -include hello_mod-hello_hello.d
 
-CLEANFILES += cmd-hello.lst
+CLEANFILES += cmd-hello.lst fs-hello.lst
 COMMANDFILES += cmd-hello.lst
+FSFILES += fs-hello.lst
 
 cmd-hello.lst: hello/hello.c gencmdlist.sh
        set -e;           $(CC) -Ihello -I$(srcdir)/hello $(CPPFLAGS) $(CFLAGS) $(hello_mod_CFLAGS) -E $<         | sh $(srcdir)/gencmdlist.sh hello > $@ || (rm -f $@; exit 1)
 
+fs-hello.lst: hello/hello.c genfslist.sh
+       set -e;           $(CC) -Ihello -I$(srcdir)/hello $(CPPFLAGS) $(CFLAGS) $(hello_mod_CFLAGS) -E $<         | sh $(srcdir)/genfslist.sh hello > $@ || (rm -f $@; exit 1)
+
+
 hello_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For boot.mod.
@@ -1360,12 +1450,17 @@ boot_mod-commands_boot.d: commands/boot.c
 
 -include boot_mod-commands_boot.d
 
-CLEANFILES += cmd-boot.lst
+CLEANFILES += cmd-boot.lst fs-boot.lst
 COMMANDFILES += cmd-boot.lst
+FSFILES += fs-boot.lst
 
 cmd-boot.lst: commands/boot.c gencmdlist.sh
        set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(boot_mod_CFLAGS) -E $<    | sh $(srcdir)/gencmdlist.sh boot > $@ || (rm -f $@; exit 1)
 
+fs-boot.lst: commands/boot.c genfslist.sh
+       set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(boot_mod_CFLAGS) -E $<    | sh $(srcdir)/genfslist.sh boot > $@ || (rm -f $@; exit 1)
+
+
 boot_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For terminal.mod.
@@ -1405,12 +1500,17 @@ terminal_mod-commands_terminal.d: commands/terminal.c
 
 -include terminal_mod-commands_terminal.d
 
-CLEANFILES += cmd-terminal.lst
+CLEANFILES += cmd-terminal.lst fs-terminal.lst
 COMMANDFILES += cmd-terminal.lst
+FSFILES += fs-terminal.lst
 
 cmd-terminal.lst: commands/terminal.c gencmdlist.sh
        set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(terminal_mod_CFLAGS) -E $<        | sh $(srcdir)/gencmdlist.sh terminal > $@ || (rm -f $@; exit 1)
 
+fs-terminal.lst: commands/terminal.c genfslist.sh
+       set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(terminal_mod_CFLAGS) -E $<        | sh $(srcdir)/genfslist.sh terminal > $@ || (rm -f $@; exit 1)
+
+
 terminal_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For ls.mod.
@@ -1450,12 +1550,17 @@ ls_mod-commands_ls.d: commands/ls.c
 
 -include ls_mod-commands_ls.d
 
-CLEANFILES += cmd-ls.lst
+CLEANFILES += cmd-ls.lst fs-ls.lst
 COMMANDFILES += cmd-ls.lst
+FSFILES += fs-ls.lst
 
 cmd-ls.lst: commands/ls.c gencmdlist.sh
        set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(ls_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh ls > $@ || (rm -f $@; exit 1)
 
+fs-ls.lst: commands/ls.c genfslist.sh
+       set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(ls_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh ls > $@ || (rm -f $@; exit 1)
+
+
 ls_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For cmp.mod.
@@ -1495,12 +1600,17 @@ cmp_mod-commands_cmp.d: commands/cmp.c
 
 -include cmp_mod-commands_cmp.d
 
-CLEANFILES += cmd-cmp.lst
+CLEANFILES += cmd-cmp.lst fs-cmp.lst
 COMMANDFILES += cmd-cmp.lst
+FSFILES += fs-cmp.lst
 
 cmd-cmp.lst: commands/cmp.c gencmdlist.sh
        set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(cmp_mod_CFLAGS) -E $<     | sh $(srcdir)/gencmdlist.sh cmp > $@ || (rm -f $@; exit 1)
 
+fs-cmp.lst: commands/cmp.c genfslist.sh
+       set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(cmp_mod_CFLAGS) -E $<     | sh $(srcdir)/genfslist.sh cmp > $@ || (rm -f $@; exit 1)
+
+
 cmp_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For cat.mod.
@@ -1540,12 +1650,17 @@ cat_mod-commands_cat.d: commands/cat.c
 
 -include cat_mod-commands_cat.d
 
-CLEANFILES += cmd-cat.lst
+CLEANFILES += cmd-cat.lst fs-cat.lst
 COMMANDFILES += cmd-cat.lst
+FSFILES += fs-cat.lst
 
 cmd-cat.lst: commands/cat.c gencmdlist.sh
        set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(cat_mod_CFLAGS) -E $<     | sh $(srcdir)/gencmdlist.sh cat > $@ || (rm -f $@; exit 1)
 
+fs-cat.lst: commands/cat.c genfslist.sh
+       set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(cat_mod_CFLAGS) -E $<     | sh $(srcdir)/genfslist.sh cat > $@ || (rm -f $@; exit 1)
+
+
 cat_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For font.mod.
@@ -1585,12 +1700,17 @@ font_mod-font_manager.d: font/manager.c
 
 -include font_mod-font_manager.d
 
-CLEANFILES += cmd-manager.lst
+CLEANFILES += cmd-manager.lst fs-manager.lst
 COMMANDFILES += cmd-manager.lst
+FSFILES += fs-manager.lst
 
 cmd-manager.lst: font/manager.c gencmdlist.sh
        set -e;           $(CC) -Ifont -I$(srcdir)/font $(CPPFLAGS) $(CFLAGS) $(font_mod_CFLAGS) -E $<    | sh $(srcdir)/gencmdlist.sh font > $@ || (rm -f $@; exit 1)
 
+fs-manager.lst: font/manager.c genfslist.sh
+       set -e;           $(CC) -Ifont -I$(srcdir)/font $(CPPFLAGS) $(CFLAGS) $(font_mod_CFLAGS) -E $<    | sh $(srcdir)/genfslist.sh font > $@ || (rm -f $@; exit 1)
+
+
 font_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For amiga.mod
@@ -1630,12 +1750,17 @@ amiga_mod-partmap_amiga.d: partmap/amiga.c
 
 -include amiga_mod-partmap_amiga.d
 
-CLEANFILES += cmd-amiga.lst
+CLEANFILES += cmd-amiga.lst fs-amiga.lst
 COMMANDFILES += cmd-amiga.lst
+FSFILES += fs-amiga.lst
 
 cmd-amiga.lst: partmap/amiga.c gencmdlist.sh
        set -e;           $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(amiga_mod_CFLAGS) -E $<     | sh $(srcdir)/gencmdlist.sh amiga > $@ || (rm -f $@; exit 1)
 
+fs-amiga.lst: partmap/amiga.c genfslist.sh
+       set -e;           $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(amiga_mod_CFLAGS) -E $<     | sh $(srcdir)/genfslist.sh amiga > $@ || (rm -f $@; exit 1)
+
+
 amiga_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For apple.mod
@@ -1675,12 +1800,17 @@ apple_mod-partmap_apple.d: partmap/apple.c
 
 -include apple_mod-partmap_apple.d
 
-CLEANFILES += cmd-apple.lst
+CLEANFILES += cmd-apple.lst fs-apple.lst
 COMMANDFILES += cmd-apple.lst
+FSFILES += fs-apple.lst
 
 cmd-apple.lst: partmap/apple.c gencmdlist.sh
        set -e;           $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(apple_mod_CFLAGS) -E $<     | sh $(srcdir)/gencmdlist.sh apple > $@ || (rm -f $@; exit 1)
 
+fs-apple.lst: partmap/apple.c genfslist.sh
+       set -e;           $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(apple_mod_CFLAGS) -E $<     | sh $(srcdir)/genfslist.sh apple > $@ || (rm -f $@; exit 1)
+
+
 apple_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For pc.mod
@@ -1720,12 +1850,17 @@ pc_mod-partmap_pc.d: partmap/pc.c
 
 -include pc_mod-partmap_pc.d
 
-CLEANFILES += cmd-pc.lst
+CLEANFILES += cmd-pc.lst fs-pc.lst
 COMMANDFILES += cmd-pc.lst
+FSFILES += fs-pc.lst
 
 cmd-pc.lst: partmap/pc.c gencmdlist.sh
        set -e;           $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(pc_mod_CFLAGS) -E $<        | sh $(srcdir)/gencmdlist.sh pc > $@ || (rm -f $@; exit 1)
 
+fs-pc.lst: partmap/pc.c genfslist.sh
+       set -e;           $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(pc_mod_CFLAGS) -E $<        | sh $(srcdir)/genfslist.sh pc > $@ || (rm -f $@; exit 1)
+
+
 pc_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For sun.mod
@@ -1765,12 +1900,17 @@ sun_mod-partmap_sun.d: partmap/sun.c
 
 -include sun_mod-partmap_sun.d
 
-CLEANFILES += cmd-sun.lst
+CLEANFILES += cmd-sun.lst fs-sun.lst
 COMMANDFILES += cmd-sun.lst
+FSFILES += fs-sun.lst
 
 cmd-sun.lst: partmap/sun.c gencmdlist.sh
        set -e;           $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(sun_mod_CFLAGS) -E $<       | sh $(srcdir)/gencmdlist.sh sun > $@ || (rm -f $@; exit 1)
 
+fs-sun.lst: partmap/sun.c genfslist.sh
+       set -e;           $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(sun_mod_CFLAGS) -E $<       | sh $(srcdir)/genfslist.sh sun > $@ || (rm -f $@; exit 1)
+
+
 sun_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For loopback.mod
@@ -1810,12 +1950,17 @@ loopback_mod-disk_loopback.d: disk/loopback.c
 
 -include loopback_mod-disk_loopback.d
 
-CLEANFILES += cmd-loopback.lst
+CLEANFILES += cmd-loopback.lst fs-loopback.lst
 COMMANDFILES += cmd-loopback.lst
+FSFILES += fs-loopback.lst
 
 cmd-loopback.lst: disk/loopback.c gencmdlist.sh
        set -e;           $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) $(loopback_mod_CFLAGS) -E $<        | sh $(srcdir)/gencmdlist.sh loopback > $@ || (rm -f $@; exit 1)
 
+fs-loopback.lst: disk/loopback.c genfslist.sh
+       set -e;           $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) $(loopback_mod_CFLAGS) -E $<        | sh $(srcdir)/genfslist.sh loopback > $@ || (rm -f $@; exit 1)
+
+
 loopback_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For suspend.mod
@@ -1855,12 +2000,17 @@ suspend_mod-commands_ieee1275_suspend.d: commands/ieee1275/suspend.c
 
 -include suspend_mod-commands_ieee1275_suspend.d
 
-CLEANFILES += cmd-suspend.lst
+CLEANFILES += cmd-suspend.lst fs-suspend.lst
 COMMANDFILES += cmd-suspend.lst
+FSFILES += fs-suspend.lst
 
 cmd-suspend.lst: commands/ieee1275/suspend.c gencmdlist.sh
        set -e;           $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(suspend_mod_CFLAGS) -E $<       | sh $(srcdir)/gencmdlist.sh suspend > $@ || (rm -f $@; exit 1)
 
+fs-suspend.lst: commands/ieee1275/suspend.c genfslist.sh
+       set -e;           $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(suspend_mod_CFLAGS) -E $<       | sh $(srcdir)/genfslist.sh suspend > $@ || (rm -f $@; exit 1)
+
+
 suspend_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For reboot.mod
@@ -1900,12 +2050,17 @@ reboot_mod-commands_ieee1275_reboot.d: commands/ieee1275/reboot.c
 
 -include reboot_mod-commands_ieee1275_reboot.d
 
-CLEANFILES += cmd-reboot.lst
+CLEANFILES += cmd-reboot.lst fs-reboot.lst
 COMMANDFILES += cmd-reboot.lst
+FSFILES += fs-reboot.lst
 
 cmd-reboot.lst: commands/ieee1275/reboot.c gencmdlist.sh
        set -e;           $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(reboot_mod_CFLAGS) -E $<        | sh $(srcdir)/gencmdlist.sh reboot > $@ || (rm -f $@; exit 1)
 
+fs-reboot.lst: commands/ieee1275/reboot.c genfslist.sh
+       set -e;           $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(reboot_mod_CFLAGS) -E $<        | sh $(srcdir)/genfslist.sh reboot > $@ || (rm -f $@; exit 1)
+
+
 reboot_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For halt.mod
@@ -1945,12 +2100,17 @@ halt_mod-commands_ieee1275_halt.d: commands/ieee1275/halt.c
 
 -include halt_mod-commands_ieee1275_halt.d
 
-CLEANFILES += cmd-halt.lst
+CLEANFILES += cmd-halt.lst fs-halt.lst
 COMMANDFILES += cmd-halt.lst
+FSFILES += fs-halt.lst
 
 cmd-halt.lst: commands/ieee1275/halt.c gencmdlist.sh
        set -e;           $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(halt_mod_CFLAGS) -E $<          | sh $(srcdir)/gencmdlist.sh halt > $@ || (rm -f $@; exit 1)
 
+fs-halt.lst: commands/ieee1275/halt.c genfslist.sh
+       set -e;           $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(halt_mod_CFLAGS) -E $<          | sh $(srcdir)/genfslist.sh halt > $@ || (rm -f $@; exit 1)
+
+
 halt_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For help.mod.
@@ -1990,12 +2150,17 @@ help_mod-commands_help.d: commands/help.c
 
 -include help_mod-commands_help.d
 
-CLEANFILES += cmd-help.lst
+CLEANFILES += cmd-help.lst fs-help.lst
 COMMANDFILES += cmd-help.lst
+FSFILES += fs-help.lst
 
 cmd-help.lst: commands/help.c gencmdlist.sh
        set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(help_mod_CFLAGS) -E $<    | sh $(srcdir)/gencmdlist.sh help > $@ || (rm -f $@; exit 1)
 
+fs-help.lst: commands/help.c genfslist.sh
+       set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(help_mod_CFLAGS) -E $<    | sh $(srcdir)/genfslist.sh help > $@ || (rm -f $@; exit 1)
+
+
 help_mod_CFLAGS = $(COMMON_CFLAGS)
 
 # For default.mod
@@ -2035,12 +2200,17 @@ default_mod-commands_default.d: commands/default.c
 
 -include default_mod-commands_default.d
 
-CLEANFILES += cmd-default.lst
+CLEANFILES += cmd-default.lst fs-default.lst
 COMMANDFILES += cmd-default.lst
+FSFILES += fs-default.lst
 
 cmd-default.lst: commands/default.c gencmdlist.sh
        set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(default_mod_CFLAGS) -E $<         | sh $(srcdir)/gencmdlist.sh default > $@ || (rm -f $@; exit 1)
 
+fs-default.lst: commands/default.c genfslist.sh
+       set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(default_mod_CFLAGS) -E $<         | sh $(srcdir)/genfslist.sh default > $@ || (rm -f $@; exit 1)
+
+
 default_mod_CFLAGS =  $(COMMON_CFLAGS)
 
 # For timeout.mod
@@ -2080,12 +2250,17 @@ timeout_mod-commands_timeout.d: commands/timeout.c
 
 -include timeout_mod-commands_timeout.d
 
-CLEANFILES += cmd-timeout.lst
+CLEANFILES += cmd-timeout.lst fs-timeout.lst
 COMMANDFILES += cmd-timeout.lst
+FSFILES += fs-timeout.lst
 
 cmd-timeout.lst: commands/timeout.c gencmdlist.sh
        set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(timeout_mod_CFLAGS) -E $<         | sh $(srcdir)/gencmdlist.sh timeout > $@ || (rm -f $@; exit 1)
 
+fs-timeout.lst: commands/timeout.c genfslist.sh
+       set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(timeout_mod_CFLAGS) -E $<         | sh $(srcdir)/genfslist.sh timeout > $@ || (rm -f $@; exit 1)
+
+
 timeout_mod_CFLAGS =  $(COMMON_CFLAGS)
 
 # For configfile.mod
@@ -2125,18 +2300,26 @@ configfile_mod-commands_configfile.d: commands/configfile.c
 
 -include configfile_mod-commands_configfile.d
 
-CLEANFILES += cmd-configfile.lst
+CLEANFILES += cmd-configfile.lst fs-configfile.lst
 COMMANDFILES += cmd-configfile.lst
+FSFILES += fs-configfile.lst
 
 cmd-configfile.lst: commands/configfile.c gencmdlist.sh
        set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(configfile_mod_CFLAGS) -E $<      | sh $(srcdir)/gencmdlist.sh configfile > $@ || (rm -f $@; exit 1)
 
+fs-configfile.lst: commands/configfile.c genfslist.sh
+       set -e;           $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(configfile_mod_CFLAGS) -E $<      | sh $(srcdir)/genfslist.sh configfile > $@ || (rm -f $@; exit 1)
+
+
 configfile_mod_CFLAGS = $(COMMON_CFLAGS)
-CLEANFILES += moddep.lst command.lst
-pkgdata_DATA += moddep.lst command.lst
+CLEANFILES += moddep.lst command.lst fs.lst
+pkgdata_DATA += moddep.lst command.lst fs.lst
 moddep.lst: $(DEFSYMFILES) $(UNDSYMFILES) genmoddep
        cat $(DEFSYMFILES) /dev/null | ./genmoddep $(UNDSYMFILES) > $@ \
          || (rm -f $@; exit 1)
 
 command.lst: $(COMMANDFILES)
        cat $^ /dev/null | sort > $@
+
+fs.lst: $(FSFILES)
+       cat $^ /dev/null | sort > $@
diff --git a/genfslist.sh b/genfslist.sh
new file mode 100644 (file)
index 0000000..b54f0ff
--- /dev/null
@@ -0,0 +1,21 @@
+#! /bin/sh
+#
+# Copyright (C) 2005  Free Software Foundation, Inc.
+#
+# This gensymlist.sh is free software; the author
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+# Read source code from stdin and detect fs names.
+
+module=$1
+
+# For now, this emits only a module name, if the module registers a filesystem.
+if grep -v "^#" | grep '^ *grub_fs_register' >/dev/null 2>&1; then
+    echo $module
+fi
index 442f2969a2462948cedbab2c47ad4472eb5ee431..68205469beb005215315e7b1c992f7a96212e9ac 100644 (file)
--- a/genmk.rb
+++ b/genmk.rb
@@ -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 > $@"
index 7b3961c404c8ffb2fb7399ccfc1e77e13e5e7a15..a1ad68a72121f4ef778e2824d67537e7ad620de2 100644 (file)
@@ -60,6 +60,13 @@ typedef struct grub_fs *grub_fs_t;
 /* This is special, because block lists are not files in usual sense.  */
 extern struct grub_fs grub_fs_blocklist;
 
+/* This hook is used to automatically load filesystem modules.
+   If this hook loads a module, return non-zero. Otherwise return zero.
+   The newly loaded filesystem is assumed to be inserted into the head of
+   the linked list GRUB_FS_LIST through the function grub_fs_register.  */
+typedef int (*grub_fs_autoload_hook_t) (void);
+extern grub_fs_autoload_hook_t EXPORT_VAR(grub_fs_autoload_hook);
+
 void EXPORT_FUNC(grub_fs_register) (grub_fs_t fs);
 void EXPORT_FUNC(grub_fs_unregister) (grub_fs_t fs);
 void EXPORT_FUNC(grub_fs_iterate) (int (*hook) (const grub_fs_t fs));
index 1202ca4e89e055899c8ebbc8c4e0a2d77d39dbc6..bdb77b4d9a3d3556235cd5ff2d9e2cc365ff99b1 100644 (file)
@@ -137,6 +137,14 @@ struct grub_context
 };
 typedef struct grub_context *grub_context_t;
 
+/* This is used to store the names of filesystem modules for auto-loading.  */
+struct grub_fs_module_list
+{
+  char *name;
+  struct grub_fs_module_list *next;
+};
+typedef struct grub_fs_module_list *grub_fs_module_list_t;
+
 /* To exit from the normal mode.  */
 extern grub_jmp_buf grub_exit_env;
 
index 5967953f5e0b8c5a04f4a59f9950fd2a98df10fa..91aba7c023622fa58be403601f29f49211156384 100644 (file)
--- a/kern/fs.c
+++ b/kern/fs.c
@@ -1,7 +1,7 @@
 /* fs.c - filesystem manager */
 /*
  *  GRUB  --  GRand Unified Bootloader
- *  Copyright (C) 2002  Free Software Foundation, Inc.
+ *  Copyright (C) 2002,2005  Free Software Foundation, Inc.
  *
  *  GRUB is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -30,6 +30,8 @@
 
 static grub_fs_t grub_fs_list;
 
+grub_fs_autoload_hook_t grub_fs_autoload_hook = 0;
+
 void
 grub_fs_register (grub_fs_t fs)
 {
@@ -74,6 +76,9 @@ grub_fs_probe (grub_device_t device)
 
   if (device->disk)
     {
+      /* Make it sure not to have an infinite recursive calls.  */
+      static int count = 0;
+      
       for (p = grub_fs_list; p; p = p->next)
        {
          (p->dir) (device, "/", dummy_func);
@@ -85,6 +90,34 @@ grub_fs_probe (grub_device_t device)
          
          grub_errno = GRUB_ERR_NONE;
        }
+
+      /* Let's load modules automatically.  */
+      if (grub_fs_autoload_hook && count == 0)
+       {
+         count++;
+         
+         while (grub_fs_autoload_hook ())
+           {
+             p = grub_fs_list;
+             
+             (p->dir) (device, "/", dummy_func);
+             if (grub_errno == GRUB_ERR_NONE)
+               {
+                 count--;
+                 return p;
+               }
+             
+             if (grub_errno != GRUB_ERR_BAD_FS)
+               {
+                 count--;
+                 return 0;
+               }
+             
+             grub_errno = GRUB_ERR_NONE;
+           }
+
+         count--;
+       }
     }
   else if (device->net->fs)
     return device->net->fs;
index 7b4af362fcf007d97ac579f63e5307a5ca282b09..f2f0b7039b087870ef9561f3cab9092f5f55de2a 100644 (file)
@@ -30,6 +30,8 @@
 
 grub_jmp_buf grub_exit_env;
 
+static grub_fs_module_list_t fs_module_list = 0;
+
 #define GRUB_DEFAULT_HISTORY_SIZE      50
 
 /* Read a line from the file FILE.  */
@@ -367,6 +369,93 @@ read_command_list (void)
   grub_errno = GRUB_ERR_NONE;
 }
 
+/* The auto-loading hook for filesystems.  */
+static int
+autoload_fs_module (void)
+{
+  grub_fs_module_list_t p;
+
+  while ((p = fs_module_list) != 0)
+    {
+      if (! grub_dl_get (p->name) && grub_dl_load (p->name))
+       return 1;
+
+      fs_module_list = p->next;
+      grub_free (p->name);
+      grub_free (p);
+    }
+
+  return 0;
+}
+
+/* Read the file fs.lst for auto-loading.  */
+static void
+read_fs_list (void)
+{
+  const char *prefix;
+  
+  prefix = grub_env_get ("prefix");
+  if (prefix)
+    {
+      char *filename;
+
+      filename = grub_malloc (grub_strlen (prefix) + sizeof ("/fs.lst"));
+      if (filename)
+       {
+         grub_file_t file;
+         
+         grub_sprintf (filename, "%s/fs.lst", prefix);
+         file = grub_file_open (filename);
+         if (file)
+           {
+             char buf[80]; /* XXX arbitrary */
+
+             while (get_line (file, buf, sizeof (buf)))
+               {
+                 char *p = buf;
+                 char *q = buf + grub_strlen (buf) - 1;
+                 grub_fs_module_list_t fs_mod;
+                 
+                 /* Ignore space.  */
+                 while (grub_isspace (*p))
+                   p++;
+
+                 while (p < q && grub_isspace (*q))
+                   *q-- = '\0';
+
+                 /* If the line is empty, skip it.  */
+                 if (p >= q)
+                   continue;
+
+                 fs_mod = grub_malloc (sizeof (*fs_mod));
+                 if (! fs_mod)
+                   continue;
+
+                 fs_mod->name = grub_strdup (p);
+                 if (! fs_mod->name)
+                   {
+                     grub_free (fs_mod);
+                     continue;
+                   }
+
+                 fs_mod->next = fs_module_list;
+                 fs_module_list = fs_mod;
+               }
+
+             grub_file_close (file);
+           }
+
+         grub_free (filename);
+       }
+    }
+
+  /* Ignore errors.  */
+  grub_errno = GRUB_ERR_NONE;
+
+  /* Set the hook.  */
+  grub_fs_autoload_hook = autoload_fs_module;
+}
+
 /* Read the config file CONFIG and execute the menu interface or
    the command-line interface.  */
 void
@@ -383,6 +472,7 @@ grub_normal_execute (const char *config, int nested)
     }
 
   read_command_list ();
+  read_fs_list ();
   
   if (menu)
     {