83d2644b11
In current Buildroot, clashes occur between the variables _NAME and _BASE_NAME for two packages called foo and foo-base, i.e. Package foo: FOO_NAME = foo FOO_BASE_NAME = foo-1.2.3 Package foo-base: FOO_BASE_NAME = foo-base FOO_BASE_BASE_NAME = foo-base-4.5.6 where variable FOO_BASE_NAME is clashing between these two packages. Specific cases where this clash is already existing are: - alljoyn-base - alljoyn-tcl-base - perl-xml-sax-base The problem is generic and can occur for a number of variables in Buildroot. A non-exhaustive list: <pkg>_BASE and <pkg>_BASE_NAME <pkg>_BASE_NAME and <pkg>_RAW_BASE_NAME <pkg>_DIR and <pkg>_DL_DIR <pkg>_VERSION and <pkg>_DL_VERSION <pkg>_SOURCE and <pkg>_TARGET_SOURCE <pkg>_INSTALL_IMAGES and <pkg>_TARGET_INSTALL_IMAGES (same for _STAGING and _TARGET) <pkg>_LICENSE_FILES and <pkg>_MANIFEST_LICENSE_FILES <pkg>_DEPENDENCIES and <pkg>_FINAL_DEPENDENCIES One solution is to use another separator than '_' to separate the package name from the rest of the variable name. For example, a double underscore: FOO__NAME FOO__BASE_NAME FOO_BASE__NAME FOO_BASE__BASE_NAME However, making that change for only this case means that the variable naming is no longer consistent. And making the change for all variables has a large impact, also on certain user scripts. For now, keep it simple, and rename FOO_BASE_NAME into FOO_BASENAME, so that the variables become: FOO_NAME FOO_BASENAME FOO_BASE_NAME FOO_BASE_BASENAME For consistency, also adapt FOO_RAW_BASE_NAME. Since FOO_RAW_BASENAME would still pose a conflict with a package called 'foo-raw', take the opportunity to rename it into FOO_BASENAME_RAW instead, which does not pose a conflict as we have no variable called FOO_RAW. Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Reviewed-by: Sam Voss <sam.voss@rockwellcollins.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com> |
||
---|---|---|
arch | ||
board | ||
boot | ||
configs | ||
docs | ||
fs | ||
linux | ||
package | ||
support | ||
system | ||
toolchain | ||
utils | ||
.defconfig | ||
.flake8 | ||
.gitignore | ||
.gitlab-ci.yml | ||
.gitlab-ci.yml.in | ||
CHANGES | ||
Config.in | ||
Config.in.legacy | ||
COPYING | ||
DEVELOPERS | ||
Makefile | ||
Makefile.legacy | ||
README |
Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation. The documentation can be found in docs/manual. You can generate a text document with 'make manual-text' and read output/docs/manual/manual.text. Online documentation can be found at http://buildroot.org/docs.html To build and use the buildroot stuff, do the following: 1) run 'make menuconfig' 2) select the target architecture and the packages you wish to compile 3) run 'make' 4) wait while it compiles 5) find the kernel, bootloader, root filesystem, etc. in output/images You do not need to be root to build or run buildroot. Have fun! Buildroot comes with a basic configuration for a number of boards. Run 'make list-defconfigs' to view the list of provided configurations. Please feed suggestions, bug reports, insults, and bribes back to the buildroot mailing list: buildroot@buildroot.org You can also find us on #buildroot on Freenode IRC. If you would like to contribute patches, please read https://buildroot.org/manual.html#submitting-patches