@@ -50,8 +50,26 @@
prompt "2.16.1a (OBSOLETE)"
depends on OBSOLETE
+config BINUTILS_CUSTOM
+ bool
+ prompt "Custom binutils"
+ depends on EXPERIMENTAL
+ select BINUTILS_2_22_or_later
+
endchoice
+if BINUTILS_CUSTOM
+
+config BINUTILS_CUSTOM_LOCATION
+ string
+ prompt "full path to custom binutils source"
+ default ""
+ help
+ Enter the path to the directory (or tarball) of your source for binutils,
+ or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/binutils
+
+endif # BINUTILS_CUSTOM
+
config BINUTILS_VERSION
string
# Don't remove next line
@@ -64,6 +82,7 @@
default "2.18a" if BINUTILS_V_2_18a
default "2.17a" if BINUTILS_V_2_17a
default "2.16.1a" if BINUTILS_V_2_16_1a
+ default "custom" if BINUTILS_CUSTOM
config BINUTILS_2_22_or_later
bool
@@ -4,14 +4,26 @@
# Download binutils
do_binutils_get() {
- CT_GetFile "binutils-${CT_BINUTILS_VERSION}" \
- {ftp,http}://{ftp.gnu.org/gnu,ftp.kernel.org/pub/linux/devel}/binutils \
- ftp://gcc.gnu.org/pub/binutils/{releases,snapshots}
+ if [ "${CT_BINUTILS_CUSTOM}" = "y" ]; then
+ CT_TestAndAbort "Custom binutils: CT_CUSTOM_LOCATION_ROOT_DIR or CT_BINUTILS_CUSTOM_LOCATION must be set." \
+ -z "${CT_CUSTOM_LOCATION_ROOT_DIR}" -a -z "${CT_BINUTILS_CUSTOM_LOCATION}"
+ if [ -n "${CT_CUSTOM_LOCATION_ROOT_DIR}" -a -z "${CT_BINUTILS_CUSTOM_LOCATION}" ]; then
+ CT_BINUTILS_CUSTOM_LOCATION="${CT_CUSTOM_LOCATION_ROOT_DIR}/binutils"
+ fi
+ CT_GetCustom "binutils-${CT_BINUTILS_VERSION}" "${CT_BINUTILS_CUSTOM_LOCATION}"
+ else
+ CT_GetFile "binutils-${CT_BINUTILS_VERSION}" \
+ {ftp,http}://{ftp.gnu.org/gnu,ftp.kernel.org/pub/linux/devel}/binutils \
+ ftp://gcc.gnu.org/pub/binutils/{releases,snapshots}
+ fi
}
# Extract binutils
do_binutils_extract() {
- CT_Extract "binutils-${CT_BINUTILS_VERSION}"
+ if [ "${CT_BINUTILS_CUSTOM}" != "y" \
+ -o ! -d "${CT_BINUTILS_CUSTOM_LOCATION}" ]; then
+ CT_Extract "binutils-${CT_BINUTILS_VERSION}"
+ fi
CT_Patch "binutils" "${CT_BINUTILS_VERSION}"
}