summaryrefslogtreecommitdiff
path: root/scripts/build/libc/eglibc.sh
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2011-05-30 22:20:44 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2011-05-30 22:20:44 (GMT)
commit3d6ce4cd3d888b390748af42b7ec2826b963df38 (patch)
tree48365ce4df06c4e9ddc04a52e16aea42d19b86c1 /scripts/build/libc/eglibc.sh
parent3304d5c07725b64fbfa3c31dae161031c13c1e30 (diff)
libc/eglibc: use generic SVN functions
eglibc is only available from SVN. The script currently calls svn in its own tortuous and convoluted way. Use the egeneric SVN extract functions, and sinplify the eglibc download function. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Diffstat (limited to 'scripts/build/libc/eglibc.sh')
-rw-r--r--scripts/build/libc/eglibc.sh98
1 files changed, 15 insertions, 83 deletions
diff --git a/scripts/build/libc/eglibc.sh b/scripts/build/libc/eglibc.sh
index ea68b22..a551bc6 100644
--- a/scripts/build/libc/eglibc.sh
+++ b/scripts/build/libc/eglibc.sh
@@ -9,95 +9,27 @@
# do_libc_min_kernel_config
. "${CT_LIB_DIR}/scripts/build/libc/glibc-eglibc.sh-common"
-# Download eglibc repository
-do_eglibc_get() {
- CT_HasOrAbort svn
-
- case "${CT_LIBC_VERSION}" in
- trunk) svn_url="svn://svn.eglibc.org/trunk";;
- *) svn_url="svn://svn.eglibc.org/branches/eglibc-${CT_LIBC_VERSION}";;
- esac
-
- case "${CT_EGLIBC_CHECKOUT}" in
- y) svn_action="checkout";;
- *) svn_action="export --force";;
- esac
-
- CT_DoExecLog ALL svn ${svn_action} -r "${CT_EGLIBC_REVISION:-HEAD}" "${svn_url}" "$(pwd)"
-
- # Compress eglibc
- CT_DoExecLog ALL mv libc "eglibc-${CT_LIBC_VERSION}"
- CT_DoExecLog ALL tar cjf "eglibc-${CT_LIBC_VERSION}.tar.bz2" "eglibc-${CT_LIBC_VERSION}"
-
- # Compress linuxthreads, localedef and ports
- # Assign them the name the way ct-ng like it
- for addon in linuxthreads localedef ports; do
- CT_DoExecLog ALL mv "${addon}" "eglibc-${addon}-${CT_LIBC_VERSION}"
- CT_DoExecLog ALL tar cjf "eglibc-${addon}-${CT_LIBC_VERSION}.tar.bz2" "eglibc-${addon}-${CT_LIBC_VERSION}"
- done
-}
-
# Download glibc
+# eglibc is only available through subversion, there are no
+# snapshots available.
do_libc_get() {
- # eglibc is only available through subversion, there are no
- # snapshots available. Moreover, addons will be downloaded
- # simultaneously.
-
- # build filename
- eglibc="eglibc-${CT_LIBC_VERSION}.tar.bz2"
- eglibc_linuxthreads="${CT_LIBC}-linuxthreads-${CT_LIBC_VERSION}.tar.bz2"
- eglibc_localedef="${CT_LIBC}-localedef-${CT_LIBC_VERSION}.tar.bz2"
- eglibc_ports="${CT_LIBC}-ports-${CT_LIBC_VERSION}.tar.bz2"
+ local addon
+ local svn_base="svn://svn.eglibc.org"
- # Check if every tarballs are already present
- if [ -f "${CT_TARBALLS_DIR}/${eglibc}" \
- -a -f "${CT_TARBALLS_DIR}/${eglibc_linuxthreads}" \
- -a -f "${CT_TARBALLS_DIR}/${eglibc_localedef}" \
- -a -f "${CT_TARBALLS_DIR}/${eglibc_ports}" \
- ]; then
- CT_DoLog DEBUG "Already have 'eglibc-${CT_LIBC_VERSION}'"
- return 0
- fi
-
- if [ -f "${CT_LOCAL_TARBALLS_DIR}/${eglibc}" \
- -a -f "${CT_LOCAL_TARBALLS_DIR}/${eglibc_linuxthreads}" \
- -a -f "${CT_LOCAL_TARBALLS_DIR}/${eglibc_localedef}" \
- -a -f "${CT_LOCAL_TARBALLS_DIR}/${eglibc_ports}" \
- -a "${CT_FORCE_DOWNLOAD}" != "y" \
- ]; then
- CT_DoLog DEBUG "Got 'eglibc-${CT_LIBC_VERSION}' from local storage"
- for file in ${eglibc} ${eglibc_linuxthreads} ${eglibc_localedef} ${eglibc_ports}; do
- CT_DoExecLog ALL ln -s "${CT_LOCAL_TARBALLS_DIR}/${file}" "${CT_TARBALLS_DIR}/${file}"
- done
- return 0
- fi
-
- # Not found locally, try from the network
- CT_DoLog EXTRA "Retrieving 'eglibc-${CT_LIBC_VERSION}'"
+ case "${CT_LIBC_VERSION}" in
+ trunk) svn_base+="/trunk";;
+ *) svn_base+="/branches/eglibc-${CT_LIBC_VERSION}";;
+ esac
- CT_MktempDir tmp_dir
- CT_Pushd "${tmp_dir}"
+ CT_GetSVN "eglibc-${CT_LIBC_VERSION}" \
+ "${svn_base}/libc" \
+ "${CT_EGLIBC_REVISION:-HEAD}"
- do_eglibc_get
- CT_DoLog DEBUG "Moving 'eglibc-${CT_LIBC_VERSION}' to tarball directory"
- for file in ${eglibc} ${eglibc_linuxthreads} ${eglibc_localedef} ${eglibc_ports}; do
- CT_DoExecLog ALL mv -f "${file}" "${CT_TARBALLS_DIR}"
+ for addon in $(do_libc_add_ons_list " "); do
+ CT_GetSVN "eglibc-${addon}-${CT_LIBC_VERSION}" \
+ "${svn_base}/${addon}" \
+ "${CT_EGLIBC_REVISION:-HEAD}"
done
-
- CT_Popd
-
- # Remove source files
- CT_DoExecLog ALL rm -rf "${tmp_dir}"
-
- if [ "${CT_SAVE_TARBALLS}" = "y" ]; then
- CT_DoLog EXTRA "Saving 'eglibc-${CT_LIBC_VERSION}' to local storage"
- for file in ${eglibc} ${eglibc_linuxthreads} ${eglibc_localedef} ${eglibc_ports}; do
- CT_DoExecLog ALL mv -f "${CT_TARBALLS_DIR}/${file}" "${CT_LOCAL_TARBALLS_DIR}"
- CT_DoExecLog ALL ln -s "${CT_LOCAL_TARBALLS_DIR}/${file}" "${CT_TARBALLS_DIR}/${file}"
- done
- fi
-
- return 0
}
# Copy user provided eglibc configuration file if provided