[Buildroot] [PATCH 1 of 4 v2 for 2014.08] gendoc infra: use $(pkgname) instead of explicitly passing 'manual'
Thomas De Schampheleire
patrickdepinguin at gmail.com
Wed Aug 13 07:43:03 UTC 2014
"Yann E. MORIN" <yann.morin.1998 at free.fr> schreef:
>Thomas, All,
>
>On 2014-08-12 22:32 +0200, Yann E. MORIN spake thusly:
>> On 2014-08-12 20:11 +0200, Thomas De Schampheleire spake thusly:
>> > In the gendoc infrastructure, using an assignment of the form
>> > FOO = docs/$(1)/bar
>> > inside GENDOC_INNER does not work as expected: the $(1) value is empty here
>> > and the value of FOO becomes 'docs//bar'.
>> >
>> > Parameters $(2), $(3), etc. do not have this problem. The specific thing
>> > about $(1) is that it is a parameter to GENDOC itself (indicating the
>> > document to create) and passed transparently to GENDOC_INNER.
>> >
>> > This is different from the package infrastructures, where $(1) is set from
>> > $(pkgname). In fact, the same strategy could be used by the gendoc
>> > infrastructure as well, as $(pkgname) resolves to 'manual' for file
>> > docs/manual/manual.mk. This has the advantage that the described problem
>> > does not occur.
>> >
>> > Note that this means that if we want to use the same GENDOC infrastructure
>> > for another document, it will have to reside in a separate directory than
>> > the manual.
>>
>> This breaks generating the manual:
>>
>> $ make manual-html
>> make: *** No rule to make target `manual-html'. Stop.
>> $ make manual
>> make: *** No rule to make target `manual'. Stop.
>
>That's because $(pkgname) returns empty, because $(pkgdir) returns
>empty, because I do not have a .config file.
>
>So, before this patch, it was possible to build the manual from a
>pristine Buildroot tree; now it is no longer possible.
>
>I think that's bad.
Agreed. The problem is that pkg-utils.mk is only
included when a config file is present.
Based on this, I see three possibilities:
1. Include pkg-utils.mk unconditionally from Makefile
(currently included from package/Makefile.in)
2. Move the definition of pkgname and pkgdir to
Makefile (outside the check on the config file)
3. Don't use pkgname/pkgdir for the manual
generation rules, and try to solve the issue with $1 on
a different way (I feel double dollar signs coming up
somewhere...)
Best regards,
Thomas
More information about the buildroot
mailing list