Add main EXPERIMENTAL_PATCHES setting

This change adds support for experimental patches to be introduced to
crosstool-ng. The patches enabled by this option are to be located here:

    patches/experimental/<package>/<version>/XXXX-NAME.patch

Where, XXXX is the patch number to be applied in order, like:
    0001-some_patch_one.patch
    0002-some_patch_two.patch
    9999-some_patch_to_be_applied_last.patch

In the first patch series, all patches in the EXPERIMENTAL_PATCHES
option will be applied all at once, or none at all.

In a later [RFC] patch, I plan on adding finer tuned patch
enable/disable options based on the name of the patch and where it is
located in the patches/experimental sub-tree. So the name of the patch
should use underscores between words in the patch name.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
[yann.morin.1998@free.fr: slightly reword prompt]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
This commit is contained in:
Bryan Hundven 2014-07-26 18:04:53 -07:00 committed by Yann E. MORIN
parent 71074b7f82
commit 85622fdd49
2 changed files with 22 additions and 4 deletions

View File

@ -29,6 +29,16 @@ config EXPERIMENTAL
- non-existant, in which case you could also try hacking it in and send me
the result
config EXPERIMENTAL_PATCHES
bool
depends on EXPERIMENTAL
prompt "Use patches marked as EXPERIMENTAL_PATCHES (READ HELP!)"
help
***WARNING*** This is not supported by crosstool-ng! ***WARNING***
If you set this to Y, then you will be able to enable experimental
patches that are not supported by crosstool-ng.
config ALLOW_BUILD_AS_ROOT
bool
prompt "Allow building as root user (READ HELP!)"

View File

@ -1034,6 +1034,8 @@ CT_Patch() {
local -a patch_dirs
local bundled_patch_dir
local local_patch_dir
local bundled_exp_patch_dir
local local_exp_patch_dir
if [ "${nochdir}" = "nochdir" ]; then
shift
@ -1072,11 +1074,17 @@ CT_Patch() {
bundled_patch_dir="${CT_LIB_DIR}/patches/${pkgname}/${version}"
local_patch_dir="${CT_LOCAL_PATCH_DIR}/${pkgname}/${version}"
# Check for experimental patches, if enabled.
if [ "${CT_EXPERIMENTAL_PATCHES}" = "y" ]; then
bundled_exp_patch_dir="${CT_LIB_DIR}/patches/experimental/${pkgname}/${version}"
local_exp_patch_dir="${CT_LOCAL_PATCH_DIR}/experimental/${pkgname}/${version}"
fi
case "${CT_PATCH_ORDER}" in
bundled) patch_dirs=("${bundled_patch_dir}");;
local) patch_dirs=("${local_patch_dir}");;
bundled,local) patch_dirs=("${bundled_patch_dir}" "${local_patch_dir}");;
local,bundled) patch_dirs=("${local_patch_dir}" "${bundled_patch_dir}");;
bundled) patch_dirs=("${bundled_patch_dir}" "${bundled_exp_patch_dir}");;
local) patch_dirs=("${local_patch_dir}" "${local_exp_patch_dir}");;
bundled,local) patch_dirs=("${bundled_patch_dir}" "${bundled_exp_patch_dir}" "${local_patch_dir}" "${local_exp_patch_dir}");;
local,bundled) patch_dirs=("${local_patch_dir}" "${local_exp_patch_dir}" "${bundled_patch_dir}" "${bundled_exp_patch_dir}");;
none) patch_dirs=;;
esac