The luarocks package infra extracts the package directly under $(BUILD_DIR), because the contents are always in a subdirectory name <pkg>-<version>. However, this only works when the upstream package name is the same as the Buildroot package name. Instead, we can rely on the fixed structure of a .src.rock: it always contains the source subdirectory in a directory called foo, where foo is the basename of the .src.rock file. Therefore, we can extract into a subdirectory of $($(PKG)_DIR), then move its contents up two directory levels. Note, we can't extract directly into $($(PKG)_DIR) because it's possible that $($(PKG)_SUBDIR) == <pkg>-<version>. In that case, we would try to move the directory unto itself and get "Directory not empty". This is the case e.g. for the lpty package. Two alternatives were considered but are more complicated: - instead of using wildcards for the move, we could have used <.src.rock basename>/$($(PKG)_SUBDIR); - instead of extracting with luarocks, we could use unzip to extract (the .src.rock is a ZIP file), but then we also have to move the .rockspec into the subdir. In addition, sometimes the ZIP file contains a tarball instead of the extracted source. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> |
||
---|---|---|
arch | ||
board | ||
boot | ||
configs | ||
docs | ||
fs | ||
linux | ||
package | ||
support | ||
system | ||
toolchain | ||
.defconfig | ||
.gitignore | ||
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