################################################################################
# Embtoolkit
# Copyright(C) 2014 Abdoulaye Walsimou GAYE.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
#
################################################################################
#
# \file libtool.mk
# \brief libtool.mk of Embtoolkit
# \author Abdoulaye Walsimou GAYE
# \date January 2014
################################################################################
#Macro to adapt libtool files (*.la) for cross compiling
__ltlibdirold = libdir='\/usr\/$(LIBDIR)\(.*\)'
__ltlibdirnew = libdir='$(embtk_sysroot)\/usr\/$(LIBDIR)\1'
__lt_usr/lib = $(embtk_space)\/usr\/$(LIBDIR)\/
__lt_sysroot/usr/lib = $(embtk_space)$(embtk_sysroot)\/usr\/$(LIBDIR)\/
__lt_path = $(addprefix $(embtk_sysroot)/usr/,$(or $(1),$(LIBDIR)))
define __embtk_fix_libtool_files
__lt_las=$$(find $(__lt_path) -name '*.la'); \
for la in $$__lt_las; do \
sed -e "s;$(__ltlibdirold);$(__ltlibdirnew);" \
-e "s;$(__lt_usr/lib);$(__lt_sysroot/usr/lib);g" \
< $$la > $$la.new; \
mv $$la.new $$la; \
done
endef
libtool_files_adapt:
$(Q)$(call __embtk_fix_libtool_files)
#A macro to remove rpath in packages that use libtool -rpath
define __embtk_kill_lt_rpath
cd $(strip $(1)); \
LOCAL_LT_FILES=`find . -type f -name libtool`; \
for i in $$LOCAL_LT_FILES; do \
sed -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \
-e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' \
< $$i > $$i.new; \
mv $$i.new $$i; \
done
endef