summaryrefslogtreecommitdiff
path: root/src/scripts/Configure-Makefile
diff options
context:
space:
mode:
authorPhil Pennock <pdp@exim.org>2017-02-12 21:22:02 -0500
committerPhil Pennock <pdp@exim.org>2017-02-12 21:25:59 -0500
commit856d1e16b3386ce51b73986b9d7aaf1fbf95aba9 (patch)
tree8c95500528bc21426a4c815c435d169208b82bbb /src/scripts/Configure-Makefile
parent8b2b948009b466beb73844aea00180a561144716 (diff)
Handle PKG_CONFIG_PATH in Local/Makefile
Handle PKG_CONFIG_PATH, stripping whitespace expanding globs, collecting multiple sets and just build one variable, and use it in environment at configure time so that the libraries are found.
Diffstat (limited to 'src/scripts/Configure-Makefile')
-rwxr-xr-xsrc/scripts/Configure-Makefile34
1 files changed, 30 insertions, 4 deletions
diff --git a/src/scripts/Configure-Makefile b/src/scripts/Configure-Makefile
index 3e486a6bb..b6f2e2e09 100755
--- a/src/scripts/Configure-Makefile
+++ b/src/scripts/Configure-Makefile
@@ -78,6 +78,8 @@ fi
mf=Makefile
mft=$mf-t
mftt=$mf-tt
+mftepcp=$mf-tepcp
+mftepcp2=$mf-tepcp2
look_mf=lookups/Makefile
look_mf_pre=${look_mf}.predynamic
@@ -86,7 +88,7 @@ look_mf_post=${look_mf}.postdynamic
# Ensure the temporary does not exist and start the new one by setting
# the OSTYPE and ARCHTYPE variables.
-rm -f $mft $mftt $look_mf-t
+rm -f $mft $mftt $mftepcp $mftepcp2 $look_mf-t
(echo "OSTYPE=$ostype"; echo "ARCHTYPE=$archtype"; echo "") > $mft || exit 1
# Now concatenate the files to the temporary file. Copy the files using sed to
@@ -116,9 +118,33 @@ done \
| sed 's/^TMPDIR=/EXIM_&/' \
>> $mft || exit 1
+# handle PKG_CONFIG_PATH because we need it in our env, and we want to handle
+# wildcards; note that this logic means all setting _appends_ values, never
+# replacing; if that's a problem, we can revisit.
+sed -n "s/^[$st]*PKG_CONFIG_PATH[$st]*[+]*=[$st]*//p" $mft | \
+ sed "s/[$st]*\$//" >> $mftepcp
+if test -s ./$mftepcp
+then
+ # expand any wildcards and strip spaces, to make it a real PATH-like variable
+ ( IFS=":${IFS-$st}"; for P in `cat ./$mftepcp`; do echo "$P"; done ) | xargs | sed "s/[$st]/:/g" >./$mftepcp2
+ sed "s/^/PKG_CONFIG_PATH='/" < ./$mftepcp2 | sed "s/\$/'/" > ./$mftepcp
+ . ./$mftepcp
+ export PKG_CONFIG_PATH
+ egrep -v "^[$st]*PKG_CONFIG_PATH[$st]*=" ./$mft > ./$mftt
+ rm -f ./$mft
+ (
+ echo "# Collapsed PKG_CONFIG_PATH in build-prep:"
+ sed "s/'//g" ./$mftepcp
+ echo "# End of collapsed PKG_CONFIG_PATH"
+ echo ""
+ cat ./$mftt
+ ) > ./$mft
+ rm -f ./$mftt
+fi
+rm -f ./$mftepcp ./$mftepcp2
+
# handle pkg-config
# beware portability of extended regexps with sed.
-
egrep "^[$st]*(AUTH|LOOKUP)_[A-Z0-9_]*[$st]*=[$st]*" $mft | \
sed "s/[$st]*=/='/" | \
sed "s/\$/'/" > $mftt
@@ -165,8 +191,8 @@ then
echo "CFLAGS += $tls_include"
echo "LDFLAGS += $tls_libs"
else
- echo "CFLAGS += $(libgcrypt-config --cflags)"
- echo "LDFLAGS += $(libgcrypt-config --libs)"
+ echo "CFLAGS += `libgcrypt-config --cflags`"
+ echo "LDFLAGS += `libgcrypt-config --libs`"
fi
fi
fi