make.sh: Add command to find dependencies

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
This commit is contained in:
Michael Tremer 2020-05-13 11:52:59 +01:00 committed by Arne Fitzenreiter
parent cb9fd5923b
commit ba137dd898
2 changed files with 37 additions and 1 deletions

View File

@ -1993,8 +1993,12 @@ lang)
update-contributors)
update_contributors
;;
find-dependencies)
shift
exec "${BASEDIR}/tools/find-dependencies" "${BASEDIR}/build" "$@"
;;
*)
echo "Usage: $0 {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain|update-contributors}"
echo "Usage: $0 {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain|update-contributors|find-dependencies}"
cat doc/make.sh-usage
;;
esac

32
tools/find-dependencies Executable file
View File

@ -0,0 +1,32 @@
#!/bin/bash
main() {
if [ $# -lt 2 ]; then
echo "${0}: Usage: PATH LIBRARY ..."
return 2
fi
local root="${1}"
shift
if [ ! -d "${root}" ]; then
echo "${0}: ${root}: No such file or directory"
return 1
fi
local libraries="$@"
# Build the regex filter
local filter="(${libraries[*]// /|})"
local file
for file in $(find "${root}" -xdev -type f -executable); do
if readelf -d "${file}" 2>/dev/null | grep -qE "NEEDED.*\[${filter}\]$"; then
echo "${file}"
fi
done
return 0
}
main "$@" || exit $?