|
1 | 1 | : |
2 | 2 | trap "rm -f /tmp/$$.c /tmp/$$.o /tmp/$$ /tmp/$$a /tmp/$$b" 0 1 2 3 15 |
3 | | -find . \( -name CVS -a -prune \) -o -type f -print | while read FILE |
| 3 | +find . \( -name CVS -a -prune \) -o -type f -print | grep -v postgres.h | |
| 4 | +while read FILE |
4 | 5 | do |
5 | | -cat "$FILE" | grep -v "^#if" | grep -v "^#else" | |
| 6 | +if [ "`echo $FILE | sed -n 's/^.*\.\([^\.]*\)$/\1/p'`" = "h" ] |
| 7 | +thenIS_INCLUDE="Y" |
| 8 | +elseIS_INCLUDE="N" |
| 9 | +fi |
| 10 | + |
| 11 | +if [ "$IS_INCLUDE" = "Y" ] |
| 12 | +thencat "$FILE" | grep -v "^#if" | grep -v "^#else" | |
6 | 13 | grep -v "^#endif" | sed 's/->[a-zA-Z0-9_\.]*//g' >/tmp/$$a |
| 14 | +elsecat "$FILE" >/tmp/$$a |
| 15 | +fi |
7 | 16 | cat /tmp/$$a | grep "^#include" | |
8 | 17 | sed 's/#include[ ]*[<"]\([^>"]*\).*$/\1/g' | |
9 | 18 | while read INCLUDE |
10 | 19 | do |
11 | 20 | [ -s /usr/include/$INCLUDE ] && continue |
12 | 21 | cat /tmp/$$a | |
13 | 22 | grep -v '^#include[ ]*[<"]'"$INCLUDE"'[>"]' >/tmp/$$b |
14 | | -echo "#include \"postgres.h\"" >/tmp/$$.c |
| 23 | +if [ "$IS_INCLUDE" = "Y" ] |
| 24 | +thenecho "#include \"postgres.h\"" >/tmp/$$.c |
| 25 | +else>/tmp/$$.c |
| 26 | +fi |
15 | 27 | echo "#include \"/tmp/$$b\"" >>/tmp/$$.c |
16 | | -echo "void main() {" >>/tmp/$$.c |
17 | | -pgdefine "$FILE" >>/tmp/$$.c |
| 28 | +echo "void include_test() {" >>/tmp/$$.c |
| 29 | +if [ "$IS_INCLUDE" = "Y" ] |
| 30 | +thenpgdefine "$FILE" >>/tmp/$$.c |
| 31 | +fi |
18 | 32 | echo "}" >>/tmp/$$.c |
19 | 33 | cc -Werror -Wall -I/pg/include -I/pg/backend -c /tmp/$$.c -o /tmp/$$.o >/tmp/$$ 2>&1 |
20 | 34 | if [ "$?" -eq 0 ] |
21 | 35 | thenecho "$FILE $INCLUDE" |
| 36 | +if [ "$IS_INCLUDE" = "N" ] |
| 37 | +thengrep -v '#include[ ]*[<"]$FILE[>"]' >/tmp/$$a |
| 38 | +mv /tmp/$$a "$FILE" |
| 39 | +fi |
22 | 40 | if [ "$1" = "-v" ] |
23 | 41 | thencat /tmp/$$ |
24 | 42 | cat /tmp/$$.c |
|