198409991SHelge Konetzkainclude config.mak 298409991SHelge KonetzkaSRC_DIR := $(TOPSRC_DIR)/pc-bios/optionrom 3bf708f3cSMarc-André LureauVPATH = $(SRC_DIR) 4bf708f3cSMarc-André Lureau 548972f8cSMarcus Hähnelall: multiboot.bin multiboot_dma.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin pvh.bin 6c05ac895SPaul Brook# Dummy command so that make thinks it has done something 7c05ac895SPaul Brook @true 8253d0942SAlexander Graf 949b7d744SPaolo BonziniCFLAGS = -O2 -g 10253d0942SAlexander Graf 1166c9f20fSPaolo BonziniNULL := 1266c9f20fSPaolo BonziniSPACE := $(NULL) # 1366c9f20fSPaolo BonziniTARGET_PREFIX := $(patsubst %/,%:$(SPACE),$(TARGET_DIR)) 1466c9f20fSPaolo Bonzini 15f9236995SPaolo Bonziniquiet-@ = $(if $(V),,@$(if $1,printf "%s\n" "$(TARGET_PREFIX)$1" && )) 16f9236995SPaolo Bonziniquiet-command = $(call quiet-@,$2 $@)$1 179584d3d0SChristian Ehrhardt 18bf708f3cSMarc-André Lureau# Flags for dependency generation 19bf708f3cSMarc-André Lureauoverride CPPFLAGS += -MMD -MP -MT $@ -MF $(@D)/$(*F).d 20bf708f3cSMarc-André Lureau 2166c9f20fSPaolo Bonzinioverride CFLAGS += -march=i486 -Wall $(EXTRA_CFLAGS) -m16 2243924d1eSPaolo Bonzinioverride CFLAGS += -ffreestanding -I$(TOPSRC_DIR)/include 2366c9f20fSPaolo Bonzini 2466c9f20fSPaolo Bonzinicc-test = $(CC) -Werror $1 -c -o /dev/null -xc /dev/null >/dev/null 2>/dev/null 2566c9f20fSPaolo Bonzinicc-option = if $(call cc-test, $1); then \ 2666c9f20fSPaolo Bonzini echo "$(TARGET_PREFIX)$1 detected" && echo "override CFLAGS += $1" >&3; else \ 2766c9f20fSPaolo Bonzini echo "$(TARGET_PREFIX)$1 not detected" $(if $2,&& echo "override CFLAGS += $2" >&3); fi 2866c9f20fSPaolo Bonzini 2966c9f20fSPaolo Bonzini# If -fcf-protection is enabled in flags or compiler defaults that will 3066c9f20fSPaolo Bonzini# conflict with -march=i486 3166c9f20fSPaolo Bonziniconfig-cc.mak: Makefile 3266c9f20fSPaolo Bonzini $(quiet-@)($(call cc-option,-fcf-protection=none); \ 3366c9f20fSPaolo Bonzini $(call cc-option,-fno-pie); \ 3466c9f20fSPaolo Bonzini $(call cc-option,-no-pie); \ 3566c9f20fSPaolo Bonzini $(call cc-option,-fno-stack-protector); \ 3666c9f20fSPaolo Bonzini $(call cc-option,-Wno-array-bounds)) 3> config-cc.mak 3766c9f20fSPaolo Bonzini-include config-cc.mak 38bf708f3cSMarc-André Lureau 39*35ed01baSFabiano Rosasoverride LDFLAGS = -nostdlib -Wl,--build-id=none,-T,$(SRC_DIR)/flat.lds 40bf708f3cSMarc-André Lureau 41bf708f3cSMarc-André Lureaupvh.img: pvh.o pvh_main.o 42bf708f3cSMarc-André Lureau 43bf708f3cSMarc-André Lureau%.o: %.S 44f9236995SPaolo Bonzini $(call quiet-command,$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<,Assembling) 45bf708f3cSMarc-André Lureau 46bf708f3cSMarc-André Lureau%.o: %.c 47f9236995SPaolo Bonzini $(call quiet-command,$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@,Compiling) 48bf708f3cSMarc-André Lureau 49bf708f3cSMarc-André Lureau%.img: %.o 50f9236995SPaolo Bonzini $(call quiet-command,$(CC) $(CFLAGS) $(LDFLAGS) -s -o $@ $^,Linking) 51bf708f3cSMarc-André Lureau 52bf708f3cSMarc-André Lureau%.raw: %.img 53f9236995SPaolo Bonzini $(call quiet-command,$(OBJCOPY) -O binary -j .text $< $@,Extracting raw object) 54bf708f3cSMarc-André Lureau 55bf708f3cSMarc-André Lureau%.bin: %.raw 56f9236995SPaolo Bonzini $(call quiet-command,$(PYTHON) $(TOPSRC_DIR)/scripts/signrom.py $< $@,Computing checksum into) 57bf708f3cSMarc-André Lureau 58bf708f3cSMarc-André Lureauinclude $(wildcard *.d) 59bf708f3cSMarc-André Lureau 60bf708f3cSMarc-André Lureauclean: 61bf708f3cSMarc-André Lureau rm -f *.o *.d *.raw *.img *.bin *~ 62253d0942SAlexander Graf 6366c9f20fSPaolo Bonzinidistclean: 6466c9f20fSPaolo Bonzini rm -f config-cc.mak 6566c9f20fSPaolo Bonzini 666fbcef29SJan Kiszka# suppress auto-removal of intermediate files 676fbcef29SJan Kiszka.SECONDARY: 686fbcef29SJan Kiszka 6966c9f20fSPaolo Bonzini.PHONY: all clean distclean 70