[Buildroot] pkg-golang: host package not supported

Arnout Vandecappelle arnout at mind.be
Tue Aug 14 23:13:24 UTC 2018



On 15-08-18 00:43, Mirza Krak wrote:
> On Wed, Aug 15, 2018 at 12:37 AM, Arnout Vandecappelle <arnout at mind.be> wrote:
>>
>>
>> On 15-08-18 00:05, Mirza Krak wrote:
>>> I did have one problem with $(2)_SRC_SUBDIR, it turns out to be empty
>>> when building host target. Workaround was to explicitly set this in
>>> the .mk file with the HOST_ prefix. Any hints on why? Need some ifeq
>>> ($(4),target) ... else ... endif  magic? :)
>>
>>  I guess you expect _SRC_SUBDIR to be inherited from the target package, so you
>> need something like this in the golang infra:
> 
> For this specific package I am not defining a "target" package, host
> only. Do not know if that affects the outcome.

 As I said, I'm guessing since you didn't provide details...

 You're defining a host-only package, but you still set FOO_SITE instead of
HOST_FOO_SITE, I guess. HOST_FOO_SITE is set automatically by the generic infra,
but only *after* the empty definition has already been used to define
HOST_FOO_SRC_SUBDIR:

$(2)_SRC_DOMAIN = $$(call domain,$($(2)_SITE))
$(2)_SRC_VENDOR = $$(word 1,$$(subst /, ,$$(call notdomain,$($(2)_SITE))))
$(2)_SRC_SOFTWARE = $$(word 2,$$(subst /, ,$$(call notdomain,$($(2)_SITE))))

$(2)_SRC_SUBDIR ?= $$($(2)_SRC_DOMAIN)/$$($(2)_SRC_VENDOR)/$$($(2)_SRC_SOFTWARE)

expands to

HOST_FOO_SRC_DOMAIN = $(call domain,)
HOST_FOO_SRC_VENDOR = $(word 1,$(subst /, ,$(call notdomain,)
HOST_FOO_SRC_SOFTWARE = $(word 2,$(subst /, ,$(call notdomain,)

HOST_FOO_SRC_SUBDIR ?=
$(HOST_FOO_SRC_DOMAIN)/$(HOST_FOO_SRC_VENDOR)/$(HOST_FOO_SRC_SOFTWARE)

and later on you get

$(call inner-generic-package,$(1),$(2),$(3),$(4))

which contains

ifndef $(2)_SITE
 ifdef $(3)_SITE
  $(2)_SITE = $$($(3)_SITE)
 endif
endif

which expands to

HOST_FOO_SITE = $(FOO_SITE)


 Actually, looking at it now, the real problem is that _SRC_DOMAIN definitions
have a single dollar only. Try this:

-$(2)_SRC_DOMAIN = $$(call domain,$($(2)_SITE))
-$(2)_SRC_VENDOR = $$(word 1,$$(subst /, ,$$(call notdomain,$($(2)_SITE))))
-$(2)_SRC_SOFTWARE = $$(word 2,$$(subst /, ,$$(call notdomain,$($(2)_SITE))))
+$(2)_SRC_DOMAIN = $$(call domain,$$($(2)_SITE))
+$(2)_SRC_VENDOR = $$(word 1,$$(subst /, ,$$(call notdomain,$$($(2)_SITE))))
+$(2)_SRC_SOFTWARE = $$(word 2,$$(subst /, ,$$(call notdomain,$$($(2)_SITE))))


 Regards,
 Arnout


>>
>> ifndef $(2)_SRC_SUBDIR
>>  ifdef $(3)_SRC_SUBDIR
>>   $(2)_SRC_SUBDIR = $$($(3)_SRC_SUBDIR)
>>  else
>>   $(2)_SRC_SUBDIR ?=
>> $$($(2)_SRC_DOMAIN)/$$($(2)_SRC_VENDOR)/$$($(2)_SRC_SOFTWARE) endif
>> endif
>>
>>  And similar for SRC_DOMAIN, SRC_VENDOR, SRC_SOFTWARE...
> 
> To fresh on Buildroot to comment on above :).
> 

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF


More information about the buildroot mailing list