#!/bin/bash # Copyright (C) 2005 Kevin F. Quinn # License: GPL v2 - http://www.gnu.org/licenses/gpl.html # Locate dependencies in libtool library archives that are broken libdirs=$(cat /etc/ld.so.conf | sed -e 's/#.*$//') for libdir in ${libdirs}; do las=$(echo ${libdir}/*.la) if [[ ! ${las} == "${libdir}/*.la" ]]; then printf "Scanning %s " ${libdir} 1>&2 for la in ${las}; do ( source ${la} dependency_libs=${dependency_libs//,/ } for lib in ${dependency_libs}; do if [[ ${lib:0:1} == "/" ]]; then if [[ ! -f ${lib} ]]; then printf "%s needs absolute file %s\n" ${la} ${lib} fi else if [[ ${lib:0:2} == "-L" || ${lib:0:2} == "-R" ]]; then if [[ ! -d ${lib:2} ]]; then printf "%s needs %spath directory %s\n" ${la} ${lib:1:1} ${lib:2} fi else if [[ ${lib:0:2} == "-l" ]]; then lib="lib${lib:2}" fi lf= for ld in ${libdirs}; do if [[ -f ${ld}/${lib}.so ]]; then lf=${ld}/${lib}.so fi if [[ -f ${ld}/${lib}.a ]]; then lf=${ld}/${lib}.a fi done if [[ -z ${lf} ]]; then printf "%s needs searchpath file %s\n" ${la} ${lib} fi fi fi done ) printf "." 1>&2 done printf "\n" 1>&2 fi done