#!/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