62 lines
2 KiB
Bash
Executable file
62 lines
2 KiB
Bash
Executable file
#! /bin/sh
|
|
# Copyright (c) The Exim Maintainters 2022
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
# Build the config.h file, using the buildconfig program, first ensuring that
|
|
# it exists.
|
|
|
|
# 22-May-1996: remove the use of the "-a" flag for /bin/sh because it is not
|
|
# implemented in the FreeBSD shell. Sigh.
|
|
|
|
# 12-Mar-1997: add s/#.*$// to the sed script to allow for comments on the
|
|
# ends of settings - someone got caught.
|
|
|
|
# 18-Apr-1997: put the tab character into a variable to stop it getting
|
|
# lost by accident (which has happened a couple of times).
|
|
|
|
# 19-Jan-1998: indented settings in the makefile weren't being handled
|
|
# correctly; added [$st]* before \\([A-Z] in the pattern, to ignore leading
|
|
# space. Oddly, the pattern previously read ^\([A-Z which didn't seem to
|
|
# cause a problem (but did when the new bit was put in).
|
|
|
|
# 04-May-2005: if $1 is set, copy it into $MAKE, and then use $MAKE, if set,
|
|
# instead of "make" so that if gmake is used, it is used consistently.
|
|
|
|
if [ "$1" != "" ] ; then MAKE=$1 ; fi
|
|
if [ "$MAKE" = "" ] ; then MAKE=make ; fi
|
|
|
|
$MAKE buildconfig || exit 1
|
|
|
|
# BEWARE: tab characters needed in the following sed command. They have had
|
|
# a nasty tendency to get lost in the past, causing a problem if a tab has
|
|
# actually been present in makefile. Use a variable to hold a space and a
|
|
# tab to keep the tab in one place. This makes the sed option horrendous to
|
|
# read, but the whole script is safer.
|
|
|
|
st=' '
|
|
|
|
(sed -n \
|
|
"/\\\$/d;s/#.*\$//;s/^[$st]*\\([A-Z][^:!+$st]*\\)[$st]*=[$st]*\\([^$st]*\\)[$st]*\$/\\1=\\2 export \\1/p" \
|
|
< Makefile ; echo "./buildconfig") | /bin/sh
|
|
|
|
# If buildconfig ends with an error code, it will have output an error
|
|
# message. Ensure that a broken config.h gets deleted.
|
|
|
|
if [ $? != 0 ] ; then
|
|
rm -f config.h
|
|
exit 1
|
|
fi
|
|
|
|
# Double-check that config.h is complete.
|
|
|
|
if [ "`tail -1 config.h`" != "/* End of config.h */" ] ; then
|
|
echo "*** config.h appears to be incomplete"
|
|
echo "*** unexpected failure in buildconfig program"
|
|
exit 1
|
|
fi
|
|
|
|
echo ">>> config.h built"
|
|
echo ""
|
|
|
|
# vim: set ft=sh :
|
|
# End of Configure-config.h
|