kumquat-buildroot/toolchain/external-toolchain/ext-tool.mk
Thomas Petazzoni 978d8dc53e Another external toolchain support solution
* In toolchain/external-toolchain/ext-tool.mk, copy the contents of
   the sysroot directory to the staging dir.

 * In package/Makefile.in, add a --sysroot CFLAGS pointing to the
   staging dir

 * Remove the CFLAGS and LDFLAGS definition from
   TARGET_CONFIGURE_OPTS. I haven't investigated exactly why, but with
   these options, DirectFB fails to build because it cannot find
   PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP, even if DirectFB's Makefile
   properly sets -D_GNU_SOURCE.

I have already sent this patch on December, 2nd to the mailing-list,
but got no feedback. So let's commit and see what happens :-)

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2008-12-13 16:15:50 +00:00

62 lines
1.9 KiB
Makefile

#
# copy_toolchain_lib_root
#
# $1: source
# $2: destination
# $3: strip (y|n) default is to strip
#
copy_toolchain_lib_root = \
LIB="$(strip $1)"; \
DST="$(strip $2)"; \
STRIP="$(strip $3)"; \
\
LIB_DIR=`$(TARGET_CC) -print-file-name=$${LIB} | sed -e "s,$${LIB}\$$,,"`; \
\
if test -z "$${LIB_DIR}"; then \
echo "copy_toolchain_lib_root: lib=$${LIB} not found"; \
exit -1; \
fi; \
\
LIB="$(strip $1)"; \
for FILE in `find $${LIB_DIR} -maxdepth 1 -type l -name "$${LIB}*"`; do \
LIB=`basename $${FILE}`; \
while test \! -z "$${LIB}"; do \
echo "copy_toolchain_lib_root lib=$${LIB} dst=$${DST}"; \
rm -fr $(TARGET_DIR)$${DST}/$${LIB}; \
mkdir -p $(TARGET_DIR)$${DST}; \
if test -h $${LIB_DIR}/$${LIB}; then \
cp -d $${LIB_DIR}/$${LIB} $(TARGET_DIR)$${DST}/; \
elif test -f $${LIB_DIR}/$${LIB}; then \
$(INSTALL) -D -m0755 $${LIB_DIR}/$${LIB} $(TARGET_DIR)$${DST}/$${LIB}; \
case "$${STRIP}" in \
(0 | n | no) \
;; \
(*) \
$(TARGET_CROSS)strip "$(TARGET_DIR)$${DST}/$${LIB}"; \
;; \
esac; \
else \
exit -1; \
fi; \
LIB="`readlink $${LIB_DIR}/$${LIB}`"; \
done; \
done; \
\
echo -n
copy_toolchain_sysroot = \
SYSROOT_DIR=`$(TARGET_CC) -v 2>&1 | grep ^Configured | tr " " "\n" | grep -- "--with-sysroot" | cut -f2 -d=`; \
cp -a $${SYSROOT_DIR}/* $(STAGING_DIR)/ ; \
find $(STAGING_DIR) -type d | xargs chmod 755
uclibc: dependencies $(TARGET_DIR)/lib/$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_LIB_C)))
$(TARGET_DIR)/lib/$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_LIB_C))):
#"))
mkdir -p $(TARGET_DIR)/lib
@$(call copy_toolchain_lib_root, $(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_LIB_C))), /lib, $(BR2_TOOLCHAIN_EXTERNAL_STRIP))
#")))
for libs in $(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_LIBS))); do \
$(call copy_toolchain_lib_root, $$libs, /lib, $(BR2_TOOLCHAIN_EXTERNAL_STRIP)); \
done
$(call copy_toolchain_sysroot)