Home | History | Annotate | Line # | Download | only in dist
check-pc-requires revision 1.1.1.2
      1      1.1  mrg #!/bin/sh
      2      1.1  mrg 
      3      1.1  mrg case "$AM_SRCDIR" in
      4      1.1  mrg "")
      5      1.1  mrg 	AM_SRCDIR="."
      6      1.1  mrg 	;;
      7      1.1  mrg *)
      8      1.1  mrg 	;;
      9      1.1  mrg esac
     10      1.1  mrg 
     11      1.1  mrg fix=n
     12      1.1  mrg status=0
     13      1.1  mrg case "$1" in
     14      1.1  mrg "-fix")
     15      1.1  mrg 	fix=y
     16      1.1  mrg 	;;
     17      1.1  mrg esac
     18      1.1  mrg 
     19      1.1  mrg for inc in src/*.h; do
     20      1.1  mrg 	package=xcb-`basename $inc .h`
     21      1.1  mrg 	pcin="$AM_SRCDIR"/$package.pc.in
     22      1.1  mrg 	if [ -f $pcin ]; then
     23      1.1  mrg 		included=`grep '# *include' $inc |
     24      1.1  mrg 			sed -e 's/[^<"]*[<"]//' -e 's/[>"]//' |
     25      1.1  mrg 			grep -v 'xcb.h\|xproto.h'`
     26  1.1.1.2  mrg 		requires=`grep '^Requires.private:' $pcin`
     27      1.1  mrg 		missing=""
     28      1.1  mrg 		for i in $included; do
     29      1.1  mrg 			ibase=`basename $i .h`
     30      1.1  mrg 			r="xcb-$ibase"
     31      1.1  mrg 			rpcin="$AM_SRCDIR"/$r.pc.in
     32      1.1  mrg 			if [ -f $rpcin ]; then
     33      1.1  mrg 				m="$r"
     34      1.1  mrg 				for has in $requires; do
     35      1.1  mrg 					if [ $has = $r ]; then
     36      1.1  mrg 						m=""
     37      1.1  mrg 					fi
     38      1.1  mrg 				done
     39      1.1  mrg 				case "$m" in
     40      1.1  mrg 				"")
     41      1.1  mrg 					;;
     42      1.1  mrg 				*)
     43      1.1  mrg 					case "$missing" in
     44      1.1  mrg 					"")
     45      1.1  mrg 						missing=$m
     46      1.1  mrg 						;;
     47      1.1  mrg 					*)
     48      1.1  mrg 						missing="$missing $m"
     49      1.1  mrg 						;;
     50      1.1  mrg 					esac
     51      1.1  mrg 					;;
     52      1.1  mrg 				esac
     53      1.1  mrg 			fi
     54      1.1  mrg 		done
     55      1.1  mrg 		case "$missing" in
     56      1.1  mrg 		"")
     57      1.1  mrg 			;;
     58      1.1  mrg 		*)
     59      1.1  mrg 			if [ "$fix" = "y" ]; then
     60      1.1  mrg 			    echo $package adding dependency on $missing
     61  1.1.1.2  mrg 			    sed -i '/^Requires.private:/s/$/ '"$missing"'/' $pcin
     62      1.1  mrg 			else
     63      1.1  mrg 			    echo $package missing $missing
     64      1.1  mrg 			    status=1
     65      1.1  mrg 			fi
     66      1.1  mrg 			;;
     67      1.1  mrg 		esac
     68      1.1  mrg 	fi
     69      1.1  mrg done
     70      1.1  mrg exit $status
     71