| 1 | #! /bin/sh |
| 2 | # $Cambridge: exim/src/scripts/Configure-config.h,v 1.1 2004/10/06 15:07:40 ph10 Exp $ |
| 3 | |
| 4 | # Build the config.h file, using the buildconfig program, first ensuring that |
| 5 | # it exists. |
| 6 | |
| 7 | # 22-May-1996: remove the use of the "-a" flag for /bin/sh because it is not |
| 8 | # implemented in the FreeBSD shell. Sigh. |
| 9 | |
| 10 | # 12-Mar-1997: add s/#.*$// to the sed script to allow for comments on the |
| 11 | # ends of settings - someone got caught. |
| 12 | |
| 13 | # 18-Apr-1997: put the tab character into a variable to stop it getting |
| 14 | # lost by accident (which has happened a couple of times). |
| 15 | |
| 16 | # 19-Jan-1998: indented settings in the makefile weren't being handled |
| 17 | # correctly; added [$st]* before \\([A-Z] in the pattern, to ignore leading |
| 18 | # space. Oddly, the pattern previously read ^\([A-Z which didn't seem to |
| 19 | # cause a problem (but did when the new bit was put in). |
| 20 | |
| 21 | make buildconfig || exit 1 |
| 22 | |
| 23 | # BEWARE: tab characters needed in the following sed command. They have had |
| 24 | # a nasty tendency to get lost in the past, causing a problem if a tab has |
| 25 | # actually been present in makefile. Use a variable to hold a space and a |
| 26 | # tab to keep the tab in one place. This makes the sed option horrendous to |
| 27 | # read, but the whole script is safer. |
| 28 | |
| 29 | st=' ' |
| 30 | |
| 31 | (sed -n \ |
| 32 | "/\\\$/d;s/#.*\$//;s/^[$st]*\\([A-Z][^:$st]*\\)[$st]*=[$st]*\\([^$st]*\\)[$st]*\$/\\1=\\2 export \\1/p" \ |
| 33 | < Makefile ; echo "./buildconfig") | /bin/sh |
| 34 | |
| 35 | # If buildconfig ends with an error code, it will have output an error |
| 36 | # message. Ensure that a broken config.h gets deleted. |
| 37 | |
| 38 | if [ $? != 0 ] ; then |
| 39 | rm -f config.h |
| 40 | exit 1 |
| 41 | fi |
| 42 | |
| 43 | # Double-check that config.h is complete. |
| 44 | |
| 45 | if [ "`tail -1 config.h`" != "/* End of config.h */" ] ; then |
| 46 | echo "*** config.h appears to be incomplete" |
| 47 | echo "*** unexpected failure in buildconfig program" |
| 48 | exit 1 |
| 49 | fi |
| 50 | |
| 51 | echo ">>> config.h built" |
| 52 | echo "" |
| 53 | |
| 54 | # End of Configure-config.h |