--- libpayload-unpatched/Makefile 2009-03-04 22:09:58.000000000 -0800 +++ libpayload/Makefile 2009-03-04 22:15:07.000000000 -0800 @@ -64,13 +64,51 @@ INCLUDES := -I./include INCLUDES += -I$(shell $(CC) -print-search-dirs | head -n 1 | cut -d' ' -f2)include # TODO: Re-add -Os as soon as we find out why it caused problems. -CFLAGS := -Wall -Werror -fno-stack-protector -nostdinc $(INCLUDES) +CFLAGS := -Wall -Werror -fno-stack-protector -ggdb -nostdinc $(INCLUDES) -lib: lib/libpayload.a lib/$(ARCHDIR-y)/head.o +lib: lib/libpayload.a lib/$(ARCHDIR-y)/head.o lib/lplconsole.o lib/libpayload.a: $(TARGETS-y) @ $(AR) rc $@ $(TARGETS-y) +LPL_CONSOLE_OBJS = libc/console.o drivers/pci.o i386/timer.o i386/sysinfo.o \ + i386/coreboot.o libc/ipchecksum.o libc/string.o +ifeq ($(CONFIG_SERIAL_CONSOLE),y) +LPL_CONSOLE_OBJS += drivers/serial.o +endif +ifeq ($(CONFIG_PC_KEYBOARD),y) +LPL_CONSOLE_OBJS += drivers/keyboard.o +endif +ifeq ($(CONFIG_VIDEO_CONSOLE),y) +LPL_CONSOLE_OBJS += drivers/video/font8x16.o drivers/video/video.o +endif +ifeq ($(CONFIG_VGA_VIDEO_CONSOLE),y) +LPL_CONSOLE_OBJS += drivers/video/vga.o +endif +ifeq ($(CONFIG_GEODE_VIDEO_CONSOLE),y) +LPL_CONSOLE_OBJS += drivers/video/geode.o +endif + +lib/lplconsole.o: $(LPL_CONSOLE_OBJS) + $(LD) -r -o $@.tmp $(LPL_CONSOLE_OBJS) + objcopy --redefine-sym putchar=lpl_putchar \ + --redefine-sym getchar=lpl_getchar \ + --redefine-sym havekey=lpl_havekey \ + --redefine-sym console_init=lpl_console_init \ + --redefine-sym udelay=lpl_udelay \ + --redefine-sym mdelay=lpl_mdelay \ + --redefine-sym ndelay=lpl_ndelay \ + --redefine-sym strnlen=lpl_strnlen \ + --redefine-sym strlen=lpl_strlen \ + --redefine-sym strncmp=lpl_strncmp \ + --redefine-sym strcmp=lpl_strcmp \ + --redefine-sym strncpy=lpl_strnpy \ + --redefine-sym strcpy=lpl_strcpy \ + --redefine-sym strdup=lpl_strdup \ + --redefine-sym strstr=lpl_strstr \ + --redefine-sym strchr=lpl_strchr \ + $@.tmp $@ + lib/$(ARCHDIR-y)/head.o: $(ARCHDIR-y)/head.o @ mkdir -p lib/$(ARCHDIR-y) @ cp $< $@