11c7386f4Smrg#!/bin/sh
21c7386f4Smrg
31c7386f4Smrgcase "$AM_SRCDIR" in
41c7386f4Smrg"")
51c7386f4Smrg	AM_SRCDIR="."
61c7386f4Smrg	;;
71c7386f4Smrg*)
81c7386f4Smrg	;;
91c7386f4Smrgesac
101c7386f4Smrg
111c7386f4Smrgfix=n
121c7386f4Smrgstatus=0
131c7386f4Smrgcase "$1" in
141c7386f4Smrg"-fix")
151c7386f4Smrg	fix=y
161c7386f4Smrg	;;
171c7386f4Smrgesac
181c7386f4Smrg
191c7386f4Smrgfor inc in src/*.h; do
201c7386f4Smrg	package=xcb-`basename $inc .h`
211c7386f4Smrg	pcin="$AM_SRCDIR"/$package.pc.in
221c7386f4Smrg	if [ -f $pcin ]; then
231c7386f4Smrg		included=`grep '# *include' $inc |
241c7386f4Smrg			sed -e 's/[^<"]*[<"]//' -e 's/[>"]//' |
251c7386f4Smrg			grep -v 'xcb.h\|xproto.h'`
267204935cSmrg		requires=`grep '^Requires.private:' $pcin`
271c7386f4Smrg		missing=""
281c7386f4Smrg		for i in $included; do
291c7386f4Smrg			ibase=`basename $i .h`
301c7386f4Smrg			r="xcb-$ibase"
311c7386f4Smrg			rpcin="$AM_SRCDIR"/$r.pc.in
321c7386f4Smrg			if [ -f $rpcin ]; then
331c7386f4Smrg				m="$r"
341c7386f4Smrg				for has in $requires; do
351c7386f4Smrg					if [ $has = $r ]; then
361c7386f4Smrg						m=""
371c7386f4Smrg					fi
381c7386f4Smrg				done
391c7386f4Smrg				case "$m" in
401c7386f4Smrg				"")
411c7386f4Smrg					;;
421c7386f4Smrg				*)
431c7386f4Smrg					case "$missing" in
441c7386f4Smrg					"")
451c7386f4Smrg						missing=$m
461c7386f4Smrg						;;
471c7386f4Smrg					*)
481c7386f4Smrg						missing="$missing $m"
491c7386f4Smrg						;;
501c7386f4Smrg					esac
511c7386f4Smrg					;;
521c7386f4Smrg				esac
531c7386f4Smrg			fi
541c7386f4Smrg		done
551c7386f4Smrg		case "$missing" in
561c7386f4Smrg		"")
571c7386f4Smrg			;;
581c7386f4Smrg		*)
591c7386f4Smrg			if [ "$fix" = "y" ]; then
601c7386f4Smrg			    echo $package adding dependency on $missing
617204935cSmrg			    sed -i '/^Requires.private:/s/$/ '"$missing"'/' $pcin
621c7386f4Smrg			else
631c7386f4Smrg			    echo $package missing $missing
641c7386f4Smrg			    status=1
651c7386f4Smrg			fi
661c7386f4Smrg			;;
671c7386f4Smrg		esac
681c7386f4Smrg	fi
691c7386f4Smrgdone
701c7386f4Smrgexit $status
71