36 lines
890 B
Plaintext
36 lines
890 B
Plaintext
|
#!/bin/sh
|
||
|
|
||
|
# this process is necessary because make(1) puts its command line into
|
||
|
# the environment, and when we exec a sub-make we need these command
|
||
|
# line settings (like CDEBUG=-g for example) to override what we get out
|
||
|
# of port/$systype/Makefile.set. therefore feed Makefile.set to this
|
||
|
# and it will merge things appropriately. a cache file is maintained
|
||
|
# to avoid calling this script way too often.
|
||
|
|
||
|
cachefile=${1-//}
|
||
|
if [ -f "$cachefile" ]; then
|
||
|
echo "Using $cachefile" >&2
|
||
|
exec cat $cachefile
|
||
|
fi
|
||
|
|
||
|
case $cachefile in
|
||
|
//) ;;
|
||
|
*) echo "Making $cachefile" >&2 ;;
|
||
|
esac
|
||
|
|
||
|
result=''
|
||
|
while read setting; do
|
||
|
var=`expr "$setting" : "'\([A-Z0-9_]*\)="`
|
||
|
val=`expr "$setting" : "'[A-Z0-9_]*=\([^']*\)'\$"`
|
||
|
eval "env=`echo \\${\$var-'$val'}`"
|
||
|
result="$result '$var=$env'"
|
||
|
done
|
||
|
|
||
|
case $cachefile in
|
||
|
//) echo $result ;;
|
||
|
*) echo $result > $cachefile
|
||
|
exec cat $cachefile ;;
|
||
|
esac
|
||
|
|
||
|
exit
|