#!/bin/sh do { cat <<< ''' sayIt: $(foreach b,$(BUILT_INS),echo XXX $(b:$X=) YYY;) ''' cat Makefile } | make -f - sayIt 2>/dev/null | sed -n -e 's/.*XXX \(.*\) YYY.*/\1/p' | sort | do { setvar bad = '0' while read builtin { setvar base = $(expr "$builtin" : 'git-\(.*\)') setvar x = $(sed -ne 's/.*{ "'$base'", \(cmd_[^, ]*\).*/'$base' \1/p' git.c) if test -z $x { echo "$base is builtin but not listed in git.c command list" setvar bad = '1' } for sfx in [sh perl py] { if test -f "$builtin.$sfx" { echo "$base is builtin but $builtin.$sfx still exists" setvar bad = '1' } } } exit $bad }