~ubuntu-branches/ubuntu/trusty/virtualbox/trusty-proposed

« back to all changes in this revision

Viewing changes to src/VBox/Devices/PC/BIOS/Makefile.kmk

  • Committer: Package Import Robot
  • Author(s): Felix Geyer
  • Date: 2013-03-07 16:38:36 UTC
  • mfrom: (1.1.13) (3.1.20 experimental)
  • Revision ID: package-import@ubuntu.com-20130307163836-p93jpbgx39tp3gb4
Tags: 4.2.8-dfsg-0ubuntu1
* New upstream release. (Closes: #691148)
  - Fixes compatibility with kernel 3.8. (Closes: #700823; LP: #1101867)
* Switch to my @debian.org email address.
* Move package to contrib as virtualbox 4.2 needs a non-free compiler to
  build the BIOS.
* Build-depend on libdevmapper-dev.
* Refresh patches.
  - Drop 36-fix-ftbfs-xserver-112.patch, cve-2012-3221.patch,
    CVE-2013-0420.patch 37-kcompat-3.6.patch and 38-kcompat-3.7.patch.
* Drop all virtualbox-ose transitional packages.
* Drop the virtualbox-fuse package as vdfuse fails to build with
  virtualbox 4.2.
* Update install files and VBox.sh.
* Bump required kbuild version to 0.1.9998svn2577.
* Fix path to VBoxCreateUSBNode.sh in virtualbox.postinst. (Closes: #700479)
* Add an init script to virtuabox-guest-x11 which loads the vboxvideo
  kernel module. The X Server 1.13 doesn't load it anymore. (Closes: #686994)
* Update man pages. (Closes: #680053)
* Add 36-python-multiarch.patch from Rico Tzschichholz to fix detection of
  python in multiarch paths using pkg-config.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# $Id: Makefile.kmk $
2
2
## @file
3
 
# PC BIOS Sub-Makefile.
 
3
# Sub-Makefile for the New BIOS ROM.
4
4
#
5
5
 
6
6
#
7
 
# Copyright (C) 2006-2007 Oracle Corporation
 
7
# Copyright (C) 2012 Oracle Corporation
8
8
#
9
9
# This file is part of VirtualBox Open Source Edition (OSE), as
10
10
# available from http://www.virtualbox.org. This file is free software;
16
16
#
17
17
 
18
18
SUB_DEPTH = ../../../../..
19
 
include $(KBUILD_PATH)/subheader.kmk
20
 
 
21
 
#
22
 
# Globals
23
 
#
24
 
VBOX_PATH_DEVICES_SRC ?= $(PATH_ROOT)/src/VBox/Devices
 
19
include $(KBUILD_PATH)/subheader.kmk
 
20
 
 
21
 
 
22
ifdef VBOX_WITH_OPEN_WATCOM
 
23
 
 
24
 #
 
25
 # VBoxPcBios - The PC BIOS.
 
26
 #
 
27
 MISCBINS += VBoxPcBios
 
28
 VBoxPcBios_TEMPLATE = VBoxBios
 
29
 VBoxPcBios_DEFS = \
 
30
        VBOX_PC_BIOS \
 
31
        VBOX_LANBOOT_SEG=0xE200 \
 
32
        VBOX_WITH_SCSI \
 
33
        VBOX_WITH_AHCI
 
34
 VBoxPcBios_LDFLAGS = \
 
35
        output raw offset=0xF0000 \
 
36
        order \
 
37
         clname DATA segaddr=0xF000 \
 
38
          segment _DATA \
 
39
         clname CODE \
 
40
          segment _TEXT   segaddr=0xF000 offset=0x1600 \
 
41
          segment BIOS32  segaddr=0xF000 offset=0xDA00 \
 
42
          segment BIOSSEG segaddr=0xF000 offset=0xE000
 
43
 VBoxPcBios_SOURCES = \
 
44
        bios.c \
 
45
        print.c \
 
46
        ata.c \
 
47
        floppy.c \
 
48
        eltorito.c \
 
49
        boot.c \
 
50
        keyboard.c \
 
51
        disk.c \
 
52
        serial.c \
 
53
        system.c \
 
54
        timepci.c \
 
55
        ps2mouse.c \
 
56
        parallel.c \
 
57
        logo.c \
 
58
        scsi.c \
 
59
        ahci.c \
 
60
        apm.c \
 
61
        pcibios.c \
 
62
        pciutil.c \
 
63
        vds.c \
 
64
        ../../BiosCommonCode/support.asm \
 
65
        pcibio32.asm \
 
66
        apm_pm.asm \
 
67
        $(VBoxPcBios32_1_TARGET) \
 
68
        orgs.asm
 
69
 
 
70
 # For 32-bit C code in PC BIOS.
 
71
 LIBRARIES += VBoxPcBios32
 
72
 VBoxPcBios32_TEMPLATE = VBoxBios32Lib
 
73
 VBoxPcBios32_SOURCES = \
 
74
       pci32.c
 
75
 
 
76
 #
 
77
 # Updates the alternative source file.
 
78
 #
 
79
 update-pcbios-source +| $(PATH_SUB_CURRENT)/VBoxBiosAlternative.asm $(PATH_SUB_CURRENT)/VBoxBiosAlternative.md5sum: \
 
80
                $$(VBoxPcBios_1_TARGET) \
 
81
                $(VBOX_MAKE_ALTERNATIVE_SOURCE) \
 
82
                $(VBOX_VBOXCMP)
 
83
 if1of ($(KBUILD_TYPE), release)
 
84
        $(VBOX_MAKE_ALTERNATIVE_SOURCE) \
 
85
                --bios-image $< \
 
86
                --bios-map $(basename $<).map \
 
87
                --bios-sym $(basename $<).sym \
 
88
                --bios-type system \
 
89
                --output $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.asm
 
90
        $(QUIET)yasm -f bin -o $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.bin $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.asm
 
91
        $(VBOX_VBOXCMP) $< $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.bin
 
92
        $(CP) --changed -- $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.asm $(PATH_ROOT)/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm
 
93
        $(REDIRECT) -C $(dir $(VBoxPcBios_1_TARGET)) -- \
 
94
                $(MD5SUM_EXT) -bo $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.md5sum $(notdir $(VBoxPcBios_1_TARGET))
 
95
        $(CP) --changed -- $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.md5sum $(PATH_ROOT)/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum
 
96
        $(RM) -f -- $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.asm $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.bin $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.md5sum
 
97
 else
 
98
        $(QUIET)$(ECHO) "Fatal error: Can only update VBoxBiosAlternative.asm/md5sum with a release build."
 
99
        $(QUIET)exit 1
 
100
 endif
 
101
 
 
102
endif # VBOX_WITH_OPEN_WATCOM
 
103
 
25
104
 
26
105
#
27
106
# The library containing the PC BIOS image.
29
108
LIBRARIES += PcBiosBin
30
109
PcBiosBin_TEMPLATE  = VBOXR3
31
110
PcBiosBin_DEFS      = IN_VBOXDD2
32
 
PcBiosBin_INCS      = $(VBOX_PATH_DEVICES_SRC)
33
111
PcBiosBin_SOURCES   = $(PcBiosBin_0_OUTDIR)/PcBiosBin.c
34
 
PcBiosBin_DEPS      = $(PcBiosBin_0_OUTDIR)/pcbios-syms.h
35
 
PcBiosBin_CLEAN     = \
36
 
        $(PcBiosBin_0_OUTDIR)/_rombios_.c \
37
 
        $(PcBiosBin_0_OUTDIR)/rombios0.s \
38
 
        $(PcBiosBin_0_OUTDIR)/rombios1.s \
39
 
        $(PcBiosBin_0_OUTDIR)/pcbios.lst \
40
 
        $(PcBiosBin_0_OUTDIR)/pcbios.tmp \
41
 
        $(PcBiosBin_0_OUTDIR)/pcbios.bin \
42
 
        $(PcBiosBin_0_OUTDIR)/PcBiosBin.c \
43
 
        $(PcBiosBin_0_OUTDIR)/pcbios-syms.h
 
112
PcBiosBin_CLEAN     = $(PcBiosBin_0_OUTDIR)/PcBiosBin.c
44
113
 
45
 
#
46
 
# Rule for making the bios.
47
 
#
48
 
$$(PcBiosBin_0_OUTDIR)/PcBiosBin.c: $$(PcBiosBin_0_OUTDIR)/pcbios.bin $(VBOX_BIN2C)
 
114
ifdef VBOX_WITH_OPEN_WATCOM
 
115
 $$(PcBiosBin_0_OUTDIR)/PcBiosBin.c: $$(VBoxPcBios_1_TARGET) $(VBOX_BIN2C) | $$(dir $$@)
49
116
        $(call MSG_TOOL,bin2c,PcBiosBin,$<,$@)
50
117
        $(QUIET)$(VBOX_BIN2C) -min 64 -max 256 -mask 0xffff -ascii -export PcBiosBinary $< $@
51
 
 
52
 
#
53
 
# Six steps to pcbios.bin and pcbios-syms.h
54
 
#
55
 
 
56
 
# 1. precompile rombios.c
57
 
$$(PcBiosBin_0_OUTDIR)/_rombios_.c: $(PATH_SUB_CURRENT)/rombios.c $(PATH_SUB_CURRENT)/logo.c \
58
 
                $(PATH_SUB_CURRENT)/apmbios.S $(if $(VBOX_WITH_SCSI),$(PATH_SUB_CURRENT)/scsi.c) \
59
 
                $(PATH_SUB_CURRENT)/../DevPcBios.h $(PATH_ROOT)/include/VBox/bioslogo.h \
60
 
                $(if $(VBOX_WITH_BIOS_AHCI),$(PATH_SUB_CURRENT)/ahci.c) \
61
 
                $(VBOX_VERSION_STAMP) | $$(dir $$@)
62
 
        $(call MSG_TOOL,cpp,PcBiosBin,$<,$@)
63
 
        $(QUIET)$(TOOL_$(VBOX_GCC_TOOL)_CC) -E \
64
 
                -I$(PcBiosBin_0_OUTDIR) -I$(VBOX_PATH_DEVICES_SRC)/PC -I$(PATH_ROOT)/include -I$(PATH_OUT) \
65
 
                -DBX_SMP_PROCESSORS=1 -DVBOX -DVBOX_PC_BIOS $(addprefix -D,$(DEFS) $(DEFS.$(KBUILD_TYPE))) \
66
 
                $(if $(VBOX_WITH_SCSI),-DVBOX_WITH_SCSI) $(if $(VBOX_WITH_BIOS_AHCI),-DVBOX_WITH_BIOS_AHCI) \
67
 
                -P -o $@ $<
68
 
 
69
 
# 2. compile to intermediate asm file.
70
 
# BCC tempfile clashes, order the BCC jobs to make sure they don't interfere with one another.
71
 
$$(PcBiosBin_0_OUTDIR)/rombios0.s: $$(PcBiosBin_0_OUTDIR)/_rombios_.c | $(VBOX_BCC_JOBS)
72
 
        $(call MSG_COMPILE,PcBiosBin,$<,$@,C)
73
 
        $(QUIET)$(VBOX_BCC) -o $@ -C-c -D__i86__ -0 -S $<
74
 
VBOX_BCC_JOBS += $(PcBiosBin_0_OUTDIR)/rombios0.s
75
 
 
76
 
# 3. post process intermediate asm file.
77
 
$$(PcBiosBin_0_OUTDIR)/rombios1.s: $$(PcBiosBin_0_OUTDIR)/rombios0.s
78
 
        $(call MSG_TOOL,Adjusting BCC Assembly,PcBiosBin,$<,$@)
79
 
        $(QUIET)$(SED) -e 's/^\.text//' -e 's/^\.data//' --output $@ $^
80
 
 
81
 
# 4. assemble the intermediate asm file. (also creates a listing rombios.lst)
82
 
$$(PcBiosBin_0_OUTDIR)/pcbios.tmp + $$(PcBiosBin_0_OUTDIR)/pcbios.lst: $$(PcBiosBin_0_OUTDIR)/rombios1.s
83
 
        $(call MSG_COMPILE,PcBiosBin,$<,$@,AS)
84
 
        $(QUIET)$(REDIRECT) -ri $^ -- $(VBOX_AS86) -b $(PcBiosBin_0_OUTDIR)/pcbios.tmp -u- -w- -g -0 -j -O -l $(PcBiosBin_0_OUTDIR)/pcbios.lst
85
 
 
86
 
# 5. calculate checksums for the final BIOS image.
87
 
$$(PcBiosBin_0_OUTDIR)/pcbios.bin: $$(PcBiosBin_0_OUTDIR)/pcbios.tmp $$(VBOX_BIOSSUMS)
88
 
        $(call MSG_TOOL,biossums,PcBiosBin,$<,$@)
89
 
        $(QUIET)$(VBOX_BIOSSUMS) $< $@
90
 
 
91
 
# 6. create the symbol table.
92
 
$$(PcBiosBin_0_OUTDIR)/pcbios-syms.h: $$(PcBiosBin_0_OUTDIR)/pcbios.lst $(MAKEFILE_CURRENT)
93
 
        $(call MSG_GENERATE,PcBiosBin,$<,$@)
94
 
        $(QUIET)$(SED) \
95
 
                -e  '/^[0-9][0-9][0-9][0-9][0-9]                       000[0-9A-F]*            [[:space:]]*[a-zA-Z0-9_]*:/!d' \
96
 
                -e 's/^[0-9][0-9][0-9][0-9][0-9]                       \(000[0-9A-F]*\)            [[:space:]]*\([a-zA-Z0-9_]*\):.*$$/    DEFSYM(0x\1, "\2"),/' \
97
 
                --output $@ \
98
 
                $(PcBiosBin_0_OUTDIR)/pcbios.lst
99
 
 
100
 
 
101
 
include $(KBUILD_PATH)/subfooter.kmk
 
118
else
 
119
 PcBiosBin_CLEAN    += $(PcBiosBin_0_OUTDIR)/VBoxPcBios.rom
 
120
 
 
121
 $$(PcBiosBin_0_OUTDIR)/PcBiosBin.c + $$(PcBiosBin_0_OUTDIR)/VBoxPcBios.rom: \
 
122
                $(PATH_SUB_CURRENT)/VBoxBiosAlternative.asm \
 
123
                $(PATH_SUB_CURRENT)/VBoxBiosAlternative.md5sum \
 
124
                $(VBOX_BIN2C) | $$(dir $$@)
 
125
        $(call MSG_TOOL,bin2c,PcBiosBin,$<,$@)
 
126
        $(QUIET)yasm -f bin -o $(PcBiosBin_0_OUTDIR)/VBoxPcBios.rom $<
 
127
        $(QUIET)$(REDIRECT) -C $(PcBiosBin_0_OUTDIR) -- \
 
128
                $(MD5SUM_EXT) -c $(basename $<).md5sum
 
129
        $(QUIET)$(VBOX_BIN2C) -min 64 -max 256 -mask 0xffff -ascii -export PcBiosBinary $(PcBiosBin_0_OUTDIR)/VBoxPcBios.rom $@
 
130
        $(QUIET)$(RM) -f -- $$(PcBiosBin_0_OUTDIR)/VBoxPcBios.rom
 
131
endif
 
132
 
 
133
include $(FILE_KBUILD_SUB_FOOTER)
102
134