summaryrefslogtreecommitdiffstats
path: root/support
Commit message (Collapse)AuthorAgeFilesLines
* pkg-cmake.mk: enable ccache for cmake packagesSamuel Martin2014-06-011-2/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch updates the generated toolchainfile.cmake to use ccache. When toolchainfile.cmake is used inside Buildroot, using ccache during the build is driven by a CMake knob: USE_CCACHE, automatically set by the cmake-package infrastructure and reflecting the BR2_CCACHE value. Since this toolchainefile.cmake file can be used outside Buildroot, and this file also set a couple of things (among these: the sysroot cflag, some pkg-config environment variables), it is important to set the compiler variables as well to keep the consistency of the cross-compilation configuration. So, when it is used outside Buildroot, using ccache for the build is driven by the ccache program availability. Note that using ccache for the build is achieved by setting the *_ARG1 CMake variables to let CMake use ccache without failing in detecting the compiler. Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> Signed-off-by: Samuel Martin <s.martin49@gmail.com> Cc: Luca Ceresoli <luca@lucaceresoli.net> Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* pkg-cmake.mk: do not hardcode absolute path in toolchainfile.cmakeSamuel Martin2014-06-011-5/+12
| | | | | | | | | | | | | | | The patch allows sharing or moving the toolchains. This is a step toward making the toolchain/sdk relocatable. Closes #6818 [Peter: reword comment as suggested by Thomas] Signed-off-by: Samuel Martin <s.martin49@gmail.com> Cc: Uwe Strempel <u.strempel@googlemail.com> Cc: Arnout Vandecappelle <arnout@mind.be> Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* pkg-cmake.mk: refactor the toolchainfile.cmake generationSamuel Martin2014-06-011-0/+20
| | | | | | | | | | | | | | | | | | This patch introduces a toolchainfile.cmake.in template which is filled by Buildroot. Using a toolchainfile.cmake.in template file allows to avoid overloading quoting and/or escaping and it becomes much more similar to the resulting file. This patch also cleans up the quoting style. [Peter: drop stdin redirect as suggested by Thomas] Signed-off-by: Samuel Martin <s.martin49@gmail.com> Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Merge branch 'next'Peter Korsgaard2014-06-012-5/+12
|\ | | | | | | | | | | | | Conflicts: package/gdb/Config.in.host Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * Improve tar check if bsdtar is installedHeiko Abraham2014-05-311-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | If bsdtar is installed, fix script error for tar version detection. bsdtar does not provide all expected command line (long) options like "--hard-dereference". To ensure compatibility, mark version of tar as 'invalid' and trigger build of 'host-tar'. [Peter; slightly reworded commit text] Signed-off-by: Heiko Abraham <abrahamh@web.de> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * scancpan: sort dependenciesFrancois Perrad2014-05-181-5/+5
| | | | | | | | | | | | | | in order to avoid spurious diff when updating packages Signed-off-by: Francois Perrad <francois.perrad@gadz.org> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* | pkg-stats: fix whitespacesFabio Porcedda2014-05-151-5/+5
| | | | | | | | | | | | | | | | | | | | | | Remove some spaces before tabs and add the empty line at end of file. Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com> Cc: Jerzy Grzegorek <jerzy.grzegorek@trzebnica.net> Cc: Luca Ceresoli <luca@lucaceresoli.net> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* | pkg-stats: add luarocks perl python virtual infrastructuresFabio Porcedda2014-05-151-0/+71
|/ | | | | | | | | | | | Recognize the recently added infrastructures: luarocks, perl, python, virtual. Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com> Cc: Jerzy Grzegorek <jerzy.grzegorek@trzebnica.net> Cc: Luca Ceresoli <luca@lucaceresoli.net> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* support: properly check bash is availableYann E. MORIN2014-04-201-4/+8
| | | | | | | | | | | | | | | | | | | The current check is broken, as it only checks if the user's login shell is bash, not what the system shell is. Mimick the sequence found in the top-level Makefile to search for bash, except for the fallback case, where we explicitly check that 'sh' is bash, by checking if it sets $BASH, so we know the fallback case, in the top-level Makefile, to use 'sh' will indeed use bash. Remove superfluous semi-colons ';' at the end of lines, they are not needed in a shell script (this is not C!) Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Peter Korsgaard <jacmet@uclibc.org> Cc: Andrew Barnes <andy@outsideglobe.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/graphs: fix comparisons agains NoneYann E. MORIN2014-04-142-7/+7
| | | | | | | | | | | | | As Samuel said: In Python, None is a singleton, and it is recommended to use "is" or "is not" for testing them [1]. [1] http://legacy.python.org/dev/peps/pep-0008/#programming-recommendations Reported-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* graphs: make graphs with lots of packages nicer to look atYann E. MORIN2014-04-141-6/+11
| | | | | | | | | | | Some magic numbers obtained with trial-and-error and successive iterations, to eventually get a nice graph. [Thomas: remove excessive spaces in expressions.] Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/graph-depends: don't show toolchain dependency for all packagesYann E. MORIN2014-04-141-2/+5
| | | | | | | | | | | | | Al packages depend on 'toolchain'. Currently, 'graph-depends' graphs this dependency. The resulting graph is thus cluttered with less-than-useful information. Instead, do not graph the 'toolchain' dependency for any package, save for the fake 'all' package. The graph is now a bit more readable. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/graph-depends: add option to limit the depth of the graphYann E. MORIN2014-04-141-12/+37
| | | | | | | | | | | | | | | | Currently, the complete dependency chain of a package is used to generate the dependency graph. When this dependency chain is long, the generated graph becomes almost unreadable. However, it is often sufficient to get the first few levels of dependency of a package. Add a new variable BR2_GRAPH_DEPTH, that the user can set to limit the depth of the dependency list. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/graph-depends: use argparse to parse argv[]Yann E. MORIN2014-04-141-10/+13
| | | | | | | | | | | | | | | Currently, we are using a crude, ad-hoc parsing of argv[]. This is a limiting factor to adding new options. Use argparse instead, and introduce a single argument for now: --package, -p PACKAGE In the (near) future, we'll be able to add more option arguments, such as depth-limiting for big graphs. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/check-kernel-headers: fix old custom toolchains without -print-sysrootYann E. MORIN2014-04-091-10/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Old toolchains, with old gcc that do not support -print-sysroot, break the kernel-headers version check script: it fails to find the sysroot of the toolchain, and thus ends up including the host's linux/version.h. Most of the time, this will break early, since the host's kernel headers will not match the toolchain settings. But it can happen that the check is succesful, although the configuration of the toolchain is wrong: - the custom toolchain has kernel headers vX.Y - the user selected vX.Z (Z!=Y) - the host has headers vX.Y In this case, the check passes OK, but the build of some packages later on will break (which is exactly what those _AT_LEAST_XXX options were added to avoid). Fix that by passing the sysroot to the check script, instead of the cross compiler. We get the sysroot as thus: - for custom toolchains, we use the macro toolchain_find_sysroot. We can do that, because we already have a complete sysroot with libc.a at that time. - for internal toolchain using a custom kernel headers version, we just use $(STAGING_DIR). We can't use the macro as for custom toolchains above, because at the time we install the kernel headers, we do not yet have a complete sysroot with a libc.a. But we can just use $(STAGING_DIR), since we're only interested in the kernel headers. For all other types of toolchains, we already have the _AT_LEAST_XXX options properly set, so we need not add a check in this case. Fixes: http://autobuild.buildroot.net/results/f33/f331a6eff0b0b93c73af52db3a6b43e4e598577e/ http://autobuild.buildroot.net/results/a57/a5797c025bec50c10efdcff74945aab4021d05e4/ [...] [Thanks to Thomas for pointing out the toolchain_find_sysroot macro!] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* support/check-kernel-headers: use mktemp instead of hand-crafted temp fileYann E. MORIN2014-04-061-1/+1
| | | | | | | | | | Instead of creating a temporary files with a dubious scheme, use mktemp, which purpose is exactly that: creating temporary files Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain: print actual version of kernel headers when checkingYann E. MORIN2014-04-061-5/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since we introduced the _AT_LEAST_XXX for the kernel headers, people using pre-built custom toolchain now have to specify the version of the kernel headers their custom toolchain uses. So, when we detect that there is a mismatch between the selection in the menuconfig, and the actual version of the headers, we currently only bail out with a terse message "Incorrect selection of kernel headers". This could be confusing some, and getting the version of the headers used by the toolchain is not trivial (well, it's very easy, but not trivial.) This patch changes the way we report the error by moving the message into the test-code, and by printing the expected and actual versions of the kernel headers. BUT! To get this pretty error message, we need to run the test-program, so we can not use the cross-toolchain, we have to use the native one. BUT! The native one has its own linux/version.h header, so we can not simply include it. So, we ask the cross-compiler where its default sysroot is, and use that to then force-feed the cross linux/version.h to the native toolchain. [Thomas: augment commit log with a message provided by Yann, fix coding style to not have spaces after opening parenthesis and before closing parenthesis, reformatted the message "Incorrect selection..." to make it fit on one line.] Reported-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/mkusers: fix warnings when adding a new userYann E. MORIN2014-04-051-3/+9
| | | | | | | | | | | | | | | | | | | When adding a new user (or a new group), we would get warnings, like: [...]/support/scripts/mkusers: line 145: [: too many arguments This is because we're checking if a UID (or a GID) is already defined, and/or is different from the requested one, both checks in the same test. Of course, if a UID (or a GID) is not defined, it does not have a value, so we can not compare it to an integer. Fix that by splitting the test in two, so the second is only executed if the first is sucessful. Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* script/scancpan: add -host & -target optionsFrancois Perrad2014-04-041-6/+18
| | | | | Signed-off-by: Francois Perrad <francois.perrad@gadz.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support: fix typo in mkusersPhilip Paeps2014-03-051-1/+1
| | | | | | | | This fixes the spurious "[: too many arguments" errors from mkusers. Signed-off-by: Philip Paeps <philip@paeps.cx> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain/external: check kernel headers version for custom toolchainYann E. MORIN2014-03-011-0/+21
| | | | | | | | | | | | | | | | | | Ensure the kernel headers version used in the custom external toolchain, or the manually-specified kernel headers version, matches exactly the one selected by the user. We do not care about the patch-level, since headers are not supposed to change between patchlevels. This applies only to kernels >= 3.0, but those are actually the ones we do care about; we treat all 2.6.x kernels as being a single version, since we do not support any 2.6 kernels for packages with kernel-dependant features. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* scancpan: a new scriptFrancois Perrad2014-02-231-0/+741
| | | | | | | | | which creates Perl/CPAN package files [Peter: strip trailing spaces] Signed-off-by: Francois Perrad <francois.perrad@gadz.org> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* infra: Change BR2_HOST_NEEDS_JAVA nameMaxime Hadjinlian2014-02-191-1/+1
| | | | | | | | | | Change BR2_HOST_NEEDS_JAVA to BR2_NEEDS_HOST_JAVA as it makes more sense. The host doesn't need Java but Buildroot needs the host to have Java in order to build the package that select this option. Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* infra: Introduce BR2_HOST_NEEDS_JAVAMaxime Hadjinlian2014-02-191-0/+8
| | | | | | | | | | | | | | | | | | | | | XBMC needs Java on the host in order to build, because it uses a code-generator which is built in two phases: In the first phase SWIG is used to parse C++ header files that define the API. SWIG outputs an XML file that contains a complete description of the structure of the API. In the second phase, the XML file is ingested by a Groovy (Java) program that then creates C++ code that forms the bridge to the scripting language (Python). The second phase is why we need java on the host. You can learn more at the XBMC's wiki: http://wiki.xbmc.org/index.php?title=Codegeneration#How_it_works In order to check that, this patch introduce this mechanism in dependencies.sh, and it also defines the variable in Config.in [Peter: fix error message] Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* infra: replace BUILDROOT_CONFIG with BR2_CONFIGArnout Vandecappelle2014-02-094-9/+9
| | | | | | | | | | | | | | | To make the naming consistent (all user-visible options should be prefixed with BR2_). An entry is added to Makefile.legacy to warn users who have set BUILDROOT_CONFIG but not BR2_CONFIG. Still export BUILDROOT_CONFIG but pointing to some phony value, to make sure that scripts that still use it fail in a predictable way. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Tested-by: Jérémy Rosen <jeremy.rosen@openwide.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* apply-patches.sh: make scan_patchdir work recursivelyThomas De Schampheleire2014-02-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | scan_patchdir is called recursively. For this to work properly, the variable path which is set to $1 at the very beginning must be local not global. A test case is to set BR2_GLOBAL_PATCH_DIR to 'mypatches' and having the following tree in the buildroot root: $ find mypatches/ mypatches/ mypatches/busybox mypatches/busybox/subdir.patch mypatches/busybox/subdir.patch/busybox-0001-abc.patch mypatches/busybox/busybox-0002-def.patch mypatches/busybox/asubdir.patch mypatches/busybox/asubdir.patch/busybox-0003-xyz.patch When running 'make busybox-dirclean busybox-patch' originally, you'd get: Applying busybox-0003-xyz.patch using patch: Applying busybox-0002-def.patch using patch: Error: missing patch file mypatches/busybox/asubdir.patch/busybox-0002-def.patch While with this fix: Applying busybox-0003-xyz.patch using patch: Applying busybox-0002-def.patch using patch: Applying busybox-0001-abc.patch using patch: This fixes bug #6434 (https://bugs.busybox.net/show_bug.cgi?id=6434) Signed-off-by: Daniel Mentz <daniel@exxm.de> [Thomas: update commit message with test case] Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* dependencies.sh: cleanup dependencies.shMaxime Hadjinlian2014-02-061-60/+59
| | | | | | | Cleanup mixed indents and remove commented lines. Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* dependencies.sh: stop stray a.out being created for ia32 compiler testMartin Bark2014-02-051-1/+1
| | | | | | | | | | | | If the grub package is selected it also selects BR2_HOSTARCH_NEEDS_IA32_COMPILER. This triggers a test in dependencies.sh to verify the host compiler can build 32 bit executables. Currently this test does not set any output for the compiler which causes a stray a.out to be create outside the output directory. This patch sets the compiler output to /dev/null so no a.out is created but the test is still performed. Signed-off-by: Martin Bark <martin@barkynet.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* scripts: xorg-release: handle case when version needs downgradeNicolas Dechesne2014-02-041-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | the initial implementation assumes that when a version found in buildroot is different from the one in the X11 release, it requires an upgrade. even though this is most likely the case, it could be a downgrade too, and it's probably worth highlighting such cases when it (rarely) happens. LooseVersion from distutils is doing the low level job of sorting version numbers represented in strings... [Thomas & Thomas: - do not count packages more recent in Buildroot than in the latest X.org release as to be downgraded. If we have more recent version, it's generally for a good reason, so we want to keep them as is. Such packages are counted as "nothing to do", but for information, we indicate that there are "More recent" - also remove the "nothing to do" action indicator. It used to be a simple dash, which was not really useful. ] Signed-off-by: Nicolas Dechesne <ndec13@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* dependencies.sh: stop mixing echo and printf (use echo)Bjørn Forsman2014-01-221-23/+44
| | | | | | | | | | | | 'printf' was introduced because it is more portable than 'echo -e'. But when the escape sequences are just newlines we can just as well use plain 'echo' (and remove the newline escape sequences). This looks cleaner than having some lines with echo and some with printf. Signed-off-by: Bjørn Forsman <bjorn.forsman@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Prefer 'printf' over 'echo -e' (for portability)Bjørn Forsman2014-01-211-41/+41
| | | | | | | | | | | | | | | | | support/dependencies/dependencies.sh uses #!/bin/sh shebang. It is not guaranteed that /bin/sh provides an 'echo' implementation that understands the '-e' flag (interpret backslash escape chars). For example, dash doesn't. 'printf' is more portable (it must interpret backslash escape chars, according to POSIX), so use that. NOTE: Before the previous commit, the dependencies.sh script used /bin/echo instead of the shell built-in. That's probably why this hasn't come up before. Signed-off-by: Bjørn Forsman <bjorn.forsman@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* support/dependencies/dependencies.sh: Remove some absolute pathsBjørn Forsman2014-01-211-48/+48
| | | | | | | | | | Buildroot fails to run on NixOS because it has no /bin/echo or /bin/grep. Instead of relying on absolute paths, rely on tools to be available in PATH. This should work for all systems. Signed-off-by: Bjørn Forsman <bjorn.forsman@gmail.com> Acked-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* deprecated handling: introduce BR2_DEPRECATED_SINCE_xxxx_xxThomas De Schampheleire2014-01-101-1/+3
| | | | | | | | | | | | | | | | | | | | | In order to keep better track of when a feature got deprecated, and hence when it can be removed, a new set of symbols BR2_DEPRECATED_SINCE_xxxx_xx is introduced. These symbols are automatically selected when BR2_DEPRECATED is selected, and thus are transparent to the user. A deprecated feature will no longer depend on BR2_DEPRECATED directly, but rather on the appropriate BR2_DEPRECATED_SINCE_xxxx_xx. If that symbol does not yet exist, it has to be created in Config.in. When removing a deprecated feature, one should also check whether this was the last feature using the BR2_DEPRECATED_SINCE_xxxx_xx symbol, in which case the latter can be removed from Config.in. A followup patch will make sure the overview is added to the list of deprecated features in the manual, so that a buildroot core developer can easily determine which features to remove in a given development cycle. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* graphs: support generating png graphsYann E. MORIN2013-12-291-2/+1
| | | | | | | | | | | | | | PDF files can not be easily embedded in other documents (eg. ODT, or HTML). Add support for generating PNG graphs, by setting the GRAPH_OUT=pdf|png on the command line: make GRAPH_OUT=png graph-build graph-depends The default is still to generate PDF graphs. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* graph-build-time: generate graphs based on timing dataThomas Petazzoni2013-12-291-0/+291
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This script generates graphs of packages build time, from the timing data generated by Buildroot in the $(O)/build-time.log file. Example usage: ./support/scripts/graph-build-time \ --type=histogram --input=$(O)/build-time.log --output=foobar.pdf Three graph types are available : * histogram, which creates an histogram of the build time for each package, decomposed by each step (extract, patch, configure, etc.). The order in which the packages are shown is configurable: by package name, by build order, or by duration order. See the --order option. * pie-packages, which creates a pie chart of the build time of each package (without decomposition in steps). Packages that contributed to less than 1% of the overall build time are all grouped together in an "Other" entry. * pie-steps, which creates a pie chart of the time spent globally on each step (extract, patch, configure, etc...) The default is to generate an histogram ordered by package name. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> [yann.morin.1998@free.fr: adapt to the format of the step-hooks build-time.log, add sort order by name, default to name-ordered histogram, use our colours for pie-charts, add alternate color-scheme, add short-options, add --input/-i] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/kconfig: Fix remaining 'kernel' mentionMaxime Hadjinlian2013-12-283-18/+40
| | | | | | | | | This patch update the patch for kernel's kconfig to add remaining 'kernel' mention. It also applies this patch to buildroot's kconfig. Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/kconfig: Update kconfig to 3.13-rc5Maxime Hadjinlian2013-12-288-40/+44
| | | | | | | Only minor changes are registered, mainly help text. Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* core: allow external Config.in/makefile code to be integratedThomas Petazzoni2013-12-082-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit allows the BR2_EXTERNAL directory to contain Config.in and Makefile code, which gets integrated into the Buildroot build logic: - Buildroot automatically includes the $BR2_EXTERNAL/Config.in in the top-level configuration menu. - Buildroot automatically includes the BR2_EXTERNAL/external.mk in the build logic, so it can for example be used to include other .mk files that define package recipes. This is typically intended to be used to create target packages in the BR2_EXTERNAL directory, but can also be used for bootloaders, host packages, or other custom make logic. We also add a dummy Config.in file in support/dummy-external/ to ensure that the source "$BR2_EXTERNAL/Config.in" line will point to an existing file even when BR2_EXTERNAL is not used by the user. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Acked-by: Ryan Barnett <rjbarnet@rockwellcollins.com> Tested-by: "Samuel Martin" <s.martin49@gmail.com> Acked-by: "Samuel Martin" <s.martin49@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* manual: fix manual generation in preparation for BR2_EXTERNAL supportSamuel Martin2013-12-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes an issue that occurs during the manual build process which will occur when BR2_EXTERNAL is introduced. During the package list generation, the python script using kconfiglib module reads and parses the Config.in files. So, symbols, including environment variables, got expanded and/or resolved. In kconfiglib.py, this patch fixes the regex that did not allow to use numbers in the environment variable names, so '$BR2_EXTERNAL' got wrongly expanded like it was '${BR}2_EXTERNAL': <snip> >>> Updating the manual lists... Traceback (most recent call last): File "/opt/buildroot/master/support/scripts/gen-manual-lists.py", line 375, in <module> buildroot = Buildroot() File "/opt/buildroot/master/support/scripts/gen-manual-lists.py", line 216, in __init__ self.root_config)) File "/opt/buildroot/master/support/scripts/kconfiglib.py", line 214, in __init__ self.top_block = self._parse_file(filename, None, None, None) File "/opt/src/buildroot/master/support/scripts/kconfiglib.py", line 919, in _parse_file return self._parse_block(line_feeder, None, parent, deps, visible_if_deps, res) File "/opt/buildroot/master/support/scripts/kconfiglib.py", line 1114, in _parse_block self.base_dir)) IOError: /opt/buildroot/master/Config.in:490: sourced file "$BR2_EXTERNAL/Config.in" (expands to "2_EXTERNAL/Config.in") not found. Perhaps base_dir (argument to Config.__init__(), currently "/opt/buildroot/master") is set to the wrong value. docs/manual/manual.mk:2: recipe for target 'manual-update-lists' failed make: *** [manual-update-lists] Error 1 </snip> Reported-by: Ryan Barnett <rjbarnet@rockwellcollins.com> Signed-off-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Acked-by: Ryan Barnett <rjbarnet@rockwellcollins.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* manual: do not generate .pyc filesYann E. MORIN2013-12-061-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | Python saves a pre-compiled support/scripts/kconfiglib.pyc file side-to-side with the corresponding .py file. This does not work if the Buildroot source tree is read-only (but this is not an error for Python, which keep going OK). But this may cause issues for out-of-tree builds in case the same Buildroot source tree is shared by many builds. Also, 'make clean' currently does not clean this file, and out-of-tree builds can remove it either, at the risk of causing issues for other out-of-tree builds running at the same time. Just tell Python not to generate .pyc files: - call the script via python, don't use the sha-bang - thus, make the script non-executable, and remove the sha-bang Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* support: fix typo in mkusersSamuel Martin2013-12-041-2/+2
| | | | | | | This patch fixes typos in the 'encode_password' function calls. Signed-off-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* core: add BR2_HOSTARCH_NEEDS_IA32_COMPILER optionThomas Petazzoni2013-12-011-0/+9
| | | | | | | | | | | | | | | | Some bootloaders (such as Grub) need to be built for x86 (i.e IA32) even if the target architecture is x86-64. However, when the target architecture is x86-64, the cross-compiler generated by Buildroot is not able to generate 32 bits code. To solve this, we will rely on the host compiler being a x86 + x86-64 compiler. Therefore, this commit introduces the BR2_HOSTARCH_NEEDS_IA32_COMPILER option, which tells the dependency checking logic to verify that the host compiler is indeed capable of building x86 32 bits code. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* support/kconfig: bump to kconfig from linux-3.12Yann E. MORIN2013-11-1430-495/+879
| | | | | | | | | With this, we can trash our probability patch, it's now upstream. Refresh a few other patches. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* support/kconfig: remove useless patchYann E. MORIN2013-11-143-200/+21
| | | | | | | | | | | | | | Patches 02-cpp-comments-to-c-comments.patch changes C++-style comments into C-style comments. This is unneeded, since gcc accepts C++-style comments in C code anyway. Ditch that patch, that's one less we have to handle when updating from upstream. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* support/kconfig: update our READMEYann E. MORIN2013-11-141-1/+1
| | | | | | | | The procedure to update our copy of kconfig was mising copying a file. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* support/kconfig: fix 'space' to (de)select optionsYann E. MORIN2013-11-143-1/+43
| | | | | | | | | | | | | | | | | | | | | | | In case a menu has comment without letters/numbers (eg. characters matching the regexp '^[^[:alpha:][:digit:]]+$', for example - or *), hitting space will cycle through those comments, rather than selecting/deselecting the currently-highlighted option. This is the behaviour of hitting any letter/digit: jump to the next option which prompt starts with that letter. The only letters that do not behave as such are 'y' 'm' and 'n'. Prompts that start with one of those three letters are instead matched on the first letter that is not 'y', 'm' or 'n'. Fix that by treating 'space' as we treat y/m/n, ie. as an action key, not as shortcut to jump to prompt. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Peter Korsgaard <jacmet@uclibc.org> Cc: Samuel Martin <s.martin49@gmail.com> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Makefile: fix out-of-tree builds with multiple targets with 'all'Yann E. MORIN2013-11-061-4/+4
| | | | | | | | | | | | | | | | | | | | | | | For out-of-tree builds, this use-case fails to build: $ make clean all This is because 'all' is filtered-out in the Makefile wrapper, since the wrapper itself has a 'all' target. The 'all' target is just the usual naming for the default target in a Makefile. In fact, the first target is the default one, so we can name it whatever we want. Rename the Makefile wrapper 'all' target to avoid name-clashing. Fixes #6644. Reported-by: Ryan Barnett <rjbarnet@rockwellcollins.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Ryan Barnett <rjbarnet@rockwellcollins.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Tested-by: Ryan Barnett <rjbarnet@rockwellcollins.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* dependencies.sh: update i386 package namesFrank Hunleth2013-11-061-1/+2
| | | | | | | | This is the list needed to run the Linaro pre-built toolchain on a 64-bit Ubuntu 13.10 system. Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* support: trivial fixes (typos and minor rewording) in gen-manual-lists.pySamuel Martin2013-11-011-8/+7
| | | | | | | | | | [Thomas: added Thomas DS Acked-by, given at http://patchwork.ozlabs.org/patch/284719/, and made the additional typo fixes suggested by Thomas DS.] Signed-off-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
* manual generation: check dependencies firstThomas De Schampheleire2013-11-011-0/+36
| | | | | | | | | | | To generate the manual, you need a few tools. If these are not present, pretty cryptic error messages are given. This patch adds a simple check for these dependencies, before attempting to build the manual. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
OpenPOWER on IntegriCloud