blob: 0ef48b2721b0007e0295785ff713ad42a32ef0fa (
plain)
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
133
134
135
|
SUMMARY = "Distribution build manifest"
DESCRIPTION = "The /etc/platform-build-info file contains build manifest (SPEC-720)."
LICENSE = "MIT"
# information distributed by the package is machine specific
PACKAGE_ARCH = "${MACHINE_ARCH}"
# dependencies of ${DISTRO_MANIFEST_GENERATOR}
DEPENDS = "coreutils-native bash-native git-native gawk-native sed-native"
# force a rebuild everytime a build is started
do_compile[nostamp] = "1"
do_compilestep1 () {
rc=99
outfile=${B}/platform-build-info
if [ -x "${DISTRO_MANIFEST_GENERATOR}" -a -f "${DISTRO_SETUP_MANIFEST}" ]; then
${DISTRO_MANIFEST_GENERATOR} ${DISTRO_SETUP_MANIFEST} deploy >${outfile}-deploy
rc1=$?
${DISTRO_MANIFEST_GENERATOR} ${DISTRO_SETUP_MANIFEST} target >${outfile}-target
rc2=$?
${DISTRO_MANIFEST_GENERATOR} ${DISTRO_SETUP_MANIFEST} sdk >${outfile}-sdk
rc=$?
if [ "$rc1" -ne 0 -o "$rc2" -ne 0 -o "$rc3" -ne 0 ]; then
rc=98
fi
else
if [ -z "${DISTRO_MANIFEST_GENERATOR}" ]; then
echo "The name of the generation script is not defined."
elif [ ! -f "${DISTRO_MANIFEST_GENERATOR}" ]; then
echo "Generation script ${DISTRO_MANIFEST_GENERATOR} is missing."
elif [ ! -x "${DISTRO_MANIFEST_GENERATOR}" ]; then
echo "Generation script ${DISTRO_MANIFEST_GENERATOR} isn't executable."
fi
if [ -z "${DISTRO_SETUP_MANIFEST}" ]; then
echo "The name of the data file is not defined."
elif [ ! -f "${DISTRO_SETUP_MANIFEST}" ]; then
echo "Data file ${DISTRO_SETUP_MANIFEST} is missing."
fi
echo "You can try to rerun aglsetup.sh to solve that issue."
echo "You can also try to source agl-init-build-env instead of oe-init-build-env."
fi
if [ "$rc" -ne 0 ]; then
echo "distro-build-manifest generation failed."
fi
return $rc
}
# borrowed to os-release.bb (output format is very close)
python do_compilestep2 () {
import shutil
with open(d.expand('${B}/platform-build-info-deploy'),'a') as f:
for field in d.getVar('BUILD_MANIFEST_FIELDS_DEPLOY').split():
value=d.getVar(field)
if value:
f.write('DIST_BB_{0}="{1}"\n'.format(field,value))
with open(d.expand('${B}/platform-build-info-target'),'a') as f:
for field in d.getVar('BUILD_MANIFEST_FIELDS_TARGET').split():
value=d.getVar(field)
if value:
f.write('DIST_BB_{0}="{1}"\n'.format(field,value))
with open(d.expand('${B}/platform-build-info-sdk'),'a') as f:
for field in d.getVar('BUILD_MANIFEST_FIELDS_SDK').split():
value=d.getVar(field)
if value:
f.write('DIST_BB_{0}="{1}"\n'.format(field,value))
}
do_compilestep2[vardeps] += " ${BUILD_MANIFEST_FIELDS_DEPLOY}"
do_compilestep2[vardeps] += " ${BUILD_MANIFEST_FIELDS_TARGET}"
do_compilestep2[vardeps] += " ${BUILD_MANIFEST_FIELDS_SDK}"
# combine the two steps
python do_compile() {
bb.build.exec_func("do_compilestep1",d)
bb.build.exec_func("do_compilestep2",d)
}
do_install () {
# install in target dir
install -d ${D}${sysconfdir}
install -m 0644 platform-build-info-target ${D}${sysconfdir}/platform-build-info
# also copy in deploy dir
install -d ${DEPLOY_DIR_IMAGE}
install -m 0644 platform-build-info-deploy ${DEPLOY_DIR_IMAGE}/platform-build-info
# and copy to nativesdk package
# TODO
}
# list of variables to add to the various manifests
# smalles one is 'target', then 'deploy' and finally 'sdk'
BUILD_MANIFEST_FIELDS_TARGET = "\
MACHINE_ARCH \
MACHINEOVERRIDES \
MACHINE_FEATURES \
DISTRO_CODENAME \
DISTRO_FEATURES \
DISTRO_BRANCH_VERSION_TAG \
AGLVERSION \
AGL_BRANCH \
AGLRELEASETYPE \
"
BUILD_MANIFEST_FIELDS_DEPLOY = "\
${BUILD_MANIFEST_FIELDS_TARGET} \
DISTRO \
DISTRO_VERSION \
DISTROOVERRIDES \
TUNE_FEATURES \
TUNE_PKGARCH \
ALL_MULTILIB_PACKAGE_ARCHS \
"
BUILD_MANIFEST_FIELDS_SDK = "\
${BUILD_MANIFEST_FIELDS_DEPLOY} \
HOST_SYS \
TARGET_SYS \
TARGET_VENDOR \
SDK_ARCH \
SDK_VENDOR \
SDK_VERSION \
SDK_OS \
"
# dont exec useless tasks
do_fetch[noexec] = "1"
do_unpack[noexec] = "1"
do_patch[noexec] = "1"
do_configure[noexec] = "1"
|