Makefile.kmk revision 0886d8f3dd24cf84b1875e6b3147c600c2eec6c2
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync# $Id$
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync## @file
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync# Sub-Makefile for the New BIOS ROM.
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync#
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync#
c58f1213e628a545081c70e26c6b67a841cff880vboxsync# Copyright (C) 2012 Oracle Corporation
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync#
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.
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync#
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsyncSUB_DEPTH = ../../../../..
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsyncinclude $(KBUILD_PATH)/subheader.kmk
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsyncifdef VBOX_WITH_OPEN_WATCOM
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync #
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync # VBoxPcBios - The PC BIOS.
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync #
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 order \
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 bios.c \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync print.c \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync ata.c \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync floppy.c \
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync eltorito.c \
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync boot.c \
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync keyboard.c \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync disk.c \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync serial.c \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync system.c \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync timepci.c \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync ps2mouse.c \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync parallel.c \
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync logo.c \
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync scsi.c \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync ahci.c \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync apm.c \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync pcibios.c \
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync pciutil.c \
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync vds.c \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync ../../BiosCommonCode/support.asm \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync pcibio32.asm \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync apm_pm.asm \
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync $(VBoxPcBios32_1_TARGET) \
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync orgs.asm
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync # For 32-bit C code in PC BIOS.
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync LIBRARIES += VBoxPcBios32
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync VBoxPcBios32_TEMPLATE = VBoxBios32Lib
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync VBoxPcBios32_SOURCES = \
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync pci32.c
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync
c1f4d314cb8f8b75e2d67a3553ecabd081f1e1c6vboxsync #
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync # Updates the alternative source file.
1530d8c68923ce5ecca9516358b2b585156f22c1vboxsync #
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
$(REDIRECT) -C $(dir $(VBoxPcBios_1_TARGET)) -- \
$(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
else
$(QUIET)$(ECHO) "Fatal error: Can only update VBoxBiosAlternative.asm/md5sum with a release build."
$(QUIET)exit 1
endif
endif # VBOX_WITH_OPEN_WATCOM
#
# The library containing the PC BIOS image.
#
LIBRARIES += PcBiosBin
PcBiosBin_TEMPLATE = VBOXR3
PcBiosBin_DEFS = IN_VBOXDD2
PcBiosBin_SOURCES = $(PcBiosBin_0_OUTDIR)/PcBiosBin.c
PcBiosBin_CLEAN = $(PcBiosBin_0_OUTDIR)/PcBiosBin.c
ifdef VBOX_WITH_OPEN_WATCOM
$$(PcBiosBin_0_OUTDIR)/PcBiosBin.c: $$(VBoxPcBios_1_TARGET) $(VBOX_BIN2C) | $$(dir $$@)
$(call MSG_TOOL,bin2c,PcBiosBin,$<,$@)
$(QUIET)$(VBOX_BIN2C) -min 64 -max 256 -mask 0xffff -ascii -export PcBiosBinary $< $@
else
PcBiosBin_CLEAN += $(PcBiosBin_0_OUTDIR)/VBoxPcBios.rom
$$(PcBiosBin_0_OUTDIR)/PcBiosBin.c + $$(PcBiosBin_0_OUTDIR)/VBoxPcBios.rom: \
$(PATH_SUB_CURRENT)/VBoxBiosAlternative.asm \
$(PATH_SUB_CURRENT)/VBoxBiosAlternative.md5sum \
$(VBOX_BIN2C) | $$(dir $$@)
$(call MSG_TOOL,bin2c,PcBiosBin,$<,$@)
$(QUIET)yasm -f bin -o $(PcBiosBin_0_OUTDIR)/VBoxPcBios.rom $<
$(QUIET)$(REDIRECT) -C $(PcBiosBin_0_OUTDIR) -- \
$(MD5SUM_EXT) -c $(basename $<).md5sum
$(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
endif
include $(FILE_KBUILD_SUB_FOOTER)