[Buildroot] uboot.pbl - make 'include' issue
Yann E. MORIN
yann.morin.1998 at free.fr
Wed Apr 30 22:42:59 UTC 2014
Ryan, Thomas, All,
On 2014-05-01 00:39 +0200, Yann E. MORIN spake thusly:
> On 2014-04-30 16:20 -0500, Ryan Barnett spake thusly:
> > I have recently been working on trying to get support for the u-boot.pbl
> > image format into buildroot. I submitted an initial patch set back in
> > October and was given feedback to break out the boot/uboot/uboot.mk into
> > processor specific architectures. Thomas Petazzoni and I did some initial
> > work to split these out and he provide an example. I have been trying to
> > take this work that he did and submit an updated patch set. However, I
> > have hit a roadblock for which I can't seem to debug or figure out what is
> > going wrong.
> >
> > When I breakout defines and variables in boot/uboot/uboot.mk into separate
> > files and add the following line:
> >
> > include boot/uboot/*/*.mk
> >
> > Once I add this to uboot.mk, the rules for uboot no longer work. Using any
> > configuration, I can no longer do anything like this:
> >
> > make uboot
> > make uboot-dirclean
> >
> > Running the above yields the following error:
> >
> > make[1]: *** No rule to make target `uboot'. Stop.
> > make: *** [_all] Error 2
>
> Yes, that's not so surprising:
>
> - the $(eval $(generic-package)) use the $(pkgname) macro, which uses
> the $(pkgdir) macro
>
> - the $(pkgdir) macro is defined as thus:
> pkgdir = $(dir $(lastword $(MAKEFILE_LIST)))
>
> - and $(MAKEFILE_LIST) contains the _last_ Makefile that was parsed
>
> - but the pkg-inra expects that the last Makefile parsed be the
> current Makefile
>
> Since you include other Makefiles from uboot.mk:
> boot/uboot/ppc-freescale/uboot-ppc-freescale.mk
>
> then $(MAKEFILE_LIST) will end up with that when you call the usual eval
> above, from which the generic-package derives the $(pkgdir) to be
> "boot/uboot/ppc-freescale", and thus the $(pkgname) to be
> "ppc-freescale", and not the "uboot" you expect.
For reference, here is the applicable part of the make manual,
demonstrating the exact behaviour you observe:
https://www.gnu.org/software/make/manual/make.html#index-MAKEFILE_005fLIST-_0040r_007b_0028list-of-parsed-makefiles_0029_007d-550
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
More information about the buildroot
mailing list