iigs
2024-03-27 32d98a3796b058e946d5d41ed5637129c312a8e9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#
# This file and its contents are supplied under the terms of the
# Common Development and Distribution License ("CDDL"), version 1.0.
# You may only use this file in accordance with the terms of version
# 1.0 of the CDDL.
#
# A full copy of the text of the CDDL should have accompanied this
# source.  A copy of the CDDL is also available via the Internet at
# http://www.illumos.org/license/CDDL.
#
 
#
# Copyright 2022 OmniOS Community Edition (OmniOSce) Association.
#
 
include ../../../make-rules/shared-macros.mk
 
COMPONENT_NAME=        uefi-edk2
COMPONENT_VERSION=    20230801
#COMPONENT_REVISION=    0
COMPONENT_FMRI=        system/bhyve/firmware
COMPONENT_CLASSIFICATION=System/Core
COMPONENT_SUMMARY=    UEFI-EDK2(+CSM) firmware for bhyve
 
COMPONENT_TAG=        il-udk2014.sp1-3
COMPONENT_SRC=        $(COMPONENT_NAME)-$(COMPONENT_TAG)
COMPONENT_ARCHIVE=    $(COMPONENT_NAME)-$(COMPONENT_TAG).tar.xz
COMPONENT_ARCHIVE_HASH= \
    sha256:998236765edaa683afc9a4799d40992c92d7ed543abf3fd28a3bc8b40aa2bc3d
COMPONENT_ARCHIVE_URL= \
    https://github.com/illumos/$(COMPONENT_NAME)/releases/download/$(COMPONENT_TAG)/$(COMPONENT_ARCHIVE)
 
COMPONENT_TAG_1=    il-edk2-stable202308-1
COMPONENT_SRC_1=    $(COMPONENT_NAME)-$(COMPONENT_TAG_1)
COMPONENT_ARCHIVE_1=    $(COMPONENT_NAME)-$(COMPONENT_TAG_1).tar.xz
COMPONENT_ARCHIVE_HASH_1= \
    sha256:8aaacf4b7c6a875c78492ad74856802abcbce89ee8cf980efbd12c74946b3b79
COMPONENT_ARCHIVE_URL_1= \
    https://github.com/illumos/$(COMPONENT_NAME)/releases/download/$(COMPONENT_TAG_1)/$(COMPONENT_ARCHIVE_1)
 
COMPONENT_PROJECT_URL=    https://github.com/illumos/uefi-edk2
COMPONENT_LICENSE=    simplified-BSD
 
include $(WS_MAKE_RULES)/prep.mk
include $(WS_MAKE_RULES)/justmake.mk
include $(WS_MAKE_RULES)/ips.mk
 
ENV = /usr/bin/env -i
 
COMPONENT_BUILD_ENV = PATH=$(PATH.illumos)
COMPONENT_BUILD_ENV += GMAKE=/usr/bin/gmake
COMPONENT_BUILD_ENV += GAS=/usr/bin/gas
COMPONENT_BUILD_ENV += GAR=/usr/bin/gar
COMPONENT_BUILD_ENV += GLD=/usr/bin/gld
COMPONENT_BUILD_ENV += GOBJCOPY=/usr/bin/gobjcopy
 
# Four variants of the bhyve firmware are built;
# DEBUG and RELEASE, and with and without CSM.
VARIANTS =    DEBUG DEBUG.csm RELEASE RELEASE.csm
 
BUILD_64 =    $(VARIANTS:%=$(BUILD_DIR)/%/.built)
INSTALL_64 =    $(VARIANTS:%=$(BUILD_DIR)/%/.installed)
 
COMPONENT_BUILD_ACTION = \
    cd $(@D); $(ENV) $(COMPONENT_BUILD_ENV) \
    ./build $(COMPONENT_BUILD_ARGS) $(COMPONENT_BUILD_TARGETS)
 
$(BUILD_DIR)/RELEASE/.built: SOURCE_DIR = $(SOURCE_DIR_1)
$(BUILD_DIR)/RELEASE/.built: COMPONENT_BUILD_ENV += GCCPATH=$(GCC_ROOT)
$(BUILD_DIR)/RELEASE/.built: COMPONENT_BUILD_ARGS =
$(BUILD_DIR)/RELEASE/.built: COMPONENT_BUILD_TARGETS = RELEASE
 
$(BUILD_DIR)/DEBUG/.built: SOURCE_DIR = $(SOURCE_DIR_1)
$(BUILD_DIR)/DEBUG/.built: COMPONENT_BUILD_ENV += GCCPATH=$(GCC_ROOT)
$(BUILD_DIR)/DEBUG/.built: COMPONENT_BUILD_ARGS =
$(BUILD_DIR)/DEBUG/.built: COMPONENT_BUILD_TARGETS = DEBUG
 
