Merge pull request #6 from davidholsgrove/libc_custom_location

Libc custom location
This commit is contained in:
Bryan Hundven 2014-12-15 09:33:43 -08:00
commit 0ee9ecbcf7
5 changed files with 71 additions and 7 deletions

View File

@ -79,6 +79,13 @@ config LIBC_EGLIBC_V_TRUNK
help help
Selecting this will export the trunk of the eglibc subversion repository. Selecting this will export the trunk of the eglibc subversion repository.
config LIBC_EGLIBC_CUSTOM
bool
prompt "Custom eglibc"
depends on EXPERIMENTAL
select LIBC_EGLIBC_2_16_or_later
select LIBC_CUSTOM
endchoice endchoice
config LIBC_VERSION config LIBC_VERSION
@ -96,10 +103,27 @@ config LIBC_VERSION
default "2_10" if LIBC_EGLIBC_V_2_10 default "2_10" if LIBC_EGLIBC_V_2_10
default "2_9" if LIBC_EGLIBC_V_2_9 default "2_9" if LIBC_EGLIBC_V_2_9
default "trunk" if LIBC_EGLIBC_V_TRUNK default "trunk" if LIBC_EGLIBC_V_TRUNK
default "custom" if LIBC_EGLIBC_CUSTOM
config LIBC_EGLIBC_2_16_or_later config LIBC_EGLIBC_2_16_or_later
bool bool
config LIBC_CUSTOM
bool
if LIBC_EGLIBC_CUSTOM
config LIBC_EGLIBC_CUSTOM_LOCATION
string
prompt "Full path to custom eglibc source"
default ""
help
Enter the path to the directory (or tarball) of your source for eglibc,
or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/eglibc
endif # LIBC_EGLIBC_CUSTOM
if ! LIBC_EGLIBC_CUSTOM
if CONFIGURE_has_svn if CONFIGURE_has_svn
config EGLIBC_REVISION config EGLIBC_REVISION
@ -149,6 +173,7 @@ comment "| - or have a LAN mirror with a pre-downloaded tarball"
comment "otherwise you won't be able to download eglibc" comment "otherwise you won't be able to download eglibc"
endif # ! CONFIGURE_has_svn endif # ! CONFIGURE_has_svn
endif # ! LIBC_EGLIBC_CUSTOM
config EGLIBC_OPT_SIZE config EGLIBC_OPT_SIZE
bool bool

View File

@ -95,11 +95,33 @@ config LIBC_GLIBC_V_2_8
prompt "2.8" prompt "2.8"
select LIBC_GLIBC_PORTS_EXTERNAL select LIBC_GLIBC_PORTS_EXTERNAL
config LIBC_GLIBC_CUSTOM
bool
prompt "Custom glibc"
depends on EXPERIMENTAL
select LIBC_CUSTOM
select LIBC_GLIBC_2_20_or_later
endchoice endchoice
config LIBC_GLIBC_2_20_or_later config LIBC_GLIBC_2_20_or_later
bool bool
config LIBC_CUSTOM
bool
if LIBC_GLIBC_CUSTOM
config LIBC_GLIBC_CUSTOM_LOCATION
string
prompt "Full path to custom glibc source"
default ""
help
Enter the path to the directory (or tarball) of your source for glibc,
or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/glibc
endif # LIBC_GLIBC_CUSTOM
config LIBC_VERSION config LIBC_VERSION
string string
# Don't remove next line # Don't remove next line
@ -120,3 +142,4 @@ config LIBC_VERSION
default "2.10.1" if LIBC_GLIBC_V_2_10_1 default "2.10.1" if LIBC_GLIBC_V_2_10_1
default "2.9" if LIBC_GLIBC_V_2_9 default "2.9" if LIBC_GLIBC_V_2_9
default "2.8" if LIBC_GLIBC_V_2_8 default "2.8" if LIBC_GLIBC_V_2_8
default "custom" if LIBC_GLIBC_CUSTOM

View File

@ -27,9 +27,14 @@ do_libc_get() {
*) svn_base+="/branches/eglibc-${CT_LIBC_VERSION}";; *) svn_base+="/branches/eglibc-${CT_LIBC_VERSION}";;
esac esac
CT_GetSVN "eglibc-${CT_LIBC_VERSION}" \ if [ "${CT_LIBC_CUSTOM}" = "y" ]; then
"${svn_base}/libc" \ CT_GetCustom "eglibc" "${CT_LIBC_VERSION}" "${CT_LIBC_EGLIBC_CUSTOM_LOCATION}"
"${CT_EGLIBC_REVISION:-HEAD}" CT_LIBC_CUSTOM_LOCATION="${CT_SRC_DIR}/eglibc-${CT_LIBC_VERSION}"
else
CT_GetSVN "eglibc-${CT_LIBC_VERSION}" \
"${svn_base}/libc" \
"${CT_EGLIBC_REVISION:-HEAD}"
fi
if [ "${CT_LIBC_LOCALES}" = "y" ]; then if [ "${CT_LIBC_LOCALES}" = "y" ]; then
extra_addons+=("localedef") extra_addons+=("localedef")

View File

@ -4,10 +4,16 @@
do_libc_extract() { do_libc_extract() {
local addon local addon
# Extract the main tarball # Attempt CT_EXTRACT only if NOT custom, or CUSTOM_LOCATION is not a directory
CT_Extract "${CT_LIBC}-${CT_LIBC_VERSION}" if [ "${CT_LIBC_CUSTOM}" != "y" \
-o ! -d "${CT_LIBC_CUSTOM_LOCATION}" ]; then
CT_Extract "${CT_LIBC}-${CT_LIBC_VERSION}"
fi
CT_Pushd "${CT_SRC_DIR}/${CT_LIBC}-${CT_LIBC_VERSION}" CT_Pushd "${CT_SRC_DIR}/${CT_LIBC}-${CT_LIBC_VERSION}"
CT_Patch nochdir "${CT_LIBC}" "${CT_LIBC_VERSION}" # Attempt CT_PATCH only if NOT custom
if [ "${CT_LIBC_CUSTOM}" != "y" ]; then
CT_Patch nochdir "${CT_LIBC}" "${CT_LIBC_VERSION}"
fi
# Extract the add-opns # Extract the add-opns
for addon in $(do_libc_add_ons_list " "); do for addon in $(do_libc_add_ons_list " "); do

View File

@ -19,9 +19,14 @@ do_libc_get() {
addons_list=($(do_libc_add_ons_list " ")) addons_list=($(do_libc_add_ons_list " "))
# Main source # Main source
CT_GetFile "glibc-${CT_LIBC_VERSION}" \ if [ "${CT_LIBC_CUSTOM}" = "y" ]; then
CT_GetCustom "glibc" "${CT_LIBC_VERSION}" "${CT_LIBC_GLIBC_CUSTOM_LOCATION}"
CT_LIBC_CUSTOM_LOCATION="${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}"
else
CT_GetFile "glibc-${CT_LIBC_VERSION}" \
{http,ftp,https}://ftp.gnu.org/gnu/glibc \ {http,ftp,https}://ftp.gnu.org/gnu/glibc \
ftp://{sourceware.org,gcc.gnu.org}/pub/glibc/{releases,snapshots} ftp://{sourceware.org,gcc.gnu.org}/pub/glibc/{releases,snapshots}
fi
# C library addons # C library addons
for addon in "${addons_list[@]}"; do for addon in "${addons_list[@]}"; do