diff --git a/ChangeLog b/ChangeLog index dc07c62b9..e45a3c011 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,25 @@ +2005-07-03 Yoshinori Okuji + + * 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 * configure.ac: Fix the test for cross-compiling. diff --git a/DISTLIST b/DISTLIST index 8e2a31eec..46f73fc7c 100644 --- a/DISTLIST +++ b/DISTLIST @@ -17,6 +17,7 @@ configure configure.ac gencmdlist.sh gendistlist.sh +genfslist.sh genkernsyms.sh genmk.rb genmodsrc.sh diff --git a/conf/i386-pc.mk b/conf/i386-pc.mk index 9a353d0cd..7f3d99013 100644 --- a/conf/i386-pc.mk +++ b/conf/i386-pc.mk @@ -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 > $@ diff --git a/conf/powerpc-ieee1275.mk b/conf/powerpc-ieee1275.mk index e67eb2060..7c8304abb 100644 --- a/conf/powerpc-ieee1275.mk +++ b/conf/powerpc-ieee1275.mk @@ -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 index 000000000..b54f0ff82 --- /dev/null +++ b/genfslist.sh @@ -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 diff --git a/genmk.rb b/genmk.rb index 442f2969a..68205469b 100644 --- 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 > $@" diff --git a/include/grub/fs.h b/include/grub/fs.h index 7b3961c40..a1ad68a72 100644 --- a/include/grub/fs.h +++ b/include/grub/fs.h @@ -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)); diff --git a/include/grub/normal.h b/include/grub/normal.h index 1202ca4e8..bdb77b4d9 100644 --- a/include/grub/normal.h +++ b/include/grub/normal.h @@ -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; diff --git a/kern/fs.c b/kern/fs.c index 5967953f5..91aba7c02 100644 --- 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; diff --git a/normal/main.c b/normal/main.c index 7b4af362f..f2f0b7039 100644 --- a/normal/main.c +++ b/normal/main.c @@ -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) {