2008-09-07 16:09:21 +00:00
|
|
|
# -*- makefile -*-
|
|
|
|
|
|
|
|
pkglib_MODULES += cpuid.mod
|
|
|
|
cpuid_mod_SOURCES = commands/i386/cpuid.c
|
|
|
|
cpuid_mod_CFLAGS = $(COMMON_CFLAGS)
|
|
|
|
cpuid_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
2008-11-07 Robert Millan <rmh@aybabtu.com>
Modularize at_keyboard.mod:
* conf/i386.rmk (pkglib_MODULES): Add `at_keyboard.mod'.
(at_keyboard_mod_SOURCES, at_keyboard_mod_CFLAGS)
(at_keyboard_mod_LDFLAGS): New variables.
Actual terminal split:
* include/grub/term.h (struct grub_term): Split in ...
(struct grub_term_input): ... this, and ...
(struct grub_term_output): ... this. Update all users.
(grub_term_set_current): Split in ...
(grub_term_set_current_input): ... this, and ...
(grub_term_set_current_output): ... this.
(grub_term_get_current): Split in ...
(grub_term_get_current_input): ... this, and ...
(grub_term_get_current_output): ... this.
(grub_term_register): Split in ...
(grub_term_register_input): ... this, and ...
(grub_term_register_output): ... this.
(grub_term_unregister): Split in ...
(grub_term_unregister_input): ... this, and ...
(grub_term_unregister_output): ... this.
(grub_term_iterate): Split in ...
(grub_term_iterate_input): ... this, and ...
(grub_term_iterate_output): ... this.
* kern/term.c (grub_term_list): Split in ...
(grub_term_list_input): ... this, and ...
(grub_term_list_output): ... this. Update all users.
(grub_cur_term): Split in ...
(grub_cur_term_input): ... this, and ...
(grub_cur_term_output): ... this. Update all users.
(grub_term_set_current): Split in ...
(grub_term_set_current_input): ... this, and ...
(grub_term_set_current_output): ... this.
(grub_term_get_current): Split in ...
(grub_term_get_current_input): ... this, and ...
(grub_term_get_current_output): ... this.
(grub_term_register): Split in ...
(grub_term_register_input): ... this, and ...
(grub_term_register_output): ... this.
(grub_term_unregister): Split in ...
(grub_term_unregister_input): ... this, and ...
(grub_term_unregister_output): ... this.
(grub_term_iterate): Split in ...
(grub_term_iterate_input): ... this, and ...
(grub_term_iterate_output): ... this.
* kern/misc.c (grub_abort): Split use of grub_term_get_current() into
a check for input and one for output (and only attempt to get keys
from user when input works).
* util/grub-probe.c (grub_term_get_current): Split in ...
(grub_term_get_current_input): ... this, and ...
(grub_term_get_current_output): ... this.
* util/grub-fstest.c: Likewise.
* util/i386/pc/grub-setup.c: Likewise.
* util/grub-editenv.c: Likewise.
Portability adjustments:
* conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Remove
`term/i386/pc/at_keyboard.c'.
* kern/ieee1275/init.c [__i386__] (grub_machine_init): Remove call to
grub_keyboard_controller_init() (now handled by terminal .init).
* kern/i386/coreboot/init.c (grub_machine_init): Add call to
grub_at_keyboard_init().
* include/grub/i386/ieee1275/console.h (grub_keyboard_controller_init)
(grub_console_checkkey, grub_console_getkey): Remove (now provided by
at_keyboard.mod via input terminal interface).
* include/grub/i386/coreboot/console.h: Convert into a stub for
`<grub/i386/pc/console.h>'.
Migrate full terminals to new API:
* term/efi/console.c (grub_console_term): Split into ...
(grub_console_term_input): ... this, and ...
(grub_console_term_output): ... this. Update all users.
* term/ieee1275/ofconsole.c: Remove __i386__ hack.
(grub_ofconsole_init): Split into ...
(grub_ofconsole_init_input): ... this, and ...
(grub_ofconsole_init_output): ... this.
(grub_ofconsole_term): Split into ...
(grub_ofconsole_term_input): ... this, and ...
(grub_ofconsole_term_output): ... this. Update all users.
* term/i386/pc/serial.c (grub_serial_term): Split into ...
(grub_serial_term_input): ... this, and ...
(grub_serial_term_output): ... this. Update all users.
* term/i386/pc/console.c (grub_console_term): Split into ...
(grub_console_term_input): ... this, and ...
(grub_console_term_output): ... this. Update all users.
(grub_console_term_input): Only enable it on PC/BIOS platform.
(grub_console_init): Remove grub_keyboard_controller_init() call.
Migrate input terminals to new API:
* term/i386/pc/at_keyboard.c: Replace `cpu' and `machine' with
`i386' and `i386/pc' to enable build on x86_64 (this driver is
i386-specific anyway).
(grub_console_checkkey): Rename to ...
(grub_at_keyboard_checkkey): ... this. Static-ize. Update all
users.
(grub_keyboard_controller_orig): New variable.
(grub_console_getkey): Rename to ...
(grub_at_keyboard_getkey): ... this. Static-ize. Update all
users.
(grub_keyboard_controller_init): Static-ize. Save original
controller value so that it can be restored ...
(grub_keyboard_controller_fini): ... here (new function).
(grub_at_keyboard_term): New structure.
(GRUB_MOD_INIT(at_keyboard), GRUB_MOD_FINI(at_keyboard)): New
functions.
Migrate output terminals to new API:
* term/i386/pc/vga.c (grub_vga_term): Change type to
`struct grub_term_output'. Remove `.checkkey' and `.getkey'
members. Update all users.
* term/gfxterm.c (grub_video_term): Change type to
`struct grub_term_output'. Remove `.checkkey' and `.getkey'
members. Update all users.
* include/grub/i386/pc/console.h (grub_console_checkkey)
(grub_console_getkey): Do not export (no longer needed by gfxterm,
etc).
Migrate `terminal' command and userland tools to new API:
* commands/terminal.c (grub_cmd_terminal): Split into ...
(grub_cmd_terminal_input): ... this, and ...
(grub_cmd_terminal_output): ... this.
(GRUB_MOD_INIT(terminal)): Split `terminal' command in two commands:
`terminal_input' and `terminal_output'.
* util/grub.d/00_header.in: Adjust `terminal' calls to new
`terminal_input' / `terminal_output' API.
* util/grub-mkconfig.in: Export ${GRUB_TERMINAL_INPUT} and
${GRUB_TERMINAL_OUTPUT} instead of ${GRUB_TERMINAL} (and if user
provided ${GRUB_TERMINAL}, convert it).
2008-11-07 19:11:39 +00:00
|
|
|
|
|
|
|
pkglib_MODULES += at_keyboard.mod
|
|
|
|
at_keyboard_mod_SOURCES = term/i386/pc/at_keyboard.c
|
|
|
|
at_keyboard_mod_CFLAGS = $(COMMON_CFLAGS)
|
|
|
|
at_keyboard_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
2008-11-12 Robert Millan <rmh@aybabtu.com>
* conf/i386-pc.rmk (kernel_img_SOURCES): Add `term/i386/vga_common.c'.
* conf/i386.rmk (pkglib_MODULES): Add `vga_text.mod'.
(vga_text_mod_SOURCES, vga_text_mod_CFLAGS, vga_text_mod_LDFLAGS): New
variables.
* conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
`term/i386/pc/console.c' with `term/i386/vga_common.c'.
* kern/i386/coreboot/init.c (grub_machine_init): Replace call to
grub_console_init() with call to grub_vga_text_init().
(grub_machine_fini): Replace call to
grub_console_fini() with call to grub_vga_text_fini() and
grub_at_keyboard_fini().
* include/grub/i386/pc/console.h: Include `<grub/term.h>'.
(grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
(grub_console_setcolorstate, grub_console_setcolor)
(grub_console_getcolor): New function prototypes.
* term/i386/pc/vga_text.c: Include `<grub/dl.h>'.
(grub_vga_text_getxy, grub_vga_text_gotoxy, grub_vga_text_cls)
(grub_vga_text_setcursor): Static-ize.
(grub_vga_text_term): New structure.
(GRUB_MOD_INIT(vga_text), GRUB_MOD_FINI(vga_text)): New functions.
* term/i386/pc/console.c: Remove `<grub/machine/machine.h>'.
(grub_console_cur_color, grub_console_standard_color)
(grub_console_normal_color, grub_console_highlight_color)
(map_char, grub_console_putchar, grub_console_getcharwidth)
(grub_console_getwh, grub_console_setcolorstate, grub_console_setcolor)
(grub_console_getcolor): Move from here ...
* term/i386/vga_common.c: ... to here (same function names).
2008-11-12 15:02:17 +00:00
|
|
|
|
|
|
|
pkglib_MODULES += vga_text.mod
|
|
|
|
vga_text_mod_SOURCES = term/i386/pc/vga_text.c term/i386/vga_common.c
|
|
|
|
vga_text_mod_CFLAGS = $(COMMON_CFLAGS)
|
|
|
|
vga_text_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
2009-11-16 15:01:15 +00:00
|
|
|
|
2009-11-25 22:39:59 +00:00
|
|
|
pkglib_MODULES += relocator.mod
|
2010-01-09 23:30:33 +00:00
|
|
|
relocator_mod_SOURCES = lib/relocator.c lib/i386/relocator32.S \
|
2010-01-12 21:15:50 +00:00
|
|
|
lib/i386/relocator64.S lib/i386/relocator16.S \
|
2010-01-12 22:30:52 +00:00
|
|
|
lib/$(target_cpu)/relocator_asm.S lib/i386/relocator.c
|
2009-11-25 22:39:59 +00:00
|
|
|
relocator_mod_CFLAGS = $(COMMON_CFLAGS)
|
|
|
|
relocator_mod_ASFLAGS = $(COMMON_ASFLAGS)
|
|
|
|
relocator_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
|
|
|
|
2009-11-16 15:01:15 +00:00
|
|
|
pkglib_MODULES += ata.mod
|
|
|
|
ata_mod_SOURCES = disk/ata.c
|
|
|
|
ata_mod_CFLAGS = $(COMMON_CFLAGS)
|
|
|
|
ata_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
2010-01-13 19:55:34 +00:00
|
|
|
|
|
|
|
# For linux.mod.
|
|
|
|
pkglib_MODULES += linux.mod
|
|
|
|
linux_mod_SOURCES = loader/i386/linux.c
|
|
|
|
linux_mod_CFLAGS = $(COMMON_CFLAGS)
|
|
|
|
linux_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
2010-01-13 20:04:19 +00:00
|
|
|
|
|
|
|
# For aout.mod
|
|
|
|
pkglib_MODULES += aout.mod
|
|
|
|
aout_mod_SOURCES = loader/aout.c
|
|
|
|
aout_mod_CFLAGS = $(COMMON_CFLAGS)
|
|
|
|
aout_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
|
|
|
|
|
|
|
# For bsd.mod
|
|
|
|
pkglib_MODULES += bsd.mod
|
|
|
|
bsd_mod_SOURCES = loader/i386/bsd.c loader/i386/bsd32.c loader/i386/bsd64.c
|
|
|
|
bsd_mod_CFLAGS = $(COMMON_CFLAGS)
|
|
|
|
bsd_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
|
|
|
bsd_mod_ASFLAGS = $(COMMON_ASFLAGS)
|
2010-01-15 23:05:33 +00:00
|
|
|
|
2010-01-15 20:11:51 +00:00
|
|
|
pkglib_MODULES += multiboot.mod
|
|
|
|
multiboot_mod_SOURCES = loader/i386/multiboot.c \
|
|
|
|
loader/i386/multiboot_mbi.c \
|
|
|
|
loader/multiboot_loader.c
|
|
|
|
multiboot_mod_CFLAGS = $(COMMON_CFLAGS)
|
|
|
|
multiboot_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
|
|
|
multiboot_mod_ASFLAGS = $(COMMON_ASFLAGS)
|
|
|
|
|
|
|
|
pkglib_MODULES += multiboot2.mod
|
|
|
|
multiboot2_mod_SOURCES = loader/i386/multiboot.c \
|
|
|
|
loader/i386/multiboot_mbi.c \
|
|
|
|
loader/multiboot_loader.c
|
|
|
|
multiboot2_mod_CFLAGS = $(COMMON_CFLAGS) -DGRUB_USE_MULTIBOOT2
|
|
|
|
multiboot2_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
|
|
|
multiboot2_mod_ASFLAGS = $(COMMON_ASFLAGS)
|
2010-01-17 18:22:36 +00:00
|
|
|
|
|
|
|
# For serial.mod.
|
|
|
|
pkglib_MODULES += serial.mod
|
|
|
|
serial_mod_SOURCES = term/i386/pc/serial.c
|
|
|
|
serial_mod_CFLAGS = $(COMMON_CFLAGS)
|
|
|
|
serial_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
2010-01-18 11:40:33 +00:00
|
|
|
|
2010-01-18 11:00:00 +00:00
|
|
|
linux.init.x86_64: $(srcdir)/tests/boot/linux.init-x86_64.S
|
2010-01-17 22:36:45 +00:00
|
|
|
$(TARGET_CC) -o $@ $< -m64 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
|
|
|
|
2010-01-18 10:14:04 +00:00
|
|
|
linux.init.i386: $(srcdir)/tests/boot/linux.init-i386.S
|
2010-01-17 22:36:45 +00:00
|
|
|
$(TARGET_CC) -o $@ $< -m32 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
|
|
|
|
2010-01-18 10:38:28 +00:00
|
|
|
kfreebsd.init.x86_64: $(srcdir)/tests/boot/kfreebsd.init-x86_64.S
|
|
|
|
$(TARGET_CC) -o $@ $< -m64 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" && freebsd-brandelf -t FreeBSD $@
|
|
|
|
|
2010-01-18 10:14:04 +00:00
|
|
|
kfreebsd.init.i386: $(srcdir)/tests/boot/kfreebsd.init-i386.S
|
|
|
|
$(TARGET_CC) -o $@ $< -m32 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" && freebsd-brandelf -t FreeBSD $@
|
|
|
|
|
|
|
|
linux-initramfs.%: linux.init.% Makefile
|
|
|
|
TDIR=`mktemp -d`; cp $< $$TDIR/init; (cd $$TDIR; echo ./init | cpio --quiet --dereference -o -H newc) | gzip > $@; rm -rf $$TDIR
|
|
|
|
|
|
|
|
kfreebsd-mfsroot.%: kfreebsd.init.% Makefile
|
|
|
|
TDIR=`mktemp -d`; mkdir $$TDIR/dev; mkdir $$TDIR/sbin; cp $< $$TDIR/sbin/init; makefs -t ffs -s 30m -f 1000 -o minfree=0,version=1 $@ $$TDIR; rm -rf $$TDIR
|
|
|
|
|
|
|
|
CLEANFILES += linux.init.i386 kfreebsd.init.i386 linux.init.x86_64 linux-initramfs.i386 linux-initramfs.x86_64
|
|
|
|
|
|
|
|
bootcheck-kfreebsd-i386: kfreebsd-mfsroot.i386 $(GRUB_PAYLOADS_DIR)/kfreebsd.i386 $(GRUB_PAYLOADS_DIR)/kfreebsd_env.i386 $(srcdir)/tests/boot/kfreebsd.cfg grub-shell
|
|
|
|
timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --boot=$(BOOTTARGET) --qemu=qemu-system-i386 --files=/mfsroot=kfreebsd-mfsroot.i386 --files=/kfreebsd=$(GRUB_PAYLOADS_DIR)/kfreebsd.i386 --files=/kfreebsd_env=$(GRUB_PAYLOADS_DIR)/kfreebsd_env.i386 $(srcdir)/tests/boot/kfreebsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null
|
2010-01-17 22:36:45 +00:00
|
|
|
|
2010-01-18 10:38:28 +00:00
|
|
|
bootcheck-kfreebsd-x86_64: kfreebsd-mfsroot.x86_64 $(GRUB_PAYLOADS_DIR)/kfreebsd.x86_64 $(GRUB_PAYLOADS_DIR)/kfreebsd_env.x86_64 $(srcdir)/tests/boot/kfreebsd.cfg grub-shell
|
|
|
|
timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --boot=$(BOOTTARGET) --qemu=qemu-system-x86_64 --files=/mfsroot=kfreebsd-mfsroot.x86_64 --files=/kfreebsd=$(GRUB_PAYLOADS_DIR)/kfreebsd.x86_64 --files=/kfreebsd_env=$(GRUB_PAYLOADS_DIR)/kfreebsd_env.x86_64 $(srcdir)/tests/boot/kfreebsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null
|
2010-01-17 22:36:45 +00:00
|
|
|
|
|
|
|
bootcheck-linux-i386: linux-initramfs.i386 $(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/tests/boot/linux.cfg grub-shell
|
2010-01-18 10:14:04 +00:00
|
|
|
timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --boot=$(BOOTTARGET) --qemu=qemu-system-i386 --files=/initrd=linux-initramfs.i386 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null
|
2010-01-17 22:36:45 +00:00
|
|
|
|
|
|
|
bootcheck-linux-x86_64: linux-initramfs.x86_64 $(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/tests/boot/linux.cfg grub-shell
|
2010-01-18 10:14:04 +00:00
|
|
|
timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --boot=$(BOOTTARGET) --qemu=qemu-system-x86_64 --files=/initrd=linux-initramfs.x86_64 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null
|
2010-01-17 22:36:45 +00:00
|
|
|
|
2010-01-18 10:38:28 +00:00
|
|
|
BOOTCHECKS+=bootcheck-linux-i386 bootcheck-linux-x86_64 \
|
|
|
|
bootcheck-kfreebsd-i386 bootcheck-kfreebsd-x86_64
|
2010-01-17 22:36:45 +00:00
|
|
|
|
2010-01-18 10:38:28 +00:00
|
|
|
.PHONY: bootcheck-linux-i386 bootcheck-linux-x86_64 \
|
|
|
|
bootcheck-kfreebsd-i386 bootcheck-kfreebsd-x86_64
|