Automatic loading of commands is supported.
* normal/main.c (read_command_list): New function.
(grub_normal_execute): Call read_command_list.
* normal/command.c (grub_register_command): Return zero or CMD.
Allocate CMD->NAME from the heap.
Initialize CMD->MODULE_NAME to zero.
Find the same name as well. If the same command is found and it is
a dummy command, overwrite members. If it is not a dummy command,
return zero.
(grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
(grub_command_find): If a dummy command is found, load a module
and retry to find a command only once.
* normal/cmdline.c (grub_tab_complete): Call grub_command_find to
make sure that each command is loaded.
* include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
macro.
(struct grub_command): Remove const from the member `name'.
Add a new member `module_name'.
(grub_register_command): Return grub_command_t.
* commands/help.c (grub_cmd_help): Call grub_command_find to make
sure that each command is loaded.
* genmk.rb (PModule::rule): Specify a module name without the
suffix ".mod" to gencmdlist.sh.
+2005-03-08 Yoshinori Okuji <okuji@enbug.org>
+
+ Automatic loading of commands is supported.
+
+ * normal/main.c (read_command_list): New function.
+ (grub_normal_execute): Call read_command_list.
+
+ * normal/command.c (grub_register_command): Return zero or CMD.
+ Allocate CMD->NAME from the heap.
+ Initialize CMD->MODULE_NAME to zero.
+ Find the same name as well. If the same command is found and it is
+ a dummy command, overwrite members. If it is not a dummy command,
+ return zero.
+ (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
+ (grub_command_find): If a dummy command is found, load a module
+ and retry to find a command only once.
+
+ * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
+ make sure that each command is loaded.
+
+ * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
+ macro.
+ (struct grub_command): Remove const from the member `name'.
+ Add a new member `module_name'.
+ (grub_register_command): Return grub_command_t.
+
+ * commands/help.c (grub_cmd_help): Call grub_command_find to make
+ sure that each command is loaded.
+
+ * genmk.rb (PModule::rule): Specify a module name without the
+ suffix ".mod" to gencmdlist.sh.
+
2005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
* gencmdlist.sh: New file.
int print_command_info (grub_command_t cmd)
{
- if (cmd->flags & GRUB_COMMAND_FLAG_CMDLINE)
+ if (grub_command_find (cmd->name))
{
- char description[TERM_WIDTH / 2];
- int desclen = grub_strlen (cmd->summary);
-
- /* Make a string with a length of TERM_WIDTH / 2 - 1 filled
- with the description followed by spaces. */
- grub_memset (description, ' ', TERM_WIDTH / 2 - 1);
- description[TERM_WIDTH / 2 - 1] = '\0';
- grub_memcpy (description, cmd->summary,
- (desclen < TERM_WIDTH / 2 - 1
- ? desclen : TERM_WIDTH / 2 - 1));
-
- grub_printf ("%s%s", description, (cnt++) % 2 ? "\n" : " ");
+ if (cmd->flags & GRUB_COMMAND_FLAG_CMDLINE)
+ {
+ char description[TERM_WIDTH / 2];
+ int desclen = grub_strlen (cmd->summary);
+
+ /* Make a string with a length of TERM_WIDTH / 2 - 1 filled
+ with the description followed by spaces. */
+ grub_memset (description, ' ', TERM_WIDTH / 2 - 1);
+ description[TERM_WIDTH / 2 - 1] = '\0';
+ grub_memcpy (description, cmd->summary,
+ (desclen < TERM_WIDTH / 2 - 1
+ ? desclen : TERM_WIDTH / 2 - 1));
+
+ grub_printf ("%s%s", description, (cnt++) % 2 ? "\n" : " ");
+ }
}
-
return 0;
}
int print_command_help (grub_command_t cmd)
{
- if (! grub_strncmp (cmd->name, currarg, grub_strlen (currarg)))
+ if (grub_command_find (cmd->name))
{
- if (cnt++ > 0)
- grub_printf ("\n\n");
-
- grub_arg_show_help (cmd);
+ if (! grub_strncmp (cmd->name, currarg, grub_strlen (currarg)))
+ {
+ if (cnt++ > 0)
+ grub_printf ("\n\n");
+
+ grub_arg_show_help (cmd);
+ }
}
return 0;
}
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ 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)
_chain_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ 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)
chain_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(fshelp_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh fshelp > $@ || (rm -f $@; exit 1)
fshelp_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(fat_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh fat > $@ || (rm -f $@; exit 1)
fat_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(ext2_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ext2 > $@ || (rm -f $@; exit 1)
ext2_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(ufs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ufs > $@ || (rm -f $@; exit 1)
ufs_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(minix_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh minix > $@ || (rm -f $@; exit 1)
minix_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(hfs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh hfs > $@ || (rm -f $@; exit 1)
hfs_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(jfs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh jfs > $@ || (rm -f $@; exit 1)
jfs_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ 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)
_linux_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ 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)
linux_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.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 $@ $<
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.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 $@ $<
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.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 $@ $<
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.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 $@ $<
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.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 $@ $<
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.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 $@ $<
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.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 $@ $<
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Inormal/i386 -I$(srcdir)/normal/i386 $(CPPFLAGS) $(ASFLAGS) $(normal_mod_ASFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1)
normal_mod_CFLAGS = $(COMMON_CFLAGS)
normal_mod_ASFLAGS = $(COMMON_ASFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ihello -I$(srcdir)/hello $(CPPFLAGS) $(CFLAGS) $(hello_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh hello > $@ || (rm -f $@; exit 1)
hello_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(boot_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh boot > $@ || (rm -f $@; exit 1)
boot_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(terminal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh terminal > $@ || (rm -f $@; exit 1)
terminal_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(ls_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ls > $@ || (rm -f $@; exit 1)
ls_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(cmp_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh cmp > $@ || (rm -f $@; exit 1)
cmp_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(cat_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh cat > $@ || (rm -f $@; exit 1)
cat_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(help_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh help > $@ || (rm -f $@; exit 1)
help_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ 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)
reboot_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ 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)
halt_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ 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)
vga_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ifont -I$(srcdir)/font $(CPPFLAGS) $(CFLAGS) $(font_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh font > $@ || (rm -f $@; exit 1)
font_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ 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)
_multiboot_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ 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)
multiboot_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(amiga_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh amiga > $@ || (rm -f $@; exit 1)
amiga_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(apple_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh apple > $@ || (rm -f $@; exit 1)
apple_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(pc_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh pc > $@ || (rm -f $@; exit 1)
pc_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(sun_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh sun > $@ || (rm -f $@; exit 1)
sun_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) $(loopback_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh loopback > $@ || (rm -f $@; exit 1)
loopback_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(default_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh default > $@ || (rm -f $@; exit 1)
default_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(timeout_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh timeout > $@ || (rm -f $@; exit 1)
timeout_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(configfile_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh configfile > $@ || (rm -f $@; exit 1)
configfile_mod_CFLAGS = $(COMMON_CFLAGS)
CLEANFILES += moddep.lst command.lst
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(fshelp_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh fshelp > $@ || (rm -f $@; exit 1)
fshelp_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(fat_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh fat > $@ || (rm -f $@; exit 1)
fat_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(ext2_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ext2 > $@ || (rm -f $@; exit 1)
ext2_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(ufs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ufs > $@ || (rm -f $@; exit 1)
ufs_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(minix_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh minix > $@ || (rm -f $@; exit 1)
minix_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(hfs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh hfs > $@ || (rm -f $@; exit 1)
hfs_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(jfs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh jfs > $@ || (rm -f $@; exit 1)
jfs_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ 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)
_linux_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ 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)
linux_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.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 $@ $<
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.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 $@ $<
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.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 $@ $<
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.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 $@ $<
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.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 $@ $<
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.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 $@ $<
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.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 $@ $<
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Inormal/powerpc -I$(srcdir)/normal/powerpc $(CPPFLAGS) $(ASFLAGS) $(normal_mod_ASFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1)
normal_mod_CFLAGS = $(COMMON_CFLAGS)
normal_mod_ASFLAGS = $(COMMON_ASFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ihello -I$(srcdir)/hello $(CPPFLAGS) $(CFLAGS) $(hello_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh hello > $@ || (rm -f $@; exit 1)
hello_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(boot_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh boot > $@ || (rm -f $@; exit 1)
boot_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(terminal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh terminal > $@ || (rm -f $@; exit 1)
terminal_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(ls_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ls > $@ || (rm -f $@; exit 1)
ls_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(cmp_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh cmp > $@ || (rm -f $@; exit 1)
cmp_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(cat_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh cat > $@ || (rm -f $@; exit 1)
cat_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ifont -I$(srcdir)/font $(CPPFLAGS) $(CFLAGS) $(font_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh font > $@ || (rm -f $@; exit 1)
font_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(amiga_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh amiga > $@ || (rm -f $@; exit 1)
amiga_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(apple_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh apple > $@ || (rm -f $@; exit 1)
apple_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(pc_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh pc > $@ || (rm -f $@; exit 1)
pc_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(sun_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh sun > $@ || (rm -f $@; exit 1)
sun_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) $(loopback_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh loopback > $@ || (rm -f $@; exit 1)
loopback_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(suspend_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh suspend > $@ || (rm -f $@; exit 1)
suspend_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(reboot_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh reboot > $@ || (rm -f $@; exit 1)
reboot_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh halt > $@ || (rm -f $@; exit 1)
halt_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(help_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh help > $@ || (rm -f $@; exit 1)
help_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(default_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh default > $@ || (rm -f $@; exit 1)
default_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(timeout_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh timeout > $@ || (rm -f $@; exit 1)
timeout_mod_CFLAGS = $(COMMON_CFLAGS)
COMMANDFILES += cmd-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.mod > $@ || (rm -f $@; exit 1)
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(configfile_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh configfile > $@ || (rm -f $@; exit 1)
configfile_mod_CFLAGS = $(COMMON_CFLAGS)
CLEANFILES += moddep.lst command.lst
#! /usr/bin/ruby -w
#
-# Copyright (C) 2002,2003,2004 Free Software Foundation, Inc.
+# Copyright (C) 2002,2003,2004,2005 Free Software Foundation, Inc.
#
# This genmk.rb is free software; the author
# gives unlimited permission to copy and/or distribute it,
defsym = 'def-' + @name.suffix('lst')
undsym = 'und-' + @name.suffix('lst')
mod_name = File.basename(@name, '.mod')
+ symbolic_name = mod_name.sub(/\.[^\.]*$/, '')
"CLEANFILES += #{@name} #{mod_obj} #{mod_src} #{pre_obj} #{objs_str} #{defsym} #{undsym}
MOSTLYCLEANFILES += #{deps_str}
#{command}: #{src} gencmdlist.sh
set -e; \
$(CC) -I#{dir} -I$(srcdir)/#{dir} $(CPPFLAGS) $(#{flag}) $(#{prefix}_#{flag}) -E $< \
- | sh $(srcdir)/gencmdlist.sh #{@name} > $@ || (rm -f $@; exit 1)
+ | sh $(srcdir)/gencmdlist.sh #{symbolic_name} > $@ || (rm -f $@; exit 1)
"
end.join('')
/* normal.h - prototypes for the normal mode */
/*
* GRUB -- GRand Unified Bootloader
- * Copyright (C) 2002,2003 Free Software Foundation, Inc.
+ * Copyright (C) 2002,2003,2005 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#define GRUB_COMMAND_FLAG_NO_ECHO 0x8
/* Don't print the command on booting. */
#define GRUB_COMMAND_FLAG_NO_ARG_PARSE 0x10
+/* Not loaded yet. Used for auto-loading. */
+#define GRUB_COMMAND_FLAG_NOT_LOADED 0x20
/* The command description. */
struct grub_command
{
/* The name. */
- const char *name;
+ char *name;
/* The callback function. */
grub_err_t (*func) (struct grub_arg_list *state, int argc, char **args);
/* The argument parser optionlist. */
const struct grub_arg_option *options;
+ /* The name of a module. Used for auto-loading. */
+ char *module_name;
+
/* The next element. */
struct grub_command *next;
};
void grub_cmdline_run (int nested);
int grub_cmdline_get (const char *prompt, char cmdline[], unsigned max_len,
int echo_char, int readline);
-void grub_register_command (const char *name,
- grub_err_t (*func) (struct grub_arg_list *state,
- int argc, char **args),
- unsigned flags,
- const char *summary,
- const char *description,
- const struct grub_arg_option *parser);
+grub_command_t grub_register_command (const char *name,
+ grub_err_t (*func) (struct grub_arg_list *state,
+ int argc,
+ char **args),
+ unsigned flags,
+ const char *summary,
+ const char *description,
+ const struct grub_arg_option *parser);
void grub_unregister_command (const char *name);
grub_command_t grub_command_find (char *cmdline);
grub_err_t grub_set_history (int newsize);
int iterate_commands (grub_command_t cmd)
{
- if (cmd->flags & GRUB_COMMAND_FLAG_CMDLINE)
- add_completion (cmd->name, " ", "commands", print_simple_completion);
+ if (grub_command_find (cmd->name))
+ {
+ if (cmd->flags & GRUB_COMMAND_FLAG_CMDLINE)
+ add_completion (cmd->name, " ", "commands",
+ print_simple_completion);
+ }
return 0;
}
static grub_command_t grub_command_list;
-void
+grub_command_t
grub_register_command (const char *name,
grub_err_t (*func) (struct grub_arg_list *state,
int argc, char **args),
cmd = (grub_command_t) grub_malloc (sizeof (*cmd));
if (! cmd)
- return;
+ return 0;
- cmd->name = name;
+ cmd->name = grub_strdup (name);
+ if (! cmd->name)
+ {
+ grub_free (cmd);
+ return 0;
+ }
+
cmd->func = func;
cmd->flags = flags;
cmd->summary = summary;
cmd->description = description;
cmd->options = options;
+ cmd->module_name = 0;
/* Keep the list sorted for simplicity. */
p = &grub_command_list;
while (*p)
{
- if (grub_strcmp ((*p)->name, name) > 0)
+ if (grub_strcmp ((*p)->name, name) >= 0)
break;
p = &((*p)->next);
}
- cmd->next = *p;
- *p = cmd;
+ if (*p && grub_strcmp ((*p)->name, name) == 0)
+ {
+ grub_command_t q;
+
+ q = *p;
+ if (q->flags & GRUB_COMMAND_FLAG_NOT_LOADED)
+ {
+ q->func = cmd->func;
+ q->flags = cmd->flags;
+ q->summary = cmd->summary;
+ q->description = cmd->description;
+ q->options = cmd->options;
+ grub_free (cmd->name);
+ grub_free (cmd->module_name);
+ grub_free (cmd);
+ cmd = q;
+ }
+ else
+ {
+ grub_free (cmd->name);
+ grub_free (cmd);
+ cmd = 0;
+ }
+ }
+ else
+ {
+ cmd->next = *p;
+ *p = cmd;
+ }
+
+ return cmd;
}
void
if (grub_strcmp (name, q->name) == 0)
{
*p = q->next;
+ grub_free (q->name);
+ grub_free (q->module_name);
grub_free (q);
break;
}
{
char *first_space;
grub_command_t cmd;
-
+ int count = 0;
+
first_space = grub_strchr (cmdline, ' ');
if (first_space)
*first_space = '\0';
+ again:
+
for (cmd = grub_command_list; cmd; cmd = cmd->next)
if (grub_strcmp (cmdline, cmd->name) == 0)
break;
if (! cmd)
grub_error (GRUB_ERR_UNKNOWN_COMMAND, "unknown command `%s'", cmdline);
+ else if (cmd->flags & GRUB_COMMAND_FLAG_NOT_LOADED)
+ {
+ /* Automatically load the command. */
+ if (count == 0)
+ {
+ grub_dl_t mod;
+ char *module_name;
+
+ module_name = grub_strdup (cmd->module_name);
+ if (module_name)
+ {
+ mod = grub_dl_load (module_name);
+ if (mod)
+ {
+ grub_dl_ref (mod);
+ count++;
+ goto again;
+ }
+
+ grub_free (module_name);
+ }
+ }
+
+ /* This module seems broken. */
+ grub_unregister_command (cmdline);
+ grub_error (GRUB_ERR_UNKNOWN_COMMAND, "unknown command `%s'", cmdline);
+ cmd = 0;
+ }
if (first_space)
*first_space = ' ';
PACKAGE_VERSION);
}
+/* Read the file command.lst for auto-loading. */
+static void
+read_command_list (void)
+{
+ const char *prefix;
+
+ prefix = grub_env_get ("prefix");
+ if (prefix)
+ {
+ char *filename;
+
+ filename = grub_malloc (grub_strlen (prefix) + sizeof ("/command.lst"));
+ if (filename)
+ {
+ grub_file_t file;
+
+ grub_sprintf (filename, "%s/command.lst", prefix);
+ file = grub_file_open (filename);
+ if (file)
+ {
+ char buf[80]; /* XXX arbitrary */
+
+ while (get_line (file, buf, sizeof (buf)))
+ {
+ char *p;
+ grub_command_t cmd;
+
+ if (! grub_isgraph (buf[0]))
+ continue;
+
+ p = grub_strchr (buf, ':');
+ if (! p)
+ continue;
+
+ *p = '\0';
+ while (*++p == ' ')
+ ;
+
+ if (! grub_isgraph (*p))
+ continue;
+
+ cmd = grub_register_command (buf, 0,
+ GRUB_COMMAND_FLAG_NOT_LOADED,
+ 0, 0, 0);
+ if (! cmd)
+ continue;
+
+ cmd->module_name = grub_strdup (p);
+ if (! cmd->module_name)
+ grub_unregister_command (buf);
+ }
+
+ grub_file_close (file);
+ }
+
+ grub_free (filename);
+ }
+ }
+
+ /* Ignore errors. */
+ grub_errno = GRUB_ERR_NONE;
+}
+
/* Read the config file CONFIG and execute the menu interface or
the command-line interface. */
void
grub_errno = GRUB_ERR_NONE;
}
+ read_command_list ();
+
if (menu)
{
grub_menu_run (menu, nested);