:
# report which #include files can not compile on their own
# takes -v option to display compile failure message and line numbers
# src/tools/pginclude/pgcompinclude

: ${CC:=cc}
: ${PGSRC:=src}

if ! pgdefine
then	echo "pgdefine must be in your PATH" 1>&2
	exit 1
fi

trap "rm -f /tmp/$$.c /tmp/$$.o /tmp/$$ /tmp/$$a" 0 1 2 3 15
find . \( -name .git -a -prune \) -o -name '*.h' -type f -print | while read FILE
do
	sed 's/->[a-zA-Z0-9_\.]*//g' "$FILE" >/tmp/$$a
	echo "#include \"postgres.h\"" >/tmp/$$.c

	# suppress fcinfo errors
	echo "struct {Datum       arg[1];} *fcinfo;" >>/tmp/$$.c

	echo "#include \"/tmp/$$a\"" >>/tmp/$$.c

	echo "Datum include_test(void);" >>/tmp/$$.c
	echo "Datum include_test() {" >>/tmp/$$.c

	pgdefine "$FILE" >>/tmp/$$.c

	echo "return (Datum)0;" >>/tmp/$$.c
	echo "}" >>/tmp/$$.c

	# Use -O1 to get warnings only generated by optimization,
	# but -O2 is too slow.
	$CC -fsyntax-only -Werror -Wall -Wmissing-prototypes \
		-Wmissing-declarations -I$PGSRC/include -I$PGSRC/backend \
		-I$PGSRC/interfaces/libpq -I`dirname $FILE` $CFLAGS -O1 -c /tmp/$$.c \
		-o /tmp/$$.o >/tmp/$$ 2>&1
	if [ "$?" -ne 0 ]
	then	echo "$FILE"
		if [ "$1" = "-v" ]
		then	cat /tmp/$$
			nl /tmp/$$.c
			echo
		fi
	fi
done
