253d0942fa
In order to build the multiboot option rom, we need a Makefile and a tool to sign the rom with. Both are provided by this patch and mostly taken from the extboot source, written by Anthony Liguori. Once built, the resulting binary gets copied to pc-bios automatically. Building also occurs automatically when on an x86 host. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
49 lines
1.1 KiB
Makefile
49 lines
1.1 KiB
Makefile
all: build-all
|
|
|
|
include ../../config-host.mak
|
|
|
|
VPATH=$(SRC_PATH)/pc-bios/optionrom
|
|
OBJCOPY=objcopy
|
|
|
|
# from kernel sources - scripts/Kbuild.include
|
|
# try-run
|
|
# Usage: option = $(call try-run, $(CC)...-o "$$TMP",option-ok,otherwise)
|
|
# Exit code chooses option. "$$TMP" is can be used as temporary file and
|
|
# is automatically cleaned up.
|
|
try-run = $(shell set -e; \
|
|
TMP="$(TMPOUT).$$$$.tmp"; \
|
|
if ($(1)) >/dev/null 2>&1; \
|
|
then echo "$(2)"; \
|
|
else echo "$(3)"; \
|
|
fi; \
|
|
rm -f "$$TMP")
|
|
|
|
# cc-option-yn
|
|
# Usage: flag := $(call cc-option-yn,-march=winchip-c6)
|
|
cc-option-yn = $(call try-run,\
|
|
$(CC) $(KBUILD_CFLAGS) $(1) -S -xc /dev/null -o "$$TMP",y,n)
|
|
|
|
CFLAGS = -Wall -Wstrict-prototypes -Werror -fomit-frame-pointer -fno-builtin
|
|
CFLAGS += -I$(SRC_PATH)
|
|
ifeq ($(call cc-option-yn,-fno-stack-protector),y)
|
|
CFLAGS += -fno-stack-protector
|
|
endif
|
|
|
|
build-all: multiboot.bin
|
|
|
|
%.o: %.S
|
|
$(CC) $(CFLAGS) -o $@ -c $<
|
|
|
|
%.img: %.o
|
|
$(LD) --oformat binary -Ttext 0 -o $@ $<
|
|
|
|
%.bin: %.img signrom
|
|
./signrom $< $@
|
|
cp $@ $(SRC_PATH)/pc-bios/
|
|
|
|
signrom: signrom.c
|
|
$(CC) -o $@ -g -Wall $^
|
|
|
|
clean:
|
|
$(RM) *.o *.img *.bin signrom *~
|