In a Buildroot based project, I am requiring a library existing in Buildroot, but a version newer than the one from buildroot. (Buildroot currently ships the definition of Armadillo v6.500, while we use v7.800 -- anyway the question applies to any library). How can I add a definition for this newer library, so that Buildroot downloads and cross-compiles the latest version of the package?
For more information: We are using an "external" (see BR2_EXTERNAL_*
) path with our own (project specific) package definitions. Re-declaring the Armadillo library in this external source did not work (as it finds it as a duplicate). So we ended up with the following workaround: adding a new package ARMADILLO7
(as opposed to ARMADILLO
), with its own armadillo7/
directory, a copy of the build files renamed to armadillo7*.
, etc. For example, armadillo7.mk
includes:
ARMADILLO7_VERSION = 7.800.2
ARMADILLO7_SOURCE = armadillo-${ARMADILLO7_VERSION}.tar.xz
ARMADILLO7_SITE = http://downloads.sourceforge.net/project/arma
...
(this is a copy of the original files, slightly modified for a newer file naming convention, and of course with version 7.800).
Our packages then require the package ARMADILLO7
, and not ARMADILLO
. However, this is not a clean solution, and in other cases it may not be a solution at all. Is there a more correct way of adding newer packages?