X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=Makefile;h=c465120b23225f411c7cf5aaa67e7cdf7edaaaa3;hb=c143761594e4961c408be4866aa10ce2b64eebe7;hp=cb1cdd0afec2ca7c9ebb7752dbd1c911b91c0324;hpb=a0dc29629c0091449a4065a93812e8522e7d0540;p=seabios.git diff --git a/Makefile b/Makefile index cb1cdd0..c465120 100644 --- a/Makefile +++ b/Makefile @@ -8,16 +8,17 @@ OUT=out/ # Source files -SRC16=floppy.c disk.c system.c clock.c serial.c kbd.c mouse.c output.c \ - boot.c ata.c cdrom.c apm.c util.c pcibios.c pci.c -SRC32=post.c output.c rombios32.c util.c ata.c kbd.c pci.c +SRCBOTH=output.c util.c floppy.c ata.c kbd.c pci.c boot.c serial.c clock.c +SRC16=$(SRCBOTH) disk.c system.c mouse.c cdrom.c apm.c pcibios.c +SRC32=$(SRCBOTH) post.c rombios32.c post_menu.c TABLESRC=font.c cbt.c floppy_dbt.c cc-option = $(shell if test -z "`$(1) $(2) -S -o /dev/null -xc \ /dev/null 2>&1`"; then echo "$(2)"; else echo "$(3)"; fi ;) # Default compiler flags -COMMONCFLAGS = -Wall -Os -MD -m32 -march=i386 -mregparm=2 \ +COMMONCFLAGS = -Wall -Os -MD -m32 -march=i386 -mregparm=3 \ + -mpreferred-stack-boundary=2 -mrtd \ -ffreestanding -fwhole-program -fomit-frame-pointer \ -fno-delete-null-pointer-checks COMMONCFLAGS += $(call cc-option,$(CC),-nopie,) @@ -25,11 +26,12 @@ COMMONCFLAGS += $(call cc-option,$(CC),-fno-stack-protector,) COMMONCFLAGS += $(call cc-option,$(CC),-fno-stack-protector-all,) CFLAGS = $(COMMONCFLAGS) -g -CFLAGS16INC = $(COMMONCFLAGS) -DMODE16 -fno-jump-tables +CFLAGS16INC = $(COMMONCFLAGS) -DMODE16 -fno-jump-tables -fno-defer-pop \ + $(call cc-option,$(CC),--param large-stack-frame=8,) CFLAGS16 = $(CFLAGS16INC) -g TABLETMP=$(addprefix $(OUT), $(patsubst %.c,%.16.s,$(TABLESRC))) -all: $(OUT) $(OUT)rom.bin $(TABLETMP) +all: $(OUT) $(OUT)bios.bin $(TABLETMP) # Run with "make V=1" to see the actual compile commands ifdef V @@ -88,13 +90,13 @@ $(OUT)%.offset.auto.h: $(OUT)%.o $(OUT)blob.16.s: ; $(call whole-compile, $(CFLAGS16) -S, $(addprefix src/, $(SRC16)),$@) TABLEASM=$(addprefix $(OUT), $(patsubst %.c,%.proc.16.s,$(TABLESRC))) -$(OUT)romlayout16.o: romlayout.S $(OUT)blob.proc.16.s $(TABLEASM) +$(OUT)romlayout16.o: romlayout.S $(OUT)blob.16.s $(TABLEASM) @echo " Generating 16bit layout of $@" $(Q)$(CC) $(CFLAGS16) -c $< -o $@ -$(OUT)rom16.o: $(OUT)romlayout16.o +$(OUT)rom16.o: $(OUT)romlayout16.o $(OUT)rombios16.lds @echo " Linking $@" - $(Q)ld -melf_i386 -e post16 -Ttext 0 $< -o $@ + $(Q)ld -T $(OUT)rombios16.lds $< -o $@ $(OUT)romlayout32.o: $(OUT)rom16.offset.auto.h ; $(call whole-compile, $(CFLAGS), $(addprefix src/, $(SRC32)),$@) @@ -102,7 +104,7 @@ $(OUT)rom32.o: $(OUT)romlayout32.o $(OUT)rombios32.lds @echo " Linking $@" $(Q)ld -T $(OUT)rombios32.lds $< -o $@ -$(OUT)rom.bin: $(OUT)rom16.bin $(OUT)rom32.bin $(OUT)rom16.offset.auto.h $(OUT)rom32.offset.auto.h +$(OUT)bios.bin: $(OUT)rom16.bin $(OUT)rom32.bin $(OUT)rom16.offset.auto.h $(OUT)rom32.offset.auto.h @echo " Building $@" $(Q)./tools/buildrom.py