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
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
config LIBC_VERSION
@ -96,10 +103,27 @@ config LIBC_VERSION
default "2_10" if LIBC_EGLIBC_V_2_10
default "2_9" if LIBC_EGLIBC_V_2_9
default "trunk" if LIBC_EGLIBC_V_TRUNK
default "custom" if LIBC_EGLIBC_CUSTOM
config LIBC_EGLIBC_2_16_or_later
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
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"
endif # ! CONFIGURE_has_svn
endif # ! LIBC_EGLIBC_CUSTOM
config EGLIBC_OPT_SIZE
bool

View File

@ -95,11 +95,33 @@ config LIBC_GLIBC_V_2_8
prompt "2.8"
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
config LIBC_GLIBC_2_20_or_later
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
string
# 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.9" if LIBC_GLIBC_V_2_9
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}";;
esac
CT_GetSVN "eglibc-${CT_LIBC_VERSION}" \
"${svn_base}/libc" \
"${CT_EGLIBC_REVISION:-HEAD}"
if [ "${CT_LIBC_CUSTOM}" = "y" ]; then
CT_GetCustom "eglibc" "${CT_LIBC_VERSION}" "${CT_LIBC_EGLIBC_CUSTOM_LOCATION}"
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
extra_addons+=("localedef")

View File

@ -4,10 +4,16 @@
do_libc_extract() {
local addon
# Extract the main tarball
CT_Extract "${CT_LIBC}-${CT_LIBC_VERSION}"
# Attempt CT_EXTRACT only if NOT custom, or CUSTOM_LOCATION is not a directory
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_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
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 " "))
# 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 \
ftp://{sourceware.org,gcc.gnu.org}/pub/glibc/{releases,snapshots}
fi
# C library addons
for addon in "${addons_list[@]}"; do