$(BUILD_DIR)/RELEASE.csm/.built: COMPONENT_BUILD_ENV += GCCPATH=/opt/gcc/4.4.4
$(BUILD_DIR)/RELEASE.csm/.built: COMPONENT_BUILD_ENV += PYTHON=/usr/bin/amd64/python2.7
$(BUILD_DIR)/RELEASE.csm/.built: COMPONENT_BUILD_ARGS = -csm
$(BUILD_DIR)/RELEASE.csm/.built: COMPONENT_BUILD_TARGETS = RELEASE
 
$(BUILD_DIR)/DEBUG.csm/.built: COMPONENT_BUILD_ENV += GCCPATH=/opt/gcc/4.4.4
$(BUILD_DIR)/DEBUG.csm/.built: COMPONENT_BUILD_ENV += PYTHON=/usr/bin/amd64/python2.7
$(BUILD_DIR)/DEBUG.csm/.built: COMPONENT_BUILD_ARGS = -csm
$(BUILD_DIR)/DEBUG.csm/.built: COMPONENT_BUILD_TARGETS = DEBUG
 
COMPONENT_PRE_INSTALL_ACTION = \
    $(MKDIR) -p $(PROTO_DIR)/usr/share/bhyve/firmware
 
COMPONENT_INSTALL_ACTION = \
    cd $(@D); \
    $(CP) ./Build/BhyveX64/$(COMPONENT_INSTALL_TARGETS)_ILLGCC/FV/$(COMPONENT_INSTALL_SOURCE) \
        $(PROTO_DIR)/usr/share/bhyve/firmware/$(COMPONENT_INSTALL_FILE)
 
$(BUILD_DIR)/DEBUG/.installed: COMPONENT_INSTALL_SOURCE = BHYVE_CODE.fd
$(BUILD_DIR)/DEBUG/.installed: COMPONENT_INSTALL_TARGETS = DEBUG
$(BUILD_DIR)/DEBUG/.installed: COMPONENT_INSTALL_FILE = BHYVE_DEBUG.fd
 
$(BUILD_DIR)/DEBUG.csm/.installed: COMPONENT_INSTALL_SOURCE = BHYVE.fd
$(BUILD_DIR)/DEBUG.csm/.installed: COMPONENT_INSTALL_TARGETS = DEBUG
$(BUILD_DIR)/DEBUG.csm/.installed: COMPONENT_INSTALL_FILE = BHYVE_DEBUG_CSM.fd
 
$(BUILD_DIR)/RELEASE/.installed: COMPONENT_INSTALL_SOURCE = BHYVE_CODE.fd
$(BUILD_DIR)/RELEASE/.installed: COMPONENT_INSTALL_TARGETS = RELEASE
$(BUILD_DIR)/RELEASE/.installed: COMPONENT_INSTALL_FILE = BHYVE_RELEASE.fd
$(BUILD_DIR)/RELEASE/.installed: \
    COMPONENT_POST_INSTALL_ACTION = \
        $(LN) -s $(COMPONENT_INSTALL_FILE) \
        $(PROTO_DIR)/usr/share/bhyve/firmware/BHYVE.fd; \
        $(CP) $(@D)/Build/BhyveX64/$(COMPONENT_INSTALL_TARGETS)_ILLGCC/FV/BHYVE_VARS.fd \
        $(PROTO_DIR)/usr/share/bhyve/firmware/BHYVE_VARS.fd
 
$(BUILD_DIR)/RELEASE.csm/.installed: COMPONENT_INSTALL_SOURCE = BHYVE.fd
$(BUILD_DIR)/RELEASE.csm/.installed: COMPONENT_INSTALL_TARGETS = RELEASE
$(BUILD_DIR)/RELEASE.csm/.installed: COMPONENT_INSTALL_FILE = BHYVE_RELEASE_CSM.fd
$(BUILD_DIR)/RELEASE.csm/.installed: \
    COMPONENT_POST_INSTALL_ACTION = $(LN) -s $(COMPONENT_INSTALL_FILE) \
    $(PROTO_DIR)/usr/share/bhyve/firmware/BHYVE_CSM.fd
 
build:        $(BUILD_64)
 
install:    $(INSTALL_64)
 
test:        $(NO_TESTS)
 
# Build dependencies
REQUIRED_PACKAGES += developer/acpi
REQUIRED_PACKAGES += developer/illumos-gcc
REQUIRED_PACKAGES += runtime/python-27
 
# Auto-generated dependencies