From 7032dea8baab47ca4c52346689004837c6d85329 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Thu, 7 May 2009 18:56:31 +0000 Subject: Fix installing uClibc headers for versions prior to 0.9.30. Fix a comment about installing uClibc. Automatically enable // build for uClibc versions that can be built in //. -------- diffstat follows -------- /trunk/scripts/build/libc/uClibc.sh | 32 23 9 0 +++++++++++++++++++++++--------- /trunk/config/libc/uClibc.in | 12 7 5 0 +++++++----- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/config/libc/uClibc.in b/config/libc/uClibc.in index 7bc0501..dbd659c 100644 --- a/config/libc/uClibc.in +++ b/config/libc/uClibc.in @@ -38,10 +38,12 @@ config LIBC_V_0_9_29 config LIBC_V_0_9_30 bool prompt "0.9.30" + select LIBC_UCLIBC_0_9_30_or_later config LIBC_V_0_9_30_1 bool prompt "0.9.30.1" + select LIBC_UCLIBC_0_9_30_or_later # CT_INSERT_VERSION_ABOVE # Don't remove above line! @@ -72,14 +74,14 @@ config LIBC_VERSION # CT_INSERT_VERSION_STRING_ABOVE # Don't remove above line! +config LIBC_UCLIBC_0_9_30_or_later + bool + default n + select LIBC_UCLIBC_PARALLEL + config LIBC_UCLIBC_PARALLEL bool - prompt "Build uClibc in //" if LIBC_V_snapshot || LIBC_V_specific_date default n - help - Build uClibc using parallel jobs. - Some 'old' versions won't build in //, but it works starting with - 0.9.30 release candidates. choice bool diff --git a/scripts/build/libc/uClibc.sh b/scripts/build/libc/uClibc.sh index c65606c..52f7ee3 100644 --- a/scripts/build/libc/uClibc.sh +++ b/scripts/build/libc/uClibc.sh @@ -54,6 +54,8 @@ do_libc_check_config() { # This functions installs uClibc's headers do_libc_headers() { + local install_rule + CT_DoStep INFO "Installing C library headers" mkdir -p "${CT_BUILD_DIR}/build-libc-headers" @@ -61,7 +63,7 @@ do_libc_headers() { # Simply copy files until uClibc has the ablity to build out-of-tree CT_DoLog EXTRA "Copying sources to build dir" - { cd "${CT_SRC_DIR}/uClibc-${CT_LIBC_VERSION}"; tar cf - .; } |tar xf - + tar cf - -C "${CT_SRC_DIR}/uClibc-${CT_LIBC_VERSION}" . |tar xf - # Retrieve the config file cp "${CT_CONFIG_DIR}/uClibc.config" .config @@ -76,8 +78,14 @@ do_libc_headers() { CT_DoLog EXTRA "Building headers" CT_DoExecLog ALL make ${CT_LIBC_UCLIBC_VERBOSITY} CROSS= PREFIX="${CT_SYSROOT_DIR}/" headers + if [ "${CT_LIBC_UCLIBC_0_9_30_or_later}" = "y" ]; then + install_rule=install_headers + else + install_rule=install_dev + fi + CT_DoLog EXTRA "Installing headers" - CT_DoExecLog ALL make ${CT_LIBC_UCLIBC_VERBOSITY} CROSS= PREFIX="${CT_SYSROOT_DIR}/" install_headers + CT_DoExecLog ALL make ${CT_LIBC_UCLIBC_VERBOSITY} CROSS= PREFIX="${CT_SYSROOT_DIR}/" ${install_rule}" CT_EndStep } @@ -96,7 +104,7 @@ do_libc() { # Simply copy files until uClibc has the ablity to build out-of-tree CT_DoLog EXTRA "Copying sources to build dir" - { cd "${CT_SRC_DIR}/uClibc-${CT_LIBC_VERSION}"; tar cf - .; } |tar xf - + tar cf - -C "${CT_SRC_DIR}/uClibc-${CT_LIBC_VERSION}" . |tar xf - # Retrieve the config file cp "${CT_CONFIG_DIR}/uClibc.config" .config @@ -126,14 +134,20 @@ do_libc() { ${CT_LIBC_UCLIBC_VERBOSITY} \ all - # YEM-FIXME: we want to install libraries in $SYSROOT/lib, but we don't want - # to install headers in $SYSROOT/include, thus making only install_runtime. - # Plus, the headers were previously installed earlier with install_headers, - # so all should be well. Unfortunately, the install_headers target does not - # install crti.o and consorts... :-( So reverting to target 'install'. - # Note: PARALLELMFLAGS is not usefull for installation. + # YEM-FIXME: + # - we want to install 'runtime' files, eg. lib*.{a,so*}, crti.o and + # such files, except the headers as they already are installed + # - "make install_dev" installs the headers, the crti.o... and the + # static libs, but not the dynamic libs + # - "make install_runtime" installs the dynamic libs only + # - "make install" calls install_runtime and install_dev + # - so we're left with re-installing the headers... Sigh... + # # We do _not_ want to strip anything for now, in case we specifically # asked for a debug toolchain, hence the STRIPTOOL= assignment + # + # Note: PARALLELMFLAGS is not usefull for installation. + # CT_DoLog EXTRA "Installing C library" CT_DoExecLog ALL \ make CROSS=${CT_TARGET}- \ -- cgit v0.10.2-6-g49f6