[Buildroot] New package infrastructure : status

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Thu Nov 12 23:27:05 UTC 2009


Hi,

I'd like to keep the community updated about my work on the new package
infrastructure. For reference, this work is available at :

 http://git.buildroot.net/~tpetazzoni/git/buildroot/log/?h=package-infrastructure

I'd like to get this ready for the beginning of the next development
cycle, which should open right after the release of 2009.11. So don't
hesitate to raise your questions and comments now.

What's done :

 * A generic package infrastructure is in place, it allows to convert
   non-autotools packages to an infrastructure that greatly simplifies
   the makefiles ;

 * The autotools package infrastructure has been rewritten on top of
   the new generic package infrastructure ;

 * For both infrastructures, target and host packages are handled. When
   the package is named 'foo', the target package is 'foo' (as in the
   past) and the host package is 'host-foo'. The make variables are
   FOO_xxx for the target package and HOST_FOO_xxx for the host
   package. For some variables (version, source, etc.), if HOST_FOO_xxx
   doesn't exist, the infrastructure automatically falls back to
   FOO_xxx ;

 * The icu, udev, zlib, i2c-tools and olsr packages have been rewritten
   on top of the generic package infrastructure ;

 * The autoconf, automake, cairo, libglib2, libtool, pango, atk, dbus,
   directfb, fontconfig, freetype, libxml2, shared-mime-info,
   dbus-glib, expat, gob2, libgtk2, libusb, lzo, m4, pixman,
   xproto_xproto and xutil_makedepend which were manually compiling
   their software for the host are now based on the host capability of
   the autotools package infrastructure.  Basically, all autotools
   packages that were manually building the host package have been
   converted.

 * Something like Gtk + DirectFB for ARM builds correctly.

TODO list :

 * Find a good name instead of PKGTARGETS for the generic
   infrastructure main macro. I'd like to switch to something like
   'genericpkg' and 'autotoolspkg' to make it nicer. Must that involves
   sed'ing all existing autotools packages. Your opinion ?

 * Find a good name for the generic package infrastructure. For the
   moment it's in package/Makefile.package.in. It could be in
   package/Makefile.generic.in (non-disruptive solution). Or, probably
   better, introduce an include/ directory, in which we create
   pkg-generic.mk and pkg-autotools.mk. This include/ directory could
   later include more .mk files that are relevant to Buildroot as a
   whole.

 * Finish the documentation. I've already started documenting the
   generic and autotools infrastructure, though this work is not yet
   available as a commit in my branch.

If you see other issues to solve, don't hesitate.

Thanks,

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