xref: /OK3568_Linux_fs/yocto/poky/meta/recipes-devtools/go/go-target.inc (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunDEPENDS = "virtual/${TUNE_PKGARCH}-go go-native"
2*4882a593SmuzhiyunDEPENDS:class-nativesdk = "virtual/${TARGET_PREFIX}go-crosssdk go-native"
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunDEBUG_PREFIX_MAP = "\
5*4882a593Smuzhiyun                     -fdebug-prefix-map=${STAGING_DIR_HOST}= \
6*4882a593Smuzhiyun                     -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
7*4882a593Smuzhiyun"
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunexport CGO_CFLAGS = "${CFLAGS}"
10*4882a593Smuzhiyunexport CGO_CPPFLAGS = "${CPPFLAGS}"
11*4882a593Smuzhiyunexport CGO_CXXFLAGS = "${CXXFLAGS}"
12*4882a593Smuzhiyun# Filter out -fdebug-prefix-map options as they clash with the GO's build system
13*4882a593Smuzhiyunexport CGO_LDFLAGS = "${@ ' '.join(filter(lambda f: not f.startswith('-fdebug-prefix-map'), d.getVar('LDFLAGS').split())) }"
14*4882a593Smuzhiyun
15*4882a593Smuzhiyunexport GOCACHE = "${B}/.cache"
16*4882a593SmuzhiyunGO_LDFLAGS = ""
17*4882a593SmuzhiyunGO_LDFLAGS:class-nativesdk = "-linkmode external"
18*4882a593Smuzhiyunexport GO_LDFLAGS
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunCC:append:class-nativesdk = " ${SECURITY_NOPIE_CFLAGS}"
21*4882a593Smuzhiyun
22*4882a593Smuzhiyundo_configure[noexec] = "1"
23*4882a593Smuzhiyun
24*4882a593Smuzhiyundo_compile() {
25*4882a593Smuzhiyun	export CC_FOR_${TARGET_GOOS}_${TARGET_GOARCH}="${CC}"
26*4882a593Smuzhiyun	export CXX_FOR_${TARGET_GOOS}_${TARGET_GOARCH}="${CXX}"
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun	cd src
29*4882a593Smuzhiyun	./make.bash --target-only --no-banner
30*4882a593Smuzhiyun	cd ${B}
31*4882a593Smuzhiyun}
32*4882a593Smuzhiyundo_compile[cleandirs] += "${GOTMPDIR} ${B}/bin ${B}/pkg"
33*4882a593Smuzhiyun
34*4882a593Smuzhiyundo_install() {
35*4882a593Smuzhiyun	install -d ${D}${libdir}/go/pkg/tool
36*4882a593Smuzhiyun	cp --preserve=mode,timestamps -R ${B}/pkg/tool/${TARGET_GOTUPLE} ${D}${libdir}/go/pkg/tool/
37*4882a593Smuzhiyun	install -d ${D}${libdir}/go/src
38*4882a593Smuzhiyun	cp --preserve=mode,timestamps -R ${S}/src/cmd ${D}${libdir}/go/src/
39*4882a593Smuzhiyun	find ${D}${libdir}/go/src -depth -type d -name testdata -exec rm -rf {} \;
40*4882a593Smuzhiyun	install -d ${D}${libdir}/go/bin
41*4882a593Smuzhiyun	install -d ${D}${bindir}
42*4882a593Smuzhiyun	for f in ${B}/${GO_BUILD_BINDIR}/*; do
43*4882a593Smuzhiyun		name=`basename $f`
44*4882a593Smuzhiyun		install -m 0755 $f ${D}${libdir}/go/bin/
45*4882a593Smuzhiyun		ln -sf ../${baselib}/go/bin/$name ${D}${bindir}/
46*4882a593Smuzhiyun	done
47*4882a593Smuzhiyun	rm -rf ${D}${libdir}/go/src
48*4882a593Smuzhiyun}
49*4882a593Smuzhiyun
50*4882a593SmuzhiyunPACKAGES = "${PN} ${PN}-dev"
51*4882a593SmuzhiyunFILES:${PN} = "${libdir}/go/bin ${libdir}/go/pkg/tool/${TARGET_GOTUPLE} ${bindir}"
52*4882a593SmuzhiyunRDEPENDS:${PN} = "go-runtime"
53*4882a593SmuzhiyunINSANE_SKIP:${PN} = "ldflags"
54*4882a593Smuzhiyun
55*4882a593SmuzhiyunBBCLASSEXTEND = "nativesdk"
56