path: root/Config.in
Commit message (Collapse)AuthorAgeFilesLines
* Build shared libraries only as the defaultGravatar Thomas Petazzoni2014-12-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Now that we have more options in terms of static/shared libraries, switch from the existing default of building both shared and static libraries to building shared libraries only (of course only on platforms that support shared libraries). Building both shared and static takes time (since the shared objects must be built with -fPIC, while static objects are generally built without, as -fPIC has some performance impact) and consumes a little bit more disk space. For example, a static+shared build of libglib2 takes 1 minutes and 59 seconds, with a final build directory of 96 MB. A shared-only build of libglib2 takes only 1 minutes and 31 seconds (almost a 25% reduction of the build time), and the final build directory weights 89 MB (a reduction of almost 8%). So, switching to a shared library only build brings some useful build time and build size benefits. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
* Turn the static lib option into a choice with more optionsGravatar Thomas Petazzoni2014-12-121-9/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit turns the single static option into a choice, which offers various possibilities: 1. Build and use static libraries only; 2. Build both shared and static libraries, but use shared libraries; 3. Build and use shared libraries only. On most platforms, (2) is currently the default, and kept as the default in this commit. Of course, on certain platforms (Blackfin, m68k), only option (1) will be available. In addition to the introduction of the Config.in options, this commit also: * Removes the 'select BR2_STATIC_LIBS' from 'BR2_BINFMT_FLAT', since with the use of a choice, we are guaranteed that BR2_STATIC_LIBS will be selected when the binary format is BR2_BINFMT_FLAT, since BR2_STATIC_LIBS will be the only possible solution in the choice. * Changes package/Makefile.in to use the proper --{enable,disable}-{shared,static} options for autotools packages. [Thomas: remove useless empty newline right after 'choice'. Noticed by Yann E. Morin.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
* Rename BR2_PREFER_STATIC_LIB to BR2_STATIC_LIBSGravatar Thomas Petazzoni2014-12-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | Since a while, the semantic of BR2_PREFER_STATIC_LIB has been changed from "prefer static libraries when possible" to "use only static libraries". The former semantic didn't make much sense, since the user had absolutely no control/idea of which package would use static libraries, and which packages would not. Therefore, for quite some time, we have been starting to enforce that BR2_PREFER_STATIC_LIB should really build everything with static libraries. As a consequence, this patch renames BR2_PREFER_STATIC_LIB to BR2_STATIC_LIBS, and adjust the Config.in option accordingly. This also helps preparing the addition of other options to select shared, shared+static or just static. Note that we have verified that this commit can be reproduced by simply doing a global rename of BR2_PREFER_STATIC_LIB to BR2_STATIC_LIBS plus adding BR2_PREFER_STATIC_LIB to Config.in.legacy. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
* Add option for paranoid unsafe path checkingGravatar Thomas Petazzoni2014-12-111-0/+20
| | | | | | | | | | | | | | | | | | | | | This commit adds a Config.in option to the "Build options" submenu to enable paranoid checking of unsafe paths. This mechanism is added as an option so that when we'll enable it in the autobuilders, people trying to reproduce the build failures will be able to do so by just downloading the configuration file. If instead we were leaving this feature as an environment variable, everyone would have to remember to pass this environment variable to reproduce build issues. And certain build issues triggered by paranoid unsafe patch checking may not be visible in the build output, for example when they happen during the execution of configure scripts. Since this option is fairly advanced, a new submenu inside "Build options" is created, for Advanced options. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Reviewed-by: Romain Naour <romain.naour@openwide.fr> Tested-by: Romain Naour <romain.naour@openwide.fr>
* Remove BR2_DEPRECATED_SINCE_2013_11Gravatar Gustavo Zacarias2014-12-011-4/+0
| | | | | | | The symbol is unused so remove it. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Add BR2_DEPRECATED_SINCE_2015_02Gravatar Gustavo Zacarias2014-12-011-0/+4
| | | | | | | | In preparation for the deprecation of certain features in 2015.02, add the BR2_DEPRECATED_SINCE_2015_02 symbol. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Config.in: remove BR2_DEBIAN_MIRROR completelyGravatar Karoly Kasza2014-10-251-10/+0
| | | | | Signed-off-by: Karoly Kasza <kaszak@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Config.in: update description of BR2_PREFER_STATIC_LIBGravatar Alexey Brodkin2014-10-131-6/+10
| | | | | | | | | | | | | | | | | | | | With time BR2_PREFER_STATIC_LIB option meaning changed from "prefer static libs when possible" to "do not build dynamic libs and build statically linked applications". This patch changes the option description. Note that variable name is kept unchanged on purpose - it will be modified later when real "prefer static" mode will be introduced. [Peter: tweak help text as suggested by Thomas and Yann] Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Gustavo Zacarias <gustavo@zacarias.com.ar> Cc: Peter Korsgaard <peter@korsgaard.com> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* BR2_DEPRECATED: update option label and helpGravatar Gustavo Zacarias2014-09-191-2/+3
| | | | | | | | | | | | We should use positive logic (show things that are otherwise hidden...) for the help since it's what it does. It also applies to more options than just packages alone, for example the AVR32 architecture so add an "options" label to it. [Peter: tweak help text as suggested by Yann] Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* google-breakpad: integration into Makefile and Config.inGravatar Pascal Huerst2014-07-311-0/+33
| | | | | | | | | | | | | | | | Add a new config option that allows to specify a list of files to dump symbols from, and generate a database of symbols, in stagins/usr/share/google-breakpad/. Signed-off-by: Pascal Huerst <pascal.huerst@gmail.com> [yann.morin.1998@free.fr: add dependency on the host variant; fix script; add commit log] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> [Thomas: remove leftover debugging, rewrap Config.in help text, propagate dependencies correctly.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* luarocks: bump to version 2.2.0beta1Gravatar Francois Perrad2014-07-261-1/+1
| | | | | | | this version includes a new default repository for rocks Signed-off-by: Francois Perrad <francois.perrad@gadz.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* infra/perl: switch to using a reliable mirrorGravatar Yann E. MORIN2014-07-191-1/+1
| | | | | | | | | | | | | | | | | | | The mirror we currently use is not a mirror, it's the main archive. It has a few shortcomings: - it might not contain all the versions of the modules we use, - it can be unavailable at times (like now, for example) Switch to using a realmirror, that: - does a round-robin on the actual mirror, so availability is better - contains all versions of all modules (yes, mojolicious is there!) As a consequence, switch mojolicious to use our standard mirror, Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Fran├žois Perrad <francois.perrad@gadz.org> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Add BR2_DEPRECATED_SINCE_2014_08Gravatar Thomas Petazzoni2014-06-291-0/+4
| | | | | | | In preparation for the deprecation of certain features in 2014.08, add the BR2_DEPRECATED_SINCE_2014_08 symbol. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* ccache: provide capability to do initial ccache setupGravatar Danomi Manchego2014-06-141-2/+19
| | | | | | | | | | | | | | | | For example, if your project is known to require more space than the default max cache size, then you might want to increase the cache size to a suitable amount using the -M (--max-size) option. The string you specify here is passed verbatim to ccache. Refer to ccache documentation for more details. These initial settings are applied after ccache has been compiled. Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com> Reviewed-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Tested-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* classpath: Use generic check for host programGravatar Maxime Hadjinlian2014-06-141-0/+10
| | | | | | | | | | | | Remove the specific check that was done in dependencies.sh to use the generic one that were introduced by the previous patch. Also, introduce, BR2_NEEDS_HOST_JAVAC and BR2_NEEDS_HOST_JAR as it is needed by classpath. Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Reviewed-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* kernel headers: remove deprecated version 3.8Gravatar Thomas De Schampheleire2014-06-131-4/+0
| | | | | | | | | | | | | | | Kernel headers version 3.8.x has been deprecated since 2013.08 and thus can be removed in 2014.08. An automatic selection of 3.9.x headers is performed in the legacy menu. Existing automatic selections of 3.8.x headers are modified to select 3.9.x. As this patch removes the last occurrence of BR2_DEPRECATED_SINCE_2013_08, the symbol is removed too. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* config: kernel.org is now https-onlyGravatar Yann E. MORIN2014-05-241-1/+1
| | | | | | | | Every requests on kernel.org gets redirected to https. So just set our kernel.org settings straight to begin with. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* build/sstrip: deprecate for 2014.05Gravatar Yann E. MORIN2014-05-211-0/+1
| | | | | | | | | | | | | | | | | | | | | Quoting Thomas on IRC: > sstrip is a piece of crap that we should exterminate > from the surface of the planet sstrip is now unmaintained, has a long history of generating butchered binaries in some cases, and does not gain that much space in the end. We'd like to obliviate sstrip from the strip options, anihilate the sstrip package, scorch any reference in fire, and cleanse our tree free of any remnants... But first, let's just deprecate it for now. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Cc: Peter Korsgaard <jacmet@uclibc.org> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* kernel headers: remove deprecated versions 3.6 and 3.7Gravatar Thomas De Schampheleire2014-05-011-4/+0
| | | | | | | | | | | | | | Kernel headers versions 3.6.x and 3.7.x have been deprecated since 2013.05 and thus can be removed in 2014.05. An automatic selection of 3.8.x headers is performed in the legacy menu. An existing automatic selection of 3.6.x headers is modified to select 3.8.x. As this patch removes the last occurrances of BR2_DEPRECATED_SINCE_2013_05, the symbol is removed too. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* uboot: mark custom network settings as deprecatedGravatar Peter Korsgaard2014-03-181-0/+4
| | | | | | As discussed on the the mailing list. Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Merge branch 'next'Gravatar Peter Korsgaard2014-02-281-1/+17
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: Makefile package/dmraid/Config.in package/gdb/Config.in.host package/linux-headers/linux-headers.mk package/python/python.mk package/python3/python3.mk package/rt-tests/Config.in package/sdl/sdl.mk package/systemd/systemd-01-fix-getty-unit.patch package/systemd/systemd-02-fix-page-size.patch package/systemd/systemd-03-uclibc-fix.patch package/udev/Config.in package/udisks/Config.in package/vlc/vlc.mk system/Config.in Quite some merge conflicts, hopefully I didn't screw up anything. Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * pkg-perl: new infrastructureGravatar Francois Perrad2014-02-231-0/+11
| | | | | | | | | | | | 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>
| * Config: default BR2_PACKAGE_OVERRIDE_FILE to $(CONFIG_DIR)/local.mkGravatar Yann E. MORIN2014-02-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current default for BR2_PACKAGE_OVERRIDE_FILE points to: $(TOPDIR)/local.mk This works well for in-tree builds, but is not very useful for out-of-tree builds, when the Buildroot source tree may be shared for different concurrent builds. Also, it seems to be more sensible to have local.mk alognside the .config file. Hence, change the default for BR2_PACKAGE_OVERRIDE_FILE to point to: $(CONFIG_DIR)/local.mk Note that this does not change the current behaviour for in-tree builds, since in that case $(CONFIG_DIR) == $(TOPDIR). Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * infra: Change BR2_HOST_NEEDS_JAVA nameGravatar Maxime 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_JAVAGravatar Maxime Hadjinlian2014-02-191-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Fix backup and kernel download url.Gravatar Peter Seiderer2014-02-221-2/+2
|/ | | | | | | | Remove duplicated slash from backup and kernel download url, e.g. http://www.kernel.org/pub//linux/kernel/v3.x/linux-3.13.3.tar.xz Signed-off-by: Peter Seiderer <ps.report@gmx.net> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* infra: replace BUILDROOT_DL_DIR with BR2_DL_DIR.Gravatar Arnout Vandecappelle2014-02-091-1/+1
| | | | | | | | | | | To make the naming consistent (all user-visible options should be prefixed BR2_). An entry is added to Makefile.legacy to warn users who have set BUILDROOT_DL_DIR but not BR2_DL_DIR. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* kernel-headers: remove deprecated versions 3.1, 3.3, 3.5Gravatar Thomas De Schampheleire2014-02-081-4/+0
| | | | | | | | | | | | | The Linux kernel headers versions 3.1, 3.3, and 3.5 have been deprecated since 2013.02 and thus can be removed in 2014.02. For legacy handling, we automatically select versions 3.2, 3.4, and 3.6, respectively. Additionally, this patch removes the now unused symbol BR2_DEPRECATED_SINCE_2013_02. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* packages: remove support for documentation on targetGravatar Thomas De Schampheleire2014-02-081-14/+0
| | | | | | | | This patch removes deprecated symbol BR2_HAVE_DOCUMENTATION and all its usage. Additionally, it removes the now unused BR2_DEPRECATED_SINCE_2012_11. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* lzma: remove deprecated target packageGravatar Thomas De Schampheleire2014-01-211-4/+0
| | | | | | | | | The on-target lzma package has been deprecated for a long time, so remove it. This does not remove the support for generating lzma-compressed rootfs images. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* ttcp: remove deprecated packageGravatar Thomas De Schampheleire2014-01-211-4/+0
| | | | | | | | Since this is the only package depending on BR2_DEPRECATED_SINCE_2012_05, remove that symbol as well. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* luarocks: new infrastructureGravatar Francois Perrad2014-01-131-0/+8
| | | | | | | | Signed-off-by: Francois Perrad <francois.perrad@gadz.org> [yann.morin.1998@free.fr: apply Thomas' comments] 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>
* squashfs3: remove deprecated package/rootfsGravatar Thomas De Schampheleire2014-01-101-4/+0
| | | | | | | [Peter: remove now unused BR2_DEPRECATED_SINCE_2010_05 symbol] 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>
* deprecated handling: introduce BR2_DEPRECATED_SINCE_xxxx_xxGravatar Thomas De Schampheleire2014-01-101-1/+41
| | | | | | | | | | | | | | | | | | | | | 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>
* Support for multiple BR2_GLOBAL_PATCH_DIRGravatar Ryan Barnett2013-12-251-8/+12
| | | | | | | | | | | | Adding support for specifying multiple directories in BR2_GLOBAL_PATCH_DIR. This will allow for a layered approach for the patching of a package. Signed-off-by: Ryan Barnett <rjbarnet@rockwellcollins.com> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com> Cc: Arnout Vandecappelle <arnout@mind.be> Reviewed-by: Thomas De Schampheleire <patrickdepinguin@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Config.in: Add a menu around BR2_EXTERNAL configuration optionsGravatar Peter Korsgaard2013-12-081-0/+5
| | | | | | | | | | | | | | | To make it clear to the user that these options are external to Buildroot and no support is provided by the Buildroot community. With this, there's no need to recommend people to their options inside a menu, so remove that from the documentation. Kconfig nicely allows us to hide the menu completely if BR2_EXTERNAL isn't used, so make use of that to not confuse people. It would be nice if we could add some help text to explain the BR2_EXTERNAL stuff as well, but that isn't supported on menus :/ Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* core: allow external Config.in/makefile code to be integratedGravatar Thomas Petazzoni2013-12-081-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* core: introduce the BR2_EXTERNAL variableGravatar Thomas Petazzoni2013-12-081-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit introduces the BR2_EXTERNAL environment variable, which will allow to keep Buildroot customization (board-specific configuration files or root filesystem overlays, package Config.in and makefiles, as well as defconfigs) outside of the Buildroot tree. This commit only introduces the variable itself, and ensures that it is available within Config.in options. This allows us to use $BR2_EXTERNAL in a 'source' statement in Config.in. Following patches extend the usage of BR2_EXTERNAL to other areas (packages and defconfigs). In details, this commit: * Introduces the BR2_EXTERNAL Kconfig option. This option has no prompt, and is therefore not visible to the user and also not stored in the .config file. It is automatically set to the value of the BR2_EXTERNAL environment variable. The only purpose of this BR2_EXTERNAL Kconfig option is to allow $BR2_EXTERNAL to be properly expanded when used inside Kconfig source statements. * Calculates the BR2_EXTERNAL value to use. If passed on the command line, then this value is taken in priority, and saved to a .br-external hidden file in the output directory. If not passed on the command line, then we read the .br-external file from the output directory. This allows the user to not pass the BR2_EXTERNAL value at each make invocation. If no BR2_EXTERNAL value is passed, we define it to support/dummy-external, so that the kconfig code finds an existing $(BR2_EXTERNAL)/package/Config.in file to include. * Passes the BR2_EXTERNAL into the *config environment, so that its value is found when parsing/evaluating Config.in files and .config values. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> 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>
* core: add BR2_HOSTARCH_NEEDS_IA32_COMPILER optionGravatar Thomas Petazzoni2013-12-011-0/+6
| | | | | | | | | | | | | | | | 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>
* Config.in files: whitespace cleanupGravatar Thomas De Schampheleire2013-11-111-1/+1
| | | | | | | | | | This patch fixes the following whitespace problems in Config.in files: - trailing whitespace - spaces instead of tabs for indentation - help text not indented with tab + 2 spaces Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain: refactor Stack Smashing Protection supportGravatar Thomas Petazzoni2013-09-151-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | This commit refactors how Stack Smashing Protection support is handled in Buildroot: *) It turns the BR2_TOOLCHAIN_BUILDROOT_USE_SSP option into an option that only enables the SSP support in uClibc, when using the internal toolchain backend. *) It adds an hidden BR2_TOOLCHAIN_HAS_SSP option that gets enabled when the toolchain has SSP support. Here we have the usual dance: glibc/eglibc in internal/external backend always select this option, in the case of uClibc/internal, it gets selected when BR2_TOOLCHAIN_BUILDROOT_USE_SSP is enabled, in the case of uClibc/external, there is a new configuration option that the user must select (or not) depending on whether the toolchain has SSP support. *) It adds a new options BR2_ENABLE_SSP in the "Build options" menu, to enable the usage of SSP support, by adding -fstack-protector-all to the CFLAGS. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* downloads: add basic CVS supportGravatar Gustavo Zacarias2013-09-131-0/+4
| | | | | | | | | | | | | | The support is for pserver mode anonymous CVS. source-check is based on login since many servers don't support or have ls/rls disabled. Usage is pretty straightforward. PKG_SITE defines the site hostname and remote directory. The module is defined by the bare package name. Version is date based. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Config.in: Fixup after BR2_ELF2FLT got renamed to BR2_PACKAGE_HOST_ELF2FLTGravatar Axel Lin2013-09-091-2/+2
| | | | | | | | | The BR2_ELF2FLT option has been renamed to BR2_PACKAGE_HOST_ELF2FLT, thus use the new name to fix dependency. Signed-off-by: Axel Lin <axel.lin@ingics.com> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* config: reorder top-level menuGravatar Yann E. MORIN2013-08-281-3/+3
| | | | | | | | | | | Reorder the entries in the top-menu, in a more significant order. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas De Schampheleire <patrickdepinguin+buildroot@gmail.com> Cc: Arnout Vandecappelle <arnout@mind.be> Acked-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Remove BR2_HAVE_DEVFILESGravatar Thomas Petazzoni2013-07-041-8/+0
| | | | | | | | | | | | This finally removes the BR2_HAVE_DEVFILES option, that was used to install/keep development files on target. With the recent migration of the internal backend to the package infrastructure, we had anyway lost the ability to build gcc for the target, and install the uClibc development files on the target. [Peter: also remove support/scripts/copy.sh] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* rework patch modelGravatar Simon Dawson2013-03-191-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | At the Buildroot Developers Meeting (4-5 February 2013, in Brussels) a change to the patch logic was discussed. See http://elinux.org/Buildroot:DeveloperDaysFOSDEM2013 for details. In summary: * For patches stored in the package directory, if package/<pkg>/<version>/ does exist, apply package/<pkg>/<version>/*.patch, otherwise, apply package/<pkg>/*.patch * For patches stored in the global patches directory, if $(GLOBAL_PATCH_DIR)/<pkg>/<version>/ does exist, apply $(GLOBAL_PATCH_DIR)/<pkg>/<version>/*.patch, otherwise, apply $(GLOBAL_PATCH_DIR)/<pkg>/*.patch This patch adds the new BR2_GLOBAL_PATCH_DIR configuration item, and reworks the generic package infrastructure to implement the new patch logic. [Peter: fixup doc nits as pointed out by Thomas] Signed-off-by: Simon Dawson <spdawson@gmail.com> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Config.in: move BR2_DEFCONFIG to Build options menu.Gravatar Arnout Vandecappelle (Essensium/Mind)2013-02-071-12/+12
| | | | | | | As suggested by gustavoz. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Make savedefconfig save to a configured file.Gravatar Arnout Vandecappelle (Essensium/Mind)2013-02-051-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | Store BR2_DEFCONFIG in .config, and use it to update the original input defconfig file after updating the configuration. When a config is created by using the BR2_DEFCONFIG=... option, this is saved in the .config file; later runs of savedefconfig will update that same location. It is also possible to configure this place in the interactive configuration. The BR2_DEFCONFIG value itself is not saved into the generated defconfig, since Kconfig considers it at its default. This is intentional, to avoid hard-coding an absolute path in the defconfig. It will anyway be set again when the defconfig is used with the 'make BR2_DEFCONFIG=... defconfig' command. As a side-effect of this change, the *config options have been moved out of the BR2_HAVE_DOT_CONFIG condition. This doesn't make any functional difference, because the .config is still not read for the *config targets. However, the defconfig and savedefconfig targets do need to include .config now, which makes them slightly slower. [Peter: slightly tweak help text] Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Acked-by: Luca Ceresoli <luca@lucaceresoli.net> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Infrastructure to warn the user about missing 32 bits librariesGravatar Thomas Petazzoni2013-01-061-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Many users trying to use external toolchains on x86-64 machines get a very confusing message: "Can't execute cross-compiler" They get this message because they forgot to install the 32 bits compatibility libraries that are needed to run binaries compiled for x86 on x86-64 machines. Since this is the case for both external toolchains and certain binary-only tools like SAM-BA, we add a new Kconfig option BR2_HOSTARCH_NEEDS_IA32_LIBS, that packages must select if they need the 32 bits compatibility libraries. When this option is enabled, dependencies.sh checks that the 32 bits dynamic library loader is present on the system, and if not, it stops and shows an error. The path and name of the 32 bits dynamic loader is hardcoded because it is very unlikely to change, as it would break the ABI for all binaries. Also, it is worth noting that the check will be done even if we're running on a 32 bits machine. This is harmless, as 32 bits machines necessarily have the 32 bits dynamic loader installed, so the error will never show up in this case. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* pkg-infra: introduce errors for legacy APIGravatar Arnout Vandecappelle (Essensium/Mind)2012-11-301-0/+2
| | | | | | | | | | | | | As discussed in the BR developer days, we want to be more strict about API changes in buildroot. I.e., we want to make it less likely that a user's customizations break down after upgrading buildroot. A first step is to make sure that the user is warned about API changes. This patch introduces Makefile.legacy and Config.in.legacy, which will issue clear error messages for such situations. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>