[Buildroot] [2010.02] Package infrastructure ready

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Sat Nov 28 23:36:12 UTC 2009


Hello,

I've now completed the work I wanted to do on the new package
infrastructures, and consider it ready for inclusion into the next
version of Buildroot, 2010.02. I'm therefore asking people to review
the patches and give their opinion and comments.

Unless there are comments, I don't plan to make any further change
before officially sending these patches, right after the 2009.11
release.

The code is available at :
 http://git.buildroot.net/~tpetazzoni/git/buildroot/log/?h=package-infrastructure

The documentation has been updated accordingly. I've put online the
corresponding version :
 http://free-electrons.com/~thomas/buildroot.html#add_packages

There are a few points on which I'd like to have your input:

 * The macro for the generic package infrastructure is named
   PKGTARGETS, and for the autotools infrastructure, the macro is named
   AUTOTARGETS. I don't particularly like this naming, but what's your
   opinion ? Do you have other proposals ? Wouldn't something like
   make-generic-package and make-autotools-package be more explicit ?
   Too long ?

 * The generic infrastructure is in package/Makefile.package.in. Maybe
   I should put it into package/Makefile.generic.in. What's your
   opinion ?

 * I have a more complicated point about how the directory containing
   the source code is referenced from the actions listed in the
   PKG_xxxx_CMDS variables.

   We can use $(@D), which is the directory that contains the stamp
   file, so it is the directory that has been extracted by the tarball.
   $(@D) is short and works well in most situations.

   The situation where $(@D) doesn't work is when the
   configure/Makefile stuff is in fact in a subdirectory of the tarball
   (and not in the root directory). In this case, the package should
   define PKG_SUBDIR = foo, and the package infrastructure will define
   PKG_SRCDIR. Therefore, the package should use $$($$(PKG)_SRCDIR)
   (double quoting needed otherwise the variable is evaluated before it
   is defined). I find this rather ugly.

   Therefore, my proposal is :

    * In the generic infrastructure, to let the .mk developer handle
      this problem. He has to use $(@D) or $(@D)/something.

    * In the autotools infrastructure, keep the PKG_SUBDIR mechanism we
      add, so that the $$($$(PKG)_SRCDIR) trick is hidden in
      Makefile.autotools.in.

Thanks for your input,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com


More information about the buildroot mailing list