Makefile.kmk revision 5bfd3ff4ec71e7a1dcbece7cf56c59177da30f99
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync# $Id$
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync## @file
5b281ba489ca18f0380d7efc7a5108b606cce449vboxsync# Sub-Makefile for the New VGA BIOS ROM.
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync#
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync#
c0b6af690ad705bddfa87c643b89770a7a0aaf5avboxsync# Copyright (C) 2012 Oracle Corporation
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync#
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync# available from http://www.virtualbox.org. This file is free software;
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync# you can redistribute it and/or modify it under the terms of the GNU
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync# General Public License (GPL) as published by the Free Software
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync#
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsyncSUB_DEPTH = ../../../../..
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsyncinclude $(KBUILD_PATH)/subheader.kmk
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsyncifdef VBOX_WITH_OPEN_WATCOM
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync #
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync # VBoxVgaBios - The VGA BIOS.
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync #
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync MISCBINS += VBoxVgaBios
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync VBoxVgaBios_TEMPLATE = VBoxBios
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync VBoxVgaBios_ASFLAGS = -0
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync VBoxVgaBios_DEFS = VBE
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync VBoxVgaBios_SOURCES = \
8c99dcd207cf5b7bee01f95fbe19728a94076f94vboxsync vgarom.asm \
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync vberom.asm \
8c99dcd207cf5b7bee01f95fbe19728a94076f94vboxsync vgabios.c \
a8f65e585466d1267633cea76b4f97a69b7f1cc0vboxsync vbe.c
a8f65e585466d1267633cea76b4f97a69b7f1cc0vboxsync VBoxVgaBios_LDFLAGS = \
a8f65e585466d1267633cea76b4f97a69b7f1cc0vboxsync output raw offset=0xC0000 \
2d059d153e5d436dd4c6b8a15bb8f17ad1b3fa26vboxsync order \
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync clname CODE \
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync segment VGAROM segaddr=0xC000 \
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync segment _TEXT segaddr=0xC000 offset=0xA00 \
8c99dcd207cf5b7bee01f95fbe19728a94076f94vboxsync segment VBE32 segaddr=0xC000 offset=0x4600 \
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync clname DATA \
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync segment _DATA segaddr=0xC000 offset=0x4800 \
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync #
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync # Updates the alternative source file.
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync #
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync update-vgabios-source +| $(PATH_SUB_CURRENT)/VBoxVgaBiosAlternative.asm $(PATH_SUB_CURRENT)/VBoxVgaBiosAlternative.md5sum: \
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync $$(VBoxVgaBios_1_TARGET) \
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync $(VBOX_MAKE_ALTERNATIVE_SOURCE) \
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync $(VBOX_VBOXCMP)
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync if1of ($(KBUILD_TYPE), release)
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync $(VBOX_MAKE_ALTERNATIVE_SOURCE) \
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync --bios-image $< \
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync --bios-map $(basename $<).map \
232a98ca36e6245c7fedaab59811d01e57afce30vboxsync --bios-sym $(basename $<).sym \
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync --bios-type vga \
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync --output $(VBoxVgaBios_0_OUTDIR)/VBoxVgaBiosAlternative.asm
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync $(QUIET)yasm -f bin -o $(VBoxVgaBios_0_OUTDIR)/VBoxVgaBiosAlternative.bin $(VBoxVgaBios_0_OUTDIR)/VBoxVgaBiosAlternative.asm
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync $(VBOX_VBOXCMP) $< $(VBoxVgaBios_0_OUTDIR)/VBoxVgaBiosAlternative.bin
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync $(CP) --changed -- $(VBoxVgaBios_0_OUTDIR)/VBoxVgaBiosAlternative.asm $(PATH_ROOT)/src/VBox/Devices/Graphics/BIOS-new/VBoxVgaBiosAlternative.asm
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync $(REDIRECT) -C $(dir $(VBoxVgaBios_1_TARGET)) -- \
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync $(MD5SUM_EXT) -bo $(VBoxVgaBios_0_OUTDIR)/VBoxVgaBiosAlternative.md5sum $(notdir $(VBoxVgaBios_1_TARGET))
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync $(CP) --changed -- $(VBoxVgaBios_0_OUTDIR)/VBoxVgaBiosAlternative.md5sum $(PATH_ROOT)/src/VBox/Devices/Graphics/BIOS-new/VBoxVgaBiosAlternative.md5sum
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync $(RM) -f -- $(VBoxVgaBios_0_OUTDIR)/VBoxVgaBiosAlternative.asm $(VBoxVgaBios_0_OUTDIR)/VBoxVgaBiosAlternative.bin $(VBoxVgaBios_0_OUTDIR)/VBoxVgaBiosAlternative.md5sum
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync else
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync $(QUIET)$(ECHO) "Fatal error: Can only update VBoxVgaBiosAlternative.asm/md5sum with a release build."
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync $(QUIET)exit 1
bd4d5b99a9ad50d23a13cf695bbf48f8d9364618vboxsync endif
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsyncendif # VBOX_WITH_OPEN_WATCOM
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync#
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync# The library containing the VGA BIOS image.
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsync#
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsyncLIBRARIES += VgaBiosBin
5e91fc5e5ea9cccb7a40636f73253d489fbe340bvboxsyncVgaBiosBin_TEMPLATE = VBOXR3
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsyncVgaBiosBin_DEFS = IN_VBOXDD2
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsyncVgaBiosBin_SOURCES = \
232a98ca36e6245c7fedaab59811d01e57afce30vboxsync $(VgaBiosBin_0_OUTDIR)/VgaBiosBin.c
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsyncVgaBiosBin_DEPS = \
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync $(VgaBiosBin_0_OUTDIR)/vbetables.h
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsyncVgaBiosBin_CLEAN = \
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync $(VgaBiosBin_0_OUTDIR)/VgaBiosBin.c \
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync $(VgaBiosBin_0_OUTDIR)/vbetables.h
232a98ca36e6245c7fedaab59811d01e57afce30vboxsync
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsyncifdef VBOX_WITH_OPEN_WATCOM
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync $$(VgaBiosBin_0_OUTDIR)/VgaBiosBin.c: $$(VBoxVgaBios_1_TARGET) $(VBOX_BIN2C) | $$(dir $$@)
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync $(call MSG_TOOL,bin2c,VgaBiosBin,$<,$@)
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync $(QUIET)$(VBOX_BIN2C) -min 32 -max 36 -mask 0x0fff -ascii -export VgaBiosBinary $< $@
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsyncelse
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync VgaBiosBin_CLEAN += $(VgaBiosBin_0_OUTDIR)/VBoxVgaBios.rom
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync $$(VgaBiosBin_0_OUTDIR)/VgaBiosBin.c + $$(VgaBiosBin_0_OUTDIR)/VBoxVgaBios.rom: \
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync $(PATH_SUB_CURRENT)/VBoxVgaBiosAlternative.asm \
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync $(PATH_SUB_CURRENT)/VBoxVgaBiosAlternative.md5sum \
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync $(VBOX_BIN2C) | $$(dir $$@)
232a98ca36e6245c7fedaab59811d01e57afce30vboxsync $(call MSG_TOOL,bin2c,VgaBiosBin,$<,$@)
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync $(QUIET)yasm -f bin -o $(VgaBiosBin_0_OUTDIR)/VBoxVgaBios.rom $<
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync $(QUIET)$(REDIRECT) -C $(VgaBiosBin_0_OUTDIR) -- \
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync $(MD5SUM_EXT) -c $(basename $<).md5sum
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync $(QUIET)$(VBOX_BIN2C) -min 32 -max 36 -mask 0x0fff -ascii -export VgaBiosBinary $(VgaBiosBin_0_OUTDIR)/VBoxVgaBios.rom $@
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync $(QUIET)$(RM) -f -- $$(VgaBiosBin_0_OUTDIR)/VBoxVgaBios.rom
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsyncendif
2d059d153e5d436dd4c6b8a15bb8f17ad1b3fa26vboxsync
2d059d153e5d436dd4c6b8a15bb8f17ad1b3fa26vboxsync
2d059d153e5d436dd4c6b8a15bb8f17ad1b3fa26vboxsync# Rule for making the vbetables.h that DevVGA uses.
2d059d153e5d436dd4c6b8a15bb8f17ad1b3fa26vboxsync$$(VgaBiosBin_0_OUTDIR)/vbetables.h: $(MAKEFILE_CURRENT) $$(vbetables-gen_1_TARGET) | $$(dir $$@)
2d059d153e5d436dd4c6b8a15bb8f17ad1b3fa26vboxsync $(QUIET)$(REDIRECT) -wo $@ -- $(vbetables-gen_1_TARGET)
2d059d153e5d436dd4c6b8a15bb8f17ad1b3fa26vboxsync
2d059d153e5d436dd4c6b8a15bb8f17ad1b3fa26vboxsync
2d059d153e5d436dd4c6b8a15bb8f17ad1b3fa26vboxsync#
2d059d153e5d436dd4c6b8a15bb8f17ad1b3fa26vboxsync# The VBE tables.
2d059d153e5d436dd4c6b8a15bb8f17ad1b3fa26vboxsync#
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsyncBLDPROGS += vbetables-gen
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsyncvbetables-gen_TEMPLATE = VBOXBLDPROG
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsyncvbetables-gen_SOURCES = vbetables-gen.c
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsyncvbetables-gen_CLEAN = $(vbetables-gen)
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync#
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync# The VGA BIOS Logo.
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync#
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsyncLIBRARIES += VgaDefBiosLogo
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsyncVgaDefBiosLogo_TEMPLATE = VBOXR3
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsyncVgaDefBiosLogo_INCS = $(VBOX_PATH_DEVICES_SRC)
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsyncVgaDefBiosLogo_SOURCES = $(VgaDefBiosLogo_0_OUTDIR)/VgaDefBiosLogo.c
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsyncVgaDefBiosLogo_CLEAN = $(VgaDefBiosLogo_0_OUTDIR)/VgaDefBiosLogo.c
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync# Rule for making the bios logo.
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync$$(VgaDefBiosLogo_0_OUTDIR)/VgaDefBiosLogo.c: $(VBOX_BRAND_BIOS_LOGO) $(VBOX_BIN2C) | $$(dir $$@)
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync $(call MSG_TOOL,bin2c,VgaDefBiosLogo,$<,$@)
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync $(QUIET)$(VBOX_BIN2C) VgaDefBiosLogo $< $@
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsyncinclude $(FILE_KBUILD_SUB_FOOTER)
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync
1ba8a0ccd2665ea7cdb82f6b0f65c5145265c786vboxsync