root / pc-bios / optionrom / Makefile @ 89e671e3
History | View | Annotate | Download (1.1 kB)
1 |
all: build-all |
---|---|
2 |
|
3 |
include ../../config-host.mak |
4 |
|
5 |
VPATH=$(SRC_PATH)/pc-bios/optionrom |
6 |
OBJCOPY=objcopy |
7 |
|
8 |
# from kernel sources - scripts/Kbuild.include |
9 |
# try-run |
10 |
# Usage: option = $(call try-run, $(CC)...-o "$$TMP",option-ok,otherwise) |
11 |
# Exit code chooses option. "$$TMP" is can be used as temporary file and |
12 |
# is automatically cleaned up. |
13 |
try-run = $(shell set -e; \ |
14 |
TMP="$(TMPOUT).$$$$.tmp"; \ |
15 |
if ($(1)) >/dev/null 2>&1; \ |
16 |
then echo "$(2)"; \ |
17 |
else echo "$(3)"; \ |
18 |
fi; \ |
19 |
rm -f "$$TMP") |
20 |
|
21 |
# cc-option-yn |
22 |
# Usage: flag := $(call cc-option-yn,-march=winchip-c6) |
23 |
cc-option-yn = $(call try-run,\ |
24 |
$(CC) $(KBUILD_CFLAGS) $(1) -S -xc /dev/null -o "$$TMP",y,n) |
25 |
|
26 |
CFLAGS = -Wall -Wstrict-prototypes -Werror -fomit-frame-pointer -fno-builtin |
27 |
CFLAGS += -I$(SRC_PATH) |
28 |
ifeq ($(call cc-option-yn,-fno-stack-protector),y) |
29 |
CFLAGS += -fno-stack-protector |
30 |
endif |
31 |
|
32 |
build-all: multiboot.bin |
33 |
|
34 |
%.o: %.S |
35 |
$(CC) $(CFLAGS) -o $@ -c $< |
36 |
|
37 |
%.img: %.o |
38 |
$(LD) --oformat binary -Ttext 0 -o $@ $< |
39 |
|
40 |
%.bin: %.img |
41 |
$(SRC_PATH)/pc-bios/optionrom/signrom.sh $< $@ |
42 |
cp $@ $(SRC_PATH)/pc-bios/ |
43 |
|
44 |
clean: |
45 |
$(RM) *.o *.img *.bin *~ |