Commit | Line | Data |
---|---|---|
61ec970d | 1 | #! /bin/sh |
9176e9f0 | 2 | # $Cambridge: exim/src/scripts/Configure-config.h,v 1.2 2005/05/04 10:17:29 ph10 Exp $ |
61ec970d PH |
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 | ||
9176e9f0 PH |
21 | # 04-May-2005: if $1 is set, copy it into $MAKE, and then use $MAKE, if set, |
22 | # instead of "make" so that if gmake is used, it is used consistently. | |
23 | ||
24 | if [ "$1" != "" ] ; then MAKE=$1 ; fi | |
25 | if [ "$MAKE" = "" ] ; then MAKE=make ; fi | |
26 | ||
27 | $MAKE buildconfig || exit 1 | |
61ec970d PH |
28 | |
29 | # BEWARE: tab characters needed in the following sed command. They have had | |
30 | # a nasty tendency to get lost in the past, causing a problem if a tab has | |
31 | # actually been present in makefile. Use a variable to hold a space and a | |
32 | # tab to keep the tab in one place. This makes the sed option horrendous to | |
33 | # read, but the whole script is safer. | |
34 | ||
35 | st=' ' | |
36 | ||
37 | (sed -n \ | |
38 | "/\\\$/d;s/#.*\$//;s/^[$st]*\\([A-Z][^:$st]*\\)[$st]*=[$st]*\\([^$st]*\\)[$st]*\$/\\1=\\2 export \\1/p" \ | |
39 | < Makefile ; echo "./buildconfig") | /bin/sh | |
40 | ||
41 | # If buildconfig ends with an error code, it will have output an error | |
42 | # message. Ensure that a broken config.h gets deleted. | |
43 | ||
44 | if [ $? != 0 ] ; then | |
45 | rm -f config.h | |
46 | exit 1 | |
47 | fi | |
48 | ||
49 | # Double-check that config.h is complete. | |
50 | ||
51 | if [ "`tail -1 config.h`" != "/* End of config.h */" ] ; then | |
52 | echo "*** config.h appears to be incomplete" | |
53 | echo "*** unexpected failure in buildconfig program" | |
54 | exit 1 | |
55 | fi | |
56 | ||
57 | echo ">>> config.h built" | |
58 | echo "" | |
59 | ||
60 | # End of Configure-config.h |