Makefile.kmk revision 273a322aaa553848f50de50d146060363e602e2f
de4157257515400c2c25373591135f110227b68cvboxsync# $Id$
de4157257515400c2c25373591135f110227b68cvboxsync## @file
de4157257515400c2c25373591135f110227b68cvboxsync# VGA BIOS Sub-Makefile
de4157257515400c2c25373591135f110227b68cvboxsync#
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsync#
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync# Copyright (C) 2006-2007 innotek GmbH
de4157257515400c2c25373591135f110227b68cvboxsync#
b263fac6f6e7fa933c7bfb2a45d598fe8e458c09vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
b263fac6f6e7fa933c7bfb2a45d598fe8e458c09vboxsync# available from http://www.virtualbox.org. This file is free software;
b263fac6f6e7fa933c7bfb2a45d598fe8e458c09vboxsync# you can redistribute it and/or modify it under the terms of the GNU
b263fac6f6e7fa933c7bfb2a45d598fe8e458c09vboxsync# General Public License (GPL) as published by the Free Software
b263fac6f6e7fa933c7bfb2a45d598fe8e458c09vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
b263fac6f6e7fa933c7bfb2a45d598fe8e458c09vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
b263fac6f6e7fa933c7bfb2a45d598fe8e458c09vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
b263fac6f6e7fa933c7bfb2a45d598fe8e458c09vboxsync#
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsyncDEPTH ?= ../../../../..
de4157257515400c2c25373591135f110227b68cvboxsyncSUB_DEPTH = ../..
de4157257515400c2c25373591135f110227b68cvboxsyncinclude $(PATH_KBUILD)/subheader.kmk
de4157257515400c2c25373591135f110227b68cvboxsync
7dd5b2ea2a3826ec17c0739510c1e826490d1e76vboxsyncVBOX_PATH_DEVICES_SRC = $(PATH_SUB_ROOT)
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsync#
de4157257515400c2c25373591135f110227b68cvboxsync# Build program for calculating the VGA BIOS checksums.
de4157257515400c2c25373591135f110227b68cvboxsync#
de4157257515400c2c25373591135f110227b68cvboxsyncBLDPROGS += vgabiossums vbetables-gen
de4157257515400c2c25373591135f110227b68cvboxsyncvgabiossums_TEMPLATE = VBOXBLDPROG
3186f45ef453b44e92adeddf57bae69632e2c66avboxsyncvgabiossums_SOURCES = biossums.c
3186f45ef453b44e92adeddf57bae69632e2c66avboxsyncvbetables-gen_TEMPLATE = VBOXBLDPROG
de4157257515400c2c25373591135f110227b68cvboxsyncvbetables-gen_SOURCES = vbetables-gen.c
3b1c0519f63fdaa66ef4bd15f98ff37726c65155vboxsync
de4157257515400c2c25373591135f110227b68cvboxsync#
3b1c0519f63fdaa66ef4bd15f98ff37726c65155vboxsync# The library containing the VGA BIOS image.
84bc660fdabcc3e7965ca7f5c706b48f0380830dvboxsync#
180898857d826cc6f5620964f3ba4d79cf3b6a45vboxsyncLIBRARIES += VgaBiosBin
180898857d826cc6f5620964f3ba4d79cf3b6a45vboxsyncVgaBiosBin_TEMPLATE = VBOXR3
180898857d826cc6f5620964f3ba4d79cf3b6a45vboxsyncVgaBiosBin_DEFS = IN_VBOXDD2
ba8485daab567f4004a984eb709724cb2217d504vboxsyncVgaBiosBin_INCS = $(VBOX_PATH_DEVICES_SRC)
ba8485daab567f4004a984eb709724cb2217d504vboxsyncVgaBiosBin_SOURCES = $(PATH_TARGET)/VgaBiosBin.c
ba8485daab567f4004a984eb709724cb2217d504vboxsyncVgaBiosBin_CLEAN = \
ba8485daab567f4004a984eb709724cb2217d504vboxsync $(PATH_TARGET)/_vgabios_.c \
e006a5cefba44e778d2bfec179aa00b347b31ecfvboxsync $(PATH_TARGET)/vgabios0.s \
ba8485daab567f4004a984eb709724cb2217d504vboxsync $(PATH_TARGET)/vgabios1.s \
9d1274496c423743379ecfb581f623ccedd9ebeevboxsync $(PATH_TARGET)/vgabios.tmp \
9f0a3520e48fa74caec1abadb643db5710ad97e0vboxsync $(PATH_TARGET)/vgabios.lst \
118d59350fc40712d94b848b39b3ae6d75622550vboxsync $(PATH_TARGET)/vgabios.bin \
8ac3066da7de717ed72ea852b9866e90eabc7450vboxsync $(PATH_TARGET)/VgaBiosBin.c \
8ac3066da7de717ed72ea852b9866e90eabc7450vboxsync $(PATH_TARGET)/VgaDefBiosLogo.c \
ba8485daab567f4004a984eb709724cb2217d504vboxsync \
e006a5cefba44e778d2bfec179aa00b347b31ecfvboxsync $(PATH_TARGET)/_vgabios-cirrus_.c \
9bdbacafafc2f74cd1c13f55514c027a0a02889fvboxsync $(PATH_TARGET)/vgabios-cirrus0.s \
af9768eb3e9427b661e43fa417be644b0fd84195vboxsync $(PATH_TARGET)/vgabios-cirrus1.s \
9bdbacafafc2f74cd1c13f55514c027a0a02889fvboxsync $(PATH_TARGET)/vgabios-cirrus.tmp \
de4157257515400c2c25373591135f110227b68cvboxsync $(PATH_TARGET)/vgabios-cirrus.lst \
c761e186789dd326c080eac4569f4e47473a350dvboxsync $(PATH_TARGET)/vgabios-cirrus.bin
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsync#
de4157257515400c2c25373591135f110227b68cvboxsync# Rule for making the bios.
de4157257515400c2c25373591135f110227b68cvboxsync#
de4157257515400c2c25373591135f110227b68cvboxsync$(PATH_TARGET)/VgaBiosBin.c: $(PATH_TARGET)/vgabios.bin $(VBOX_BIN2C)
de4157257515400c2c25373591135f110227b68cvboxsync $(call MSG_TOOL,bin2c,VgaBiosBin,$<,$@)
de4157257515400c2c25373591135f110227b68cvboxsync $(QUIET)$(VBOX_BIN2C) -min 32 -max 64 -mask 0x0fff -ascii -export VgaBiosBinary $< $@
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsync#
de4157257515400c2c25373591135f110227b68cvboxsync# vgabios
3b1c0519f63fdaa66ef4bd15f98ff37726c65155vboxsync#
3b1c0519f63fdaa66ef4bd15f98ff37726c65155vboxsync
de4157257515400c2c25373591135f110227b68cvboxsync# 1. create vbetables.h
de4157257515400c2c25373591135f110227b68cvboxsync$(PATH_TARGET)/vbetables.h: $(MAKEFILE_CURRENT) $(TARGET_vbetables-gen)
3186f45ef453b44e92adeddf57bae69632e2c66avboxsync $(QUIET)$(REDIRECT) -wo $@ -- $(TARGET_vbetables-gen)
3186f45ef453b44e92adeddf57bae69632e2c66avboxsync
de4157257515400c2c25373591135f110227b68cvboxsync# 2. precompile
de4157257515400c2c25373591135f110227b68cvboxsync$(PATH_TARGET)/_vgabios_.c: $(addprefix $(PATH_SUB_CURRENT)/,vgabios.c vgabios.h vbe.h vgatables.h vgafonts.h vbe.c clext.c) $(PATH_TARGET)/vbetables.h
3186f45ef453b44e92adeddf57bae69632e2c66avboxsync $(call MSG_TOOL,cpp,VgaBiosBin,$<,$@)
de4157257515400c2c25373591135f110227b68cvboxsync $(QUIET)$(TOOL_$(VBOX_GCC_TOOL)_CC) -E -P -DVBOX -DVBOX_VERSION_STRING=\"$(VBOX_VERSION_STRING)\" -DVBE -DVGABIOS_DATE="''" $(addprefix -D,$(DEFS) $(DEFS.$(BUILD_TYPE))) -o $@ $<
3186f45ef453b44e92adeddf57bae69632e2c66avboxsync
de4157257515400c2c25373591135f110227b68cvboxsync# 3. compile - tempfile clashes, so make sure it's built in solitude.
3186f45ef453b44e92adeddf57bae69632e2c66avboxsync.NOTPARALLEL: $(PATH_TARGET)/vgabios0.s
de4157257515400c2c25373591135f110227b68cvboxsync$(PATH_TARGET)/vgabios0.s: $(PATH_TARGET)/_vgabios_.c
03b6ba99f7d7ea26eb1f2b1a894a235b62c3b1d7vboxsync $(call MSG_COMPILE,VgaBiosBin,$<,$@,C)
03b6ba99f7d7ea26eb1f2b1a894a235b62c3b1d7vboxsync $(QUIET)$(VBOX_BCC) -o $@ -C-c -D__i86__ -0 -S $^
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsync# 4. preprocess intermediate assembly.
de4157257515400c2c25373591135f110227b68cvboxsync$(PATH_TARGET)/vgabios1.s: $(PATH_TARGET)/vgabios0.s
de4157257515400c2c25373591135f110227b68cvboxsync $(call MSG_TOOL,Adjusting BCC Assembly,VgaBiosBin,$<,$@)
a50fbf5e37052d5105a3d5eb3e0a064d1e202920vboxsync $(QUIET)$(SED) -e 's/^\.text//' -e 's/^\.data//' --output $@ $^
a50fbf5e37052d5105a3d5eb3e0a064d1e202920vboxsync
a50fbf5e37052d5105a3d5eb3e0a064d1e202920vboxsync# 5. assemble
3186f45ef453b44e92adeddf57bae69632e2c66avboxsync$(PATH_TARGET)/vgabios.tmp $(PATH_TARGET)/vgabios.lst: $(PATH_TARGET)/vgabios1.s
3186f45ef453b44e92adeddf57bae69632e2c66avboxsync $(call MSG_COMPILE,VgaBiosBin,$<,$@,AS)
de4157257515400c2c25373591135f110227b68cvboxsync $(QUIET)$(REDIRECT) -ri $^ -- $(VBOX_AS86) -b $(PATH_TARGET)/vgabios.tmp -u- -w- -g -0 -j -O -l $(PATH_TARGET)/vgabios.lst
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsync# 6. checksums
de4157257515400c2c25373591135f110227b68cvboxsync$(PATH_TARGET)/vgabios.bin: $(PATH_TARGET)/vgabios.tmp $$(TARGET_vgabiossums)
de4157257515400c2c25373591135f110227b68cvboxsync $(call MSG_TOOL,vgabiossums,VgaBiosBin,$<,$@)
3186f45ef453b44e92adeddf57bae69632e2c66avboxsync $(QUIET)$(CP) -f $(PATH_TARGET)/vgabios.tmp $@
de4157257515400c2c25373591135f110227b68cvboxsync $(QUIET)$(TARGET_vgabiossums) $@
de4157257515400c2c25373591135f110227b68cvboxsync
8796769239832e686064138005dd1b45f038348bvboxsync#
8796769239832e686064138005dd1b45f038348bvboxsync# The VGA BIOS Logo.
de4157257515400c2c25373591135f110227b68cvboxsync#
8796769239832e686064138005dd1b45f038348bvboxsyncLIBRARIES += VgaDefBiosLogo
de4157257515400c2c25373591135f110227b68cvboxsyncVgaDefBiosLogo_TEMPLATE = VBOXR3
de4157257515400c2c25373591135f110227b68cvboxsyncVgaDefBiosLogo_INCS = $(VBOX_PATH_DEVICES_SRC)
de4157257515400c2c25373591135f110227b68cvboxsyncVgaDefBiosLogo_SOURCES = $(PATH_TARGET)/VgaDefBiosLogo.c
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsync#
297f387090f3fa07432f43790014437edbdd4bd3vboxsync# Rule for making the bios logo.
de4157257515400c2c25373591135f110227b68cvboxsync#
297f387090f3fa07432f43790014437edbdd4bd3vboxsyncifdef VBOX_OSE
de4157257515400c2c25373591135f110227b68cvboxsyncLOGO_FILE=innotek_logo.bmp
3186f45ef453b44e92adeddf57bae69632e2c66avboxsyncelse
de4157257515400c2c25373591135f110227b68cvboxsyncLOGO_FILE=sun_logo.bmp
de4157257515400c2c25373591135f110227b68cvboxsyncendif
de4157257515400c2c25373591135f110227b68cvboxsync$(PATH_TARGET)/VgaDefBiosLogo.c: $(PATH_SUB_CURRENT)/$(LOGO_FILE) $(VBOX_BIN2C)
297f387090f3fa07432f43790014437edbdd4bd3vboxsync $(call MSG_TOOL,bin2c,VgaBiosBin,$<,$@)
de4157257515400c2c25373591135f110227b68cvboxsync $(QUIET)$(VBOX_BIN2C) VgaDefBiosLogo $< $@
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsyncinclude $(PATH_KBUILD)/subfooter.kmk
de4157257515400c2c25373591135f110227b68cvboxsync
de4157257515400c2c25373591135f110227b68cvboxsync