Makefile.kmk revision 0886d8f3dd24cf84b1875e6b3147c600c2eec6c2
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync# Sub-Makefile for the New BIOS ROM.
c58f1213e628a545081c70e26c6b67a841cff880vboxsync# Copyright (C) 2012 Oracle Corporation
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync# available from http://www.virtualbox.org. This file is free software;
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync# you can redistribute it and/or modify it under the terms of the GNU
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync# General Public License (GPL) as published by the Free Software
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsyncSUB_DEPTH = ../../../../..
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsyncinclude $(KBUILD_PATH)/subheader.kmk
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsyncifdef VBOX_WITH_OPEN_WATCOM
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync # VBoxPcBios - The PC BIOS.
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync MISCBINS += VBoxPcBios
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync VBoxPcBios_TEMPLATE = VBoxBios
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync VBoxPcBios_DEFS = \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync VBOX_PC_BIOS \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync VBOX_LANBOOT_SEG=0xE200 \
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync VBOX_WITH_SCSI \
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync VBOX_WITH_AHCI
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync VBoxPcBios_LDFLAGS = \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync output raw offset=0xF0000 \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync clname DATA segaddr=0xF000 \
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync segment _DATA \
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync clname CODE \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync segment _TEXT segaddr=0xF000 offset=0x1600 \
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync segment BIOS32 segaddr=0xF000 offset=0xDA00 \
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync segment BIOSSEG segaddr=0xF000 offset=0xE000
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync VBoxPcBios_SOURCES = \
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync $(VBoxPcBios32_1_TARGET) \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync # For 32-bit C code in PC BIOS.
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync LIBRARIES += VBoxPcBios32
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync VBoxPcBios32_TEMPLATE = VBoxBios32Lib
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync VBoxPcBios32_SOURCES = \
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync # Updates the alternative source file.
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync update-pcbios-source +| $(PATH_SUB_CURRENT)/VBoxBiosAlternative.asm $(PATH_SUB_CURRENT)/VBoxBiosAlternative.md5sum: \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync $$(VBoxPcBios_1_TARGET) \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync $(VBOX_MAKE_ALTERNATIVE_SOURCE) \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync $(VBOX_VBOXCMP)
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync if1of ($(KBUILD_TYPE), release)
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync $(VBOX_MAKE_ALTERNATIVE_SOURCE) \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync --bios-image $< \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync --bios-map $(basename $<).map \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync --bios-sym $(basename $<).sym \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync --bios-type system \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync --output $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.asm
$(QUIET)yasm -f bin -o $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.bin $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.asm
$(VBOX_VBOXCMP) $< $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.bin
$(CP) --changed -- $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.asm $(PATH_ROOT)/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm
$(MD5SUM_EXT) -bo $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.md5sum $(notdir $(VBoxPcBios_1_TARGET))
$(CP) --changed -- $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.md5sum $(PATH_ROOT)/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum
$(RM) -f -- $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.asm $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.bin $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.md5sum
$(QUIET)$(ECHO) "Fatal error: Can only update VBoxBiosAlternative.asm/md5sum with a release build."
PcBiosBin_SOURCES = $(PcBiosBin_0_OUTDIR)/PcBiosBin.c
PcBiosBin_CLEAN = $(PcBiosBin_0_OUTDIR)/PcBiosBin.c
$$(PcBiosBin_0_OUTDIR)/PcBiosBin.c: $$(VBoxPcBios_1_TARGET) $(VBOX_BIN2C) | $$(dir $$@)
PcBiosBin_CLEAN += $(PcBiosBin_0_OUTDIR)/VBoxPcBios.rom
$(PATH_SUB_CURRENT)/VBoxBiosAlternative.asm \
$(PATH_SUB_CURRENT)/VBoxBiosAlternative.md5sum \
$(QUIET)yasm -f bin -o $(PcBiosBin_0_OUTDIR)/VBoxPcBios.rom $<
$(QUIET)$(VBOX_BIN2C) -min 64 -max 256 -mask 0xffff -ascii -export PcBiosBinary $(PcBiosBin_0_OUTDIR)/VBoxPcBios.rom $@
$(QUIET)$(RM) -f -- $$(PcBiosBin_0_OUTDIR)/VBoxPcBios.rom