summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhil Pennock <pdp@exim.org>2011-01-27 19:07:05 -0500
committerPhil Pennock <pdp@exim.org>2011-01-27 19:07:05 -0500
commit0cc9542ab26b35cba3a5523acb8991eb18ce0656 (patch)
tree894154b02d25e820b40c1dbd0c30f167c52090a1 /src
parent159f52d231c010cbc4e149502b7f906293233f94 (diff)
Permit make values to be indented or in env.
It appears some make(1)s are not complaining about variables defined with leading whitespace on the line. Permit that where we can, for the lookups, but it's not tenable for CFLAGS_DYNAMIC. Some people are specifying knobs on the make command-line, so we get them via the environment. Tested: indented LOOKUP_CDB and commented out LOOKUP_DNSDB, supplying it via { make LOOKUP_DNSDB=yes }. { exim -d --version } shows both are built-in, no results from { fgrep DNSDB build-*/Makefile }.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/scripts/lookups-Makefile16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/scripts/lookups-Makefile b/src/scripts/lookups-Makefile
index dd0472b8d..d5c450e4f 100755
--- a/src/scripts/lookups-Makefile
+++ b/src/scripts/lookups-Makefile
@@ -21,6 +21,9 @@ tab=' '
# We always do something now, since there should always be a lookup,
# and now we need to run in order to put the OBJ=$(OBJ)+ rules in.
+# nb: do not permit leading whitespace for this, as CFLAGS_DYNAMIC is exported
+# to the lookups subdir via a line with leading whitespace which otherwise
+# matches
if grep -q "^CFLAGS_DYNAMIC[ $tab]*=" "$defs_source"
then
# we have a definition, we're good to go
@@ -32,14 +35,23 @@ fi
tmp="$target.t"
+# For the want_ checks, we need to let the user override values from the make
+# command-line, not just check the Makefile.
+
want_dynamic() {
local dyn_name="$1"
- grep -q "^LOOKUP_${dyn_name}[ $tab]*=[ $tab]*2" "$defs_source"
+ local re="LOOKUP_${dyn_name}[ $tab]*=[ $tab]*2"
+ env | grep -q "^$re"
+ if [ $? -eq 0 ]; then return 0; fi
+ grep -q "^[ $tab]*$re" "$defs_source"
}
want_at_all() {
local want_name="$1"
- grep -q "^LOOKUP_${want_name}[ $tab]*=[ $tab]*." "$defs_source"
+ local re="LOOKUP_${want_name}[ $tab]*=[ $tab]*."
+ env | grep -q "^$re"
+ if [ $? -eq 0 ]; then return 0; fi
+ grep -q "^[ $tab]*$re" "$defs_source"
}
# The values of these variables will be emitted into the Makefile.